handcart 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/javascripts/handcart/application.js +1 -1
  4. data/app/assets/stylesheets/handcart/{application.css → application.css.scss} +1 -2
  5. data/app/assets/stylesheets/handcart/layout.css.scss +9 -1
  6. data/app/controllers/handcart/application_controller.rb +0 -1
  7. data/app/controllers/handcart/ip_addresses_controller.rb +4 -4
  8. data/app/controllers/handcart/subdomains_controller.rb +2 -2
  9. data/app/helpers/handcart/bootstrap_flash_helper.rb +26 -0
  10. data/app/models/handcart/concerns/handcarts.rb +1 -1
  11. data/app/models/handcart/ip_address.rb +1 -0
  12. data/app/models/handcart/subdomain.rb +1 -0
  13. data/app/views/handcart/ip_addresses/_form.html.haml +9 -9
  14. data/app/views/handcart/ip_addresses/index.html.haml +15 -9
  15. data/app/views/handcart/ip_addresses/show.html.haml +37 -19
  16. data/app/views/handcart/subdomains/_form.html.haml +6 -6
  17. data/app/views/handcart/subdomains/index.html.haml +10 -8
  18. data/app/views/handcart/subdomains/show.html.haml +30 -19
  19. data/app/views/layouts/handcart/_navbar.html.haml +16 -15
  20. data/app/views/layouts/handcart/application.html.haml +12 -12
  21. data/config/locales/en.yml +2 -1
  22. data/lib/handcart.rb +2 -1
  23. data/lib/handcart/simple_form.rb +45 -16
  24. data/lib/handcart/simple_form_bootstrap.rb +86 -0
  25. data/lib/handcart/version.rb +1 -1
  26. data/spec/dummy/app/assets/javascripts/application.js +1 -1
  27. data/spec/dummy/app/assets/stylesheets/{application.css → application.css.scss} +1 -2
  28. data/spec/dummy/app/assets/stylesheets/layout.css.scss +1 -1
  29. data/spec/dummy/app/controllers/application_controller.rb +1 -0
  30. data/spec/dummy/app/controllers/master/companies_controller.rb +1 -1
  31. data/spec/dummy/app/views/kaminari/_first_page.html.haml +2 -0
  32. data/spec/dummy/app/views/kaminari/_gap.html.haml +2 -0
  33. data/spec/dummy/app/views/kaminari/_last_page.html.haml +2 -0
  34. data/spec/dummy/app/views/kaminari/_next_page.html.haml +2 -0
  35. data/spec/dummy/app/views/kaminari/_page.html.haml +2 -0
  36. data/spec/dummy/app/views/kaminari/_paginator.html.haml +11 -0
  37. data/spec/dummy/app/views/kaminari/_prev_page.html.haml +2 -0
  38. data/spec/dummy/app/views/layouts/_navbar.html.haml +7 -6
  39. data/spec/dummy/app/views/layouts/application.html.haml +13 -11
  40. data/spec/dummy/app/views/layouts/master.html.haml +12 -11
  41. data/spec/dummy/app/views/layouts/master/_navbar.html.haml +11 -9
  42. data/spec/dummy/app/views/layouts/public.html.haml +9 -8
  43. data/spec/dummy/app/views/master/companies/_form.html.haml +8 -8
  44. data/spec/dummy/app/views/master/companies/index.html.haml +6 -6
  45. data/spec/dummy/app/views/master/companies/show.html.haml +2 -2
  46. data/spec/dummy/log/development.log +13453 -0
  47. data/spec/dummy/log/test.log +18192 -0
  48. data/spec/dummy/spec/models/company_spec.rb +6 -0
  49. data/spec/dummy/tmp/cache/assets/development/sass/27d34b7cbcb5b92ab03220c4d4b91379cc64c2c0/layout.css.scssc +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/02ed06263710ce2efa1e60127f70b6c4 +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/0458ed7d0bd5ee8539da486da8f5991f +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/090db6be066f75d69551b3a136a9d6a3 +0 -0
  53. data/spec/dummy/tmp/cache/assets/development/sprockets/0a3f5e60a5dc08f80e83efe09ac998c7 +0 -0
  54. data/spec/dummy/tmp/cache/assets/development/sprockets/0d76367ded60510a66afc3dea891e76a +0 -0
  55. data/spec/dummy/tmp/cache/assets/development/sprockets/0f5003ddb4834b15069be849f782c9a3 +0 -0
  56. data/spec/dummy/tmp/cache/assets/development/sprockets/1060e80761812d7822e2da74c334dc4a +0 -0
  57. data/spec/dummy/tmp/cache/assets/development/sprockets/106c3f4e1fc71e9dc70abae55d432886 +0 -0
  58. data/spec/dummy/tmp/cache/assets/development/sprockets/18c826ba1d6dac1633cae2da25c0402a +0 -0
  59. data/spec/dummy/tmp/cache/assets/development/sprockets/2095ec690033cb1ebeb9a75f5d74005f +0 -0
  60. data/spec/dummy/tmp/cache/assets/development/sprockets/250f17d9e4ac44072b6f5a236fa8f532 +0 -0
  61. data/spec/dummy/tmp/cache/assets/development/sprockets/26e64189696f84c742152094a4784b64 +0 -0
  62. data/spec/dummy/tmp/cache/assets/development/sprockets/2860df473a6cf4c483cd6f251fea3ae0 +0 -0
  63. data/spec/dummy/tmp/cache/assets/development/sprockets/28ed8badf249567725127a10da4e24c2 +0 -0
  64. data/spec/dummy/tmp/cache/assets/development/sprockets/2f36066abfa51ffebd7981ba91d7047a +0 -0
  65. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  66. data/spec/dummy/tmp/cache/assets/development/sprockets/332b53959e1614821a9dc7237b1567d0 +0 -0
  67. data/spec/dummy/tmp/cache/assets/development/sprockets/350c8c72b1dbd7a84f85424b5cd4def1 +0 -0
  68. data/spec/dummy/tmp/cache/assets/development/sprockets/3521f0b3655f1332b216d6d3f2e49865 +0 -0
  69. data/spec/dummy/tmp/cache/assets/development/sprockets/3b1656b46a35a6120c3407b930d468ba +0 -0
  70. data/spec/dummy/tmp/cache/assets/development/sprockets/3bd3ea6a5530c1221765984d64fb7e76 +0 -0
  71. data/spec/dummy/tmp/cache/assets/development/sprockets/3d2dc454ff19bb6aa33d0495820578a5 +0 -0
  72. data/spec/dummy/tmp/cache/assets/development/sprockets/3fa878a57cb0b42be266336564609b18 +0 -0
  73. data/spec/dummy/tmp/cache/assets/development/sprockets/493ec40401d9f806f43e0cd72894205a +0 -0
  74. data/spec/dummy/tmp/cache/assets/development/sprockets/4a168813f7a26f6ba3b217833f53d99d +0 -0
  75. data/spec/dummy/tmp/cache/assets/development/sprockets/4b05c7ca81ce80200d0768e10b8de7a9 +0 -0
  76. data/spec/dummy/tmp/cache/assets/development/sprockets/4c17c77b444339bb3ab293047da0ff0d +0 -0
  77. data/spec/dummy/tmp/cache/assets/development/sprockets/4d770d1f61e86e7c8912f8b87e05354c +0 -0
  78. data/spec/dummy/tmp/cache/assets/development/sprockets/5d22162d2a10fcd9bf398f058fff6eb5 +0 -0
  79. data/spec/dummy/tmp/cache/assets/development/sprockets/5d650352320298b4007cec860189a5e9 +0 -0
  80. data/spec/dummy/tmp/cache/assets/development/sprockets/6051db87a0894bbf1adae79d3191b027 +0 -0
  81. data/spec/dummy/tmp/cache/assets/development/sprockets/60b75d9635ed84e08a0b9a245d8a3202 +0 -0
  82. data/spec/dummy/tmp/cache/assets/development/sprockets/646c9911e2f7dd2a16daeccc138b4352 +0 -0
  83. data/spec/dummy/tmp/cache/assets/development/sprockets/6e9d2e7aafa45c939731291fa453b8c2 +0 -0
  84. data/spec/dummy/tmp/cache/assets/development/sprockets/72bfe5ba0e1aa85b4a2ae83a28cd9edd +0 -0
  85. data/spec/dummy/tmp/cache/assets/development/sprockets/74131e27a9b7033cbda45ad068053a4e +0 -0
  86. data/spec/dummy/tmp/cache/assets/development/sprockets/793509e1419de327d1f96aa92521ab80 +0 -0
  87. data/spec/dummy/tmp/cache/assets/development/sprockets/806adcbf228e622f7d8dd5635da28bcc +0 -0
  88. data/spec/dummy/tmp/cache/assets/development/sprockets/8102cf6724f489a310fe3a6b764bb2e9 +0 -0
  89. data/spec/dummy/tmp/cache/assets/development/sprockets/8174fc2596c9877f60153bf482170c3b +0 -0
  90. data/spec/dummy/tmp/cache/assets/development/sprockets/85d3ba9967443e5dc18cc8e9ae5c2a67 +0 -0
  91. data/spec/dummy/tmp/cache/assets/development/sprockets/89985f1bd1ce408bbb842b5e6714d344 +0 -0
  92. data/spec/dummy/tmp/cache/assets/development/sprockets/8aaac397ee93bf3a99ebbc8afa4ba8ba +0 -0
  93. data/spec/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  94. data/spec/dummy/tmp/cache/assets/development/sprockets/903350b384a3ba2f4dab81256fe4a038 +0 -0
  95. data/spec/dummy/tmp/cache/assets/development/sprockets/91b6a90bb461c0699041890b68172f24 +0 -0
  96. data/spec/dummy/tmp/cache/assets/development/sprockets/9384399605ca755bddc0e0c50de99e75 +0 -0
  97. data/spec/dummy/tmp/cache/assets/development/sprockets/94a101a9134135c0b64ffb79d71a7961 +0 -0
  98. data/spec/dummy/tmp/cache/assets/development/sprockets/9d31c08f7c2f9ea416313d439fbb90c6 +0 -0
  99. data/spec/dummy/tmp/cache/assets/development/sprockets/a7cf87387fa408a88cd78b7ea037bf3a +0 -0
  100. data/spec/dummy/tmp/cache/assets/development/sprockets/a9e19eb45005fa24bc8b90b6a374089f +0 -0
  101. data/spec/dummy/tmp/cache/assets/development/sprockets/aef2ed28dee632a906030c7d063ba481 +0 -0
  102. data/spec/dummy/tmp/cache/assets/development/sprockets/af718c632887ccb6c1c35c4b65c61293 +0 -0
  103. data/spec/dummy/tmp/cache/assets/development/sprockets/b559f2694561fc6c44e3319f507de1e7 +0 -0
  104. data/spec/dummy/tmp/cache/assets/development/sprockets/b78a1c1624e2aadfb2076a966c4f2708 +0 -0
  105. data/spec/dummy/tmp/cache/assets/development/sprockets/b7c36a1c00d7804d9e827d704c0dd811 +0 -0
  106. data/spec/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  107. data/spec/dummy/tmp/cache/assets/development/sprockets/bd14e8a9bb4e8b09a327cc6fb637a4c9 +0 -0
  108. data/spec/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  109. data/spec/dummy/tmp/cache/assets/development/sprockets/c353816e1fa79580ecc2109ac87f6484 +0 -0
  110. data/spec/dummy/tmp/cache/assets/development/sprockets/c39832e77dfdde1759066bd4a2fd9df6 +0 -0
  111. data/spec/dummy/tmp/cache/assets/development/sprockets/c6dbb1be1e4b05a06fc6d87bf007884b +0 -0
  112. data/spec/dummy/tmp/cache/assets/development/sprockets/cfc86dc4f1549fbc409ccbb7f29bf17f +0 -0
  113. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  114. data/spec/dummy/tmp/cache/assets/development/sprockets/d30e829917dfb45f19a36b8d71edaa7a +0 -0
  115. data/spec/dummy/tmp/cache/assets/development/sprockets/d32fc7356f764b22ecbcebbcb9b47ee1 +0 -0
  116. data/spec/dummy/tmp/cache/assets/development/sprockets/d379e86e6d88f4cd26a4a52e4dd0ef8b +0 -0
  117. data/spec/dummy/tmp/cache/assets/development/sprockets/d776667bae72eb3d582da5803fc931ca +0 -0
  118. data/spec/dummy/tmp/cache/assets/development/sprockets/e2bd103827e58881b0255df62c988c8a +0 -0
  119. data/spec/dummy/tmp/cache/assets/development/sprockets/e32ea0ebfd8befc578a5a8043b866754 +0 -0
  120. data/spec/dummy/tmp/cache/assets/development/sprockets/e7178f39a89e69212b764b69dac69528 +0 -0
  121. data/spec/dummy/tmp/cache/assets/development/sprockets/f2348b747b81ca6e3a24d5bd0b7023c4 +0 -0
  122. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  123. data/spec/dummy/tmp/cache/assets/development/sprockets/fbd7d96603edf8045193c8378a7913ce +0 -0
  124. data/spec/dummy/tmp/pids/server.pid +1 -0
  125. metadata +144 -6
