wallaby 5.0.1 → 5.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -3
  3. data/app/assets/images/wallaby/404.png +0 -0
  4. data/app/assets/images/wallaby/422.png +0 -0
  5. data/app/assets/images/wallaby/500.png +0 -0
  6. data/app/assets/javascripts/wallaby/application.js +1 -15
  7. data/app/assets/javascripts/wallaby/auto_select.js +77 -0
  8. data/app/assets/javascripts/wallaby/base.js +17 -0
  9. data/app/assets/javascripts/wallaby/setup.js.erb +60 -0
  10. data/app/assets/stylesheets/wallaby/application.scss +1 -51
  11. data/app/assets/stylesheets/wallaby/base/_layout.scss +257 -9
  12. data/app/assets/stylesheets/wallaby/base/_layout_desktop.scss +53 -0
  13. data/app/assets/stylesheets/wallaby/base/_mixins.scss +119 -0
  14. data/app/assets/stylesheets/wallaby/base/_override.scss +10 -0
  15. data/app/assets/stylesheets/wallaby/base/_vars.scss +72 -2
  16. data/app/assets/stylesheets/wallaby/base.scss +27 -0
  17. data/app/assets/stylesheets/wallaby/components/_auto_select.scss +119 -0
  18. data/app/assets/stylesheets/wallaby/components/_auto_select_desktop.scss +7 -0
  19. data/app/assets/stylesheets/wallaby/components/_color_square.scss +8 -0
  20. data/app/assets/stylesheets/wallaby/components/_filters.scss +14 -0
  21. data/app/assets/stylesheets/wallaby/components/_links.scss +25 -0
  22. data/app/assets/stylesheets/wallaby/components/_pagination.scss +35 -91
  23. data/app/assets/stylesheets/wallaby/components/_query.scss +101 -0
  24. data/app/assets/stylesheets/wallaby/components/_text.scss +6 -6
  25. data/app/assets/stylesheets/wallaby/pages/_error.scss +108 -0
  26. data/app/assets/stylesheets/wallaby/pages/_form.scss +40 -0
  27. data/app/assets/stylesheets/wallaby/pages/_index.scss +193 -0
  28. data/app/assets/stylesheets/wallaby/pages/_index_desktop.scss +22 -0
  29. data/app/assets/stylesheets/wallaby/pages/_show.scss +21 -0
  30. data/app/controllers/wallaby/abstract_resources_controller.rb +334 -0
  31. data/app/controllers/wallaby/application_controller.rb +45 -15
  32. data/app/controllers/wallaby/base_controller.rb +30 -0
  33. data/app/controllers/wallaby/resources_controller.rb +2 -131
  34. data/app/controllers/wallaby/secure_controller.rb +38 -24
  35. data/app/routes/wallaby/resources_router.rb +40 -43
  36. data/app/security/ability.rb +4 -28
  37. data/app/views/layouts/wallaby/application.html.erb +11 -6
  38. data/app/views/layouts/wallaby/error.html.erb +26 -4
  39. data/app/views/wallaby/error.html.erb +11 -0
  40. data/app/views/wallaby/error.json.jbuilder +8 -0
  41. data/app/views/wallaby/{shared → resources}/_flash_messages.html.erb +0 -0
  42. data/app/views/wallaby/resources/_footer.html.erb +1 -0
  43. data/app/views/wallaby/resources/_form.html.erb +2 -2
  44. data/app/views/wallaby/resources/_header.html.erb +38 -0
  45. data/app/views/wallaby/resources/_imodal.html.erb +13 -0
  46. data/app/views/wallaby/resources/_index_actions.html.erb +4 -1
  47. data/app/views/wallaby/resources/_index_filters.html.erb +23 -0
  48. data/app/views/wallaby/resources/_index_pagination.html.erb +63 -0
  49. data/app/views/wallaby/resources/_index_query.html.erb +23 -0
  50. data/app/views/wallaby/resources/_logo.html.erb +1 -0
  51. data/app/views/wallaby/resources/_navs.html.erb +9 -0
  52. data/app/views/wallaby/resources/_resource_actions.html.erb +3 -3
  53. data/app/views/wallaby/resources/{shared/_resource_nav.html.erb → _resource_navs.html.erb} +6 -6
  54. data/app/views/wallaby/resources/_title.html.erb +1 -0
  55. data/app/views/wallaby/resources/_user_menu.html.erb +5 -0
  56. data/app/views/wallaby/resources/bad_request.json.jbuilder +7 -0
  57. data/app/views/wallaby/resources/edit.html.erb +16 -12
  58. data/app/views/wallaby/resources/form/_belongs_to.html.erb +63 -12
  59. data/app/views/wallaby/resources/form/_bigint.html.erb +10 -1
  60. data/app/views/wallaby/resources/form/_bigserial.html.erb +18 -0
  61. data/app/views/wallaby/resources/form/_binary.html.erb +11 -2
  62. data/app/views/wallaby/resources/form/_bit.html.erb +10 -1
  63. data/app/views/wallaby/resources/form/_bit_varying.html.erb +10 -1
  64. data/app/views/wallaby/resources/form/_blob.html.erb +21 -0
  65. data/app/views/wallaby/resources/form/_boolean.html.erb +9 -0
  66. data/app/views/wallaby/resources/form/_box.html.erb +21 -0
  67. data/app/views/wallaby/resources/form/_cidr.html.erb +13 -1
  68. data/app/views/wallaby/resources/form/_circle.html.erb +21 -0
  69. data/app/views/wallaby/resources/form/_citext.html.erb +11 -2
  70. data/app/views/wallaby/resources/form/_color.html.erb +11 -2
  71. data/app/views/wallaby/resources/form/_date.html.erb +12 -3
  72. data/app/views/wallaby/resources/form/_daterange.html.erb +14 -5
  73. data/app/views/wallaby/resources/form/_datetime.html.erb +12 -3
  74. data/app/views/wallaby/resources/form/_decimal.html.erb +10 -1
  75. data/app/views/wallaby/resources/form/_dropdown.html.erb +18 -0
  76. data/app/views/wallaby/resources/form/_email.html.erb +9 -0
  77. data/app/views/wallaby/resources/form/_file.html.erb +21 -0
  78. data/app/views/wallaby/resources/form/_float.html.erb +10 -1
  79. data/app/views/wallaby/resources/form/_has_and_belongs_to_many.html.erb +53 -7
  80. data/app/views/wallaby/resources/form/_has_many.html.erb +52 -7
  81. data/app/views/wallaby/resources/form/_has_one.html.erb +10 -2
  82. data/app/views/wallaby/resources/form/_hstore.html.erb +12 -5
  83. data/app/views/wallaby/resources/form/_inet.html.erb +13 -1
  84. data/app/views/wallaby/resources/form/_int4range.html.erb +11 -2
  85. data/app/views/wallaby/resources/form/_int8range.html.erb +11 -2
  86. data/app/views/wallaby/resources/form/_integer.html.erb +10 -1
  87. data/app/views/wallaby/resources/form/_json.html.erb +13 -6
  88. data/app/views/wallaby/resources/form/_jsonb.html.erb +13 -6
  89. data/app/views/wallaby/resources/form/_line.html.erb +21 -0
  90. data/app/views/wallaby/resources/form/_longblob.html.erb +21 -0
  91. data/app/views/wallaby/resources/form/_longtext.html.erb +30 -0
  92. data/app/views/wallaby/resources/form/_lseg.html.erb +21 -0
  93. data/app/views/wallaby/resources/form/_ltree.html.erb +17 -1
  94. data/app/views/wallaby/resources/form/_macaddr.html.erb +13 -1
  95. data/app/views/wallaby/resources/form/_markdown.html.erb +29 -0
  96. data/app/views/wallaby/resources/form/_mediumblob.html.erb +21 -0
  97. data/app/views/wallaby/resources/form/_mediumtext.html.erb +30 -0
  98. data/app/views/wallaby/resources/form/_money.html.erb +10 -1
  99. data/app/views/wallaby/resources/form/_numrange.html.erb +11 -2
  100. data/app/views/wallaby/resources/form/_password.html.erb +14 -1
  101. data/app/views/wallaby/resources/form/_path.html.erb +17 -0
  102. data/app/views/wallaby/resources/form/_point.html.erb +11 -2
  103. data/app/views/wallaby/resources/form/_polygon.html.erb +17 -0
  104. data/app/views/wallaby/resources/form/_serial.html.erb +18 -0
  105. data/app/views/wallaby/resources/form/_sti.html.erb +18 -0
  106. data/app/views/wallaby/resources/form/_string.html.erb +14 -1
  107. data/app/views/wallaby/resources/form/_text.html.erb +11 -2
  108. data/app/views/wallaby/resources/form/_time.html.erb +12 -3
  109. data/app/views/wallaby/resources/form/_tinyblob.html.erb +21 -0
  110. data/app/views/wallaby/resources/form/_tinytext.html.erb +30 -0
  111. data/app/views/wallaby/resources/form/_tsrange.html.erb +14 -5
  112. data/app/views/wallaby/resources/form/_tstzrange.html.erb +14 -5
  113. data/app/views/wallaby/resources/form/_tsvector.html.erb +9 -0
  114. data/app/views/wallaby/resources/form/_unsigned_bigint.html.erb +18 -0
  115. data/app/views/wallaby/resources/form/_unsigned_decimal.html.erb +18 -0
  116. data/app/views/wallaby/resources/form/_unsigned_float.html.erb +18 -0
  117. data/app/views/wallaby/resources/form/_unsigned_integer.html.erb +18 -0
  118. data/app/views/wallaby/resources/form/_uuid.html.erb +10 -1
  119. data/app/views/wallaby/resources/form/_xml.html.erb +11 -5
  120. data/app/views/wallaby/resources/form.json.jbuilder +5 -0
  121. data/app/views/wallaby/{core → resources}/home.html.erb +1 -1
  122. data/app/views/wallaby/resources/index/_belongs_to.html.erb +5 -1
  123. data/app/views/wallaby/resources/index/_bigint.html.erb +4 -0
  124. data/app/views/wallaby/resources/index/_bigserial.html.erb +5 -0
  125. data/app/views/wallaby/resources/index/_binary.html.erb +5 -1
  126. data/app/views/wallaby/resources/index/_bit.html.erb +4 -0
  127. data/app/views/wallaby/resources/index/_bit_varying.html.erb +4 -0
  128. data/app/views/wallaby/resources/index/_blob.html.erb +5 -0
  129. data/app/views/wallaby/resources/index/_boolean.html.erb +5 -1
  130. data/app/views/wallaby/resources/index/_box.html.erb +16 -0
  131. data/app/views/wallaby/resources/index/_cidr.html.erb +5 -1
  132. data/app/views/wallaby/resources/index/_circle.html.erb +16 -0
  133. data/app/views/wallaby/resources/index/_citext.html.erb +5 -1
  134. data/app/views/wallaby/resources/index/_color.html.erb +6 -1
  135. data/app/views/wallaby/resources/index/_date.html.erb +4 -0
  136. data/app/views/wallaby/resources/index/_daterange.html.erb +5 -1
  137. data/app/views/wallaby/resources/index/_datetime.html.erb +5 -1
  138. data/app/views/wallaby/resources/index/_decimal.html.erb +4 -0
  139. data/app/views/wallaby/resources/index/_email.html.erb +4 -0
  140. data/app/views/wallaby/resources/index/_float.html.erb +4 -0
  141. data/app/views/wallaby/resources/index/_has_and_belongs_to_many.html.erb +6 -2
  142. data/app/views/wallaby/resources/index/_has_many.html.erb +6 -2
  143. data/app/views/wallaby/resources/index/_has_one.html.erb +5 -1
  144. data/app/views/wallaby/resources/index/_hstore.html.erb +6 -2
  145. data/app/views/wallaby/resources/index/_inet.html.erb +5 -1
  146. data/app/views/wallaby/resources/index/_int4range.html.erb +4 -0
  147. data/app/views/wallaby/resources/index/_int8range.html.erb +4 -0
  148. data/app/views/wallaby/resources/index/_integer.html.erb +4 -0
  149. data/app/views/wallaby/resources/index/_json.html.erb +5 -2
  150. data/app/views/wallaby/resources/index/_jsonb.html.erb +5 -2
  151. data/app/views/wallaby/resources/index/_line.html.erb +16 -0
  152. data/app/views/wallaby/resources/index/_longblob.html.erb +5 -0
  153. data/app/views/wallaby/resources/index/_longtext.html.erb +16 -0
  154. data/app/views/wallaby/resources/index/_lseg.html.erb +16 -0
  155. data/app/views/wallaby/resources/index/_ltree.html.erb +5 -1
  156. data/app/views/wallaby/resources/index/_macaddr.html.erb +4 -0
  157. data/app/views/wallaby/resources/index/_mediumblob.html.erb +5 -0
  158. data/app/views/wallaby/resources/index/_mediumtext.html.erb +16 -0
  159. data/app/views/wallaby/resources/index/_money.html.erb +4 -0
  160. data/app/views/wallaby/resources/index/_numrange.html.erb +4 -0
  161. data/app/views/wallaby/resources/index/_password.html.erb +9 -0
  162. data/app/views/wallaby/resources/index/_path.html.erb +16 -0
  163. data/app/views/wallaby/resources/index/_point.html.erb +4 -0
  164. data/app/views/wallaby/resources/index/_polygon.html.erb +16 -0
  165. data/app/views/wallaby/resources/index/_raw.html.erb +9 -0
  166. data/app/views/wallaby/resources/index/_serial.html.erb +5 -0
  167. data/app/views/wallaby/resources/index/_sti.html.erb +16 -0
  168. data/app/views/wallaby/resources/index/_string.html.erb +5 -1
  169. data/app/views/wallaby/resources/index/_text.html.erb +5 -1
  170. data/app/views/wallaby/resources/index/_time.html.erb +4 -0
  171. data/app/views/wallaby/resources/index/_tinyblob.html.erb +5 -0
  172. data/app/views/wallaby/resources/index/_tinytext.html.erb +16 -0
  173. data/app/views/wallaby/resources/index/_tsrange.html.erb +5 -1
  174. data/app/views/wallaby/resources/index/_tstzrange.html.erb +5 -1
  175. data/app/views/wallaby/resources/index/_tsvector.html.erb +5 -1
  176. data/app/views/wallaby/resources/index/_unsigned_bigint.html.erb +5 -0
  177. data/app/views/wallaby/resources/index/_unsigned_decimal.html.erb +5 -0
  178. data/app/views/wallaby/resources/index/_unsigned_float.html.erb +5 -0
  179. data/app/views/wallaby/resources/index/_unsigned_integer.html.erb +5 -0
  180. data/app/views/wallaby/resources/index/_uuid.html.erb +5 -1
  181. data/app/views/wallaby/resources/index/_xml.html.erb +5 -1
  182. data/app/views/wallaby/resources/index.csv.erb +26 -0
  183. data/app/views/wallaby/resources/index.html.erb +47 -59
  184. data/app/views/wallaby/resources/index.json.jbuilder +5 -0
  185. data/app/views/wallaby/resources/new.html.erb +12 -11
  186. data/app/views/wallaby/resources/show/_belongs_to.html.erb +5 -1
  187. data/app/views/wallaby/resources/show/_bigint.html.erb +4 -0
  188. data/app/views/wallaby/resources/show/_bigserial.html.erb +5 -0
  189. data/app/views/wallaby/resources/show/_binary.html.erb +5 -1
  190. data/app/views/wallaby/resources/show/_bit.html.erb +4 -0
  191. data/app/views/wallaby/resources/show/_bit_varying.html.erb +4 -0
  192. data/app/views/wallaby/resources/show/_blob.html.erb +5 -0
  193. data/app/views/wallaby/resources/show/_boolean.html.erb +5 -1
  194. data/app/views/wallaby/resources/show/_box.html.erb +9 -0
  195. data/app/views/wallaby/resources/show/_cidr.html.erb +5 -1
  196. data/app/views/wallaby/resources/show/_circle.html.erb +9 -0
  197. data/app/views/wallaby/resources/show/_citext.html.erb +4 -0
  198. data/app/views/wallaby/resources/show/_color.html.erb +6 -1
  199. data/app/views/wallaby/resources/show/_date.html.erb +4 -0
  200. data/app/views/wallaby/resources/show/_daterange.html.erb +4 -0
  201. data/app/views/wallaby/resources/show/_datetime.html.erb +4 -0
  202. data/app/views/wallaby/resources/show/_decimal.html.erb +4 -0
  203. data/app/views/wallaby/resources/show/_email.html.erb +4 -0
  204. data/app/views/wallaby/resources/show/_float.html.erb +4 -0
  205. data/app/views/wallaby/resources/show/_has_and_belongs_to_many.html.erb +6 -2
  206. data/app/views/wallaby/resources/show/_has_many.html.erb +6 -2
  207. data/app/views/wallaby/resources/show/_has_one.html.erb +5 -1
  208. data/app/views/wallaby/resources/show/_hstore.html.erb +4 -0
  209. data/app/views/wallaby/resources/show/_image.html.erb +9 -0
  210. data/app/views/wallaby/resources/show/_inet.html.erb +5 -1
  211. data/app/views/wallaby/resources/show/_int4range.html.erb +4 -0
  212. data/app/views/wallaby/resources/show/_int8range.html.erb +4 -0
  213. data/app/views/wallaby/resources/show/_integer.html.erb +4 -0
  214. data/app/views/wallaby/resources/show/_json.html.erb +4 -0
  215. data/app/views/wallaby/resources/show/_jsonb.html.erb +4 -0
  216. data/app/views/wallaby/resources/show/_line.html.erb +9 -0
  217. data/app/views/wallaby/resources/show/_longblob.html.erb +5 -0
  218. data/app/views/wallaby/resources/show/_longtext.html.erb +5 -0
  219. data/app/views/wallaby/resources/show/_lseg.html.erb +9 -0
  220. data/app/views/wallaby/resources/show/_ltree.html.erb +4 -0
  221. data/app/views/wallaby/resources/show/_macaddr.html.erb +4 -0
  222. data/app/views/wallaby/resources/show/_mediumblob.html.erb +5 -0
  223. data/app/views/wallaby/resources/show/_mediumtext.html.erb +5 -0
  224. data/app/views/wallaby/resources/show/_money.html.erb +4 -0
  225. data/app/views/wallaby/resources/show/_numrange.html.erb +4 -0
  226. data/app/views/wallaby/resources/show/_password.html.erb +9 -0
  227. data/app/views/wallaby/resources/show/_path.html.erb +9 -0
  228. data/app/views/wallaby/resources/show/_point.html.erb +4 -0
  229. data/app/views/wallaby/resources/show/_polygon.html.erb +9 -0
  230. data/app/views/wallaby/resources/show/_raw.html.erb +9 -0
  231. data/app/views/wallaby/resources/show/_serial.html.erb +5 -0
  232. data/app/views/wallaby/resources/show/_sti.html.erb +5 -0
  233. data/app/views/wallaby/resources/show/_string.html.erb +4 -0
  234. data/app/views/wallaby/resources/show/_text.html.erb +4 -0
  235. data/app/views/wallaby/resources/show/_time.html.erb +4 -0
  236. data/app/views/wallaby/resources/show/_tinyblob.html.erb +5 -0
  237. data/app/views/wallaby/resources/show/_tinytext.html.erb +5 -0
  238. data/app/views/wallaby/resources/show/_tsrange.html.erb +4 -0
  239. data/app/views/wallaby/resources/show/_tstzrange.html.erb +4 -0
  240. data/app/views/wallaby/resources/show/_tsvector.html.erb +4 -0
  241. data/app/views/wallaby/resources/show/_unsigned_bigint.html.erb +5 -0
  242. data/app/views/wallaby/resources/show/_unsigned_decimal.html.erb +5 -0
  243. data/app/views/wallaby/resources/show/_unsigned_float.html.erb +5 -0
  244. data/app/views/wallaby/resources/show/_unsigned_integer.html.erb +5 -0
  245. data/app/views/wallaby/resources/show/_uuid.html.erb +4 -0
  246. data/app/views/wallaby/resources/show/_xml.html.erb +4 -0
  247. data/app/views/wallaby/resources/show.html.erb +14 -24
  248. data/app/views/wallaby/resources/show.json.jbuilder +5 -0
  249. data/config/brakeman.ignore +26 -0
  250. data/config/locales/wallaby.en.yml +91 -0
  251. data/config/massa.yml +45 -0
  252. data/config/rails_best_practices.yml +42 -0
  253. data/config/routes.rb +29 -23
  254. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/association_builder.rb +39 -0
  255. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/polymorphic_builder.rb +44 -0
  256. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/sti_builder.rb +42 -0
  257. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb +41 -94
  258. data/lib/adaptors/wallaby/active_record/model_decorator/title_field_finder.rb +24 -14
  259. data/lib/adaptors/wallaby/active_record/model_decorator.rb +118 -64
  260. data/lib/adaptors/wallaby/active_record/model_finder.rb +44 -15
  261. data/lib/adaptors/wallaby/active_record/model_pagination_provider.rb +30 -0
  262. data/lib/adaptors/wallaby/active_record/model_service_provider/normalizer.rb +42 -0
  263. data/lib/adaptors/wallaby/active_record/model_service_provider/permitter.rb +64 -0
  264. data/lib/adaptors/wallaby/active_record/model_service_provider/querier/transformer.rb +70 -0
  265. data/lib/adaptors/wallaby/active_record/model_service_provider/querier.rb +102 -0
  266. data/lib/adaptors/wallaby/active_record/model_service_provider/validator.rb +29 -0
  267. data/lib/adaptors/wallaby/active_record/model_service_provider.rb +137 -0
  268. data/lib/adaptors/wallaby/active_record.rb +4 -1
  269. data/lib/decorators/wallaby/abstract_resource_decorator.rb +74 -0
  270. data/lib/decorators/wallaby/resource_decorator.rb +5 -76
  271. data/lib/errors/wallaby/model_not_found.rb +5 -1
  272. data/lib/errors/wallaby/not_found.rb +4 -0
  273. data/lib/errors/wallaby/resource_not_found.rb +5 -1
  274. data/lib/forms/wallaby/form_builder.rb +42 -19
  275. data/lib/helpers/wallaby/application_helper.rb +34 -24
  276. data/lib/helpers/wallaby/base_helper.rb +52 -0
  277. data/lib/helpers/wallaby/form_helper.rb +40 -16
  278. data/lib/helpers/wallaby/index_helper.rb +59 -0
  279. data/lib/helpers/wallaby/links_helper.rb +150 -81
  280. data/lib/helpers/wallaby/resources_helper.rb +41 -46
  281. data/lib/helpers/wallaby/secure_helper.rb +36 -19
  282. data/lib/helpers/wallaby/styling_helper.rb +53 -44
  283. data/lib/interfaces/wallaby/mode.rb +19 -12
  284. data/lib/interfaces/wallaby/model_decorator.rb +176 -50
  285. data/lib/interfaces/wallaby/model_finder.rb +7 -3
  286. data/lib/interfaces/wallaby/model_pagination_provider.rb +104 -0
  287. data/lib/interfaces/wallaby/model_service_provider.rb +71 -0
  288. data/lib/paginators/wallaby/abstract_resource_paginator.rb +23 -0
  289. data/lib/paginators/wallaby/resource_paginator.rb +6 -0
  290. data/lib/parsers/wallaby/parser.rb +32 -0
  291. data/lib/responders/wallaby/abstract_responder.rb +68 -0
  292. data/lib/responders/wallaby/resources_responder.rb +6 -0
  293. data/lib/servicers/wallaby/abstract_model_servicer.rb +48 -0
  294. data/lib/servicers/wallaby/model_servicer.rb +5 -0
  295. data/lib/services/wallaby/link_options_normalizer.rb +16 -0
  296. data/lib/services/wallaby/lookup_context_wrapper.rb +23 -30
  297. data/lib/services/wallaby/map/mode_mapper.rb +19 -0
  298. data/lib/services/wallaby/map/model_class_collector.rb +41 -0
  299. data/lib/services/wallaby/map/model_class_mapper.rb +24 -0
  300. data/lib/services/wallaby/map.rb +76 -39
  301. data/lib/services/wallaby/partial_renderer.rb +60 -0
  302. data/lib/services/wallaby/prefixes_builder.rb +54 -0
  303. data/lib/services/wallaby/sorting/hash_builder.rb +16 -0
  304. data/lib/services/wallaby/sorting/link_builder.rb +45 -0
  305. data/lib/services/wallaby/sorting/next_builder.rb +54 -0
  306. data/lib/services/wallaby/url_for.rb +36 -0
  307. data/lib/tree/wallaby/node.rb +17 -0
  308. data/lib/utils/wallaby/utils.rb +67 -22
  309. data/lib/wallaby/configuration/features.rb +12 -0
  310. data/lib/wallaby/configuration/metadata.rb +12 -0
  311. data/lib/wallaby/configuration/models.rb +27 -12
  312. data/lib/wallaby/configuration/pagination.rb +12 -0
  313. data/lib/wallaby/configuration/security.rb +55 -24
  314. data/lib/wallaby/configuration.rb +38 -19
  315. data/lib/wallaby/engine.rb +84 -39
  316. data/lib/wallaby/version.rb +1 -1
  317. data/lib/wallaby.rb +22 -3
  318. metadata +200 -55
  319. data/app/assets/javascripts/wallaby/form.js +0 -8
  320. data/app/assets/stylesheets/wallaby/base/_functions.scss +0 -0
  321. data/app/assets/stylesheets/wallaby/base/_normalize.scss +0 -0
  322. data/app/assets/stylesheets/wallaby/base/_reset.scss +0 -0
  323. data/app/assets/stylesheets/wallaby/components/_forms.scss +0 -53
  324. data/app/assets/stylesheets/wallaby/components/_nav.scss +0 -19
  325. data/app/assets/stylesheets/wallaby/components/_tables.scss +0 -78
  326. data/app/assets/stylesheets/wallaby/form.scss +0 -11
  327. data/app/controllers/wallaby/core_controller.rb +0 -28
  328. data/app/views/layouts/wallaby/_footer.html.erb +0 -2
  329. data/app/views/layouts/wallaby/_header.html.erb +0 -57
  330. data/app/views/layouts/wallaby/_navs.html.erb +0 -1
  331. data/app/views/wallaby/errors/access_denied.html.erb +0 -1
  332. data/app/views/wallaby/errors/not_authenticated.html.erb +0 -1
  333. data/app/views/wallaby/errors/not_found.html.erb +0 -6
  334. data/app/views/wallaby/errors/unprocessable_entity.erb +0 -1
  335. data/config/locales/en.yml +0 -29
  336. data/lib/adaptors/wallaby/active_record/model_operator/normalizer.rb +0 -44
  337. data/lib/adaptors/wallaby/active_record/model_operator/permitter.rb +0 -50
  338. data/lib/adaptors/wallaby/active_record/model_operator/querier.rb +0 -47
  339. data/lib/adaptors/wallaby/active_record/model_operator/validator.rb +0 -16
  340. data/lib/adaptors/wallaby/active_record/model_operator.rb +0 -82
  341. data/lib/errors/wallaby/deprecated.rb +0 -4
  342. data/lib/errors/wallaby/operation_not_found.rb +0 -4
  343. data/lib/handlers/wallaby/cached_compiled_erb.rb +0 -14
  344. data/lib/helpers/wallaby/core_helper.rb +0 -50
  345. data/lib/helpers/wallaby/paginatable_helper.rb +0 -9
  346. data/lib/helpers/wallaby/sorting_helper.rb +0 -43
  347. data/lib/interfaces/wallaby/model_operator.rb +0 -31
  348. data/lib/services/wallaby/decorator_finder.rb +0 -16
  349. data/lib/services/wallaby/model_servicer.rb +0 -38
  350. data/lib/services/wallaby/servicer_finder.rb +0 -5
