effective_orders 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/effective_orders/version.rb +1 -1
- metadata +10 -258
- data/spec/controllers/admin/orders_controller_spec.rb +0 -243
- data/spec/controllers/carts_controller_spec.rb +0 -143
- data/spec/controllers/ccbill_orders_controller_spec.rb +0 -103
- data/spec/controllers/moneris_orders_controller_spec.rb +0 -133
- data/spec/controllers/orders_controller_spec.rb +0 -500
- data/spec/controllers/stripe_orders_controller_spec.rb +0 -128
- data/spec/controllers/webhooks_controller_spec.rb +0 -170
- data/spec/dummy/README.rdoc +0 -8
- data/spec/dummy/Rakefile +0 -6
- data/spec/dummy/app/assets/javascripts/application.js +0 -13
- data/spec/dummy/app/assets/stylesheets/application.css +0 -15
- data/spec/dummy/app/controllers/application_controller.rb +0 -5
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/models/product.rb +0 -9
- data/spec/dummy/app/models/product_with_float_price.rb +0 -9
- data/spec/dummy/app/models/user.rb +0 -11
- data/spec/dummy/app/views/layouts/application.html.erb +0 -14
- data/spec/dummy/bin/bundle +0 -3
- data/spec/dummy/bin/rails +0 -4
- data/spec/dummy/bin/rake +0 -4
- data/spec/dummy/config.ru +0 -4
- data/spec/dummy/config/application.rb +0 -32
- data/spec/dummy/config/boot.rb +0 -5
- data/spec/dummy/config/database.yml +0 -25
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -37
- data/spec/dummy/config/environments/production.rb +0 -80
- data/spec/dummy/config/environments/test.rb +0 -36
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/cookies_serializer.rb +0 -3
- data/spec/dummy/config/initializers/devise.rb +0 -254
- data/spec/dummy/config/initializers/effective_addresses.rb +0 -15
- data/spec/dummy/config/initializers/effective_orders.rb +0 -269
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/spec/dummy/config/initializers/inflections.rb +0 -16
- data/spec/dummy/config/initializers/mime_types.rb +0 -4
- data/spec/dummy/config/initializers/session_store.rb +0 -3
- data/spec/dummy/config/initializers/simple_form.rb +0 -189
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy/config/locales/en.yml +0 -23
- data/spec/dummy/config/routes.rb +0 -3
- data/spec/dummy/config/secrets.yml +0 -22
- data/spec/dummy/db/schema.rb +0 -158
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -164
- data/spec/dummy/log/test.log +0 -60
- data/spec/dummy/public/404.html +0 -67
- data/spec/dummy/public/422.html +0 -67
- data/spec/dummy/public/500.html +0 -66
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/fixtures/stripe_webhooks/invoice.payment_succeeded.without_renewals.json +0 -76
- data/spec/helpers/effective_orders_helper_spec.rb +0 -21
- data/spec/models/acts_as_purchasable_spec.rb +0 -75
- data/spec/models/customer_spec.rb +0 -72
- data/spec/models/factories_spec.rb +0 -35
- data/spec/models/order_item_spec.rb +0 -35
- data/spec/models/order_spec.rb +0 -445
- data/spec/models/stripe_charge_spec.rb +0 -39
- data/spec/models/subscription_spec.rb +0 -103
- data/spec/spec_helper.rb +0 -46
- data/spec/support/factories.rb +0 -139
@@ -1,15 +0,0 @@
|
|
1
|
-
EffectiveAddresses.setup do |config|
|
2
|
-
# Database table name to store addresses in. Default is :addresses
|
3
|
-
config.addresses_table_name = :addresses
|
4
|
-
|
5
|
-
# Display Full Name on Address forms, and validate presence by default
|
6
|
-
# (can be overridden on a per address basis)
|
7
|
-
config.use_full_name = true
|
8
|
-
|
9
|
-
# Country codes to display in country_select dropdowns.
|
10
|
-
config.country_codes = :all #
|
11
|
-
config.country_codes_priority = ['US', 'CA'] # Leave empty array for no priority countries
|
12
|
-
|
13
|
-
# Or you can be more selective...
|
14
|
-
#config.country_codes = ['US', 'CA']
|
15
|
-
end
|
@@ -1,269 +0,0 @@
|
|
1
|
-
# EffectiveOrders Rails Engine
|
2
|
-
|
3
|
-
EffectiveOrders.setup do |config|
|
4
|
-
# Configure Database Tables
|
5
|
-
config.orders_table_name = :orders
|
6
|
-
config.order_items_table_name = :order_items
|
7
|
-
config.carts_table_name = :carts
|
8
|
-
config.cart_items_table_name = :cart_items
|
9
|
-
config.customers_table_name = :customers
|
10
|
-
config.subscriptions_table_name = :subscriptions
|
11
|
-
config.products_table_name = :custom_products
|
12
|
-
|
13
|
-
# Authorization Method
|
14
|
-
#
|
15
|
-
# This method is called by all controller actions with the appropriate action and resource
|
16
|
-
# If the method returns false, an Effective::AccessDenied Error will be raised (see README.md for complete info)
|
17
|
-
#
|
18
|
-
# Use via Proc (and with CanCan):
|
19
|
-
# config.authorization_method = Proc.new { |controller, action, resource| can?(action, resource) }
|
20
|
-
#
|
21
|
-
# Use via custom method:
|
22
|
-
# config.authorization_method = :my_authorization_method
|
23
|
-
#
|
24
|
-
# And then in your application_controller.rb:
|
25
|
-
#
|
26
|
-
# def my_authorization_method(action, resource)
|
27
|
-
# current_user.is?(:admin)
|
28
|
-
# end
|
29
|
-
#
|
30
|
-
# Or disable the check completely:
|
31
|
-
# config.authorization_method = false
|
32
|
-
config.authorization_method = Proc.new { |controller, action, resource| true }
|
33
|
-
|
34
|
-
# Use effective_obfuscation gem to change order.id into a seemingly random 10-digit number
|
35
|
-
config.obfuscate_order_ids = true
|
36
|
-
|
37
|
-
# Require these addresses when creating a new Order. Works with effective_addresses gem
|
38
|
-
config.require_billing_address = true
|
39
|
-
config.require_shipping_address = true
|
40
|
-
|
41
|
-
# Use billing/shipping address full name in checkout process. Address full name will be validated.
|
42
|
-
# Works with effective_addresses gem
|
43
|
-
config.use_address_full_name = true
|
44
|
-
|
45
|
-
# If set, the orders#new screen will render effective/orders/user_fields partial and capture this User Info
|
46
|
-
# The partial can be overridden to customize the form, but the following fields are also fed into strong_paramters
|
47
|
-
config.collect_user_fields = [:first_name, :last_name]
|
48
|
-
#config.collect_user_fields = [:salutation, :first_name, :last_name] # Must be valid fields on the User object
|
49
|
-
|
50
|
-
# Don't validate_associated :user when saving an Order
|
51
|
-
config.skip_user_validation = false
|
52
|
-
|
53
|
-
config.collect_note = true
|
54
|
-
config.collect_note_message = 'please enter a note'
|
55
|
-
|
56
|
-
# Minimum Charge
|
57
|
-
# Prevent orders less than this value from being purchased
|
58
|
-
# Stripe doesn't allow orders less than $0.50
|
59
|
-
# Set to nil for no minimum charge
|
60
|
-
# Default value is 50 cents, or $0.50
|
61
|
-
config.minimum_charge = 50
|
62
|
-
|
63
|
-
# Free Orders
|
64
|
-
# Allow orders with a total of 0.00 to be purchased (regardless of the minimum charge setting)
|
65
|
-
# When enabled, the checkout process will skip the paypal/stripe/purchasing step
|
66
|
-
# and just display the 'Thank You' after checkout is clicked
|
67
|
-
config.allow_free_orders = true
|
68
|
-
|
69
|
-
# Allow Pretend Purchase in Production
|
70
|
-
# WARNING: Setting this option to true will allow users to purchase! an Order without entering a credit card
|
71
|
-
# WARNING: When true, users can purchase! anything without paying money
|
72
|
-
#
|
73
|
-
# This should basically always be false, but sometimes you want to make a Beta/Demo site
|
74
|
-
# where users may test the purchase workflow without actually paying money
|
75
|
-
#
|
76
|
-
# When true, there will be a 'Process Order' button on the Checkout screen.
|
77
|
-
# Clicking this button will mark an Order purchased and redirect the user to the
|
78
|
-
# Thank You page just as if they had successfully Checked Out through a payment processor
|
79
|
-
config.allow_pretend_purchase_in_production = false
|
80
|
-
config.allow_pretend_purchase_in_production_message = '* payment information is not required to process this order at this time.'
|
81
|
-
|
82
|
-
# Pay by Cheque
|
83
|
-
# Allow user to create pending orders in order to pay for it by cheque offline. Pending orders are not
|
84
|
-
# considered purchased and have 'pending' purchase state
|
85
|
-
#
|
86
|
-
# When true, there will be a 'Pay by Cheque' button on the Checkout screen.
|
87
|
-
# Clicking this button will mark an Order pending and redirect the user to the
|
88
|
-
# pending order page.
|
89
|
-
config.cheque_enabled = true
|
90
|
-
|
91
|
-
config.cheque = {
|
92
|
-
confirm: 'Your order will not be considered purchased until we receive your cheque. Proceed with pay by cheque?',
|
93
|
-
success_message: 'Thank you! You have indicated that this order will be purchased by cheque. Please send us a cheque and a copy of this invoice at your earliest convenience. We will mark this order purchased upon receiving payment.'
|
94
|
-
}
|
95
|
-
|
96
|
-
# Show/hide the 'Order History' button on the 'Cart Page'
|
97
|
-
config.show_order_history_button = true
|
98
|
-
|
99
|
-
# Layout Settings
|
100
|
-
# Configure the Layout per controller, or all at once
|
101
|
-
|
102
|
-
# config.layout = 'application' # All EffectiveOrders controllers will use this layout
|
103
|
-
config.layout = {
|
104
|
-
carts: 'application',
|
105
|
-
orders: 'application',
|
106
|
-
subscriptions: 'application',
|
107
|
-
admin_customers: 'application',
|
108
|
-
admin_orders: 'application'
|
109
|
-
}
|
110
|
-
|
111
|
-
# SimpleForm Options
|
112
|
-
# This Hash of options will be passed into any simple_form_for() calls
|
113
|
-
config.simple_form_options = {}
|
114
|
-
|
115
|
-
# config.simple_form_options = {
|
116
|
-
# html: {class: 'form-horizontal'},
|
117
|
-
# wrapper: :horizontal_form,
|
118
|
-
# wrapper_mappings: {
|
119
|
-
# boolean: :horizontal_boolean,
|
120
|
-
# check_boxes: :horizontal_radio_and_checkboxes,
|
121
|
-
# radio_buttons: :horizontal_radio_and_checkboxes
|
122
|
-
# }
|
123
|
-
# }
|
124
|
-
|
125
|
-
# Mailer Settings
|
126
|
-
# effective_orders will send out receipts to the buyer, seller and admins.
|
127
|
-
# For all the emails, the same :subject_prefix will be prefixed. Leave as nil / empty string if you don't want any prefix
|
128
|
-
#
|
129
|
-
# The subject_for_admin_receipt, subject_for_buyer_receipt, subject_for_payment_request and
|
130
|
-
# subject_for_seller_receipt can be one of:
|
131
|
-
# - nil / empty string to use the built in defaults
|
132
|
-
# - A string with the full subject line for this email
|
133
|
-
# - A Proc to create the subject line based on the email
|
134
|
-
# In all three of these cases, the subject_prefix will still be used.
|
135
|
-
|
136
|
-
# The Procs are the same for admin & buyer receipt, the seller Proc is different
|
137
|
-
# subject_for_admin_receipt: Proc.new { |order| "Order #{order.to_param} has been purchased"}
|
138
|
-
# subject_for_buyer_receipt: Proc.new { |order| "Order #{order.to_param} has been purchased"}
|
139
|
-
# subject_for_payment_request: Proc.new { |order| "Pending Order #{order.to_param}"}
|
140
|
-
# subject_for_seller_receipt: Proc.new { |order, order_items, seller| "Order #{order.to_param} has been purchased"}
|
141
|
-
|
142
|
-
config.mailer = {
|
143
|
-
send_order_receipt_to_admin: true,
|
144
|
-
send_order_receipt_to_buyer: true,
|
145
|
-
send_payment_request_to_buyer: true,
|
146
|
-
send_order_receipts_when_marked_paid_by_admin: false,
|
147
|
-
send_order_receipt_to_seller: true, # Only applies to StripeConnect
|
148
|
-
layout: 'effective_orders_mailer_layout',
|
149
|
-
admin_email: 'admin@example.com',
|
150
|
-
default_from: 'info@example.com',
|
151
|
-
subject_prefix: '[example]',
|
152
|
-
subject_for_admin_receipt: '',
|
153
|
-
subject_for_buyer_receipt: '',
|
154
|
-
subject_for_payment_request: '',
|
155
|
-
subject_for_seller_receipt: '',
|
156
|
-
deliver_method: nil,
|
157
|
-
delayed_job_deliver: false
|
158
|
-
}
|
159
|
-
|
160
|
-
# Moneris configuration
|
161
|
-
config.moneris_enabled = true
|
162
|
-
|
163
|
-
if Rails.env.production?
|
164
|
-
config.moneris = {
|
165
|
-
ps_store_id: '',
|
166
|
-
hpp_key: '',
|
167
|
-
hpp_url: 'https://www3.moneris.com/HPPDP/index.php',
|
168
|
-
verify_url: 'https://www3.moneris.com/HPPDP/verifyTxn.php'
|
169
|
-
}
|
170
|
-
else
|
171
|
-
config.moneris = {
|
172
|
-
ps_store_id: 'foo',
|
173
|
-
hpp_key: 'bar',
|
174
|
-
hpp_url: 'https://esqa.moneris.com/HPPDP/index.php',
|
175
|
-
verify_url: 'https://esqa.moneris.com/HPPDP/verifyTxn.php'
|
176
|
-
}
|
177
|
-
end
|
178
|
-
|
179
|
-
# Paypal configuration
|
180
|
-
config.paypal_enabled = true
|
181
|
-
|
182
|
-
if Rails.env.production?
|
183
|
-
config.paypal = {
|
184
|
-
seller_email: '',
|
185
|
-
secret: '',
|
186
|
-
cert_id: '',
|
187
|
-
paypal_url: 'https://www.paypal.com/cgi-bin/webscr',
|
188
|
-
currency: 'CAD',
|
189
|
-
paypal_cert: "#{Rails.root}/config/paypalcerts/production/paypal_cert.pem",
|
190
|
-
app_cert: "#{Rails.root}/config/paypalcerts/production/app_cert.pem",
|
191
|
-
app_key: "#{Rails.root}/config/paypalcerts/production/app_key.pem"
|
192
|
-
}
|
193
|
-
else
|
194
|
-
config.paypal = {
|
195
|
-
seller_email: 'seller@mail.com',
|
196
|
-
secret: 'foo',
|
197
|
-
cert_id: 'bar',
|
198
|
-
paypal_url: 'https://www.sandbox.paypal.com/cgi-bin/webscr',
|
199
|
-
currency: 'CAD',
|
200
|
-
paypal_cert: "#{Rails.root}/config/paypalcerts/#{Rails.env}/paypal_cert.pem",
|
201
|
-
app_cert: "#{Rails.root}/config/paypalcerts/#{Rails.env}/app_cert.pem",
|
202
|
-
app_key: "#{Rails.root}/config/paypalcerts/#{Rails.env}/app_key.pem"
|
203
|
-
}
|
204
|
-
end
|
205
|
-
|
206
|
-
# Stripe configuration
|
207
|
-
config.stripe_enabled = true
|
208
|
-
config.subscriptions_enabled = true # https://stripe.com/docs/subscriptions
|
209
|
-
config.stripe_connect_enabled = false # https://stripe.com/docs/connect
|
210
|
-
config.stripe_connect_application_fee_method = Proc.new { |order_item| order_item.total * 0.10 } # 10 percent
|
211
|
-
|
212
|
-
if Rails.env.production?
|
213
|
-
config.stripe = {
|
214
|
-
secret_key: '',
|
215
|
-
publishable_key: '',
|
216
|
-
currency: 'usd',
|
217
|
-
site_title: 'My Site',
|
218
|
-
site_image: '', # A relative URL pointing to a square image of your brand or product. The recommended minimum size is 128x128px.
|
219
|
-
connect_client_id: ''
|
220
|
-
}
|
221
|
-
else
|
222
|
-
config.stripe = {
|
223
|
-
secret_key: 'foo',
|
224
|
-
publishable_key: 'bar',
|
225
|
-
currency: 'usd',
|
226
|
-
site_title: 'My Development Site', # Displayed on the Embedded Stripe Form
|
227
|
-
site_image: 'foo', # A relative URL pointing to a square image of your brand or product. The recommended minimum size is 128x128px.
|
228
|
-
connect_client_id: 'bar'
|
229
|
-
}
|
230
|
-
end
|
231
|
-
|
232
|
-
# CCBill configuration
|
233
|
-
config.ccbill_enabled = true
|
234
|
-
|
235
|
-
# CCBill Dynamic Pricing documentation describes these variables:
|
236
|
-
# https://www.ccbill.com/cs/wiki/tiki-index.php?page=Dynamic+Pricing+User+Guide
|
237
|
-
if Rails.env.production?
|
238
|
-
config.ccbill = {
|
239
|
-
client_accnum: '',
|
240
|
-
client_subacc: '',
|
241
|
-
# Get this from CCBill Admin dashboard after setting up a form
|
242
|
-
form_name: '',
|
243
|
-
form_period: '',
|
244
|
-
# https://www.ccbill.com/cs/wiki/tiki-index.php?page=Webhooks+User+Guide#Appendix_A:_Currency_Codes
|
245
|
-
currency_code: '',
|
246
|
-
# You'll get this salt value from CCBill tech support
|
247
|
-
# https://www.ccbill.com/cs/wiki/tiki-index.php?page=Dynamic+Pricing+User+Guide#Generating_the_MD5_Hash
|
248
|
-
dynamic_pricing_salt: ''
|
249
|
-
}
|
250
|
-
else
|
251
|
-
config.ccbill = {
|
252
|
-
client_accnum: 'foo',
|
253
|
-
client_subacc: 'bar',
|
254
|
-
form_name: 'foo',
|
255
|
-
form_period: 'bar',
|
256
|
-
currency_code: 'foo',
|
257
|
-
dynamic_pricing_salt: 'bar'
|
258
|
-
}
|
259
|
-
end
|
260
|
-
|
261
|
-
# App checkout configuration
|
262
|
-
config.app_checkout_enabled = false
|
263
|
-
|
264
|
-
config.app_checkout = {
|
265
|
-
checkout_label: '', # Checkout button to finalize the order
|
266
|
-
service: nil, # an EffectiveOrders::AppCheckout type object
|
267
|
-
declined_flash: "Payment was unsuccessful. Please try again."
|
268
|
-
}
|
269
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Add new inflection rules using the following format. Inflections
|
4
|
-
# are locale specific, and you may define rules for as many different
|
5
|
-
# locales as you wish. All of these examples are active by default:
|
6
|
-
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
7
|
-
# inflect.plural /^(ox)$/i, '\1en'
|
8
|
-
# inflect.singular /^(ox)en/i, '\1'
|
9
|
-
# inflect.irregular 'person', 'people'
|
10
|
-
# inflect.uncountable %w( fish sheep )
|
11
|
-
# end
|
12
|
-
|
13
|
-
# These inflection rules are supported but not enabled by default:
|
14
|
-
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
15
|
-
# inflect.acronym 'RESTful'
|
16
|
-
# end
|
@@ -1,189 +0,0 @@
|
|
1
|
-
# Use this setup block to configure all options available in SimpleForm.
|
2
|
-
SimpleForm.setup do |config|
|
3
|
-
config.error_notification_class = 'alert alert-danger'
|
4
|
-
config.button_class = 'btn btn-primary'
|
5
|
-
config.boolean_label_class = nil
|
6
|
-
|
7
|
-
config.boolean_style = :nested
|
8
|
-
config.browser_validations = true
|
9
|
-
|
10
|
-
config.default_form_class = ''
|
11
|
-
config.default_wrapper = :vertical_form
|
12
|
-
|
13
|
-
config.wrapper_mappings = {
|
14
|
-
:boolean => :vertical_boolean,
|
15
|
-
:check_boxes => :vertical_radio_and_checkboxes,
|
16
|
-
:radio_buttons => :vertical_radio_and_checkboxes,
|
17
|
-
|
18
|
-
:horizontal_form => {
|
19
|
-
:boolean => :horizontal_boolean,
|
20
|
-
:check_boxes => :horizontal_radio_and_checkboxes,
|
21
|
-
:radio_buttons => :horizontal_radio_and_checkboxes
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
|
26
|
-
config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
27
|
-
b.use :html5
|
28
|
-
b.use :placeholder
|
29
|
-
b.optional :maxlength
|
30
|
-
b.optional :pattern
|
31
|
-
b.optional :min_max
|
32
|
-
b.optional :readonly
|
33
|
-
b.use :label, class: 'control-label'
|
34
|
-
|
35
|
-
b.use :input, class: 'form-control'
|
36
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
37
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
38
|
-
end
|
39
|
-
|
40
|
-
config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
41
|
-
b.use :html5
|
42
|
-
b.use :placeholder
|
43
|
-
b.optional :maxlength
|
44
|
-
b.optional :readonly
|
45
|
-
b.use :label, class: 'control-label'
|
46
|
-
|
47
|
-
b.use :input
|
48
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
49
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
50
|
-
end
|
51
|
-
|
52
|
-
config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
53
|
-
b.use :html5
|
54
|
-
b.optional :readonly
|
55
|
-
|
56
|
-
b.wrapper tag: 'div', class: 'checkbox' do |ba|
|
57
|
-
ba.use :label_input
|
58
|
-
end
|
59
|
-
|
60
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
61
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
62
|
-
end
|
63
|
-
|
64
|
-
config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
65
|
-
b.use :html5
|
66
|
-
b.optional :readonly
|
67
|
-
b.use :label_input, :class => 'control-label'
|
68
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
69
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
70
|
-
end
|
71
|
-
|
72
|
-
config.wrappers :vertical_inline_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
73
|
-
b.use :html5
|
74
|
-
b.optional :readonly
|
75
|
-
|
76
|
-
b.use :label, class: 'control-label'
|
77
|
-
|
78
|
-
b.wrapper tag: 'div', class: 'inline-radio-or-checkboxes' do |ba|
|
79
|
-
ba.use :input
|
80
|
-
end
|
81
|
-
|
82
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
83
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
84
|
-
end
|
85
|
-
|
86
|
-
config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
87
|
-
b.use :html5
|
88
|
-
b.use :placeholder
|
89
|
-
b.optional :maxlength
|
90
|
-
b.optional :pattern
|
91
|
-
b.optional :min_max
|
92
|
-
b.optional :readonly
|
93
|
-
b.use :label, class: 'col-sm-3 control-label'
|
94
|
-
|
95
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
96
|
-
ba.use :input, class: 'form-control'
|
97
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
98
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
config.wrappers :form_3columns, tag: 'div', class: 'col-sm-4' do |b|
|
103
|
-
b.use :html5
|
104
|
-
b.use :placeholder
|
105
|
-
b.optional :maxlength
|
106
|
-
b.optional :pattern
|
107
|
-
b.optional :min_max
|
108
|
-
b.optional :readonly
|
109
|
-
|
110
|
-
b.wrapper tag: 'div', class: 'form-group', error_class: 'has-error' do |ba|
|
111
|
-
ba.use :label
|
112
|
-
ba.use :input, class: 'form-control'
|
113
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
114
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
119
|
-
b.use :html5
|
120
|
-
b.use :placeholder
|
121
|
-
b.optional :maxlength
|
122
|
-
b.optional :readonly
|
123
|
-
b.use :label, class: 'col-sm-3 control-label'
|
124
|
-
|
125
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
126
|
-
ba.use :input
|
127
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
128
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
133
|
-
b.use :html5
|
134
|
-
b.optional :readonly
|
135
|
-
|
136
|
-
b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
|
137
|
-
wr.wrapper tag: 'div', class: 'checkbox' do |ba|
|
138
|
-
ba.use :label_input, class: 'col-sm-9'
|
139
|
-
end
|
140
|
-
|
141
|
-
wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
142
|
-
wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
147
|
-
b.use :html5
|
148
|
-
b.optional :readonly
|
149
|
-
|
150
|
-
b.use :label, class: 'col-sm-3 control-label'
|
151
|
-
|
152
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
153
|
-
ba.use :input
|
154
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
155
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
config.wrappers :horizontal_inline_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
160
|
-
b.use :html5
|
161
|
-
b.optional :readonly
|
162
|
-
|
163
|
-
b.use :label, class: 'col-sm-3 control-label'
|
164
|
-
|
165
|
-
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
166
|
-
ba.wrapper tag: 'div', :class => 'inline-radio-or-checkboxes' do |bb|
|
167
|
-
bb.use :input
|
168
|
-
end
|
169
|
-
|
170
|
-
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
171
|
-
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
176
|
-
b.use :html5
|
177
|
-
b.use :placeholder
|
178
|
-
b.optional :maxlength
|
179
|
-
b.optional :pattern
|
180
|
-
b.optional :min_max
|
181
|
-
b.optional :readonly
|
182
|
-
b.use :label, class: 'sr-only'
|
183
|
-
|
184
|
-
b.use :input, class: 'form-control'
|
185
|
-
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
186
|
-
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
187
|
-
end
|
188
|
-
|
189
|
-
end
|