@@ -4,8 +4,9 @@ en:
4
4
  short: "%d %B %Y"
5
5
  time:
6
6
  formats:
7
- short: "%d %B %Y,%l:%M %P"
7
+ short: "%d %b %Y,%l:%M %P"
8
8
  only_time: "%l:%M %P"
9
+ only_date: "%d %B %Y"
9
10
  activerecord:
10
11
  attributes:
11
12
  handcart/ip_address:
@@ -6,7 +6,8 @@ require 'haml'
6
6
  require 'sass/rails'
7
7
  require "handcart/simple_form"
8
8
  require 'jquery-rails'
9
- require 'twitter-bootstrap-rails'
9
+ require 'bootstrap-sass'
10
+ require 'kaminari'
10
11
 
11
12
  module Handcart
12
13
  module Strategies
@@ -1,6 +1,8 @@
1
1
  # lib/my-engine/simple-form.rb
2
2
  require 'simple_form'
3
3
 
4
+ # https://gist.github.com/tokenvolt/6599141
5
+
4
6
  # Use this setup block to configure all options available in SimpleForm.
5
7
  SimpleForm.setup do |config|
6
8
  # Wrappers are used by the form builder to generate a
@@ -48,22 +50,37 @@ SimpleForm.setup do |config|
48
50
  b.use :error, wrap_with: { tag: :span, class: :error }