@@ -1,28 +1,28 @@
1
- <nav class="pull-right">
2
- <ul class="nav nav-pills">
1
+ <nav>
2
+ <ul>
3
3
  <%# list %>
4
4
  <li role="presentation">
5
- <%= index_link { ct 'link.list' } %>
5
+ <%= index_link(current_model_class, html_options: { class: 'resources__index' }) {} %>
6
6
  </li>
7
7
 
8
8
  <%# show %>
9
9
  <% if action_name == 'edit' %>
10
10
  <li role="presentation">
11
- <%= show_link(resource) { ct 'link.show' } %>
11
+ <%= show_link(resource, html_options: { class: 'resource__show' }) {} %>
12
12
  </li>
13
13
  <% end %>
14
14
 
15
15
  <%# edit %>
16
16
  <% if action_name == 'show' %>
17
17
  <li role="presentation">
18
- <%= edit_link(resource) { ct 'link.edit' } %>
18
+ <%= edit_link(resource) {} %>
19
19
  </li>
20
20
  <% end %>
21
21
 
22
22
  <%# delete %>
23
23
  <% if action_name == 'show' %>
24
24
  <li role="presentation">
25
- <%= delete_link resource %>
25
+ <%= delete_link(resource) {} %>
26
26
  </li>
27
27
  <% end %>
