callback_request_bootstrap 0.0.1

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.
Files changed (168) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +100 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/javascripts/callback_request_bootstrap/application.js +3 -0
  6. data/app/assets/stylesheets/callback_request_bootstrap/application.css.scss +3 -0
  7. data/app/assets/stylesheets/callback_request_bootstrap/requests.scss +4 -0
  8. data/app/controllers/callback_request_bootstrap/application_controller.rb +4 -0
  9. data/app/controllers/callback_request_bootstrap/requests_controller.rb +96 -0
  10. data/app/helpers/callback_request_bootstrap/application_helper.rb +4 -0
  11. data/app/helpers/callback_request_bootstrap/requests_helper.rb +19 -0
  12. data/app/models/callback_request_bootstrap/request.rb +5 -0
  13. data/app/views/callback_request_bootstrap/requests/_create_result.html.erb +8 -0
  14. data/app/views/callback_request_bootstrap/requests/_form.basic.html.erb +43 -0
  15. data/app/views/callback_request_bootstrap/requests/_form.html.erb +0 -0
  16. data/app/views/callback_request_bootstrap/requests/_form.simple_form.html.erb +49 -0
  17. data/app/views/callback_request_bootstrap/requests/_js_modal.html.erb +26 -0
  18. data/app/views/callback_request_bootstrap/requests/_modal.html.erb +20 -0
  19. data/app/views/callback_request_bootstrap/requests/create.js.erb +7 -0
  20. data/app/views/callback_request_bootstrap/requests/edit.html.erb +6 -0
  21. data/app/views/callback_request_bootstrap/requests/new.html.erb +1 -0
  22. data/app/views/layouts/callback_request_bootstrap/application.html.erb +14 -0
  23. data/config/initializers/simple_form.rb +166 -0
  24. data/config/initializers/simple_form_bootstrap.rb +136 -0
  25. data/config/locales/callback_request.en.yml +16 -0
  26. data/config/locales/callback_request.ru.yml +16 -0
  27. data/config/locales/simple_form.en.yml +31 -0
  28. data/config/routes.rb +5 -0
  29. data/lib/callback_request_bootstrap/engine.rb +12 -0
  30. data/lib/callback_request_bootstrap/version.rb +3 -0
  31. data/lib/callback_request_bootstrap.rb +4 -0
  32. data/lib/generators/callback_request_bootstrap/install_generator.rb +25 -0
  33. data/lib/generators/callback_request_bootstrap/templates/migrations/create_requests.rb +16 -0
  34. data/lib/tasks/callback_request_bootstrap_tasks.rake +4 -0
  35. data/test/callback_request_bootstrap_test.rb +7 -0
  36. data/test/dummy/README.rdoc +28 -0
  37. data/test/dummy/Rakefile +6 -0
  38. data/test/dummy/app/assets/javascripts/application.js +3 -0
  39. data/test/dummy/app/assets/javascripts/jquery-1.11.2.min.js +4 -0
  40. data/test/dummy/app/assets/javascripts/jquery-2.1.3.min.js +4 -0
  41. data/test/dummy/app/assets/stylesheets/application.css.scss +1 -0
  42. data/test/dummy/app/controllers/application_controller.rb +8 -0
  43. data/test/dummy/app/controllers/debug_controller.rb +6 -0
  44. data/test/dummy/app/helpers/application_helper.rb +2 -0
  45. data/test/dummy/app/views/debug/index.html.erb +16 -0
  46. data/test/dummy/app/views/layouts/application.html.erb +15 -0
  47. data/test/dummy/bin/bundle +3 -0
  48. data/test/dummy/bin/rails +4 -0
  49. data/test/dummy/bin/rake +4 -0
  50. data/test/dummy/bin/setup +29 -0
  51. data/test/dummy/config/application.rb +26 -0
  52. data/test/dummy/config/boot.rb +5 -0
  53. data/test/dummy/config/database.yml +54 -0
  54. data/test/dummy/config/environment.rb +5 -0
  55. data/test/dummy/config/environments/development.rb +41 -0
  56. data/test/dummy/config/environments/production.rb +79 -0
  57. data/test/dummy/config/environments/test.rb +42 -0
  58. data/test/dummy/config/initializers/assets.rb +11 -0
  59. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  60. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  61. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  62. data/test/dummy/config/initializers/inflections.rb +16 -0
  63. data/test/dummy/config/initializers/mime_types.rb +4 -0
  64. data/test/dummy/config/initializers/session_store.rb +3 -0
  65. data/test/dummy/config/initializers/simple_form.rb +166 -0
  66. data/test/dummy/config/initializers/simple_form_bootstrap.rb +136 -0
  67. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  68. data/test/dummy/config/locales/en.yml +23 -0
  69. data/test/dummy/config/locales/simple_form.en.yml +31 -0
  70. data/test/dummy/config/routes.rb +7 -0
  71. data/test/dummy/config/secrets.yml +22 -0
  72. data/test/dummy/config.ru +4 -0
  73. data/test/dummy/db/migrate/20150403222226_create_requests.rb +16 -0
  74. data/test/dummy/db/schema.rb +27 -0
  75. data/test/dummy/log/development.log +1570 -0
  76. data/test/dummy/public/404.html +67 -0
  77. data/test/dummy/public/422.html +67 -0
  78. data/test/dummy/public/500.html +66 -0
  79. data/test/dummy/public/favicon.ico +0 -0
  80. data/test/dummy/tmp/cache/assets/development/sass/6aced6a4ee939748ecf9b1329793d18e21f3e7f3/application.css.scssc +0 -0
  81. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_alerts.scssc +0 -0
  82. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_badges.scssc +0 -0
  83. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_breadcrumbs.scssc +0 -0
  84. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_button-groups.scssc +0 -0
  85. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_buttons.scssc +0 -0
  86. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_carousel.scssc +0 -0
  87. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_close.scssc +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_code.scssc +0 -0
  89. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_component-animations.scssc +0 -0
  90. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_dropdowns.scssc +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_forms.scssc +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_glyphicons.scssc +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_grid.scssc +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_input-groups.scssc +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_jumbotron.scssc +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_labels.scssc +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_list-group.scssc +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_media.scssc +0 -0
  99. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_mixins.scssc +0 -0
  100. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_modals.scssc +0 -0
  101. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_navbar.scssc +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_navs.scssc +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_normalize.scssc +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_pager.scssc +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_pagination.scssc +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_panels.scssc +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_popovers.scssc +0 -0
  108. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_print.scssc +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_progress-bars.scssc +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_responsive-embed.scssc +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_responsive-utilities.scssc +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_scaffolding.scssc +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_tables.scssc +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_thumbnails.scssc +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_tooltip.scssc +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_type.scssc +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_utilities.scssc +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_variables.scssc +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sass/718ee869a0f2dfa88cd3e1aac130baf9697d6696/_wells.scssc +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_alerts.scssc +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_background-variant.scssc +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_border-radius.scssc +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_buttons.scssc +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_center-block.scssc +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_clearfix.scssc +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_forms.scssc +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_gradients.scssc +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_grid-framework.scssc +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_grid.scssc +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_hide-text.scssc +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_image.scssc +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_labels.scssc +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_list-group.scssc +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_nav-divider.scssc +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_nav-vertical-align.scssc +0 -0
  136. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_opacity.scssc +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_pagination.scssc +0 -0
  138. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_panels.scssc +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_progress-bar.scssc +0 -0
  140. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_reset-filter.scssc +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_resize.scssc +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_responsive-visibility.scssc +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_size.scssc +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_tab-focus.scssc +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_table-row.scssc +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_text-emphasis.scssc +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_text-overflow.scssc +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sass/7d96349ccfefec93f54a58b723a0db98810ff74d/_vendor-prefixes.scssc +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sass/824891e7a161e94d30c60631d5ad49ffcc066f58/_bootstrap.scssc +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/0ae8a82e6f3efa698815c72449c15720 +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/2e95403dcbb917ca6437eeab5a90767d +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/3bcbaeef523408af8f5632a3f0d822ea +0 -0
  154. data/test/dummy/tmp/cache/assets/development/sprockets/6ba936e2555107029a6818a003401730 +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/9224343996967db929488ae8237b8253 +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/b00d18a2eb4a905fd47dd3e8fc26134a +0 -0
  158. data/test/dummy/tmp/cache/assets/development/sprockets/b4e755bffedb46ef020e7196a0cc36dd +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/c7d3f57d1eaa1109e44c8e3944e5c59b +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/e58ed93e38d0c962a358bd32577c8cfe +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  165. data/test/dummy/tmp/pids/server.pid +1 -0
  166. data/test/integration/navigation_test.rb +10 -0
  167. data/test/test_helper.rb +20 -0
  168. metadata +386 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: da7f2b5124df67e157802bef6a5cb5ed98027daa