49
51
  end
50
52
 
51
- config.wrappers :bootstrap, tag: 'div', class: 'control-group', error_class: 'error' do |b|
53
+ config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'has-error',
54
+ defaults: { input_html: { class: 'default_class' } } do |b|
55
+
56
+ b.use :html5
57
+ b.use :placeholder
58
+ b.use :label
59
+ b.wrapper tag: 'div', class: 'col-sm-3' do |ba|
60
+ ba.use :input
61
+ end
62
+ b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
63
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
64
+ end
65
+
66
+ config.wrappers :nested, tag: 'div', class: 'form-group', error_class: 'has-error',
67
+ defaults: { input_html: { class: 'default_class' } } do |b|
68
+
52
69
  b.use :html5
53
70
  b.use :placeholder
54
71
  b.use :label
55
- b.wrapper tag: 'div', class: 'controls' do |ba|
72
+ b.wrapper tag: 'div', class: 'col-lg-10' do |ba|
56
73
  ba.use :input
57
- ba.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
58
- ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
59
74
  end
75
+ b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
76
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
60
77
  end
61
78
 
62
- config.wrappers :prepend, tag: 'div', class: "control-group", error_class: 'error' do |b|
79
+ config.wrappers :prepend, tag: 'div', class: "form-group", error_class: 'has-error' do |b|
63
80
  b.use :html5