28
28
  </ul>
@@ -0,0 +1 @@
1
+ Wallaby
@@ -0,0 +1,5 @@
1
+ <ul class="dropdown-menu">
2
+ <% if logout_path.present? %>
3
+ <li><%= link_to 'Sign out', logout_path, method: logout_method %></li>
4
+ <% end %>
5
+ </ul>
@@ -0,0 +1,7 @@
1
+ # returned error object if frontend needs it
2
+ decorated = decorate resource
3
+ json.error do
4
+ json.code 400
5
+ json.message t('json_errors.bad_request')
6
+ json.errors decorated.errors
7
+ end
@@ -1,14 +1,18 @@
1
- <% decorated = decorate resource %>
2
- <section>
3
- <%= render 'wallaby/resources/shared/resource_nav' %>
4
- <div class="page-header">
1
+ <%
2
+ # decorate first on every page or partial
3
+ decorated = decorate resource
4
+ %>
5
+ <article class="resource">
6
+ <div class="resource__header">
5
7
  <h1>Edit # <%= decorated.id %></h1>
8
+ <%= render 'resource_navs' %>
6
9
  </div>
7
- <%= render 'wallaby/shared/flash_messages' %>
8
- <%= form_for decorated, url: wallaby_engine.resource_path, method: :put, html: { :multipart => true }, builder: Wallaby::FormBuilder do |form| %>
9
- <%= render 'form', form: form, decorated: decorated %>
10
- <% end %>
11
- </section>
12
-
13
- <% content_for :custom_stylesheet, stylesheet_link_tag('wallaby/form', media: 'all', 'data-turbolinks-track' => true) %>
14
- <% content_for :custom_javascript, javascript_include_tag('wallaby/form', 'data-turbolinks-track' => true) %>
10
+ <%= render 'flash_messages' %>
11
+ <section>
12
+ <div class="resource__container">
13
+ <%= form_for decorated, url: wallaby_engine.resource_path, method: :put, html: { :multipart => true }, builder: Wallaby::FormBuilder do |form| %>
14
+ <%= render 'form', form: form, decorated: decorated %>
15
+ <% end %>
16
+ </div>
17
+ </section>
18
+ </article>
@@ -1,21 +1,72 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <%
11
+ decorated = decorate value
12
+ readonly = cannot? :edit, metadata[:class]
13
+ %>
1
14
  <div class="form-group <%= form.error_class field_name %>">