4
+ data.tar.gz: e956428c089d0af1c3f8fde96b143ab9b0007e40
5
+ SHA512:
6
+ metadata.gz: 7847e0ee6fbf6367560b9c4d6448827e4f1884833e817f6ce324bb8c39439b5b9b4b8946eee547f79353016cdf6a3296a8c21c2a63a66d25d9a0c13617d9041c
7
+ data.tar.gz: d0d9eea6bfb864bc0a7d22530bc9e489adb1edc23d7cd9c182b4d2f3c634a3b7999013738695ee262d83d7fe1c5a809d6b4e819d287442fc57a39980e2244a32
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2015 Max Ivak
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,100 @@
1
+ = Callback Request with Bootstrap =
2
+
3
+ Rails gem to show a form for callback request in modal.
4
+ To be used with Bootstrap 3 and simple_form.
5
+
6
+
7
+ Requests for phone callbacks are stored in database.
8
+
9
+
10
+ == Installation ==
11
+
12
+ Gemfile:
13
+ ```ruby
14
+ gem 'callback_request_bootstrap'
15
+ ```
16
+
17
+ ```ruby
18
+ bundle install
19
+ ```
20
+
21
+ install using generator:
22
+ ```ruby
23
+ rails g request_callback_bootstrap:install
24
+ ```
25
+ This will add the migrations.
26
+
27
+ Migrate the database:
28
+ ```ruby
29
+ rake db:migrate
30
+ ```
31
+ It will add table 'requests' to the database.
32
+
33
+
34
+ Your application should have jquery, jquery_ujs and bootstrap.js installed.
35
+ Your application.js might be:
36
+ ```ruby
37
+ //= require jquery
38
+ //= require jquery_ujs
39
+
40
+ //= require bootstrap
41
+ or if you want to include only javascript for modal
42
+ //= require bootstrap/modal
43
+
44
+ ```
45
+
46
+ mount engine in config/routes.rb:
47
+ ```ruby
48
+ Rails.application.routes.draw do
49
+
50
+ mount CallbackRequestBootstrap::Engine => "/callback"
51
+
52
+ ..
53
+ end
54
+
55
+ ```
56
+
57
+ Link to show form in modal:
58
+ ```ruby
59
+ <%=link_to_callback_modal "Request callback", '#', :class=>'btn' %>
60
+
61
+ ```
62
+ This helper generates a link with css class 'callback_link'.
63
+
64
+ or add class 'callback_link' to your link:
65
+ ```ruby
66
+ =link_to 'Request callback', '#', :class=>'btn btn-primary callback_link'
67
+ ```
68
+
69
+ include on page (usually at the end of the page where you place the link):
70
+ ```ruby
71
+ <%= render 'callback_request_bootstrap/requests/js_modal'%>
72
+ ```
73
+ This will add necessary scripts for modal.
74
+
75
+
76
+ = Options =
77
+
78
+ == Autoclose ==
79
+ To close modal after a request is setn, use option 'autoclose' for a link:
80
+ ```ruby
81
+ <%=link_to "Show modal with autoclose", '#', :class=>'btn btn-default callback_link', :data=>{'autoclose'=>5} %>
82
+ ```
83
+ This will close modal in 5 seconds.
84
+
85
+
86
+
87
+ == Customization ==
88
+
89
+ === Form ===
90
+
91
+ Use generator to copy views to your application.
92
+ Edit views in /app/views/callback_request_bootstrap/.
93
+
94
+ If you want to edit fields in the form, then edit view '_form.simple_form.html.erb'.
95
+
96
+
97
+ === Localization ===
98
+
99
+ Copy file config/locales/callback_request.en.yml to your application in config/locales/callback_request.LANG.yml.
100
+ Edit the file.
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'CallbackRequestBootstrap'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+ load 'rails/tasks/statistics.rake'
22
+
23
+
24
+
25
+ Bundler::GemHelper.install_tasks
26
+
27
+ require 'rake/testtask'
28
+
29
+ Rake::TestTask.new(:test) do |t|
30
+ t.libs << 'lib'
31
+ t.libs << 'test'
32
+ t.pattern = 'test/**/*_test.rb'
33
+ t.verbose = false
34
+ end
35
+
36
+
37
+ task default: :test
@@ -0,0 +1,3 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require bootstrap/modal
@@ -0,0 +1,3 @@
1
+
2
+ @import "bootstrap";
3
+ @import "requests";
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ module CallbackRequestBootstrap
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,96 @@
1
+ require_dependency "callback_request_bootstrap/application_controller"
2
+
3
+ module CallbackRequestBootstrap
4
+ class RequestsController < ApplicationController
5
+ before_action :set_request, only: [:edit, :update, :destroy]
6
+ before_action :set_modal, only: [:new, :create, :create_result]
7
+
8
+ # GET /requests/new
9
+ def new
10
+ @autoclose = (params[:autoclose] || 0).to_i
11
+
12
+ #
13
+ @request = Request.new
14
+
15
+ if @modal==1
16
+ render :layout => false and return
17
+ end
18
+
19
+ end
20
+
21
+ # GET /requests/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /requests
26
+ def create
27
+ @autoclose = (params[:autoclose] || 0).to_i
28
+
29
+ @request = Request.new(request_params)
30
+ @res = @request.save
31
+
32
+
33
+ #@res = false # debug
34
+
35
+ flash.now[:notice] = @res ? t('callback_request.messages.success') : t('callback_request.messages.error')
36
+
37
+ respond_to do |format|
38
+ if @res
39
+ format.html {
40
+ redirect_to create_result_request_path(modal: @modal), notice: t('callback_request.messages.success')
41
+ }
42
+ format.js{
43
+
44
+ }
45
+ #format.json { render json: @request, status: :created, location: @request }
46
+ else
47
+ format.html {
48
+ if @modal==1
49
+ render :new, :layout => false
50
+ return
51
+ end
52
+
53
+ render :new
54
+ }
55
+
56
+ format.js{ }
57
+ #format.json { render json: @request.errors, status: :unprocessable_entity }
58
+ end
59
+ end
60
+ end
61
+
62
+ def create_result
63
+
64
+ end
65
+
66
+
67
+ # PATCH/PUT /requests/1
68
+ def update
69
+ if @request.update(request_params)
70
+ redirect_to @request, notice: 'Request was successfully updated.'
71
+ else
72
+ render :edit
73
+ end
74
+ end
75
+
76
+ # DELETE /requests/1
77
+ def destroy
78
+ @request.destroy
79
+ redirect_to requests_url, notice: 'Request was successfully destroyed.'
80
+ end
81
+
82
+ private
83
+
84
+ def set_request
85
+ @request = Request.find(params[:id])
86
+ end
87
+
88
+ def request_params
89
+ params.require(:request).permit(:name, :email, :phone, :notes)
90
+ end
91
+
92
+ def set_modal
93
+ @modal = (params[:modal] || 0).to_i rescue 0
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,4 @@
1
+ module CallbackRequestBootstrap
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,19 @@
1
+ module CallbackRequestBootstrap
2
+ module RequestsHelper
3
+
4
+ def link_to_callback_modal(title, options = nil, html_options = nil)
5
+ html_options ||= {}
6
+ html_options[:class] ||= []
7
+
8
+ if html_options[:class].is_a? Array
9
+ html_options[:class] << 'callback_link' # append as element to array
10
+ else
11
+ html_options[:class] << ' callback_link' # append with leading space to string
12
+ end
13
+
14
+ #link_to title, '#', opts.merge(html_options)
15
+ link_to title, options, html_options
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ module CallbackRequestBootstrap
2
+ class Request < ActiveRecord::Base
3
+ self.table_name = 'requests'
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+
2
+ <% if flash[:notice] %>
3
+ <div class="alert alert-<%= @res ? 'success' : 'danger'%>" role="alert"><%= flash[:notice] %></div>
4
+ <% end %>
5
+
6
+ <% if @modal==1 %>
7
+ <button type="button" class="btn btn-default" data-dismiss="modal"><%=t('callback_request.close')%></button>
8
+ <% end %>
@@ -0,0 +1,43 @@
1
+ <span><%=t('callback_request.description')%></span>
2
+
3
+ <%= form_for @request, :remote=> true, :html=>{class: "form-horizontal", role: "form"} do |f| %>
4
+ <%= hidden_field_tag :modal, @modal %>
5
+
6
+ <% if @request.errors.any? %>
7
+ <div id="error_explanation">
8
+ <h2><%=t 'callback_request.errors', n: pluralize(@request.errors.count, "error") %></h2>
9
+ <ul>
10
+ <% @request.errors.full_messages.each do |message| %>
11
+ <li><%= message %></li>
12
+ <% end %>
13
+ </ul>
14
+ </div>
15
+ <% end %>
16
+
17
+ <div class="form-group">
18
+ <%= f.label :name, t('callback_request.fields.name'), class: "col-sm-2 control-label" %>
19
+ <div class="col-sm-6">
20
+ <%= f.text_field :name, :class=>'form-control' %>
21
+ </div>
22
+ </div>
23
+ <div class="form-group">
24
+ <%= f.label :phone, t('callback_request.fields.phone'), class: "col-sm-2 control-label" %>
25
+ <div class="col-sm-6">
26
+ <%= f.text_field :phone, :class=>'form-control' %>
27
+ </div>
28
+ </div>
29
+ <div class="form-group">
30
+ <%= f.label :notes, t('callback_request.fields.notes'), class: "col-sm-2 control-label" %>
31
+ <div class="col-sm-6">
32
+ <%= f.text_area :notes, :class=>'form-control' %>
33
+ </div>
34
+ </div>
35
+
36
+ <div class="form-group">
37
+ <div class="col-sm-offset-2 col-sm-10">
38
+ <%-# = f.submit t('callback_request.submit'), :class=>'btn btn-primary' -%>
39
+ <button type="button" class="btn btn-primary" name="submit"><%=t('callback_request.submit')%></button>
40
+ </div>
41
+ </div>
42
+
43
+ <% end %>
@@ -0,0 +1,49 @@
1
+
2
+ <div id="div_callback_request">
3
+
4
+ <span><%=t('callback_request.description')%></span>
5
+
6
+ <%= simple_form_for @request, remote: true, html: {class: "form-horizontal", role: "form"} do |f| %>
7
+ <%= hidden_field_tag :modal, @modal %>
8
+ <%= hidden_field_tag :autoclose, @autoclose %>
9
+
10
+
11
+ <% if @request.errors.any? %>
12
+ <div id="error_explanation">
13
+ <h2><%=t 'callback_request.errors', n: pluralize(@request.errors.count, "error") %></h2>
14
+ <ul>
15
+ <% @request.errors.full_messages.each do |message| %>
16
+ <li><%= message %></li>
17
+ <% end %>
18
+ </ul>
19
+ </div>
20
+ <% end %>
21
+
22
+ <div class="form-group">
23
+ <%= f.label :name, t('callback_request.fields.name'), class: "col-sm-2 control-label" %>
24
+ <div class="col-sm-6">
25
+ <%= f.text_field :name, :class=>'form-control', required: true %>
26
+ </div>
27
+ </div>
28
+ <div class="form-group">
29
+ <%= f.label :phone, t('callback_request.fields.phone'), class: "col-sm-2 control-label" %>
30
+ <div class="col-sm-6">
31
+ <%= f.text_field :phone, :class=>'form-control', required: true %>
32
+ </div>
33
+ </div>
34
+ <div class="form-group">
35
+ <%= f.label :notes, t('callback_request.fields.notes'), class: "col-sm-2 control-label" %>
36
+ <div class="col-sm-6">
37
+ <%= f.text_area :notes, :class=>'form-control' %>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="form-group">
42
+ <div class="col-sm-offset-2 col-sm-10">
43
+ <%= f.submit t('callback_request.submit'), :class=>'btn btn-primary' %>
44
+ </div>
45
+ </div>
46
+
47
+ <% end %>
48
+
49
+ </div>
@@ -0,0 +1,26 @@
1
+ <%= render 'callback_request_bootstrap/requests/modal' %>
2
+
3
+ <script>
4
+
5
+ $( document ).ready(function() {
6
+ $('.callback_link').click(function(event) {
7
+ $('#modCallback .divContFormCallback').html('');
8
+ $('#modCallback').modal('show');
9
+
10
+ var v = $(this).attr('data-autoclose');
11
+ var autoclose = v ? v : 0;
12
+
13
+ $.get("<%=callback_request_bootstrap.new_request_path()%>", {modal: "1", autoclose: autoclose},
14
+ function(data) {
15
+ $('#modCallback .divContFormCallback').html(data);
16
+
17
+ //callbackform_after_load();
18
+ }
19
+ );
20
+
21
+ event.preventDefault();
22
+ });
23
+
24
+ });
25
+
26
+ </script>