64
81
  b.use :placeholder
65
82
  b.use :label
66
- b.wrapper tag: 'div', class: 'controls' do |input|
83
+ b.wrapper tag: 'div', class: 'col-sm-4' do |input|
67
84
  input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
68
85
  prepend.use :input
69
86
  end
@@ -72,11 +89,11 @@ SimpleForm.setup do |config|
72
89
  end
73
90
  end
74
91
 
75
- config.wrappers :append, tag: 'div', class: "control-group", error_class: 'error' do |b|
92
+ config.wrappers :append, tag: 'div', class: "form-group", error_class: 'has-error' do |b|
76
93
  b.use :html5
77
94
  b.use :placeholder
78
95
  b.use :label
79
- b.wrapper tag: 'div', class: 'controls' do |input|
96
+ b.wrapper tag: 'div', class: 'col-sm-4' do |input|
80
97
  input.wrapper tag: 'div', class: 'input-append' do |append|
81
98
  append.use :input
82
99
  end
@@ -91,6 +108,9 @@ SimpleForm.setup do |config|
91
108
  # buttons and other elements.
92
109
  config.default_wrapper = :bootstrap
93
110
 
111
+ # The default wrapper to be used by the FormBuilder.
112
+ # config.default_wrapper = :default
113
+
94
114
  # Define the way to render check boxes / radio buttons with labels.