2
15
  <%= form.label metadata[:foreign_key], metadata[:label] %>
3
16
  <div class="row">
4
- <% if metadata[:is_polymorphic] %>
5
- <div class="col-xs-6 col-sm-3">
6
- <%= form.select metadata[:polymorphic_type], metadata[:polymorphic_list].try(:map, &:to_s), { include_blank: true }, { class: 'form-control' } %>
7
- </div>
8
- <div class="col-xs-3">
9
- <%= form.text_field metadata[:foreign_key], class: 'form-control' %>
17
+ <% if readonly %>
18
+ <div class="col-xs-12">
19
+ <%= decorated.try :to_label %>
10
20
  </div>
11
21
  <% else %>
12
- <div class="col-xs-6 col-sm-3">
13
- <%= form.select metadata[:foreign_key], model_choices(model_decorator metadata[:class]), { include_blank: true }, { class: 'form-control' } %>
14
- <p class="help-block">
15
- <%= new_link metadata[:class], prepend: 'Or' %>
16
- </p>
17
- </div>
22
+ <%
23
+ wildcard = metadata[:wildcard] || Wallaby::WILDCARD
24
+ url = unless metadata[:is_polymorphic]
25
+ remote_url(metadata[:remote_url], metadata[:class], wildcard)
26
+ end || 'url'
27
+ %>
28
+ <span class="auto_select" data-init="belongs_to" data-url="<%= url %>" data-wildcard="<%= wildcard %>">
29
+ <% # polymorphic class dropdown box
30
+ # with remote url for typeahead to use
31
+ if metadata[:is_polymorphic] %>
32
+ <div class="col-xs-6 col-sm-4 auto_select--spacing">
33
+ <%= form.select metadata[:polymorphic_type], polymorphic_options(metadata, wildcard, selected: object.public_send(metadata[:polymorphic_type])), { include_blank: true }, { class: 'form-control' } %>
34
+ </div>
35
+ <% end %>
36
+ <div class="col-xs-12 col-sm-6">
37
+ <%= form.text_field metadata[:foreign_key], value: nil, class: 'form-control', placeholder: t('labels.auto_select_hint') %>
38
+ </div>
39
+ <ul>
40
+ <% if decorated.present? %>
41
+ <li>
42
+ <%= form.hidden_field metadata[:foreign_key], value: decorated.primary_key_value, id: nil %>
43
+ <a href="javascript:;"><%= decorated.to_label %></a>
44
+ </li>
45
+ <% end %>
46
+ </ul>
47
+ </span>
18
48
  <% end %>
