opensteam 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +78 -0
- data/LICENSE +345 -0
- data/{README.txt → README.rdoc} +20 -17
- data/Rakefile +40 -0
- data/generators/opensteam/opensteam_generator.rb +95 -194
- data/generators/opensteam/templates/{controllers/administration → app/controllers/admin}/inventories_controller.rb +4 -4
- data/generators/opensteam/templates/app/controllers/admin/invoices_controller.rb +106 -0
- data/generators/opensteam/templates/app/controllers/admin/orders_controller.rb +113 -0
- data/generators/opensteam/templates/app/controllers/admin/search_controller.rb +17 -0
- data/generators/opensteam/templates/app/controllers/admin/shipments_controller.rb +106 -0
- data/generators/opensteam/templates/app/controllers/admin/users_controller.rb +99 -0
- data/generators/opensteam/templates/app/controllers/admin_controller.rb +40 -0
- data/generators/opensteam/templates/app/controllers/cart_controller.rb +94 -0
- data/generators/opensteam/templates/app/controllers/checkout_controller.rb +139 -0
- data/generators/opensteam/templates/app/controllers/profile/infos_controller.rb +52 -0
- data/generators/opensteam/templates/app/controllers/profile/orders_controller.rb +105 -0
- data/generators/opensteam/templates/app/controllers/profile_controller.rb +37 -0
- data/generators/opensteam/templates/app/controllers/searches_controller.rb +23 -0
- data/generators/opensteam/templates/app/controllers/user_sessions_controller.rb +38 -0
- data/generators/opensteam/templates/app/controllers/users_controller.rb +40 -0
- data/generators/opensteam/templates/{controllers → app/controllers}/webshop_controller.rb +35 -13
- data/generators/opensteam/templates/app/helpers/admin_helper.rb +40 -0
- data/generators/opensteam/templates/app/helpers/users_helper.rb +53 -0
- data/generators/opensteam/templates/app/helpers/webshop_helper.rb +91 -0
- data/generators/opensteam/templates/app/models/search.rb +36 -0
- data/generators/opensteam/templates/{views/administration → app/views/admin}/_address.html.erb +0 -0
- data/generators/opensteam/templates/app/views/admin/_nav.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/catalog.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/index.html.erb +21 -0
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/edit.html.erb +10 -9
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/index.html.erb +3 -3
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/new.html.erb +3 -3
- data/generators/opensteam/templates/app/views/admin/inventories/show.html.erb +46 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoice.html.erb +12 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoices.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/invoices/index.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/invoices/new.html.erb +54 -0
- data/generators/opensteam/templates/app/views/admin/invoices/show.html.erb +55 -0
- data/generators/opensteam/templates/app/views/admin/orders/_event.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/orders/_order.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/orders/_order_item.html.erb +10 -0
- data/generators/opensteam/templates/app/views/admin/orders/_orders.html.erb +19 -0
- data/generators/opensteam/templates/app/views/admin/orders/index.html.erb +14 -0
- data/generators/opensteam/templates/app/views/admin/orders/livesearch.rjs +6 -0
- data/generators/opensteam/templates/app/views/admin/orders/show.html.erb +58 -0
- data/generators/opensteam/templates/app/views/admin/products.html.erb +8 -0
- data/generators/opensteam/templates/app/views/admin/properties.html.erb +7 -0
- data/generators/opensteam/templates/app/views/admin/sales.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/shipments/_shipment.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/shipments/_shipments.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/shipments/index.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/shipments/new.html.erb +51 -0
- data/generators/opensteam/templates/app/views/admin/shipments/show.html.erb +55 -0
- data/generators/opensteam/templates/app/views/admin/users/_admins.html.erb +26 -0
- data/generators/opensteam/templates/app/views/admin/users/_admins_header.html.erb +10 -0
- data/generators/opensteam/templates/app/views/admin/users/_customer.html.erb +32 -0
- data/generators/opensteam/templates/app/views/admin/users/_customers.html.erb +29 -0
- data/generators/opensteam/templates/app/views/admin/users/_customers_header.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/users/_user_fields.html.erb +9 -0
- data/generators/opensteam/templates/app/views/admin/users/_users.html.erb +29 -0
- data/generators/opensteam/templates/app/views/admin/users/_users_header.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/users/edit.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/users/index.html.erb +7 -0
- data/generators/opensteam/templates/app/views/admin/users/new.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/users/show.html.erb +34 -0
- data/generators/opensteam/templates/app/views/admin/users.html.erb +4 -0
- data/generators/opensteam/templates/{views → app/views}/administration_mailer/order_admin.erb +0 -0
- data/generators/opensteam/templates/{views → app/views}/administration_mailer/order_customer.erb +0 -0
- data/generators/opensteam/templates/app/views/cart/_cart.html.erb +8 -0
- data/generators/opensteam/templates/{views/webshop → app/views/cart}/_cart_content.html.erb +7 -10
- data/generators/opensteam/templates/app/views/cart/index.html.erb +5 -0
- data/generators/opensteam/templates/app/views/cart/update.rjs +1 -0
- data/generators/opensteam/templates/app/views/checkout/intro.html.erb +18 -0
- data/generators/opensteam/templates/{views → app/views}/checkout/outro.html.erb +0 -1
- data/generators/opensteam/templates/{views → app/views}/checkout/payment.html.erb +0 -0
- data/generators/opensteam/templates/app/views/checkout/shipping.html.erb +45 -0
- data/generators/opensteam/templates/app/views/checkout/show_cart.html.erb +13 -0
- data/generators/opensteam/templates/{views → app/views}/checkout/update_cart_content.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/common/_cart.html.erb +2 -2
- data/generators/opensteam/templates/{views → app/views}/common/_cart_content.html.erb +1 -1
- data/generators/opensteam/templates/app/views/common/_footer.html.erb +1 -0
- data/generators/opensteam/templates/app/views/common/_header.html.erb +4 -0
- data/generators/opensteam/templates/app/views/common/_header_flash.html.erb +3 -0
- data/generators/opensteam/templates/app/views/common/_signup_fields.html.erb +16 -0
- data/generators/opensteam/templates/app/views/common/_top_links.html.erb +10 -0
- data/generators/opensteam/templates/app/views/layouts/admin.html.erb +45 -0
- data/generators/opensteam/templates/app/views/layouts/profile.html.erb +45 -0
- data/generators/opensteam/templates/app/views/layouts/webshop.html.erb +51 -0
- data/generators/opensteam/templates/app/views/profile/_customer_sidebar.html.erb +12 -0
- data/generators/opensteam/templates/app/views/profile/index.html.erb +11 -0
- data/generators/opensteam/templates/app/views/profile/infos/_customer.html.erb +5 -0
- data/generators/opensteam/templates/app/views/profile/infos/edit.html.erb +25 -0
- data/generators/opensteam/templates/app/views/profile/infos/edit_password.html.erb +26 -0
- data/generators/opensteam/templates/app/views/profile/orders/_order.html.erb +11 -0
- data/generators/opensteam/templates/app/views/profile/orders/_order_item.html.erb +10 -0
- data/generators/opensteam/templates/app/views/profile/orders/_orders.html.erb +19 -0
- data/generators/opensteam/templates/app/views/profile/orders/index.html.erb +14 -0
- data/generators/opensteam/templates/app/views/profile/orders/show.html.erb +48 -0
- data/generators/opensteam/templates/app/views/searches/_search_bar.html.erb +5 -0
- data/generators/opensteam/templates/app/views/searches/new.html.erb +23 -0
- data/generators/opensteam/templates/app/views/searches/show.html.erb +1 -0
- data/generators/opensteam/templates/app/views/user_sessions/new.html.erb +14 -0
- data/generators/opensteam/templates/app/views/users/_user_bar.html.erb +5 -0
- data/generators/opensteam/templates/app/views/users/index.html.erb +27 -0
- data/generators/opensteam/templates/app/views/users/new.html.erb +7 -0
- data/generators/opensteam/templates/app/views/users/show.html.erb +5 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/_inventory_content.html.erb +0 -0
- data/generators/opensteam/templates/app/views/webshop/_nav.html.erb +6 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/add_inventory_to_cart.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/add_to_cart_with_parameters.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/del_item.rjs +0 -0
- data/generators/opensteam/templates/app/views/webshop/index.html.erb +11 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/inventory.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/show.html.erb +15 -15
- data/generators/opensteam/templates/config/initializers/init_states.rb +68 -0
- data/generators/opensteam/templates/{init → config/initializers}/opensteam.rb +6 -0
- data/generators/opensteam/templates/config/initializers/opensteam_model_tables.rb +57 -0
- data/generators/opensteam/templates/db/migrate/20080609095714_create_profiles.rb +14 -0
- data/generators/opensteam/templates/{migrations/create_sessions.rb → db/migrate/20080609095720_create_sessions.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080609095721_create_users.rb +29 -0
- data/generators/opensteam/templates/{migrations/create_addresses.rb → db/migrate/20080609095723_create_addresses.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_customers.rb → db/migrate/20080609095724_create_customers.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080609095725_create_dummy_users.rb +21 -0
- data/generators/opensteam/templates/{migrations/create_inventories.rb → db/migrate/20080609095726_create_inventories.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_inventories_properties.rb → db/migrate/20080609095727_create_inventories_properties.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_order_items.rb → db/migrate/20080609095728_create_order_items.rb} +5 -0
- data/generators/opensteam/templates/db/migrate/20080609095729_create_orders.rb +32 -0
- data/generators/opensteam/templates/{migrations/create_payment_types.rb → db/migrate/20080609095730_create_payment_types.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_properties.rb → db/migrate/20080609095731_create_properties.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080623075613_create_states.rb +13 -0
- data/generators/opensteam/templates/db/migrate/20080624132807_create_searches.rb +20 -0
- data/generators/opensteam/templates/db/migrate/20080630114155_create_state_histories.rb +14 -0
- data/generators/opensteam/templates/db/migrate/20080714131513_create_invoices.rb +20 -0
- data/generators/opensteam/templates/db/migrate/20080714131650_create_shipments.rb +19 -0
- data/generators/opensteam/templates/lib/authenticated_system.rb +201 -0
- data/generators/opensteam/templates/lib/authentication/by_cookie_token.rb +90 -0
- data/generators/opensteam/templates/lib/authentication/by_password.rb +68 -0
- data/generators/opensteam/templates/lib/authentication.rb +46 -0
- data/generators/opensteam/templates/lib/states/invoice/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/invoice/payment_received.rb +8 -0
- data/generators/opensteam/templates/lib/states/invoice/pending.rb +6 -0
- data/generators/opensteam/templates/lib/states/invoice/waiting_for_payment.rb +5 -0
- data/generators/opensteam/templates/lib/states/order/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/order/pending.rb +19 -0
- data/generators/opensteam/templates/lib/states/order/processing.rb +11 -0
- data/generators/opensteam/templates/lib/states/shipment/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/shipment/pending.rb +5 -0
- data/generators/opensteam/templates/lib/tasks/opensteam.rake +114 -0
- data/generators/opensteam/templates/public/images/athmo_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/bg.jpg +0 -0
- data/generators/opensteam/templates/public/images/cart_big.gif +0 -0
- data/generators/opensteam/templates/public/images/cross.png +0 -0
- data/generators/opensteam/templates/public/images/enter.gif +0 -0
- data/generators/opensteam/templates/public/images/menu_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_logo1.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_petstore_logo1.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_store_logo.jpg +0 -0
- data/generators/opensteam/templates/public/images/os_logo.gif +0 -0
- data/generators/opensteam/templates/public/images/slogan.png +0 -0
- data/generators/opensteam/templates/public/images/tick.png +0 -0
- data/generators/opensteam/templates/public/images/zoom.png +0 -0
- data/generators/opensteam/templates/public/index.html +19 -36
- data/generators/opensteam/templates/public/javascripts/opensteam.js +30 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_newdesign.css +188 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_white.css +168 -0
- data/generators/opensteam/templates/public/stylesheets/webshop.css +0 -1
- data/generators/opensteam/templates/tasks/opensteam.rake +1 -1
- data/generators/opensteam/templates/{fixtures → test/fixtures}/inventories.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/inventories_properties.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/product_animals.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/product_dog_foods.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/properties.yml +0 -0
- data/generators/opensteam_product/opensteam_product_generator.rb +25 -9
- data/generators/opensteam_product/templates/controllers/product_controller.rb +5 -4
- data/generators/opensteam_product/templates/migration.rb +2 -1
- data/generators/opensteam_product/templates/models/product.rb +1 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/_attributes.html.erb +1 -1
- data/generators/opensteam_product/templates/views/{administration → admin}/_get_products.html.erb +0 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/_inventories.html.erb +2 -2
- data/generators/opensteam_product/templates/views/admin/edit.html.erb +13 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/index.html.erb +5 -5
- data/generators/opensteam_product/templates/views/admin/new.html.erb +16 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/show.html.erb +2 -2
- data/generators/opensteam_property/opensteam_property_generator.rb +8 -8
- data/generators/opensteam_property/templates/controllers/property_controller.rb +6 -4
- data/generators/opensteam_property/templates/migration.rb +2 -1
- data/generators/opensteam_property/templates/models/property.rb +1 -0
- data/generators/opensteam_property/templates/views/{administration → admin}/edit.html.erb +3 -3
- data/generators/opensteam_property/templates/views/admin/index.html.erb +24 -0
- data/generators/opensteam_property/templates/views/{administration → admin}/new.html.erb +2 -2
- data/generators/opensteam_property/templates/views/admin/show.html.erb +10 -0
- data/lib/opensteam/base.rb +16 -0
- data/lib/opensteam/cart_base.rb +227 -0
- data/lib/opensteam/checkout.rb +30 -3
- data/lib/opensteam/config.rb +37 -0
- data/lib/opensteam/extension_base.rb +76 -0
- data/lib/opensteam/finder.rb +36 -5
- data/lib/opensteam/helper/configurable_table.rb +228 -0
- data/lib/opensteam/history.rb +56 -0
- data/lib/opensteam/initializer.rb +127 -0
- data/lib/opensteam/inventory_base.rb +24 -1
- data/lib/opensteam/invoice_base.rb +61 -0
- data/lib/opensteam/order_base.rb +105 -14
- data/lib/opensteam/product_base.rb +31 -3
- data/lib/opensteam/property_base.rb +16 -0
- data/lib/opensteam/shipment_base.rb +60 -0
- data/lib/opensteam/shopping_cart.rb +32 -14
- data/lib/opensteam/state_logic.rb +218 -0
- data/lib/opensteam/state_machine.rb +216 -0
- data/lib/opensteam/user_base.rb +115 -131
- data/lib/opensteam/version.rb +17 -1
- data/lib/opensteam.rb +30 -35
- metadata +245 -146
- data/History.txt +0 -0
- data/License.txt +0 -4
- data/Manifest.txt +0 -131
- data/Manifest.txt.bak +0 -132
- data/generators/opensteam/templates/controllers/administration/customers_controller.rb +0 -23
- data/generators/opensteam/templates/controllers/administration/orders_controller.rb +0 -61
- data/generators/opensteam/templates/controllers/administration_controller.rb +0 -80
- data/generators/opensteam/templates/controllers/checkout_controller.rb +0 -142
- data/generators/opensteam/templates/helpers/webshop_helper.rb +0 -29
- data/generators/opensteam/templates/migrations/create_dummy_users.rb +0 -16
- data/generators/opensteam/templates/migrations/create_orders.rb +0 -18
- data/generators/opensteam/templates/migrations/create_users.rb +0 -19
- data/generators/opensteam/templates/models/administration_mailer.rb +0 -18
- data/generators/opensteam/templates/models/inventories_property.rb +0 -10
- data/generators/opensteam/templates/models/inventory.rb +0 -57
- data/generators/opensteam/templates/public/images/rails.png +0 -0
- data/generators/opensteam/templates/views/administration/_nav.html.erb +0 -11
- data/generators/opensteam/templates/views/administration/_update_tree.html.erb +0 -18
- data/generators/opensteam/templates/views/administration/admin_info.html.erb +0 -12
- data/generators/opensteam/templates/views/administration/customers/index.html.erb +0 -27
- data/generators/opensteam/templates/views/administration/customers/show.html.erb +0 -27
- data/generators/opensteam/templates/views/administration/customers.html.erb +0 -44
- data/generators/opensteam/templates/views/administration/index.html.erb +0 -9
- data/generators/opensteam/templates/views/administration/inventories/show.html.erb +0 -45
- data/generators/opensteam/templates/views/administration/login.html.erb +0 -16
- data/generators/opensteam/templates/views/administration/order.html.erb +0 -22
- data/generators/opensteam/templates/views/administration/orders/_order_item.html.erb +0 -22
- data/generators/opensteam/templates/views/administration/orders/index.html.erb +0 -32
- data/generators/opensteam/templates/views/administration/orders/show.html.erb +0 -25
- data/generators/opensteam/templates/views/administration/orders.html.erb +0 -32
- data/generators/opensteam/templates/views/administration/products.html.erb +0 -7
- data/generators/opensteam/templates/views/administration/properties.html.erb +0 -7
- data/generators/opensteam/templates/views/administration/show_order_item.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/signup.html.erb +0 -65
- data/generators/opensteam/templates/views/administration/tree.html.erb +0 -15
- data/generators/opensteam/templates/views/administration/update_products.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/update_properties.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/update_tree.rjs +0 -3
- data/generators/opensteam/templates/views/checkout/intro.html.erb +0 -5
- data/generators/opensteam/templates/views/checkout/shipping.html.erb +0 -39
- data/generators/opensteam/templates/views/checkout/show_cart.html.erb +0 -13
- data/generators/opensteam/templates/views/common/_header.html.erb +0 -15
- data/generators/opensteam/templates/views/layouts/administration.html.erb +0 -29
- data/generators/opensteam/templates/views/layouts/webshop.html.erb +0 -36
- data/generators/opensteam/templates/views/webshop/_cart.html.erb +0 -11
- data/generators/opensteam/templates/views/webshop/_header.html.erb +0 -15
- data/generators/opensteam/templates/views/webshop/index.html.erb +0 -12
- data/generators/opensteam_product/templates/views/administration/edit.html.erb +0 -13
- data/generators/opensteam_product/templates/views/administration/new.html.erb +0 -16
- data/generators/opensteam_property/templates/views/administration/index.html.erb +0 -24
- data/generators/opensteam_property/templates/views/administration/show.html.erb +0 -10
@@ -0,0 +1,106 @@
|
|
1
|
+
class Admin::ShipmentsController < AdminController
|
2
|
+
|
3
|
+
|
4
|
+
include Opensteam::Helper::ConfigurableTableController
|
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
|
15
|
+
|
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
|
+
def index
|
25
|
+
@shipments ||= Opensteam::ShipmentBase::Shipment.find( :all )
|
26
|
+
@order = Opensteam::OrderBase::Order.find( params[:order_id] ) if params[:order_id]
|
27
|
+
|
28
|
+
respond_to do |format|
|
29
|
+
format.html # index.html.erb
|
30
|
+
format.xml { render :xml => @shipments }
|
31
|
+
format.js { render :partial => "shipments", :layout => false }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def show
|
37
|
+
@order = Opensteam::OrderBase::Order.find( params[:order_id] )
|
38
|
+
@shipment ||= Opensteam::ShipmentBase::Shipment.find( params[:id] )
|
39
|
+
|
40
|
+
respond_to do |format|
|
41
|
+
format.html # show.html.erb
|
42
|
+
format.xml { render :xml => @shipments }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
def new
|
48
|
+
@order = Opensteam::OrderBase::Order.find( params[:order_id] )
|
49
|
+
@shipment = @order.shipments.new
|
50
|
+
|
51
|
+
if @order.order_items.all_shipped?
|
52
|
+
flash[:error] = "Cannot create shipment : All order items have been shipped!!"
|
53
|
+
redirect_to admin_order_path( @order )
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
def create
|
61
|
+
@order = Opensteam::OrderBase::Order.find( params[:order_id] )
|
62
|
+
@shipment = @order.shipments.new( params[:shipment] )
|
63
|
+
@address = @shipment.address
|
64
|
+
|
65
|
+
@order_items = @order.order_items.select { |o|
|
66
|
+
params[:order_items].keys.include?( o.id.to_s ) && params[:order_items][ o.id.to_s ] == "1"
|
67
|
+
}
|
68
|
+
|
69
|
+
@shipment.order_items << @order_items
|
70
|
+
|
71
|
+
ret = @address.update_attributes( params[:address] ) &&
|
72
|
+
@shipment.save
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
respond_to do |format|
|
77
|
+
if ret
|
78
|
+
flash[:notice] = 'Shipment was successfully created.'
|
79
|
+
format.html { redirect_to( admin_order_path( @order ) ) }
|
80
|
+
format.xml { render :xml => @shipment, :status => :created, :location => @shipment }
|
81
|
+
else
|
82
|
+
format.html { render :action => "new" }
|
83
|
+
format.xml { render :xml => @shipment.errors, :status => :unprocessable_entity }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
def update
|
90
|
+
@shipment = Opensteam::ShipmentBase::Shipment.find( params[:id] )
|
91
|
+
|
92
|
+
respond_to do |format|
|
93
|
+
if @shipment.update_attributes( params[:shipment] )
|
94
|
+
format.html { redirect_to( admin_order_path( @shipment.order ) ) }
|
95
|
+
format.xml { head :ok }
|
96
|
+
else
|
97
|
+
format.html { render :action => "show" }
|
98
|
+
format.xml { render :xml => @shipment.errors, :status => :unprocessable_entity }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
class Admin::UsersController < AdminController
|
2
|
+
|
3
|
+
|
4
|
+
def index
|
5
|
+
if params[:type]
|
6
|
+
@users = Opensteam::UserBase::User.by_profile( params[:type] )
|
7
|
+
else
|
8
|
+
@users = Opensteam::UserBase::User.all
|
9
|
+
end
|
10
|
+
|
11
|
+
respond_to do |format|
|
12
|
+
format.html
|
13
|
+
format.xml { render :xml => @users.to_xml( :root => params[:type] || "users" ) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def show
|
18
|
+
@user = Opensteam::UserBase::User.find( params[:id] )
|
19
|
+
|
20
|
+
respond_to do |format|
|
21
|
+
format.html
|
22
|
+
format.xml { render :xml => @user.to_xml( :root => @user.profile.name ) }
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
def edit
|
31
|
+
@user = Opensteam::UserBase::User.find( params[:id] )
|
32
|
+
@profiles = Opensteam::UserBase::Profile.all
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
def update
|
43
|
+
@user = Opensteam::UserBase::User.find( params[:id] )
|
44
|
+
|
45
|
+
if params[:type]
|
46
|
+
@profile = Opensteam::UserBase::Profile.find_or_create_by_name( :name => params[:type].classify )
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
respond_to do |format|
|
51
|
+
ret = @user.update_attributes( params[:user] )
|
52
|
+
@user.profile = @profile if @profile
|
53
|
+
ret = ret && @user.save if @profile
|
54
|
+
|
55
|
+
if ret
|
56
|
+
flash[:notice] = 'User was successfully updated.'
|
57
|
+
format.html { redirect_to( admin_user_path( @user ) ) }
|
58
|
+
format.xml { head :ok }
|
59
|
+
else
|
60
|
+
format.html { render :action => "edit" }
|
61
|
+
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
def new
|
69
|
+
@user = Opensteam::UserBase::User.new
|
70
|
+
@profiles = Opensteam::UserBase::Profile.all
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
def create
|
75
|
+
@user = Opensteam::UserBase::User.new( params[:user] )
|
76
|
+
|
77
|
+
if params[:type]
|
78
|
+
@profile = Opensteam::UserBase::Profile.find_or_create_by_name( :name => params[:type].classify )
|
79
|
+
end
|
80
|
+
|
81
|
+
respond_to do |format|
|
82
|
+
|
83
|
+
ret = @user.save
|
84
|
+
@user.profile = @profile if @profile
|
85
|
+
ret = ret && @user.save if @profile
|
86
|
+
|
87
|
+
if ret
|
88
|
+
flash[:notice] = "User succesfully created"
|
89
|
+
format.html { redirect_to :action => "show" }
|
90
|
+
format.xml
|
91
|
+
else
|
92
|
+
format.html { render :action => "new" }
|
93
|
+
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
class AdminController < ApplicationController
|
3
|
+
include Opensteam::Finder
|
4
|
+
|
5
|
+
layout 'admin'
|
6
|
+
helper :all
|
7
|
+
|
8
|
+
# filter
|
9
|
+
before_filter :authorized?
|
10
|
+
|
11
|
+
|
12
|
+
def index
|
13
|
+
@extensions = []
|
14
|
+
# @extensions = Opensteam::ExtensionBase::Extension.active
|
15
|
+
end
|
16
|
+
|
17
|
+
# show product classes
|
18
|
+
def products
|
19
|
+
@products = AdminController.find_product_tables #AdministrationController.find_products.collect(&:class).uniq
|
20
|
+
end
|
21
|
+
|
22
|
+
# show property classes
|
23
|
+
def properties
|
24
|
+
@properties = AdminController.find_property_tables #AdministrationController.find_properties.collect(&:class).uniq
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
private
|
30
|
+
def authorized?
|
31
|
+
unless logged_in? && is_admin?
|
32
|
+
redirect_to login_path
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
return true
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,94 @@
|
|
1
|
+
## TEMPLATE ##
|
2
|
+
class CartController < ApplicationController
|
3
|
+
|
4
|
+
layout '<%= file_name %>'
|
5
|
+
|
6
|
+
include Opensteam::CartBase::Helper
|
7
|
+
|
8
|
+
|
9
|
+
def index
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def show
|
14
|
+
@inventory = [ Opensteam::InventoryBase::Inventory.find( @cart.items[ params[:id].to_i ].yamlid ) ]
|
15
|
+
@product = @inventory.first.product
|
16
|
+
@product.selected_inventory = @inventory.first
|
17
|
+
@properties = @product.selected_inventory.properties.to_h2 { |x| x.class.to_s.tableize }
|
18
|
+
@cart_details = true
|
19
|
+
|
20
|
+
render :template => "<%= file_name %>/show" # => "<%= file_name %>/show"
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def create
|
25
|
+
params[:product] = frmt params[:product]
|
26
|
+
|
27
|
+
if params[:product][:properties] && params[:product][:properties].index("")
|
28
|
+
flash[:error] = "Please select a #{params[:product][:properties].index("").humanize}"
|
29
|
+
return
|
30
|
+
end
|
31
|
+
|
32
|
+
product = Opensteam::Find.find_product_with_inventory( params[:product] )
|
33
|
+
|
34
|
+
if product.is_available?
|
35
|
+
unless @cart.add product.selected_inventories.last.id
|
36
|
+
render :update do |page| page.alert "sorry, there are only #{product.selected_inventories.last.storage} available!" end
|
37
|
+
end
|
38
|
+
else
|
39
|
+
render :update do |page| page.alert "Sorry, this product is currently not available!" end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def update
|
46
|
+
if params[:quantity]
|
47
|
+
params[:quantity].each { |key,value| @cart.set_quantity(key,value) }
|
48
|
+
if session[:active_order]
|
49
|
+
redirect_to :action => 'show_cart'
|
50
|
+
return
|
51
|
+
end
|
52
|
+
else
|
53
|
+
ci = @cart.get( :cart_item_id => params[:id] )
|
54
|
+
if params[:incr]
|
55
|
+
unless ci.incr
|
56
|
+
render :update do |page| page.alert "Sorry, there are only #{ci.quantity} available!" end
|
57
|
+
return
|
58
|
+
end
|
59
|
+
elsif params[:decr]
|
60
|
+
( ci.quantity - 1 ) == 0 ? @cart.items.delete_at( params[:id].to_i ) : ci.decr
|
61
|
+
end
|
62
|
+
|
63
|
+
if ( session[:active_order] )
|
64
|
+
render :template => "checkout/update_cart_content.rjs"
|
65
|
+
return
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
respond_to do |format|
|
70
|
+
format.html { params[:redirect] || redirect_to_index }
|
71
|
+
format.js { render :template => "cart/update.rjs" }
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def destroy
|
78
|
+
if params[:id]
|
79
|
+
@cart.del( :cart_item_id => params[:id] )
|
80
|
+
@current_item = params[:id]
|
81
|
+
else
|
82
|
+
empty_cart
|
83
|
+
end
|
84
|
+
|
85
|
+
respond_to do |format|
|
86
|
+
format.html { redirect_to opensteam_index_path }
|
87
|
+
format.js { render :action => "update.rjs" }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# CheckoutController
|
2
|
+
#
|
3
|
+
# Controller to handle the checkout-process
|
4
|
+
#
|
5
|
+
## TEMPLATE ##
|
6
|
+
require 'opensteam/shopping_cart'
|
7
|
+
require 'opensteam/checkout'
|
8
|
+
|
9
|
+
|
10
|
+
class CheckoutController < ApplicationController
|
11
|
+
layout "<%= file_name %>"
|
12
|
+
include Opensteam::Checkout
|
13
|
+
include Opensteam::ShoppingCart
|
14
|
+
|
15
|
+
|
16
|
+
before_filter :check_admin
|
17
|
+
|
18
|
+
# initialize checkout-flow
|
19
|
+
#
|
20
|
+
def initialize
|
21
|
+
create_checkout_flow do |c|
|
22
|
+
c.on :start, :intro
|
23
|
+
c.on :finish, :controller => "<%= file_name %>", :action => "index"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# checkout intro
|
29
|
+
#
|
30
|
+
# dummy page
|
31
|
+
def intro
|
32
|
+
@cart = get_cart
|
33
|
+
order = Opensteam::OrderBase::Order.create
|
34
|
+
session[:active_order] = order.id
|
35
|
+
if logged_in?
|
36
|
+
redirect_to :action => :place_order
|
37
|
+
return
|
38
|
+
end
|
39
|
+
session[:return_to] = url_for :controller => 'checkout', :action => 'show_cart'
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
# checkout outro
|
47
|
+
#
|
48
|
+
# dummy page
|
49
|
+
def outro
|
50
|
+
session[:cart] = nil
|
51
|
+
@cart = get_cart
|
52
|
+
session[:active_order] = nil
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
# checkout shipping
|
59
|
+
# [POST] + [GET]
|
60
|
+
def shipping
|
61
|
+
@order = Opensteam::OrderBase::Order.find( session[:active_order] )
|
62
|
+
@cart = get_cart
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
@customer = logged_in? ? current_user : Opensteam::UserBase::User.new
|
67
|
+
@shipping_address = Opensteam::UserBase::Address.new
|
68
|
+
@payment_address = Opensteam::UserBase::Address.new
|
69
|
+
|
70
|
+
#saving the form
|
71
|
+
if request.post?
|
72
|
+
|
73
|
+
if logged_in?
|
74
|
+
@customer = current_user
|
75
|
+
unless @customer.update_attributes( params[:order][:customer] )
|
76
|
+
render :action => :shipping
|
77
|
+
end
|
78
|
+
params[:order].delete :customer
|
79
|
+
@order.real_customer = @customer
|
80
|
+
end
|
81
|
+
|
82
|
+
if @order.update_attributes( params[:order] )
|
83
|
+
@order.customer.addresses << [ @order.shipping_address, @order.payment_address ]
|
84
|
+
|
85
|
+
self.current_user = @order.customer
|
86
|
+
|
87
|
+
|
88
|
+
redirect_to :action => :outro
|
89
|
+
else
|
90
|
+
@customer = @order.customer
|
91
|
+
@payment_address = @order.payment_address
|
92
|
+
@shipping_address = @order.shipping_address
|
93
|
+
render :action => :shipping
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
# show cart
|
102
|
+
# [GET]
|
103
|
+
#
|
104
|
+
# show the shopping cart again
|
105
|
+
def show_cart
|
106
|
+
@cart = get_cart
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
# place order
|
111
|
+
# [POST]
|
112
|
+
#
|
113
|
+
def place_order
|
114
|
+
# if request.post?
|
115
|
+
|
116
|
+
@order = Opensteam::OrderBase::Order.find( session[:active_order] )
|
117
|
+
@order.copy_from_cart( get_cart )
|
118
|
+
@order.save
|
119
|
+
session[:active_order] = @order.id
|
120
|
+
|
121
|
+
redirect_to :action => :shipping
|
122
|
+
# end
|
123
|
+
end
|
124
|
+
|
125
|
+
private
|
126
|
+
|
127
|
+
def check_admin
|
128
|
+
if( logged_in? && is_admin? )
|
129
|
+
flash[:error] = "Checkout not allowed for Admin User #{current_user.email}"
|
130
|
+
redirect_to shop_index_path
|
131
|
+
return false
|
132
|
+
end
|
133
|
+
true
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
class Profile::InfosController < ProfileController
|
2
|
+
|
3
|
+
def index
|
4
|
+
end
|
5
|
+
|
6
|
+
|
7
|
+
def edit
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def update
|
12
|
+
puts "updating...."
|
13
|
+
respond_to do |format|
|
14
|
+
if @customer.update_attributes( params[:customer] )
|
15
|
+
format.html { redirect_to profile_index_path }
|
16
|
+
format.xml { head :ok }
|
17
|
+
else
|
18
|
+
format.html { render :action => "edit" }
|
19
|
+
format.xml { render :xml => @customer.errors, :status => :unprocessable_entity }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit_password
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def change_password
|
30
|
+
user = Opensteam::UserBase::User.authenticate( @customer.email, params[:customer][:old_password] )
|
31
|
+
|
32
|
+
if user
|
33
|
+
params[:customer].delete( :old_password )
|
34
|
+
if @customer.update_attributes( params[:customer] )
|
35
|
+
flash[:message] = "Successfully changed password!"
|
36
|
+
redirect_to :action => 'index', :controller => 'profile'
|
37
|
+
else
|
38
|
+
flash[:error] = "An error occured while trying to change your password..."
|
39
|
+
render :action => 'edit_password'
|
40
|
+
end
|
41
|
+
else
|
42
|
+
@customer.errors.add( :old_password, "Incorrect Old Password!")
|
43
|
+
flash[:error] = "Incorrect Old Password"
|
44
|
+
render :action => 'edit_password'
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,105 @@
|
|
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
|
+
|
21
|
+
end
|
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
|
+
|
56
|
+
|
57
|
+
|
58
|
+
def index
|
59
|
+
if params[:state]
|
60
|
+
if ( params[:state].collect(&:to_sym) - Order.available_states.collect(&:name).collect(&:to_sym) ).empty?
|
61
|
+
@orders = params[:state].collect { |s| @customer.orders.scoped :conditions => { :state => s } }.flatten
|
62
|
+
else
|
63
|
+
@orders = []
|
64
|
+
end
|
65
|
+
else
|
66
|
+
@orders = @customer.orders
|
67
|
+
end
|
68
|
+
|
69
|
+
respond_to do |format|
|
70
|
+
format.html # index.html.erb
|
71
|
+
format.xml { render :xml => @orders.to_xml( :root => 'orders' ) }
|
72
|
+
format.js { render :partial => "orders", :layout => false }
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
def show
|
78
|
+
@order ||= Opensteam::OrderBase::Order.find( params[:id] )
|
79
|
+
|
80
|
+
respond_to do |format|
|
81
|
+
format.html # show.html.erb
|
82
|
+
format.xml { render :xml => @order }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
def update
|
89
|
+
@order = Opensteam::OrderBase::Order.find( params[:id] )
|
90
|
+
|
91
|
+
respond_to do |format|
|
92
|
+
if @order.update_attributes( params[:order] )
|
93
|
+
format.html { redirect_to admin_order_path( @order ) }
|
94
|
+
format.xml { head :ok }
|
95
|
+
else
|
96
|
+
format.html { render :action => "show" }
|
97
|
+
format.xml { render :xml => @order.errors, :status => :unprocessable_entity }
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
class ProfileController < ApplicationController
|
3
|
+
include Opensteam::Finder
|
4
|
+
|
5
|
+
include AuthenticatedSystem
|
6
|
+
layout 'profile'
|
7
|
+
|
8
|
+
helper :all
|
9
|
+
|
10
|
+
# filter
|
11
|
+
before_filter :authorized?
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
def index
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
private
|
21
|
+
def authorized?
|
22
|
+
|
23
|
+
logger.info "checkking if authoprized..."
|
24
|
+
|
25
|
+
unless( logged_in? && is_customer? )
|
26
|
+
access_denied
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
#logger.info current_user.email
|
30
|
+
@customer = current_user
|
31
|
+
true
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#TEMPLATE#
|
2
|
+
class SearchesController < ApplicationController
|
3
|
+
def new
|
4
|
+
@search = Search.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def create
|
8
|
+
@search = Search.new(params[:search])
|
9
|
+
if @search.save
|
10
|
+
flash[:notice] = "Successfully created search."
|
11
|
+
redirect_to @search
|
12
|
+
else
|
13
|
+
render :action => 'new'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def show
|
18
|
+
@search = Search.find(params[:id])
|
19
|
+
@products = ( @search.products || [] ) rescue []
|
20
|
+
flash[:notice] = @products.empty? ? "No products found!!" : "Search results:"
|
21
|
+
render :template => "<%= file_name %>/index"
|
22
|
+
end
|
23
|
+
end
|