95
115
  # Defaults to :nested for bootstrap config.
96
116
  # inline: input + label
@@ -100,7 +120,9 @@ SimpleForm.setup do |config|
100
120
  # Default class for buttons
101
121
  config.button_class = 'btn'
102
122
 
103
- # Method used to tidy up errors.
123
+ # Method used to tidy up errors. Specify any Rails Array method.
124
+ # :first lists the first message for each field.
125
+ # Use :to_sentence to list all errors for each field.
104
126
  # config.error_method = :first
105
127
 
106
128
  # Default tag used for error notification helper.
@@ -136,10 +158,10 @@ SimpleForm.setup do |config|
136
158
  # config.label_text = lambda { |label, required| "#{required} #{label}" }
137
159
 
138
160
  # You can define the class to use on all labels. Default is nil.
139
- config.label_class = 'control-label'
161
+ config.label_class = 'col-sm-2'
140
162
 
141
163
  # You can define the class to use on all forms. Default is simple_form.
142
- # config.form_class = :simple_form
164
+ config.form_class = "simple_form form-horizontal"
143
165
 
144
166
  # You can define which elements should obtain additional classes
145
167
  # config.generate_additional_classes_for = [:wrapper, :label, :input]
@@ -147,8 +169,11 @@ SimpleForm.setup do |config|
147
169
  # Whether attributes are required by default (or not). Default is true.
148
170
  # config.required_by_default = true
149
171
 
150
- # Tell browsers whether to use default HTML5 validations (novalidate option).
151
- # Default is enabled.
172
+ # Tell browsers whether to use the native HTML5 validations (novalidate form option).
173
+ # These validations are enabled in SimpleForm's internal config but disabled by default
174
+ # in this configuration, which is recommended due to some quirks from different browsers.
175
+ # To stop SimpleForm from generating the novalidate option, enabling the HTML5 validations,
176
+ # change this configuration to true.
152
177
  config.browser_validations = false
153
178
 
154
179
  # Collection of methods to detect if a file type was given.
@@ -159,15 +184,16 @@ SimpleForm.setup do |config|
159
184
  # matches the regexp as value.
160
185
  # config.input_mappings = { /count/ => :integer }