19
49
  </div>
20
50
  <%= form.error_messages field_name %>
51
+ <% unless metadata[:is_polymorphic] %>
52
+ <p class="help-block">
53
+ <%= new_link metadata[:class] %>
54
+ </p>
55
+ <% end %>
21
56
  </div>
57
+
58
+ <% # load script for only once
59
+ unless @belongs_to_init
60
+ @belongs_to_init = true
61
+ content_for :custom_javascript do
62
+ javascript_tag do %>
63
+ jQuery(document).off(readyPrefix('.belongs_to')).on(readyPrefix('.belongs_to'), function () {
64
+ jQuery('[data-init="belongs_to"]').on('change', 'select', function () {
65
+ var $option = jQuery(this.selectedOptions);
66
+ var $span = $(this).parents('span:first');
67
+ $span.data('url', $option.data('url')).trigger('reload');
68
+ }).trigger('change').auto_select();
69
+ });
70
+ <% end
71
+ end
72
+ end %>
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.number_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>
@@ -0,0 +1,18 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-xs-6 col-sm-4">
14
+ <%= form.number_field field_name, class: 'form-control' %>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ </div>
@@ -1,10 +1,19 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-3">
13
+ <div class="col-sm-12">
5
14
  <%= form.label field_name, class: 'btn btn-default' do %>
