My-Commerce_core 1.0.0
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/LICENSE +26 -0
- data/README.md +15 -0
- data/app/controllers/admin/adjustments_controller.rb +10 -0
- data/app/controllers/admin/base_controller.rb +63 -0
- data/app/controllers/admin/configurations_controller.rb +2 -0
- data/app/controllers/admin/general_settings_controller.rb +22 -0
- data/app/controllers/admin/images_controller.rb +49 -0
- data/app/controllers/admin/inventory_settings_controller.rb +13 -0
- data/app/controllers/admin/inventory_units_controller.rb +2 -0
- data/app/controllers/admin/line_items_controller.rb +60 -0
- data/app/controllers/admin/mail_methods_controller.rb +8 -0
- data/app/controllers/admin/mail_settings_controller.rb +14 -0
- data/app/controllers/admin/option_types_controller.rb +65 -0
- data/app/controllers/admin/orders_controller.rb +136 -0
- data/app/controllers/admin/overview_controller.rb +14 -0
- data/app/controllers/admin/payment_methods_controller.rb +43 -0
- data/app/controllers/admin/payments_controller.rb +107 -0
- data/app/controllers/admin/product_groups_controller.rb +46 -0
- data/app/controllers/admin/product_properties_controller.rb +10 -0
- data/app/controllers/admin/product_scopes_controller.rb +35 -0
- data/app/controllers/admin/products_controller.rb +113 -0
- data/app/controllers/admin/products_controller.rb~ +114 -0
- data/app/controllers/admin/properties_controller.rb +11 -0
- data/app/controllers/admin/prototypes_controller.rb +26 -0
- data/app/controllers/admin/reports_controller.rb +50 -0
- data/app/controllers/admin/resource_controller.rb +232 -0
- data/app/controllers/admin/return_authorizations_controller.rb +17 -0
- data/app/controllers/admin/shipments_controller.rb +117 -0
- data/app/controllers/admin/shipping_categories_controller.rb +2 -0
- data/app/controllers/admin/shipping_methods_controller.rb +14 -0
- data/app/controllers/admin/states_controller.rb +25 -0
- data/app/controllers/admin/tax_categories_controller.rb +2 -0
- data/app/controllers/admin/tax_rates_controller.rb +22 -0
- data/app/controllers/admin/tax_settings_controller.rb +13 -0
- data/app/controllers/admin/taxonomies_controller.rb +20 -0
- data/app/controllers/admin/taxons_controller.rb +161 -0
- data/app/controllers/admin/trackers_controller.rb +2 -0
- data/app/controllers/admin/users_controller.rb +65 -0
- data/app/controllers/admin/variants_controller.rb +51 -0
- data/app/controllers/admin/zones_controller.rb +23 -0
- data/app/controllers/checkout_controller.rb +97 -0
- data/app/controllers/content_controller.rb +21 -0
- data/app/controllers/locale_controller.rb +14 -0
- data/app/controllers/orders_controller.rb +64 -0
- data/app/controllers/products_controller.rb +39 -0
- data/app/controllers/spree/base_controller.rb +4 -0
- data/app/controllers/states_controller.rb +16 -0
- data/app/controllers/taxons_controller.rb +22 -0
- data/app/helpers/account_helper.rb +2 -0
- data/app/helpers/admin/base_helper.rb +194 -0
- data/app/helpers/admin/inventory_settings_helper.rb +5 -0
- data/app/helpers/admin/navigation_helper.rb +162 -0
- data/app/helpers/admin/orders_helper.rb +22 -0
- data/app/helpers/admin/overview_helper.rb +12 -0
- data/app/helpers/admin/payments_helper.rb +7 -0
- data/app/helpers/admin/product_groups_helper.rb +11 -0
- data/app/helpers/admin/product_properties_helper.rb +21 -0
- data/app/helpers/admin/products_helper.rb +11 -0
- data/app/helpers/admin/taxons_helper.rb +18 -0
- data/app/helpers/admin/users_helper.rb +8 -0
- data/app/helpers/admin/zones_helper.rb +11 -0
- data/app/helpers/checkout_helper.rb +31 -0
- data/app/helpers/hook_helper.rb +20 -0
- data/app/helpers/orders_helper.rb +3 -0
- data/app/helpers/products_helper.rb +30 -0
- data/app/helpers/search_helper.rb +10 -0
- data/app/helpers/spree/base_helper.rb +119 -0
- data/app/helpers/taxons_helper.rb +32 -0
- data/app/helpers/trackers_helper.rb +2 -0
- data/app/mailers/order_mailer.rb +19 -0
- data/app/mailers/shipment_mailer.rb +11 -0
- data/app/models/address.rb +115 -0
- data/app/models/adjustment.rb +47 -0
- data/app/models/app_configuration.rb +44 -0
- data/app/models/asset.rb +4 -0
- data/app/models/billing_integration.rb +23 -0
- data/app/models/calculator/flat_percent_item_total.rb +19 -0
- data/app/models/calculator/flat_rate.rb +16 -0
- data/app/models/calculator/flexi_rate.rb +32 -0
- data/app/models/calculator/per_item.rb +16 -0
- data/app/models/calculator/price_bucket.rb +30 -0
- data/app/models/calculator/sales_tax.rb +48 -0
- data/app/models/calculator/vat.rb +63 -0
- data/app/models/calculator.rb +46 -0
- data/app/models/configuration.rb +3 -0
- data/app/models/country.rb +16 -0
- data/app/models/creditcard.rb +267 -0
- data/app/models/gateway/authorize_net.rb +19 -0
- data/app/models/gateway/authorize_net_cim.rb +132 -0
- data/app/models/gateway/beanstream.rb +187 -0
- data/app/models/gateway/bogus.rb +80 -0
- data/app/models/gateway/braintree.rb +88 -0
- data/app/models/gateway/eway.rb +11 -0
- data/app/models/gateway/linkpoint.rb +8 -0
- data/app/models/gateway/pay_pal.rb +11 -0
- data/app/models/gateway/sage_pay.rb +9 -0
- data/app/models/gateway.rb +48 -0
- data/app/models/image.rb +31 -0
- data/app/models/inventory_unit.rb +119 -0
- data/app/models/line_item.rb +95 -0
- data/app/models/log_entry.rb +3 -0
- data/app/models/mail_method.rb +23 -0
- data/app/models/option_type.rb +9 -0
- data/app/models/option_value.rb +5 -0
- data/app/models/order.rb +484 -0
- data/app/models/payment.rb +119 -0
- data/app/models/payment_method/check.rb +27 -0
- data/app/models/payment_method.rb +56 -0
- data/app/models/preference.rb +51 -0
- data/app/models/product.rb +258 -0
- data/app/models/product_group.rb +216 -0
- data/app/models/product_option_type.rb +5 -0
- data/app/models/product_property.rb +15 -0
- data/app/models/product_scope.rb +78 -0
- data/app/models/property.rb +18 -0
- data/app/models/prototype.rb +5 -0
- data/app/models/return_authorization.rb +79 -0
- data/app/models/role.rb +3 -0
- data/app/models/shipment.rb +157 -0
- data/app/models/shipping_category.rb +3 -0
- data/app/models/shipping_method.rb +25 -0
- data/app/models/spree/alert.rb +13 -0
- data/app/models/state.rb +16 -0
- data/app/models/state_event.rb +16 -0
- data/app/models/tax_category.rb +15 -0
- data/app/models/tax_rate.rb +16 -0
- data/app/models/taxon.rb +52 -0
- data/app/models/taxonomy.rb +20 -0
- data/app/models/taxonomy.rb~ +22 -0
- data/app/models/tracker.rb +5 -0
- data/app/models/user.rb +21 -0
- data/app/models/variant.rb +104 -0
- data/app/models/zone.rb +84 -0
- data/app/models/zone_member.rb +10 -0
- data/app/stylesheets/_buttons.less +80 -0
- data/app/stylesheets/_cart.less +24 -0
- data/app/stylesheets/_checkout.less +76 -0
- data/app/stylesheets/_checkout_progress.less +62 -0
- data/app/stylesheets/_colors.less +16 -0
- data/app/stylesheets/_forms.less +50 -0
- data/app/stylesheets/_layout.less +77 -0
- data/app/stylesheets/_messages.less +32 -0
- data/app/stylesheets/_mixins.less +71 -0
- data/app/stylesheets/_navigation.less +130 -0
- data/app/stylesheets/_prices.less +18 -0
- data/app/stylesheets/_product_details.less +56 -0
- data/app/stylesheets/_product_lists.less +66 -0
- data/app/stylesheets/_registration.less +24 -0
- data/app/stylesheets/_reset.less +69 -0
- data/app/stylesheets/_typography.less +158 -0
- data/app/stylesheets/screen.less +13 -0
- data/app/views/admin/adjustments/_adjustments_table.html.erb +24 -0
- data/app/views/admin/adjustments/_form.html.erb +12 -0
- data/app/views/admin/adjustments/edit.html.erb +13 -0
- data/app/views/admin/adjustments/index.html.erb +4 -0
- data/app/views/admin/adjustments/new.html.erb +14 -0
- data/app/views/admin/configurations/index.html.erb +66 -0
- data/app/views/admin/extensions/index.html.erb +23 -0
- data/app/views/admin/general_settings/edit.html.erb +46 -0
- data/app/views/admin/general_settings/show.html.erb +36 -0
- data/app/views/admin/images/_form.html.erb +16 -0
- data/app/views/admin/images/edit.html.erb +19 -0
- data/app/views/admin/images/index.html.erb +69 -0
- data/app/views/admin/images/new.html.erb +22 -0
- data/app/views/admin/images/new.html.erb~ +22 -0
- data/app/views/admin/inventory_settings/edit.html.erb +27 -0
- data/app/views/admin/inventory_settings/show.html.erb +9 -0
- data/app/views/admin/inventory_units/adjust.html.erb +33 -0
- data/app/views/admin/mail_methods/_form.html.erb +96 -0
- data/app/views/admin/mail_methods/edit.html.erb +9 -0
- data/app/views/admin/mail_methods/index.html.erb +41 -0
- data/app/views/admin/mail_methods/new.html.erb +9 -0
- data/app/views/admin/option_types/_available.html.erb +27 -0
- data/app/views/admin/option_types/_form.html.erb +11 -0
- data/app/views/admin/option_types/_option_value_fields.html.erb +5 -0
- data/app/views/admin/option_types/_selected.html.erb +26 -0
- data/app/views/admin/option_types/available.js.erb +2 -0
- data/app/views/admin/option_types/edit.html.erb +32 -0
- data/app/views/admin/option_types/index.html.erb +33 -0
- data/app/views/admin/option_types/new.erb +11 -0
- data/app/views/admin/option_types/select.js.erb +3 -0
- data/app/views/admin/option_types/selected.html.erb +6 -0
- data/app/views/admin/orders/_add_product.html.erb +20 -0
- data/app/views/admin/orders/_form.html.erb +67 -0
- data/app/views/admin/orders/_line_item.html.erb +17 -0
- data/app/views/admin/orders/_user_form.html.erb +42 -0
- data/app/views/admin/orders/edit.html.erb +31 -0
- data/app/views/admin/orders/history.html.erb +29 -0
- data/app/views/admin/orders/index.html.erb +103 -0
- data/app/views/admin/orders/new.html.erb +20 -0
- data/app/views/admin/orders/show.html.erb +28 -0
- data/app/views/admin/orders/user.html.erb +24 -0
- data/app/views/admin/payment_methods/_form.html.erb +50 -0
- data/app/views/admin/payment_methods/edit.html.erb +10 -0
- data/app/views/admin/payment_methods/index.html.erb +49 -0
- data/app/views/admin/payment_methods/new.html.erb +11 -0
- data/app/views/admin/payments/_bill_address_form.html.erb +9 -0
- data/app/views/admin/payments/_form.html.erb +15 -0
- data/app/views/admin/payments/_list.html.erb +22 -0
- data/app/views/admin/payments/_transaction_list.html.erb +24 -0
- data/app/views/admin/payments/credit.html.erb +14 -0
- data/app/views/admin/payments/index.html.erb +22 -0
- data/app/views/admin/payments/new.html.erb +19 -0
- data/app/views/admin/payments/show.html.erb +10 -0
- data/app/views/admin/payments/source_forms/_check.html.erb +0 -0
- data/app/views/admin/payments/source_forms/_gateway.html.erb +43 -0
- data/app/views/admin/payments/source_views/_check.html.erb +0 -0
- data/app/views/admin/payments/source_views/_gateway.html.erb +34 -0
- data/app/views/admin/product_groups/_preview.html.erb +34 -0
- data/app/views/admin/product_groups/_product_scope.html.erb +24 -0
- data/app/views/admin/product_groups/edit.html.erb +56 -0
- data/app/views/admin/product_groups/index.html.erb +37 -0
- data/app/views/admin/product_groups/new.html.erb +12 -0
- data/app/views/admin/product_groups/show.html.erb +32 -0
- data/app/views/admin/product_groups/update.js.erb +8 -0
- data/app/views/admin/product_properties/_product_property_fields.html.erb +11 -0
- data/app/views/admin/product_properties/index.html.erb +55 -0
- data/app/views/admin/product_scopes/_form.html.erb +106 -0
- data/app/views/admin/product_scopes/create.js.erb +3 -0
- data/app/views/admin/product_scopes/destroy.js.erb +3 -0
- data/app/views/admin/product_scopes/new.html.erb +1 -0
- data/app/views/admin/products/_form.html.erb +112 -0
- data/app/views/admin/products/_option_types.html.erb +40 -0
- data/app/views/admin/products/_properties_form.erb +7 -0
- data/app/views/admin/products/edit.html.erb +10 -0
- data/app/views/admin/products/edit.html.erb~ +10 -0
- data/app/views/admin/products/index.html.erb +81 -0
- data/app/views/admin/products/index.html.erb~ +81 -0
- data/app/views/admin/products/new.erb +58 -0
- data/app/views/admin/products/new.erb~ +53 -0
- data/app/views/admin/products/show.html.erb +4 -0
- data/app/views/admin/products/show.html.erb~ +4 -0
- data/app/views/admin/properties/_form.html.erb +12 -0
- data/app/views/admin/properties/edit.html.erb +10 -0
- data/app/views/admin/properties/filtered.html.erb +1 -0
- data/app/views/admin/properties/index.html.erb +40 -0
- data/app/views/admin/properties/new.erb +11 -0
- data/app/views/admin/prototypes/_form.html.erb +44 -0
- data/app/views/admin/prototypes/available.html.erb +22 -0
- data/app/views/admin/prototypes/edit.html.erb +9 -0
- data/app/views/admin/prototypes/index.html.erb +37 -0
- data/app/views/admin/prototypes/new.erb +11 -0
- data/app/views/admin/prototypes/select.js.erb +4 -0
- data/app/views/admin/reports/index.html.erb +19 -0
- data/app/views/admin/reports/sales_total.html.erb +23 -0
- data/app/views/admin/return_authorizations/_form.html.erb +78 -0
- data/app/views/admin/return_authorizations/edit.html.erb +27 -0
- data/app/views/admin/return_authorizations/index.html.erb +45 -0
- data/app/views/admin/return_authorizations/new.html.erb +13 -0
- data/app/views/admin/shared/_additional_field.html.erb +5 -0
- data/app/views/admin/shared/_address.html.erb +5 -0
- data/app/views/admin/shared/_address_form.html.erb +79 -0
- data/app/views/admin/shared/_alert.html.erb +6 -0
- data/app/views/admin/shared/_calculator_fields.html.erb +19 -0
- data/app/views/admin/shared/_configuration_menu.html.erb +22 -0
- data/app/views/admin/shared/_destroy.js.erb +16 -0
- data/app/views/admin/shared/_edit_resource_links.html.erb +4 -0
- data/app/views/admin/shared/_group_from_products_form.html.erb +12 -0
- data/app/views/admin/shared/_new_adjustment_button.html.erb +8 -0
- data/app/views/admin/shared/_new_resource_links.html.erb +4 -0
- data/app/views/admin/shared/_order_details.html.erb +3 -0
- data/app/views/admin/shared/_order_sub_menu.html.erb +0 -0
- data/app/views/admin/shared/_order_tabs.html.erb +64 -0
- data/app/views/admin/shared/_product_sub_menu.html.erb +11 -0
- data/app/views/admin/shared/_product_tabs.html.erb +34 -0
- data/app/views/admin/shared/_report_criteria.html.erb +15 -0
- data/app/views/admin/shared/_show_resource_links.html.erb +5 -0
- data/app/views/admin/shared/_tabs.html.erb +6 -0
- data/app/views/admin/shared/_update_order_state.js +6 -0
- data/app/views/admin/shipments/_form.html.erb +77 -0
- data/app/views/admin/shipments/edit.html.erb +40 -0
- data/app/views/admin/shipments/index.html.erb +47 -0
- data/app/views/admin/shipments/new.html.erb +18 -0
- data/app/views/admin/shipping_categories/_form.html.erb +6 -0
- data/app/views/admin/shipping_categories/edit.html.erb +6 -0
- data/app/views/admin/shipping_categories/index.html.erb +29 -0
- data/app/views/admin/shipping_categories/new.html.erb +8 -0
- data/app/views/admin/shipping_methods/_form.html.erb +26 -0
- data/app/views/admin/shipping_methods/edit.html.erb +16 -0
- data/app/views/admin/shipping_methods/index.html.erb +49 -0
- data/app/views/admin/shipping_methods/new.html.erb +17 -0
- data/app/views/admin/states/_form.html.erb +9 -0
- data/app/views/admin/states/_state_list.html.erb +34 -0
- data/app/views/admin/states/edit.html.erb +10 -0
- data/app/views/admin/states/index.html.erb +16 -0
- data/app/views/admin/states/new.erb +8 -0
- data/app/views/admin/tax_categories/_form.html.erb +12 -0
- data/app/views/admin/tax_categories/edit.html.erb +10 -0
- data/app/views/admin/tax_categories/index.html.erb +44 -0
- data/app/views/admin/tax_categories/new.html.erb +10 -0
- data/app/views/admin/tax_categories/show.html.erb +1 -0
- data/app/views/admin/tax_rates/_form.html.erb +16 -0
- data/app/views/admin/tax_rates/edit.html.erb +6 -0
- data/app/views/admin/tax_rates/index.html.erb +34 -0
- data/app/views/admin/tax_rates/new.html.erb +8 -0
- data/app/views/admin/tax_settings/edit.html.erb +17 -0
- data/app/views/admin/tax_settings/show.html.erb +14 -0
- data/app/views/admin/taxonomies/_form.html.erb +10 -0
- data/app/views/admin/taxonomies/_form.html.erb~ +11 -0
- data/app/views/admin/taxonomies/_js_head.html.erb +9 -0
- data/app/views/admin/taxonomies/_list.html.erb +19 -0
- data/app/views/admin/taxonomies/_list.html.erb~ +20 -0
- data/app/views/admin/taxonomies/_taxon.html.erb +12 -0
- data/app/views/admin/taxonomies/edit.erb +49 -0
- data/app/views/admin/taxonomies/get_children.json.erb +9 -0
- data/app/views/admin/taxonomies/index.html.erb +16 -0
- data/app/views/admin/taxonomies/new.html.erb +12 -0
- data/app/views/admin/taxons/_form.html.erb +23 -0
- data/app/views/admin/taxons/_taxon_table.html.erb +23 -0
- data/app/views/admin/taxons/available.js.erb +33 -0
- data/app/views/admin/taxons/edit.html.erb +11 -0
- data/app/views/admin/taxons/remove.html.erb +1 -0
- data/app/views/admin/taxons/select.js.erb +2 -0
- data/app/views/admin/taxons/selected.html.erb +43 -0
- data/app/views/admin/trackers/_form.html.erb +26 -0
- data/app/views/admin/trackers/edit.html.erb +8 -0
- data/app/views/admin/trackers/index.html.erb +41 -0
- data/app/views/admin/trackers/new.html.erb +9 -0
- data/app/views/admin/users/_form.html.erb +35 -0
- data/app/views/admin/users/edit.html.erb +14 -0
- data/app/views/admin/users/index.html.erb +63 -0
- data/app/views/admin/users/new.html.erb +14 -0
- data/app/views/admin/users/show.html.erb +21 -0
- data/app/views/admin/variants/_form.html.erb +40 -0
- data/app/views/admin/variants/edit.html.erb +13 -0
- data/app/views/admin/variants/index.html.erb +66 -0
- data/app/views/admin/variants/new.erb +11 -0
- data/app/views/admin/zones/_country_member.html.erb +5 -0
- data/app/views/admin/zones/_form.html.erb +29 -0
- data/app/views/admin/zones/_member_type.html.erb +15 -0
- data/app/views/admin/zones/_state_member.html.erb +5 -0
- data/app/views/admin/zones/_zone_member.html.erb +5 -0
- data/app/views/admin/zones/edit.html.erb +10 -0
- data/app/views/admin/zones/index.html.erb +41 -0
- data/app/views/admin/zones/new.html.erb +10 -0
- data/app/views/checkout/_address.html.erb +163 -0
- data/app/views/checkout/_confirm.html.erb +11 -0
- data/app/views/checkout/_delivery.html.erb +25 -0
- data/app/views/checkout/_payment.html.erb +30 -0
- data/app/views/checkout/_summary.html.erb +21 -0
- data/app/views/checkout/edit.html.erb +20 -0
- data/app/views/checkout/payment/_check.html.erb +0 -0
- data/app/views/checkout/payment/_gateway.html.erb +31 -0
- data/app/views/checkout/registration.html.erb +20 -0
- data/app/views/content/cvv.html.erb +13 -0
- data/app/views/layouts/admin.html.erb +75 -0
- data/app/views/layouts/spree_application.html.erb +52 -0
- data/app/views/order_mailer/cancel_email.text.erb +16 -0
- data/app/views/order_mailer/confirm_email.text.erb +19 -0
- data/app/views/orders/_form.html.erb +19 -0
- data/app/views/orders/_line_item.html.erb +41 -0
- data/app/views/orders/edit.html.erb +41 -0
- data/app/views/orders/new.html.erb +9 -0
- data/app/views/orders/show.html.erb +14 -0
- data/app/views/products/_cart_form.html.erb +54 -0
- data/app/views/products/_cart_form.html.erb~ +54 -0
- data/app/views/products/_image.html.erb +5 -0
- data/app/views/products/_image.html.erb~ +5 -0
- data/app/views/products/_properties.html.erb +8 -0
- data/app/views/products/_taxons.html.erb +16 -0
- data/app/views/products/_thumbnails.html.erb +40 -0
- data/app/views/products/index.html.erb +37 -0
- data/app/views/products/show.html.erb +31 -0
- data/app/views/shared/_additional_field.html.erb +7 -0
- data/app/views/shared/_admin_head.html.erb +34 -0
- data/app/views/shared/_basic_layout.html.erb +44 -0
- data/app/views/shared/_edit_resource_links.html.erb +1 -0
- data/app/views/shared/_end_soon.html.erb +43 -0
- data/app/views/shared/_error_messages.html.erb +11 -0
- data/app/views/shared/_filters.html.erb +27 -0
- data/app/views/shared/_footer.html.erb +13 -0
- data/app/views/shared/_google_analytics.html.erb +40 -0
- data/app/views/shared/_head.html.erb +10 -0
- data/app/views/shared/_method_error_message.html.erb +4 -0
- data/app/views/shared/_nav_bar.html.erb +5 -0
- data/app/views/shared/_new_release.html.erb +42 -0
- data/app/views/shared/_new_resource_links.html.erb +1 -0
- data/app/views/shared/_order_details.html.erb +50 -0
- data/app/views/shared/_products.html.erb +42 -0
- data/app/views/shared/_search.html.erb +9 -0
- data/app/views/shared/_show_resource_links.html.erb +3 -0
- data/app/views/shared/_store_menu.html.erb +3 -0
- data/app/views/shared/_taxonomies.html.erb +19 -0
- data/app/views/shared/_test_hook.html.erb +1 -0
- data/app/views/shared/_upcoming_products.html.erb +42 -0
- data/app/views/shipment_mailer/shipped_email.text.erb +15 -0
- data/app/views/states/index.js.erb +1 -0
- data/app/views/taxons/_taxon.html.erb +4 -0
- data/app/views/taxons/show.html.erb +19 -0
- data/config/cucumber.yml +10 -0
- data/config/initializers/form_builder.rb +19 -0
- data/config/initializers/load_unobtrusive_date_picker.rb +8 -0
- data/config/initializers/spree.rb +29 -0
- data/config/initializers/workarounds_for_ruby19.rb +72 -0
- data/config/locales/en.yml +1015 -0
- data/config/routes.rb +207 -0
- data/db/default/countries.yml +1583 -0
- data/db/default/roles.yml +7 -0
- data/db/default/states.yml +256 -0
- data/db/default/zone_members.yml +169 -0
- data/db/default/zones.yml +13 -0
- data/db/migrate/20090823005402_spree_zero_nine_zero.rb +442 -0
- data/db/migrate/20090904192342_create_indexes_for_inventory_units.rb +12 -0
- data/db/migrate/20090923100315_add_count_on_hand_to_variants_and_products.rb +36 -0
- data/db/migrate/20091007134354_change_taxons_to_nested_set.rb +40 -0
- data/db/migrate/20091008091614_move_to_configurable_gateways.rb +55 -0
- data/db/migrate/20091012120519_product_groups_and_scopes.rb +25 -0
- data/db/migrate/20091015110842_add_open_id_authentication_tables.rb +20 -0
- data/db/migrate/20091015153048_add_openid_field_to_users.rb +19 -0
- data/db/migrate/20091016174634_change_preference_value_type.rb +10 -0
- data/db/migrate/20091017175558_create_billing_integrations.rb +16 -0
- data/db/migrate/20091021133257_charge_refactoring.rb +35 -0
- data/db/migrate/20091104151730_add_some_indexes.rb +21 -0
- data/db/migrate/20091126190904_checkout_state_machine.rb +13 -0
- data/db/migrate/20091209153045_state_for_shipments.rb +9 -0
- data/db/migrate/20091209202200_make_state_events_polymorphic.rb +12 -0
- data/db/migrate/20091211203813_ship_address_id_for_checkouts.rb +9 -0
- data/db/migrate/20091212161118_shipping_method_id_for_checkouts.rb +9 -0
- data/db/migrate/20091213222815_creditcard_last_four_digits.rb +19 -0
- data/db/migrate/20091214183826_populate_legacy_shipment_state.rb +19 -0
- data/db/migrate/20100105090147_add_cost_price.rb +9 -0
- data/db/migrate/20100105132138_shipment_id_for_inventory_units.rb +21 -0
- data/db/migrate/20100111205525_cim_fields_for_creditcards.rb +11 -0
- data/db/migrate/20100112151511_create_return_authorizations.rb +16 -0
- data/db/migrate/20100113090919_add_return_authorization_to_inventory_units.rb +9 -0
- data/db/migrate/20100113203104_create_trackers.rb +14 -0
- data/db/migrate/20100121160010_creditcard_id_for_creditcard_txns.rb +9 -0
- data/db/migrate/20100121183934_original_creditcard_txn_id_for_creditcard_txns.rb +9 -0
- data/db/migrate/20100125145351_add_test_mode_to_billing_integration.rb +11 -0
- data/db/migrate/20100126103714_create_products_product_groups.rb +12 -0
- data/db/migrate/20100209025806_create_payment_methods.rb +20 -0
- data/db/migrate/20100209144531_polymorphic_payments.rb +29 -0
- data/db/migrate/20100213103131_change_payments_payment_method_to_belongs_to.rb +11 -0
- data/db/migrate/20100214212536_assign_creditcard_txns_to_payment.rb +16 -0
- data/db/migrate/20100223170312_sti_for_transactions.rb +14 -0
- data/db/migrate/20100223183812_drop_billing_integrations.rb +16 -0
- data/db/migrate/20100224153127_deleted_at_for_payment_methods.rb +13 -0
- data/db/migrate/20100301163454_add_adjustments_index.rb +10 -0
- data/db/migrate/20100306153445_fix_by_popularity.rb +8 -0
- data/db/migrate/20100317120946_add_alt_text_to_images.rb +9 -0
- data/db/migrate/20100427121301_add_display_to_payment_methods.rb +9 -0
- data/db/migrate/20100504142133_add_addresses_checkouts_indexes.rb +16 -0
- data/db/migrate/20100506180619_add_icon_to_taxons.rb +18 -0
- data/db/migrate/20100506185838_add_description_to_taxons.rb +11 -0
- data/db/migrate/20100528155333_index_for_shipments_number.rb +9 -0
- data/db/migrate/20100528185820_add_index_on_users_persistence_token.rb +9 -0
- data/db/migrate/20100605152042_add_default_to_tax_categories.rb +9 -0
- data/db/migrate/20100624110730_add_display_to_shipping_methods.rb +9 -0
- data/db/migrate/20100624123336_rename_payment_method_display.rb +9 -0
- data/db/migrate/20100624175547_rename_preferences_field.rb +8 -0
- data/db/migrate/20100811163637_add_guest_flag.rb +13 -0
- data/db/migrate/20100811205836_drop_order_token.rb +11 -0
- data/db/migrate/20100812162326_payments_state_and_assigned_to_order_only.rb +11 -0
- data/db/migrate/20100813023502_create_address_keys_for_order.rb +15 -0
- data/db/migrate/20100813185745_payment_total_for_orders.rb +9 -0
- data/db/migrate/20100816212146_shipping_method_id_for_orders.rb +9 -0
- data/db/migrate/20100817152723_add_shipment_and_payment_state.rb +15 -0
- data/db/migrate/20100819170125_refactor_adjustments.rb +19 -0
- data/db/migrate/20100820135707_response_code_and_avs_response_for_payments.rb +11 -0
- data/db/migrate/20100901171814_change_guest_flag_to_anonymous.rb +13 -0
- data/db/migrate/20100903203949_email_for_orders.rb +9 -0
- data/db/migrate/20100923162011_create_mail_methods.rb +12 -0
- data/db/migrate/20100929151905_rename_frozen_to_locked.rb +8 -0
- data/db/migrate/20101008190536_move_special_instructions_to_orders.rb +11 -0
- data/db/migrate/20101026184700_create_log_entries.rb +15 -0
- data/db/migrate/20101026184714_migrate_transactions_to_payment_state.rb +94 -0
- data/db/migrate/20101026184746_delete_in_progress_orders.rb +18 -0
- data/db/migrate/20101026184808_migrate_checkout_to_orders.rb +27 -0
- data/db/migrate/20101026184833_migrate_adjustments.rb +9 -0
- data/db/migrate/20101026184855_remove_shipped_state.rb +14 -0
- data/db/migrate/20101026184916_prevent_nil_payment_total.rb +8 -0
- data/db/migrate/20101026184932_prevent_nil_email.rb +9 -0
- data/db/migrate/20101026184959_generate_anonymous_users.rb +14 -0
- data/db/migrate/20101026185022_update_order_state.rb +8 -0
- data/db/migrate/20101026192225_cleanup_legacy_tables.rb +11 -0
- data/db/migrate/20101028151745_remove_number_and_cvv_from_credicard.rb +9 -0
- data/db/migrate/20101103212716_drop_anonymous_field_for_user.rb +8 -0
- data/db/migrate/20101111133551_renamed_rma_cancelled_state.rb +10 -0
- data/db/migrate/20101117031806_fix_problematic_index_names.rb +13 -0
- data/db/migrate/20101223215658_add_position_to_variants.rb +9 -0
- data/db/migrate/20110110130847_add_next_state_to_state_events.rb +9 -0
- data/db/migrate/20110111122537_add_position_to_option_types.rb +9 -0
- data/db/migrate/20110314192118_remove_trailing_slashes_in_taxon_permalinks.rb +17 -0
- data/db/sample/users.rb +61 -0
- data/db/seeds.rb +3 -0
- data/lib/custom_fixtures.rb +7 -0
- data/lib/generators/spree_core/upgrade_generator.rb +23 -0
- data/lib/generators/templates/config/initializers/%file_name%.rb.tt +1 -0
- data/lib/generators/templates/config/locales/%current_locale%.yml.tt +2 -0
- data/lib/generators/templates/config/routes.rb +3 -0
- data/lib/middleware/seo_assist.rb +44 -0
- data/lib/product_filters.rb +179 -0
- data/lib/redirect_legacy_product_url.rb +13 -0
- data/lib/scopes/dynamic.rb +31 -0
- data/lib/scopes/product.rb +266 -0
- data/lib/scopes/variant.rb +18 -0
- data/lib/scopes.rb +69 -0
- data/lib/spree/calculated_adjustments.rb +69 -0
- data/lib/spree/config.rb +33 -0
- data/lib/spree/current_order.rb +30 -0
- data/lib/spree/file_utilz.rb +73 -0
- data/lib/spree/gateway_error.rb +3 -0
- data/lib/spree/mail_interceptor.rb +23 -0
- data/lib/spree/mail_settings.rb +33 -0
- data/lib/spree/preference_access.rb +27 -0
- data/lib/spree/search/base.rb +64 -0
- data/lib/spree_base.rb +116 -0
- data/lib/spree_core/action_callbacks.rb +26 -0
- data/lib/spree_core/authorize_net_cim_hack.rb +871 -0
- data/lib/spree_core/delegate_belongs_to.rb +89 -0
- data/lib/spree_core/enumerable_constants.rb +209 -0
- data/lib/spree_core/ext/active_record.rb +15 -0
- data/lib/spree_core/ext/array.rb +14 -0
- data/lib/spree_core/ext/hash.rb +75 -0
- data/lib/spree_core/ext/string.rb +10 -0
- data/lib/spree_core/preferences/model_hooks.rb +293 -0
- data/lib/spree_core/preferences/preference_definition.rb +53 -0
- data/lib/spree_core/railtie.rb +63 -0
- data/lib/spree_core/spree_custom_responder.rb +29 -0
- data/lib/spree_core/spree_respond_with.rb +57 -0
- data/lib/spree_core/ssl_requirement.rb +104 -0
- data/lib/spree_core/testing_support/factories/address_factory.rb +20 -0
- data/lib/spree_core/testing_support/factories/adjustment_factory.rb +6 -0
- data/lib/spree_core/testing_support/factories/calculator_factory.rb +5 -0
- data/lib/spree_core/testing_support/factories/configuraion_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/country_factory.rb +7 -0
- data/lib/spree_core/testing_support/factories/creditcard_factory.rb +11 -0
- data/lib/spree_core/testing_support/factories/inventory_unit_factory.rb +7 -0
- data/lib/spree_core/testing_support/factories/line_item_factory.rb +8 -0
- data/lib/spree_core/testing_support/factories/mail_method_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/options_factory.rb +10 -0
- data/lib/spree_core/testing_support/factories/order_factory.rb +18 -0
- data/lib/spree_core/testing_support/factories/payment_factory.rb +26 -0
- data/lib/spree_core/testing_support/factories/payment_method_factory.rb +17 -0
- data/lib/spree_core/testing_support/factories/product_factory.rb +16 -0
- data/lib/spree_core/testing_support/factories/product_group_factory.rb +3 -0
- data/lib/spree_core/testing_support/factories/product_option_type_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/product_property_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/product_scope_factory.rb +6 -0
- data/lib/spree_core/testing_support/factories/property_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/prototype_factory.rb +4 -0
- data/lib/spree_core/testing_support/factories/return_authorization_factory.rb +8 -0
- data/lib/spree_core/testing_support/factories/role_factory.rb +9 -0
- data/lib/spree_core/testing_support/factories/shipment_factory.rb +9 -0
- data/lib/spree_core/testing_support/factories/shipping_category_factory.rb +5 -0
- data/lib/spree_core/testing_support/factories/shipping_method_factory.rb +11 -0
- data/lib/spree_core/testing_support/factories/state_factory.rb +11 -0
- data/lib/spree_core/testing_support/factories/tax_category_factory.rb +8 -0
- data/lib/spree_core/testing_support/factories/tax_rate_factory.rb +5 -0
- data/lib/spree_core/testing_support/factories/taxon_factory.rb +5 -0
- data/lib/spree_core/testing_support/factories/taxonomy_factory.rb +3 -0
- data/lib/spree_core/testing_support/factories/tracker_factory.rb +5 -0
- data/lib/spree_core/testing_support/factories/user_factory.rb +15 -0
- data/lib/spree_core/testing_support/factories/variant_factory.rb +14 -0
- data/lib/spree_core/testing_support/factories/zone_factory.rb +18 -0
- data/lib/spree_core/testing_support/factories.rb +13 -0
- data/lib/spree_core/theme_support/hook.rb +51 -0
- data/lib/spree_core/theme_support/hook_listener.rb +68 -0
- data/lib/spree_core/theme_support/hook_modifier.rb +35 -0
- data/lib/spree_core/theme_support/more_patches.rb +118 -0
- data/lib/spree_core/theme_support.rb +4 -0
- data/lib/spree_core/version.rb +5 -0
- data/lib/spree_core.rb +94 -0
- data/lib/store_helpers.rb +10 -0
- data/lib/tasks/common.rb +30 -0
- data/lib/tasks/core.rake +105 -0
- data/lib/tasks/install.rake +26 -0
- data/lib/tasks/rake_util.rb +19 -0
- data/lib/tasks/taxon.rake +14 -0
- data/lib/tasks/themes.rake +34 -0
- data/public/images/add-to-cart.png +0 -0
- data/public/images/admin/bg/active-tab.png +0 -0
- data/public/images/admin/bg/admin_tab_back.png +0 -0
- data/public/images/admin/bg/admin_tab_selected_back.png +0 -0
- data/public/images/admin/bg/content-back-blue.png +0 -0
- data/public/images/admin/bg/content-back-green.png +0 -0
- data/public/images/admin/bg/content-back.png +0 -0
- data/public/images/admin/bg/flash-error.png +0 -0
- data/public/images/admin/bg/flash-notice.png +0 -0
- data/public/images/admin/bg/green-stripes.gif +0 -0
- data/public/images/admin/bg/green-stripes.png +0 -0
- data/public/images/admin/bg/grid_header_back.png +0 -0
- data/public/images/admin/bg/grid_header_back_green.png +0 -0
- data/public/images/admin/bg/header-bg.png +0 -0
- data/public/images/admin/bg/header.png +0 -0
- data/public/images/admin/bg/header_bg.jpg +0 -0
- data/public/images/admin/bg/menu-current.png +0 -0
- data/public/images/admin/bg/red-stripes.gif +0 -0
- data/public/images/admin/bg/red-stripes.png +0 -0
- data/public/images/admin/bg/spree_50.png +0 -0
- data/public/images/admin/bg/subnav-divider.png +0 -0
- data/public/images/admin/bg/subnav.png +0 -0
- data/public/images/admin/bg/tab-back.png +0 -0
- data/public/images/admin/buttons/blue/left_01.png +0 -0
- data/public/images/admin/buttons/blue/right_01.png +0 -0
- data/public/images/admin/buttons/drag-handle-green.png +0 -0
- data/public/images/admin/buttons/green/left_01.png +0 -0
- data/public/images/admin/buttons/green/right_01.png +0 -0
- data/public/images/admin/buttons/left_01.png +0 -0
- data/public/images/admin/buttons/left_01_small.png +0 -0
- data/public/images/admin/buttons/orange/left_03.png +0 -0
- data/public/images/admin/buttons/orange/right_03.png +0 -0
- data/public/images/admin/buttons/right_01.png +0 -0
- data/public/images/admin/buttons/right_01_small.png +0 -0
- data/public/images/admin/icons/16x16/1.png +0 -0
- data/public/images/admin/icons/16x16/10.png +0 -0
- data/public/images/admin/icons/16x16/2.png +0 -0
- data/public/images/admin/icons/16x16/3.png +0 -0
- data/public/images/admin/icons/16x16/4.png +0 -0
- data/public/images/admin/icons/16x16/5.png +0 -0
- data/public/images/admin/icons/16x16/6.png +0 -0
- data/public/images/admin/icons/16x16/7.png +0 -0
- data/public/images/admin/icons/16x16/8.png +0 -0
- data/public/images/admin/icons/16x16/9.png +0 -0
- data/public/images/admin/icons/32x32/1.png +0 -0
- data/public/images/admin/icons/32x32/10.png +0 -0
- data/public/images/admin/icons/32x32/11.png +0 -0
- data/public/images/admin/icons/32x32/2.png +0 -0
- data/public/images/admin/icons/32x32/3.png +0 -0
- data/public/images/admin/icons/32x32/4.png +0 -0
- data/public/images/admin/icons/32x32/5.png +0 -0
- data/public/images/admin/icons/32x32/6.png +0 -0
- data/public/images/admin/icons/32x32/7.png +0 -0
- data/public/images/admin/icons/32x32/8.png +0 -0
- data/public/images/admin/icons/32x32/9.png +0 -0
- data/public/images/admin/icons/accept.png +0 -0
- data/public/images/admin/icons/add.gif +0 -0
- data/public/images/admin/icons/add.png +0 -0
- data/public/images/admin/icons/arrow-down.gif +0 -0
- data/public/images/admin/icons/cross.png +0 -0
- data/public/images/admin/icons/delete.gif +0 -0
- data/public/images/admin/icons/delete.png +0 -0
- data/public/images/admin/icons/drag.gif +0 -0
- data/public/images/admin/icons/edit.gif +0 -0
- data/public/images/admin/icons/edit.png +0 -0
- data/public/images/admin/icons/email.png +0 -0
- data/public/images/admin/icons/error.png +0 -0
- data/public/images/admin/icons/exclamation.png +0 -0
- data/public/images/admin/icons/feed.png +0 -0
- data/public/images/admin/icons/pdf.png +0 -0
- data/public/images/admin/icons/reorder.gif +0 -0
- data/public/images/admin/icons/search.gif +0 -0
- data/public/images/admin/icons/send-email.png +0 -0
- data/public/images/admin/icons/stop.png +0 -0
- data/public/images/admin/icons/tick.png +0 -0
- data/public/images/admin/icons/up.gif +0 -0
- data/public/images/admin/icons/xls.png +0 -0
- data/public/images/admin/tabs/off-left.png +0 -0
- data/public/images/admin/tabs/off-right.png +0 -0
- data/public/images/admin/tabs/on-left.png +0 -0
- data/public/images/admin/tabs/on-right.png +0 -0
- data/public/images/ajax_loader.gif +0 -0
- data/public/images/amex_cid.gif +0 -0
- data/public/images/bg-button-hover.png +0 -0
- data/public/images/bg-button-pressed.png +0 -0
- data/public/images/bg-button.gif +0 -0
- data/public/images/bg-button.png +0 -0
- data/public/images/blue/left_01.png +0 -0
- data/public/images/blue/right_01.png +0 -0
- data/public/images/body-back.png +0 -0
- data/public/images/bottom_shine.png +0 -0
- data/public/images/breadcrumb.gif +0 -0
- data/public/images/button-dark-hover.png +0 -0
- data/public/images/button-dark.png +0 -0
- data/public/images/buttons/bg-button-hover.png +0 -0
- data/public/images/buttons/bg-button-pressed.png +0 -0
- data/public/images/buttons/bg-button.gif +0 -0
- data/public/images/buttons/bg-button.png +0 -0
- data/public/images/buttons/blue/left_01.png +0 -0
- data/public/images/buttons/blue/right_01.png +0 -0
- data/public/images/buttons/button-dark-hover.png +0 -0
- data/public/images/buttons/button-dark.png +0 -0
- data/public/images/buttons/drag-handle-green.png +0 -0
- data/public/images/buttons/green/left_01.png +0 -0
- data/public/images/buttons/green/right_01.png +0 -0
- data/public/images/buttons/left_01.png +0 -0
- data/public/images/buttons/left_01_small.png +0 -0
- data/public/images/buttons/orange/left_03.png +0 -0
- data/public/images/buttons/orange/right_03.png +0 -0
- data/public/images/buttons/right_01.png +0 -0
- data/public/images/buttons/right_01_small.png +0 -0
- data/public/images/buttons/sxsw-ribbon-v1.png +0 -0
- data/public/images/buttons/top-shine.png +0 -0
- data/public/images/calendar_date_select/calendar.gif +0 -0
- data/public/images/cart-empty.png +0 -0
- data/public/images/cart-empty_x32.png +0 -0
- data/public/images/cart-full.png +0 -0
- data/public/images/cart-full_x32.png +0 -0
- data/public/images/checkout.png +0 -0
- data/public/images/creditcard.gif +0 -0
- data/public/images/datepicker/backstripes.gif +0 -0
- data/public/images/datepicker/bg_header.jpg +0 -0
- data/public/images/datepicker/bullet1.gif +0 -0
- data/public/images/datepicker/bullet2.gif +0 -0
- data/public/images/datepicker/cal.gif +0 -0
- data/public/images/datepicker/gradient-e5e5e5-ffffff.gif +0 -0
- data/public/images/discover_cid.gif +0 -0
- data/public/images/drag-handle-green.png +0 -0
- data/public/images/favicon.ico +0 -0
- data/public/images/green/left_01.png +0 -0
- data/public/images/green/right_01.png +0 -0
- data/public/images/grid.png +0 -0
- data/public/images/left_01.png +0 -0
- data/public/images/left_01_small.png +0 -0
- data/public/images/master_cid.jpg +0 -0
- data/public/images/menu-current.png +0 -0
- data/public/images/menu-hover.png +0 -0
- data/public/images/noimage/mini.jpg +0 -0
- data/public/images/noimage/product.jpg +0 -0
- data/public/images/noimage/small.jpg +0 -0
- data/public/images/openid-inputicon.gif +0 -0
- data/public/images/orange/left_03.png +0 -0
- data/public/images/orange/right_03.png +0 -0
- data/public/images/progress.gif +0 -0
- data/public/images/reorder.jpg +0 -0
- data/public/images/right_01.png +0 -0
- data/public/images/right_01_small.png +0 -0
- data/public/images/separator.png +0 -0
- data/public/images/shadow-top.png +0 -0
- data/public/images/shadow_top.png +0 -0
- data/public/images/spinner.gif +0 -0
- data/public/images/spree/progress.gif +0 -0
- data/public/images/spree/spinner.gif +0 -0
- data/public/images/spree/spree.jpg +0 -0
- data/public/images/spree.jpg +0 -0
- data/public/images/step-progress/completed-completed.gif +0 -0
- data/public/images/step-progress/completed-current.gif +0 -0
- data/public/images/step-progress/completed-first.gif +0 -0
- data/public/images/step-progress/current-first.gif +0 -0
- data/public/images/step-progress/current-incomplete.gif +0 -0
- data/public/images/step-progress/current-right.gif +0 -0
- data/public/images/step-progress/incomplete-incomplete.gif +0 -0
- data/public/images/step-progress/incomplete-right.gif +0 -0
- data/public/images/steps/1.png +0 -0
- data/public/images/steps/1_small.png +0 -0
- data/public/images/steps/2.png +0 -0
- data/public/images/steps/2_small.png +0 -0
- data/public/images/steps/3.png +0 -0
- data/public/images/steps/3_small.png +0 -0
- data/public/images/steps/4.png +0 -0
- data/public/images/steps/4_small.png +0 -0
- data/public/images/steps/5.png +0 -0
- data/public/images/steps/5_small.png +0 -0
- data/public/images/steps/6.png +0 -0
- data/public/images/steps/6_small.png +0 -0
- data/public/images/sxsw-ribbon-v1.png +0 -0
- data/public/images/tab_bottom.gif +0 -0
- data/public/images/tile-header.png +0 -0
- data/public/images/tile-slider.png +0 -0
- data/public/images/top-shine.png +0 -0
- data/public/images/tree-nav-icons/bullet.gif +0 -0
- data/public/images/tree-nav-icons/minus.gif +0 -0
- data/public/images/tree-nav-icons/plus.gif +0 -0
- data/public/images/tree-nav-icons/treeview-loading.gif +0 -0
- data/public/images/tree-nav-icons/treeview-sprite.gif +0 -0
- data/public/images/update.png +0 -0
- data/public/images/visa_cid.gif +0 -0
- data/public/images/wrapper-back-2.png +0 -0
- data/public/images/wrapper-back.png +0 -0
- data/public/images/yui-menubaritem_submenuindicator.png +0 -0
- data/public/images/yui-menubaritem_submenuindicator_disabled.png +0 -0
- data/public/images/yui-menuitem_checkbox.png +0 -0
- data/public/images/yui-menuitem_checkbox_disabled.png +0 -0
- data/public/images/yui-menuitem_submenuindicator.png +0 -0
- data/public/images/yui-menuitem_submenuindicator_disabled.png +0 -0
- data/public/images/yui-sprite.png +0 -0
- data/public/javascripts/additional-methods.js +236 -0
- data/public/javascripts/admin/address_states.js +25 -0
- data/public/javascripts/admin/checkouts/edit.js +130 -0
- data/public/javascripts/admin/orders/edit.js +23 -0
- data/public/javascripts/admin/orders/edit_form.js +16 -0
- data/public/javascripts/admin/payments/new.js +9 -0
- data/public/javascripts/admin/unobtrusive_handlers.js +43 -0
- data/public/javascripts/admin.js +232 -0
- data/public/javascripts/application.js +12 -0
- data/public/javascripts/calculator.js +15 -0
- data/public/javascripts/checkout.js +75 -0
- data/public/javascripts/datepicker.js +1445 -0
- data/public/javascripts/gateway.js +13 -0
- data/public/javascripts/jquery-1.4.2.min.js +154 -0
- data/public/javascripts/jquery-ui.js +188 -0
- data/public/javascripts/jquery.alerts/images/help.gif +0 -0
- data/public/javascripts/jquery.alerts/images/important.gif +0 -0
- data/public/javascripts/jquery.alerts/images/info.gif +0 -0
- data/public/javascripts/jquery.alerts/images/title.gif +0 -0
- data/public/javascripts/jquery.alerts/jquery.alerts.css +57 -0
- data/public/javascripts/jquery.alerts/jquery.alerts.js +235 -0
- data/public/javascripts/jquery.alerts/jquery.alerts.spree.css +30 -0
- data/public/javascripts/jquery.autocomplete.min.js +13 -0
- data/public/javascripts/jquery.cookie.js +96 -0
- data/public/javascripts/jquery.delayedobserver.js +35 -0
- data/public/javascripts/jquery.suggest.js +276 -0
- data/public/javascripts/jquery.template.js +255 -0
- data/public/javascripts/jquery.tokeninput.js +618 -0
- data/public/javascripts/jquery.validate.min.js +16 -0
- data/public/javascripts/jsTree/jquery.jstree.js +3510 -0
- data/public/javascripts/jsTree/themes/apple/bg.jpg +0 -0
- data/public/javascripts/jsTree/themes/apple/d.png +0 -0
- data/public/javascripts/jsTree/themes/apple/dot_for_ie.gif +0 -0
- data/public/javascripts/jsTree/themes/apple/style.css +60 -0
- data/public/javascripts/jsTree/themes/apple/throbber.gif +0 -0
- data/public/javascripts/lang/af.js +40 -0
- data/public/javascripts/lang/ar.js +50 -0
- data/public/javascripts/lang/de.js +40 -0
- data/public/javascripts/lang/du.js +40 -0
- data/public/javascripts/lang/en.js +42 -0
- data/public/javascripts/lang/es.js +41 -0
- data/public/javascripts/lang/fi.js +40 -0
- data/public/javascripts/lang/fr.js +44 -0
- data/public/javascripts/lang/gr.js +40 -0
- data/public/javascripts/lang/he.js +49 -0
- data/public/javascripts/lang/it.js +13 -0
- data/public/javascripts/lang/nl.js +40 -0
- data/public/javascripts/lang/no.js +40 -0
- data/public/javascripts/lang/pt.js +50 -0
- data/public/javascripts/lang/ro.js +40 -0
- data/public/javascripts/lang/ru.js +40 -0
- data/public/javascripts/lang/sp.js +40 -0
- data/public/javascripts/lang/sv.js +41 -0
- data/public/javascripts/lang/ua.js +40 -0
- data/public/javascripts/localization/messages_cn.js +24 -0
- data/public/javascripts/localization/messages_cs.js +23 -0
- data/public/javascripts/localization/messages_da.js +21 -0
- data/public/javascripts/localization/messages_de.js +21 -0
- data/public/javascripts/localization/messages_es.js +24 -0
- data/public/javascripts/localization/messages_fr.js +23 -0
- data/public/javascripts/localization/messages_hu.js +21 -0
- data/public/javascripts/localization/messages_it.js +26 -0
- data/public/javascripts/localization/messages_kk.js +23 -0
- data/public/javascripts/localization/messages_nl.js +23 -0
- data/public/javascripts/localization/messages_no.js +23 -0
- data/public/javascripts/localization/messages_pl.js +23 -0
- data/public/javascripts/localization/messages_ptbr.js +30 -0
- data/public/javascripts/localization/messages_ro.js +24 -0
- data/public/javascripts/localization/messages_ru.js +23 -0
- data/public/javascripts/localization/messages_se.js +23 -0
- data/public/javascripts/localization/messages_sk.js +21 -0
- data/public/javascripts/localization/messages_tr.js +24 -0
- data/public/javascripts/localization/messages_tw.js +24 -0
- data/public/javascripts/localization/messages_ua.js +24 -0
- data/public/javascripts/nested-attribute.js +26 -0
- data/public/javascripts/open_id.js +15 -0
- data/public/javascripts/product.js +49 -0
- data/public/javascripts/rails.js +127 -0
- data/public/javascripts/taxonomy.js +201 -0
- data/public/javascripts/zone.js +39 -0
- data/public/stylesheets/admin/admin-forms.css +154 -0
- data/public/stylesheets/admin/admin-reset.css +69 -0
- data/public/stylesheets/admin/admin-tables.css +39 -0
- data/public/stylesheets/admin/admin-typography.css +117 -0
- data/public/stylesheets/admin/admin.css +614 -0
- data/public/stylesheets/admin/autocomplete.css +73 -0
- data/public/stylesheets/admin/dashboard.css +143 -0
- data/public/stylesheets/admin/edit_checkouts.css +57 -0
- data/public/stylesheets/admin/grids.css +314 -0
- data/public/stylesheets/admin/reset-fonts-grids-2-6-0.css +7 -0
- data/public/stylesheets/admin/token-input.css +109 -0
- data/public/stylesheets/admin/yui-includes.css +14 -0
- data/public/stylesheets/datepicker.css +263 -0
- data/public/stylesheets/jquery.autocomplete.css +48 -0
- data/public/stylesheets/screen.css +916 -0
- metadata +1071 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Most of this code is from the preferences plugin available at
|
|
2
|
+
# http://github.com/pluginaweek/preferences/tree/master
|
|
3
|
+
|
|
4
|
+
module Spree
|
|
5
|
+
module Preferences
|
|
6
|
+
# Adds support for defining preferences on ActiveRecord models.
|
|
7
|
+
#
|
|
8
|
+
# == Saving preferences
|
|
9
|
+
#
|
|
10
|
+
# Preferences are not automatically saved when they are set. You must save
|
|
11
|
+
# the record that the preferences were set on.
|
|
12
|
+
#
|
|
13
|
+
# For example,
|
|
14
|
+
#
|
|
15
|
+
# class User < ActiveRecord::Base
|
|
16
|
+
# preference :notifications
|
|
17
|
+
# end
|
|
18
|
+
#
|
|
19
|
+
# u = User.new(:login => 'admin', :prefers_notifications => false)
|
|
20
|
+
# u.save!
|
|
21
|
+
#
|
|
22
|
+
# u = User.find_by_login('admin')
|
|
23
|
+
# u.attributes = {:prefers_notifications => true}
|
|
24
|
+
# u.save!
|
|
25
|
+
module ModelHooks
|
|
26
|
+
def self.included(base) #:nodoc:
|
|
27
|
+
base.class_eval do
|
|
28
|
+
extend Spree::Preferences::ModelHooks::MacroMethods
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
module MacroMethods
|
|
33
|
+
# Defines a new preference for all records in the model. By default, preferences
|
|
34
|
+
# are assumed to have a boolean data type, so all values will be typecasted
|
|
35
|
+
# to true/false based on ActiveRecord rules.
|
|
36
|
+
#
|
|
37
|
+
# Configuration options:
|
|
38
|
+
# * +default+ - The default value for the preference. Default is nil.
|
|
39
|
+
#
|
|
40
|
+
# == Examples
|
|
41
|
+
#
|
|
42
|
+
# The example below shows the various ways to define a preference for a
|
|
43
|
+
# particular model.
|
|
44
|
+
#
|
|
45
|
+
# class User < ActiveRecord::Base
|
|
46
|
+
# preference :notifications, :default => false
|
|
47
|
+
# preference :color, :string, :default => 'red'
|
|
48
|
+
# preference :favorite_number, :integer
|
|
49
|
+
# preference :data, :any # Allows any data type to be stored
|
|
50
|
+
# end
|
|
51
|
+
#
|
|
52
|
+
# All preferences are also inherited by subclasses.
|
|
53
|
+
#
|
|
54
|
+
# == Associations
|
|
55
|
+
#
|
|
56
|
+
# After the first preference is defined, the following associations are
|
|
57
|
+
# created for the model:
|
|
58
|
+
# * +stored_preferences+ - A collection of all the custom preferences specified for a record
|
|
59
|
+
#
|
|
60
|
+
# == Generated shortcut methods
|
|
61
|
+
#
|
|
62
|
+
# In addition to calling <tt>prefers?</tt> and +preferred+ on a record, you
|
|
63
|
+
# can also use the shortcut methods that are generated when a preference is
|
|
64
|
+
# defined. For example,
|
|
65
|
+
#
|
|
66
|
+
# class User < ActiveRecord::Base
|
|
67
|
+
# preference :notifications
|
|
68
|
+
# end
|
|
69
|
+
#
|
|
70
|
+
# ...generates the following methods:
|
|
71
|
+
# * <tt>prefers_notifications?</tt> - The same as calling <tt>record.prefers?(:notifications)</tt>
|
|
72
|
+
# * <tt>prefers_notifications=(value)</tt> - The same as calling <tt>record.set_preference(:notifications, value)</tt>
|
|
73
|
+
# * <tt>preferred_notifications</tt> - The same as called <tt>record.preferred(:notifications)</tt>
|
|
74
|
+
# * <tt>preferred_notifications=(value)</tt> - The same as calling <tt>record.set_preference(:notifications, value)</tt>
|
|
75
|
+
#
|
|
76
|
+
# Notice that there are two tenses used depending on the context of the
|
|
77
|
+
# preference. Conventionally, <tt>prefers_notifications?</tt> is better
|
|
78
|
+
# for boolean preferences, while +preferred_color+ is better for non-boolean
|
|
79
|
+
# preferences.
|
|
80
|
+
#
|
|
81
|
+
# Example:
|
|
82
|
+
#
|
|
83
|
+
# user = User.find(:first)
|
|
84
|
+
# user.prefers_notifications? # => false
|
|
85
|
+
# user.prefers_color? # => true
|
|
86
|
+
# user.preferred_color # => 'red'
|
|
87
|
+
# user.preferred_color = 'blue' # => 'blue'
|
|
88
|
+
#
|
|
89
|
+
# user.prefers_notifications = true
|
|
90
|
+
#
|
|
91
|
+
# car = Car.find(:first)
|
|
92
|
+
# user.preferred_color = 'red', car # => 'red'
|
|
93
|
+
# user.preferred_color(car) # => 'red'
|
|
94
|
+
# user.prefers_color?(car) # => true
|
|
95
|
+
#
|
|
96
|
+
# user.save! # => true
|
|
97
|
+
def preference(name, *args)
|
|
98
|
+
unless included_modules.include?(InstanceMethods)
|
|
99
|
+
class_inheritable_hash :preference_definitions
|
|
100
|
+
self.preference_definitions = {}
|
|
101
|
+
|
|
102
|
+
class_inheritable_hash :default_preferences
|
|
103
|
+
self.default_preferences = {}
|
|
104
|
+
|
|
105
|
+
has_many :stored_preferences, :as => :owner, :class_name => 'Preference'
|
|
106
|
+
|
|
107
|
+
after_save :update_preferences
|
|
108
|
+
|
|
109
|
+
include Spree::Preferences::ModelHooks::InstanceMethods
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Create the definition
|
|
113
|
+
name = name.to_s
|
|
114
|
+
definition = PreferenceDefinition.new(name, *args)
|
|
115
|
+
self.preference_definitions[name] = definition
|
|
116
|
+
self.default_preferences[name] = definition.default_value
|
|
117
|
+
|
|
118
|
+
# Create short-hand helper methods, making sure that the attribute
|
|
119
|
+
# is method-safe in terms of what characters are allowed
|
|
120
|
+
name = name.gsub(/[^A-Za-z0-9_-]/, '').underscore
|
|
121
|
+
|
|
122
|
+
# Query lookup
|
|
123
|
+
define_method("prefers_#{name}?") do |*group|
|
|
124
|
+
prefers?(name, group.first)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Writer
|
|
128
|
+
define_method("prefers_#{name}=") do |*args|
|
|
129
|
+
set_preference(*([name] + [args].flatten))
|
|
130
|
+
end
|
|
131
|
+
alias_method "preferred_#{name}=", "prefers_#{name}="
|
|
132
|
+
|
|
133
|
+
# Reader
|
|
134
|
+
define_method("preferred_#{name}") do |*group|
|
|
135
|
+
preferred(name, group.first)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
definition
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
module InstanceMethods
|
|
143
|
+
def self.included(base) #:nodoc:
|
|
144
|
+
base.class_eval do
|
|
145
|
+
alias_method :prefs, :preferences
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Finds all preferences, including defaults, for the current record. If
|
|
150
|
+
# any custom group preferences have been stored, then this will include
|
|
151
|
+
# all default preferences within that particular group.
|
|
152
|
+
#
|
|
153
|
+
# == Examples
|
|
154
|
+
#
|
|
155
|
+
# A user with no stored values:
|
|
156
|
+
# user = User.find(:first)
|
|
157
|
+
# user.preferences
|
|
158
|
+
# => {"language"=>"English", "color"=>nil}
|
|
159
|
+
#
|
|
160
|
+
# A user with stored values for a particular group:
|
|
161
|
+
# user.preferred_color = 'red', 'cars'
|
|
162
|
+
# user.preferences
|
|
163
|
+
# => {"language"=>"English", "color"=>nil, "cars"=>{"language=>"English", "color"=>"red"}}
|
|
164
|
+
#
|
|
165
|
+
# Getting preference values for the owning record:
|
|
166
|
+
# user.preferences(nil)
|
|
167
|
+
# => {"language"=>"English", "color"=>nil}
|
|
168
|
+
#
|
|
169
|
+
# Getting preference values for a particular group:
|
|
170
|
+
# user.preferences('cars')
|
|
171
|
+
# => {"language"=>"English", "color"=>"red"}
|
|
172
|
+
def preferences(*args)
|
|
173
|
+
if args.empty?
|
|
174
|
+
group = nil
|
|
175
|
+
conditions = {}
|
|
176
|
+
else
|
|
177
|
+
group = args.first
|
|
178
|
+
group_id, group_type = Preference.split_group(group)
|
|
179
|
+
conditions = {:group_id => group_id, :group_type => group_type}
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# Find all of the stored preferences
|
|
183
|
+
stored_preferences = self.stored_preferences.where(conditions)
|
|
184
|
+
|
|
185
|
+
# Hashify attribute -> value or group -> attribute -> value
|
|
186
|
+
stored_preferences.inject(self.class.default_preferences.dup) do |all_preferences, preference|
|
|
187
|
+
if !group && (preference_group = preference.group)
|
|
188
|
+
preferences = all_preferences[preference_group] ||= self.class.default_preferences.dup
|
|
189
|
+
else
|
|
190
|
+
preferences = all_preferences
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
preferences[preference.name] = preference.value
|
|
194
|
+
all_preferences
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# Queries whether or not a value has been specified for the given attribute.
|
|
199
|
+
# This is dependent on how the value is type-casted.
|
|
200
|
+
#
|
|
201
|
+
# == Examples
|
|
202
|
+
#
|
|
203
|
+
# user = User.find(:first)
|
|
204
|
+
# user.prefers?(:notifications) # => true
|
|
205
|
+
#
|
|
206
|
+
# user.prefers(:notifications, 'error') # => true
|
|
207
|
+
#
|
|
208
|
+
# newsgroup = Newsgroup.find(:first)
|
|
209
|
+
# user.prefers?(:notifications, newsgroup) # => false
|
|
210
|
+
def prefers?(name, group = nil)
|
|
211
|
+
name = name.to_s
|
|
212
|
+
|
|
213
|
+
value = preferred(name, group)
|
|
214
|
+
preference_definitions[name].query(value)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
# Gets the preferred value for the given attribute.
|
|
218
|
+
#
|
|
219
|
+
# == Examples
|
|
220
|
+
#
|
|
221
|
+
# user = User.find(:first)
|
|
222
|
+
# user.preferred(:color) # => 'red'
|
|
223
|
+
#
|
|
224
|
+
# user.preferred(:color, 'cars') # => 'blue'
|
|
225
|
+
#
|
|
226
|
+
# car = Car.find(:first)
|
|
227
|
+
# user.preferred(:color, car) # => 'black'
|
|
228
|
+
def preferred(name, group = nil)
|
|
229
|
+
name = name.to_s
|
|
230
|
+
|
|
231
|
+
if @preference_values && @preference_values[name] && @preference_values[name].include?(group)
|
|
232
|
+
value = @preference_values[name][group]
|
|
233
|
+
else
|
|
234
|
+
group_id, group_type = Preference.split_group(group)
|
|
235
|
+
preference = stored_preferences.find(:first, :conditions => {:name => name, :group_id => group_id, :group_type => group_type})
|
|
236
|
+
value = preference ? preference.value : preference_definitions[name].default_value
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
value
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
# Sets a new value for the given attribute. The actual Preference record
|
|
243
|
+
# is *not* created until the actual record is saved.
|
|
244
|
+
#
|
|
245
|
+
# == Examples
|
|
246
|
+
#
|
|
247
|
+
# user = User.find(:first)
|
|
248
|
+
# user.set_preference(:notifications, false) # => false
|
|
249
|
+
# user.save!
|
|
250
|
+
#
|
|
251
|
+
# newsgroup = Newsgroup.find(:first)
|
|
252
|
+
# user.set_preference(:notifications, true, newsgroup) # => true
|
|
253
|
+
# user.save!
|
|
254
|
+
def set_preference(name, value, group = nil)
|
|
255
|
+
name = name.to_s
|
|
256
|
+
|
|
257
|
+
@preference_values ||= {}
|
|
258
|
+
@preference_values[name] ||= {}
|
|
259
|
+
@preference_values[name][group] = value
|
|
260
|
+
|
|
261
|
+
value
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
private
|
|
265
|
+
|
|
266
|
+
# Updates any preferences that have been changed/added since the record
|
|
267
|
+
# was last saved
|
|
268
|
+
def update_preferences
|
|
269
|
+
if @preference_values
|
|
270
|
+
@preference_values.each do |name, grouped_records|
|
|
271
|
+
grouped_records.each do |group, value|
|
|
272
|
+
group_id, group_type = Preference.split_group(group)
|
|
273
|
+
attributes = {:name => name, :group_id => group_id, :group_type => group_type}
|
|
274
|
+
|
|
275
|
+
# Find an existing preference or build a new one
|
|
276
|
+
preference = stored_preferences.find(:first, :conditions => attributes)
|
|
277
|
+
if preference.nil?
|
|
278
|
+
attribute = attributes.delete(:attribute)
|
|
279
|
+
preference = stored_preferences.build(attributes)
|
|
280
|
+
preference['attribute'] = attribute
|
|
281
|
+
end
|
|
282
|
+
preference.value = value
|
|
283
|
+
preference.save!
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
@preference_values = nil
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Most of this code is from the preferences plugin available at
|
|
2
|
+
# http://github.com/pluginaweek/preferences/tree/master
|
|
3
|
+
#
|
|
4
|
+
module Spree
|
|
5
|
+
# Adds support for defining preferences on ActiveRecord models.
|
|
6
|
+
module Preferences
|
|
7
|
+
# Represents the definition of a preference for a particular model
|
|
8
|
+
class PreferenceDefinition
|
|
9
|
+
def initialize(name, *args) #:nodoc:
|
|
10
|
+
options = args.extract_options!
|
|
11
|
+
options.assert_valid_keys(:default)
|
|
12
|
+
|
|
13
|
+
@type = args.first ? args.first.to_s : 'boolean'
|
|
14
|
+
|
|
15
|
+
# Create a column that will be responsible for typecasting
|
|
16
|
+
@column = ActiveRecord::ConnectionAdapters::Column.new(name.to_s, options[:default], @type == 'any' ? nil : @type)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# The attribute which is being preferenced
|
|
20
|
+
def name
|
|
21
|
+
@column.name
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# The default value to use for the preference in case none have been
|
|
25
|
+
# previously defined
|
|
26
|
+
def default_value
|
|
27
|
+
@column.default
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Typecasts the value based on the type of preference that was defined
|
|
31
|
+
def type_cast(value)
|
|
32
|
+
if @type == 'any'
|
|
33
|
+
value
|
|
34
|
+
else
|
|
35
|
+
@column.type_cast(value)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Typecasts the value to true/false depending on the type of preference
|
|
40
|
+
def query(value)
|
|
41
|
+
unless value = type_cast(value)
|
|
42
|
+
false
|
|
43
|
+
else
|
|
44
|
+
if @column.number?
|
|
45
|
+
!value.zero?
|
|
46
|
+
else
|
|
47
|
+
!value.blank?
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
module SpreeCore
|
|
2
|
+
class Engine < Rails::Engine
|
|
3
|
+
|
|
4
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
|
5
|
+
# TODO - register state monitor observer?
|
|
6
|
+
|
|
7
|
+
def self.activate
|
|
8
|
+
|
|
9
|
+
Spree::ThemeSupport::HookListener.subclasses.each do |hook_class|
|
|
10
|
+
Spree::ThemeSupport::Hook.add_listener(hook_class)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
#register all payment methods (unless we're in middle of rake task since migrations cannot be run for this first time without this check)
|
|
14
|
+
if File.basename( $0 ) != "rake"
|
|
15
|
+
[
|
|
16
|
+
Gateway::Bogus,
|
|
17
|
+
Gateway::AuthorizeNet,
|
|
18
|
+
Gateway::AuthorizeNetCim,
|
|
19
|
+
Gateway::Eway,
|
|
20
|
+
Gateway::Linkpoint,
|
|
21
|
+
Gateway::PayPal,
|
|
22
|
+
Gateway::SagePay,
|
|
23
|
+
Gateway::Beanstream,
|
|
24
|
+
Gateway::Braintree,
|
|
25
|
+
PaymentMethod::Check
|
|
26
|
+
].each{|gw|
|
|
27
|
+
begin
|
|
28
|
+
gw.register
|
|
29
|
+
rescue Exception => e
|
|
30
|
+
$stderr.puts "Error registering gateway #{gw}: #{e}"
|
|
31
|
+
end
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#register all calculators
|
|
35
|
+
[
|
|
36
|
+
Calculator::FlatPercentItemTotal,
|
|
37
|
+
Calculator::FlatRate,
|
|
38
|
+
Calculator::FlexiRate,
|
|
39
|
+
Calculator::PerItem,
|
|
40
|
+
Calculator::SalesTax,
|
|
41
|
+
Calculator::Vat,
|
|
42
|
+
Calculator::PriceBucket
|
|
43
|
+
].each{|c_model|
|
|
44
|
+
begin
|
|
45
|
+
c_model.register if c_model.table_exists?
|
|
46
|
+
rescue Exception => e
|
|
47
|
+
$stderr.puts "Error registering calculator #{c_model}"
|
|
48
|
+
end
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
config.to_prepare &method(:activate).to_proc
|
|
56
|
+
|
|
57
|
+
# filter sensitive information during logging
|
|
58
|
+
initializer "spree.params.filter" do |app|
|
|
59
|
+
app.config.filter_parameters += [:password, :password_confirmation, :number]
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class Responder < ::ActionController::Responder #:nodoc:
|
|
3
|
+
|
|
4
|
+
attr_accessor :on_success, :on_failure
|
|
5
|
+
|
|
6
|
+
def initialize(controller, resources, options={})
|
|
7
|
+
super
|
|
8
|
+
|
|
9
|
+
class_name = controller.class.name.to_sym
|
|
10
|
+
action_name = options.delete(:action_name)
|
|
11
|
+
|
|
12
|
+
if result = Spree::BaseController.spree_responders[class_name].try(:[],action_name).try(:[], self.format.to_sym)
|
|
13
|
+
self.on_success = (result.respond_to?(:call) ? result : result[:success])
|
|
14
|
+
self.on_failure = (result.respond_to?(:call) ? result : result[:failure])
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def to_html
|
|
19
|
+
super and return if !(on_success || on_failure)
|
|
20
|
+
has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_format
|
|
24
|
+
super and return if !(on_success || on_failure)
|
|
25
|
+
has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module ActionController
|
|
2
|
+
class Base
|
|
3
|
+
def respond_with(*resources, &block)
|
|
4
|
+
raise "In order to use respond_with, first you need to declare the formats your " <<
|
|
5
|
+
"controller responds to in the class level" if self.class.mimes_for_respond_to.empty?
|
|
6
|
+
|
|
7
|
+
if response = retrieve_response_from_mimes(&block)
|
|
8
|
+
options = resources.size == 1 ? {} : resources.extract_options!
|
|
9
|
+
options.merge!(:default_response => response)
|
|
10
|
+
|
|
11
|
+
# following statement is not present in rails code. The action name is needed for processing
|
|
12
|
+
options.merge!(:action_name => action_name.to_sym)
|
|
13
|
+
|
|
14
|
+
# if responder is not specified then pass in Spree::Responder
|
|
15
|
+
(options.delete(:responder) || Spree::Responder).call(self, resources, options)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
module SpreeRespondWith
|
|
23
|
+
extend ActiveSupport::Concern
|
|
24
|
+
|
|
25
|
+
included do
|
|
26
|
+
cattr_accessor :spree_responders
|
|
27
|
+
self.spree_responders = {}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
module ClassMethods
|
|
31
|
+
def respond_override(options={})
|
|
32
|
+
|
|
33
|
+
unless options.blank?
|
|
34
|
+
action_name = options.keys.first
|
|
35
|
+
action_value = options.values.first
|
|
36
|
+
|
|
37
|
+
if action_name.blank? || action_value.blank?
|
|
38
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
format_name = action_value.keys.first
|
|
42
|
+
format_value = action_value.values.first
|
|
43
|
+
|
|
44
|
+
if format_name.blank? || format_value.blank?
|
|
45
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
if format_value.is_a?(Proc)
|
|
49
|
+
options = {action_name.to_sym => {format_name.to_sym => {:success => format_value}}}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
self.spree_responders.rmerge!(self.name.intern => options)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# ++
|
|
2
|
+
# Copyright (c) 2007-2010, Rails Dog LLC and other contributors
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
|
6
|
+
# are permitted provided that the following conditions are met:
|
|
7
|
+
#
|
|
8
|
+
# * Redistributions of source code must retain the above copyright notice,
|
|
9
|
+
# this list of conditions and the following disclaimer.
|
|
10
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
12
|
+
# and/or other materials provided with the distribution.
|
|
13
|
+
# * Neither the name of the Rails Dog LLC nor the names of its
|
|
14
|
+
# contributors may be used to endorse or promote products derived from this
|
|
15
|
+
# software without specific prior written permission.
|
|
16
|
+
#
|
|
17
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
18
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
19
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
20
|
+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
21
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
22
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
23
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
24
|
+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
25
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
26
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
27
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
# --
|
|
29
|
+
|
|
30
|
+
# ++
|
|
31
|
+
# Copyright (c) 2005 David Heinemeier Hansson
|
|
32
|
+
#
|
|
33
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
34
|
+
# a copy of this software and associated documentation files (the
|
|
35
|
+
# "Software"), to deal in the Software without restriction, including
|
|
36
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
37
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
38
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
39
|
+
# the following conditions:
|
|
40
|
+
#
|
|
41
|
+
# The above copyright notice and this permission notice shall be
|
|
42
|
+
# included in all copies or substantial portions of the Software.
|
|
43
|
+
#
|
|
44
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
45
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
46
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
47
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
48
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
49
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
50
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
51
|
+
# --
|
|
52
|
+
|
|
53
|
+
# Modified version of the ssl_requirement plugin by DHH
|
|
54
|
+
module SslRequirement
|
|
55
|
+
extend ActiveSupport::Concern
|
|
56
|
+
|
|
57
|
+
included do
|
|
58
|
+
before_filter(:ensure_proper_protocol)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
module ClassMethods
|
|
62
|
+
# Specifies that the named actions requires an SSL connection to be performed (which is enforced by ensure_proper_protocol).
|
|
63
|
+
def ssl_required(*actions)
|
|
64
|
+
write_inheritable_array(:ssl_required_actions, actions)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def ssl_allowed(*actions)
|
|
68
|
+
write_inheritable_array(:ssl_allowed_actions, actions)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
protected
|
|
73
|
+
# Returns true if the current action is supposed to run as SSL
|
|
74
|
+
def ssl_required?
|
|
75
|
+
actions = self.class.read_inheritable_attribute(:ssl_required_actions)
|
|
76
|
+
return false if actions.nil?
|
|
77
|
+
actions.empty? || actions.include?(action_name.to_sym)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def ssl_allowed?
|
|
81
|
+
actions = self.class.read_inheritable_attribute(:ssl_allowed_actions)
|
|
82
|
+
return false if actions.nil?
|
|
83
|
+
actions.empty? || actions.include?(action_name.to_sym)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
def ssl_supported?
|
|
89
|
+
return true if (Rails.env.development? or Rails.env.test?) and Spree::Config[:allow_ssl_in_development_and_test]
|
|
90
|
+
(Rails.env.staging? or Rails.env.production?) and Spree::Config[:allow_ssl_in_production]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def ensure_proper_protocol
|
|
94
|
+
return true if ssl_allowed?
|
|
95
|
+
if ssl_required? && !request.ssl? && ssl_supported?
|
|
96
|
+
redirect_to "https://" + request.host + request.fullpath
|
|
97
|
+
flash.keep
|
|
98
|
+
elsif request.ssl? && !ssl_required?
|
|
99
|
+
redirect_to "http://" + request.host + request.fullpath
|
|
100
|
+
flash.keep
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Factory.define :address do |f|
|
|
2
|
+
f.firstname 'John'
|
|
3
|
+
f.lastname 'Doe'
|
|
4
|
+
f.address1 '10 Lovely Street'
|
|
5
|
+
f.address2 'Northwest'
|
|
6
|
+
f.city "Herndon"
|
|
7
|
+
f.zipcode '20170'
|
|
8
|
+
f.phone '123-456-7890'
|
|
9
|
+
f.alternative_phone "123-456-7899"
|
|
10
|
+
|
|
11
|
+
f.state { |address| address.association(:state) }
|
|
12
|
+
f.country do |address|
|
|
13
|
+
if address.state
|
|
14
|
+
address.state.country
|
|
15
|
+
else
|
|
16
|
+
address.association(:country)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# allows creditcard info to be saved to the datbase which is needed for factories to work properly
|
|
2
|
+
class TestCard < Creditcard
|
|
3
|
+
def remove_readonly_attributes(attributes) attributes; end
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
Factory.define(:creditcard, :class => TestCard) do |f|
|
|
7
|
+
f.verification_value 123
|
|
8
|
+
f.month 12
|
|
9
|
+
f.year 2013
|
|
10
|
+
f.number "4111111111111111"
|
|
11
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Factory.define(:inventory_unit) do |record|
|
|
2
|
+
record.variant { Factory(:variant) }
|
|
3
|
+
record.order { Factory(:order) }
|
|
4
|
+
record.state "sold"
|
|
5
|
+
record.shipment { Factory(:shipment, :state => 'pending') }
|
|
6
|
+
#record.return_authorization { Factory(:return_authorization) }
|
|
7
|
+
end
|