161
186
 
187
+ # Custom wrappers for input types. This should be a hash containing an input
188
+ # type as key and the wrapper that will be used for all inputs with specified type.
189
+ # config.wrapper_mappings = { string: :prepend }
190
+
162
191
  # Default priority for time_zone inputs.
163
192
  # config.time_zone_priority = nil
164
193
 
165
194
  # Default priority for country inputs.
166
195
  # config.country_priority = nil
167
196
 
168
- # Default size for text inputs.
169
- # config.default_input_size = 50
170
-
171
197
  # When false, do not use translations for labels.
172
198
  # config.translate_labels = true
173
199
 
@@ -176,4 +202,7 @@ SimpleForm.setup do |config|
176
202
 
177
203
  # Cache SimpleForm inputs discovery
178
204
  # config.cache_discovery = !Rails.env.development?
205
+
206
+ # Default class for inputs
207
+ config.input_class = 'form-control'
179
208
  end
@@ -0,0 +1,86 @@
1
+ # https://gist.github.com/tokenvolt/6599141
2
+ inputs = %w[
3
+ CollectionSelectInput
4
+ DateTimeInput
5
+ FileInput
6
+ GroupedCollectionSelectInput
7
+ NumericInput
8
+ PasswordInput
9
+ RangeInput
10
+ StringInput
11
+ TextInput
12
+ ]
13
+
14
+ inputs.each do |input_type|
15
+ superclass = "SimpleForm::Inputs::#{input_type}".constantize
16
+
17
+ new_class = Class.new(superclass) do
18
+ def input_html_classes
19
+ super.push('form-control')
20
+ end
21
+ end
22
+
23
+ Object.const_set(input_type, new_class)
24
+ end
25
+
26
+ # Use this setup block to configure all options available in SimpleForm.
27
+ SimpleForm.setup do |config|
28
+
29
+ config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'has-error',
30
+ defaults: { input_html: { class: 'default_class' } } do |b|
31
+
32
+ b.use :html5
33
+ b.use :placeholder
34
+ b.use :label
35
+ b.wrapper tag: 'div', class: 'col-sm-3' do |ba|
36
+ ba.use :input
37
+ end
38
+ b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
39
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
40
+ end
41
+
42
+ config.wrappers :nested, tag: 'div', class: 'form-group', error_class: 'has-error',
43
+ defaults: { input_html: { class: 'default_class' } } do |b|
44
+
45
+ b.use :html5
46
+ b.use :placeholder
47
+ b.use :label
48
+ b.wrapper tag: 'div', class: 'col-lg-10' do |ba|
49
+ ba.use :input
50
+ end
51
+ b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
52
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
53
+ end
54
+
55
+ config.wrappers :prepend, tag: 'div', class: "form-group", error_class: 'has-error' do |b|
56
+ b.use :html5
57
+ b.use :placeholder
58
+ b.use :label
59
+ b.wrapper tag: 'div', class: 'col-sm-4' do |input|
60
+ input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
61
+ prepend.use :input
62
+ end
63
+ input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
64
+ input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
65
+ end
66
+ end
67
+
68
+ config.wrappers :append, tag: 'div', class: "form-group", error_class: 'has-error' do |b|
69
+ b.use :html5
70
+ b.use :placeholder
71
+ b.use :label
72
+ b.wrapper tag: 'div', class: 'col-sm-4' do |input|
73
+ input.wrapper tag: 'div', class: 'input-append' do |append|
74
+ append.use :input
75
+ end
76
+ input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
77
+ input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
78
+ end
79
+ end
80
+
81
+ # Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
82
+ # Check the Bootstrap docs (http://twitter.github.com/bootstrap)
83
+ # to learn about the different styles for forms and inputs,
84
+ # buttons and other elements.
85
+ config.default_wrapper = :bootstrap
86
+ end
@@ -1,3 +1,3 @@
1
1
  module Handcart
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -12,5 +12,5 @@
12
12
  //
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
- //= require twitter/bootstrap
15
+ //= require bootstrap
16
16
  //= require_tree .