6
15
  <%= form.file_field field_name, class: 'hidden' %>
7
- <%= icon 'upload' %> <%= ct 'lable.upload' %>
16
+ <%= fa_icon 'upload' %> <%= t 'labels.upload' %>
8
17
  <% end %>
9
18
  </div>
10
19
  </div>
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.number_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.number_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>
@@ -0,0 +1,21 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-sm-12">
14
+ <%= form.label field_name, class: 'btn btn-default' do %>
15
+ <%= form.file_field field_name, class: 'hidden' %>
16
+ <%= fa_icon 'upload' %> <%= t 'labels.upload' %>
17
+ <% end %>
18
+ </div>
19
+ </div>
20
+ <%= form.error_messages field_name %>
21
+ </div>
@@ -1,3 +1,12 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
@@ -0,0 +1,21 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-xs-6 col-sm-4">
14
+ <%= form.text_field field_name, class: 'form-control' %>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ <p class="help-block">
19
+ <%= t 'hints.box_html' %>
20
+ </p>
21
+ </div>
@@ -1,9 +1,21 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.text_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>
8
17
  <%= form.error_messages field_name %>
18
+ <p class="help-block">
19
+ <%= t 'hints.cidr_html' %>
20
+ </p>
9
21
  </div>
@@ -0,0 +1,21 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-xs-6 col-sm-4">
14
+ <%= form.text_field field_name, class: 'form-control' %>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ <p class="help-block">
19
+ <%= t 'hints.circle_html' %>
20
+ </p>
21
+ </div>
@@ -1,3 +1,12 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <%= form.text_area field_name, class: 'form-control', data: { init: 'summernote' } %>
@@ -8,11 +17,11 @@
8
17
  <% @summernote_init = true %>