@@ -9,7 +9,6 @@
9
9
  * compiled file, but it's generally better to create a new file per style scope.
10
10
  *
11
11
  *= require_self
12
- *= require twitter-bootstrap-static/bootstrap
13
- *= require twitter-bootstrap-static/fontawesome
14
12
  *= require_tree .
15
13
  */
14
+ @import "bootstrap";
@@ -4,5 +4,5 @@ footer {
4
4
  }
5
5
 
6
6
  td.action-button {
7
- width: 2em;
7
+ width: 3em;
8
8
  }
@@ -4,4 +4,5 @@ class ApplicationController < ActionController::Base
4
4
  protect_from_forgery with: :exception
5
5
 
6
6
  helper Handcart::ApplicationHelper
7
+ helper Handcart::BootstrapFlashHelper
7
8
  end
@@ -35,7 +35,7 @@ class Master::CompaniesController < MasterController
35
35
 
36
36
  def destroy
37
37
  @company.destroy
38
- redirect_to companies_url, notice: 'Company was successfully destroyed.'
38
+ redirect_to companies_url, notice: 'Company was successfully removed.'
39
39
  end
40
40
 
41
41
  private
@@ -0,0 +1,2 @@
1
+ %li
2
+ = link_to_unless current_page.first?, raw(t 'views.pagination.first'), url, remote: remote
@@ -0,0 +1,2 @@
1
+ %li.disabled
2
+ = link_to raw(t 'views.pagination.truncate'), '#'
@@ -0,0 +1,2 @@
1
+ %li
2
+ = link_to_unless current_page.last?, raw(t 'views.pagination.last'), url, {remote: remote}
@@ -0,0 +1,2 @@
1
+ %li
2
+ = link_to_unless current_page.last?, raw(t 'views.pagination.next'), url, rel: 'next', remote: remote
@@ -0,0 +1,2 @@
1
+ %li{class: "#{'active' if page.current?}"}
2
+ = link_to page, page.current? ? '#' : url, {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil}
@@ -0,0 +1,11 @@
1
+ = paginator.render do
2
+ %ul.pagination
3
+ = first_page_tag unless current_page.first?
4
+ = prev_page_tag unless current_page.first?
5
+ - each_page do |page|
6
+ - if page.left_outer? || page.right_outer? || page.inside_window?
7
+ = page_tag page
8
+ - elsif !page.was_truncated?
9
+ = gap_tag
10
+ = next_page_tag unless current_page.last?
11
+ = last_page_tag unless current_page.last?
@@ -0,0 +1,2 @@
1
+ %li
2
+ = link_to_unless current_page.first?, raw(t 'views.pagination.previous'), url, rel: 'prev', remote: remote
@@ -1,7 +1,8 @@
1
- %ul.nav
2
- - unless (Handcart.ip_authorization.ip_authorization_strategy == :none)
3
- %li{class: (params[:controller] == "ip_addresses") ? "active" : nil}
4
- = link_to main_app.ip_addresses_path do
5
- %i.icon-screenshot
6
- My IP Addresses
1
+ #navbar-collapse-1.collapse.navbar-collapse
2
+ %ul.nav.navbar-nav
3
+ - unless (Handcart.ip_authorization.ip_authorization_strategy == :none)
4
+ %li{class: (params[:controller] == "ip_addresses") ? "active" : nil}
5
+ = link_to main_app.ip_addresses_path do
6
+ %span.glyphicon.glyphicon-screenshot
7
+ My IP Addresses
7
8
 
@@ -17,31 +17,33 @@
17
17
  = javascript_include_tag "application"
18
18
 
19
19
  %body
20
- .navbar.navbar-fluid-top
21
- .navbar-inner
22
- .container-fluid
23
- %a.btn.btn-navbar(data-target=".nav-collapse" data-toggle="collapse")
20
+ %nav.navbar.navbar-default{role: "navigation"}
21
+ .container-fluid
22
+ .navbar-header
23
+ %button.navbar-toggle{"data-target" => "#navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
24
24
  %span.icon-bar
25
25
  %span.icon-bar
26
26
  %span.icon-bar
27
- %a.brand(href=subdomain_root_path) Dummy
28
- = render "layouts/navbar"
27
+ %a.navbar-brand{href: subdomain_root_path}
28
+ %span.glyphicon.glyphicon-home
29
+ Dummy
30
+ = render "layouts/navbar"
29
31
 
30
- .container-fluid
31
- .row-fluid
32
+ .container
33
+ .row
32
34
  - if content_for?(:sidebar)
33
- .span9
35
+ .col-lg-9
34
36
  %div.flash-message
35
37
  = bootstrap_flash
36
38
  - if content_for?(:sub_title)
37
39
  .page-header
38
40
  %h3.sub-title.inline= content_for?(:sub_title) ? yield(:sub_title) : t('.default_sub_title')
39
41
  %div= yield
40
- .span3
42
+ .col-lg-3
41
43
  .well.sidebar-nav
42
44
  %ul.nav.nav-list= yield(:sidebar)
43
45
  - else
44
- .span12
46
+ .col-lg-12
45
47
  %div.flash-message
46
48
  = bootstrap_flash
47
49
  - if content_for?(:sub_title)
@@ -17,32 +17,33 @@
17
17
  = javascript_include_tag "application"
18
18
 
19
19
  %body
20
- .navbar.navbar-fluid-top.navbar-inverse
21
- .navbar-inner
22
- .container-fluid
23
- %a.btn.btn-navbar(data-target=".nav-collapse" data-toggle="collapse")
20
+ %nav.navbar.navbar-inverse{role: "navigation"}
21
+ .container-fluid
22
+ .navbar-header
23
+ %button.navbar-toggle{"data-target" => "#navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
24
24
  %span.icon-bar
25
25
  %span.icon-bar
26
26
  %span.icon-bar
27
- %a.brand(href=master_root_path)
27
+ %a.navbar-brand{href: master_root_path}
28
+ %span.glyphicon.glyphicon-home
28
29
  Master Dummy Backend
29
- = render "layouts/master/navbar"
30
+ = render "layouts/master/navbar"
30
31
 
31
- .container-fluid
32
- .row-fluid
32
+ .container
33
+ .row
33
34
  - if content_for?(:sidebar)
34
- .span9
35
+ .col-lg-9
35
36
  %div.flash-message
36
37
  = bootstrap_flash
37
38
  - if content_for?(:sub_title)
38
39
  .page-header
39
40
  %h3.sub-title.inline= content_for?(:sub_title) ? yield(:sub_title) : t('.default_sub_title')
40
41
  %div= yield
41
- .span3
42
+ .col-lg-3
42
43
  .well.sidebar-nav
43
44
  %ul.nav.nav-list= yield(:sidebar)
44
45
  - else
45
- .span12
46
+ .col-lg-12
46
47
  %div.flash-message
47
48
  = bootstrap_flash
48
49
  - if content_for?(:sub_title)
@@ -1,9 +1,11 @@
1
- %ul.nav
2
- %li
3
- = link_to handcart_path do
4
- %i.icon-heart
5
- Handcart
6
- %li{class: (params[:controller] == "companies") ? "active" : nil}
7
- = link_to main_app.companies_path do
8
- %i.icon-briefcase
9
- Companies
1
+ #navbar-collapse-1.collapse.navbar-collapse
2
+ %ul.nav.navbar-nav
3
+ %li
4
+ = link_to handcart_path do
5
+ %span.glyphicon.glyphicon-heart
6
+ Handcart
7
+ %li{class: (params[:controller] == "companies") ? "active" : nil}
8
+ = link_to main_app.companies_path do
9
+ %span.glyphicon.glyphicon-briefcase
10
+ Companies
11
+