9
18
  <% content_for :custom_javascript do %>
10
19
  <% javascript_tag do %>
11
- jQuery(function($) {
20
+ jQuery(document).off(readyPrefix('.citext')).on(readyPrefix('.citext'), function () {
12
21
  $('textarea[data-init="summernote"]').summernote({
13
22
  height: 150,
14
23
  codemirror: { // codemirror options
15
- theme: 'monokai'
24
+ theme: 'base16-dark'
16
25
  }
17
26
  })
18
27
  })
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.text_field field_name, class: 'form-control', data: { init: 'colorpicker' } %>
6
15
  </div>
7
16
  </div>
@@ -12,7 +21,7 @@
12
21
  <% @colorpicker_init = true %>
13
22
  <% content_for :custom_javascript do %>
14
23
  <% javascript_tag do %>
15
- jQuery(function($) {
24
+ jQuery(document).off(readyPrefix('.color')).on(readyPrefix('.color'), function () {
16
25
  $('[data-init="colorpicker"]').minicolors({ theme: 'bootstrap' })
17
26
  })
18
27
  <% end %>
@@ -1,10 +1,19 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <div class="input-group date" data-init='datepicker'>
6
15
  <%= form.text_field field_name, class: 'form-control' %>
7
- <span class="input-group-addon"><%= icon 'calendar' %></span>
16
+ <span class="input-group-addon"><%= fa_icon 'calendar' %></span>
8
17
  </div>
9
18
  </div>
10
19
  </div>
@@ -15,7 +24,7 @@
15
24
  <% @datepicker_init = true %>
16
25
  <% content_for :custom_javascript do %>
17
26
  <% javascript_tag do %>
18
- jQuery(function($) {
27
+ jQuery(document).off(readyPrefix('.date')).on(readyPrefix('.date'), function () {
19
28
  $('[data-init="datepicker"]').each(function() {
20
29
  var $input = $('input', this)
21
30
  $input.val(moment($input.attr('value')).format('YYYY-MM-DD'))
@@ -1,18 +1,27 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <div class="input-group date" data-init='datepicker'>
6
15
  <span class="input-group-addon">F</span>
7
16
  <%= form.text_field field_name, value: value.try(:first), multiple: true, class: 'form-control' %>
8
- <span class="input-group-addon"><%= icon 'calendar' %></span>
17
+ <span class="input-group-addon"><%= fa_icon 'calendar' %></span>
9
18
  </div>
10
19
  </div>
11
- <div class="col-xs-6 col-sm-3">
20
+ <div class="col-xs-6 col-sm-4">
12
21
  <div class="input-group date" data-init='datepicker'>
13
22
  <span class="input-group-addon">T</span>
14
23
  <%= form.text_field field_name, value: value.try(:last), multiple: true, class: 'form-control' %>
15
- <span class="input-group-addon"><%= icon 'calendar' %></span>
24
+ <span class="input-group-addon"><%= fa_icon 'calendar' %></span>
16
25
  </div>
17
26
  </div>
18
27
  </div>
@@ -23,7 +32,7 @@
23
32
  <% @datepicker_init = true %>
24
33
  <% content_for :custom_javascript do %>
25
34
  <% javascript_tag do %>
26
- jQuery(function($) {
35
+ jQuery(document).off(readyPrefix('.daterange')).on(readyPrefix('.daterange'), function () {
27
36
  $('[data-init="datepicker"]').each(function() {
28
37
  var $input = $('input', this)
29
38
  $input.val(moment($input.attr('value')).format('YYYY-MM-DD'))
@@ -1,10 +1,19 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <div class="input-group date" data-init='datetimepicker'>
6
15
  <%= form.text_field field_name, value: value, class: 'form-control' %>
7
- <span class="input-group-addon"><%= icon 'calendar' %></span>
16
+ <span class="input-group-addon"><%= fa_icon 'calendar' %></span>
8
17
  </div>
9
18
  </div>
10
19
  </div>
@@ -15,7 +24,7 @@
15
24
  <% @datetimepicker_init = true %>
16
25
  <% content_for :custom_javascript do %>
17
26
  <% javascript_tag do %>
18
- jQuery(function($) {
27
+ jQuery(document).off(readyPrefix('.datetime')).on(readyPrefix('.datetime'), function () {
19
28
  $('[data-init="datetimepicker"]').each(function() {
20
29
  var $input = $('input', this)
21
30
  $input.val(moment($input.attr('value')).format('YYYY-MM-DD HH:mm'))
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.number_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>
@@ -0,0 +1,18 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-xs-6 col-sm-4">
14
+ <%= form.select field_name, metadata[:choices], metadata[:options] || {}, metadata[:html_options] || { class: 'form-control' } %>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ </div>
@@ -1,3 +1,12 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <%= form.email_field field_name, class: 'form-control' %>
@@ -0,0 +1,21 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
10
+ <div class="form-group <%= form.error_class field_name %>">
11
+ <%= form.label field_name, metadata[:label] %>
12
+ <div class="row">
13
+ <div class="col-sm-12">
14
+ <%= form.label field_name, class: 'btn btn-default' do %>
15
+ <%= form.file_field field_name, class: 'hidden' %>
16
+ <%= fa_icon 'upload' %> <%= t 'labels.upload' %>
17
+ <% end %>
18
+ </div>
19
+ </div>
20
+ <%= form.error_messages field_name %>
21
+ </div>
@@ -1,7 +1,16 @@
1
+ <%#
2
+ The following params are the variables that can be used in this partial.
3
+
4
+ @param form [Wallaby::FormBuilder] custom form object that adds a few helper methods and delegate missing methods to the view
5
+ @param object [Wallaby::ResourceDecorator] decorator instance which wraps the resource (e.g. ActiveRecord) instance
6
+ @param field_name [String] name of the field
7
+ @param value [Object] value of the field
8
+ @param metadata [Hash] metadata of the field
9
+ %>
1
10
  <div class="form-group <%= form.error_class field_name %>">
2
11
  <%= form.label field_name, metadata[:label] %>
3
12
  <div class="row">
4
- <div class="col-xs-6 col-sm-3">
13
+ <div class="col-xs-6 col-sm-4">
5
14
  <%= form.number_field field_name, class: 'form-control' %>
6
15
  </div>
7
16
  </div>