activeadmin_addons 0.12.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/activeadmin_addons/all.js.coffee +11 -4
  3. data/app/assets/javascripts/activeadmin_addons/config.js +3 -3
  4. data/app/assets/javascripts/activeadmin_addons/{color-picker.js → inputs/color-picker.js} +2 -6
  5. data/app/assets/javascripts/activeadmin_addons/{date-time-picker.js → inputs/date-time-picker.js} +6 -7
  6. data/app/assets/javascripts/activeadmin_addons/inputs/nested-select.js +160 -0
  7. data/app/assets/javascripts/activeadmin_addons/inputs/search-select.js +71 -0
  8. data/app/assets/javascripts/activeadmin_addons/inputs/select2.js +49 -0
  9. data/app/assets/javascripts/activeadmin_addons/{selected-list.js → inputs/selected-list.js} +34 -42
  10. data/app/assets/javascripts/activeadmin_addons/inputs/tags.js +73 -0
  11. data/app/assets/stylesheets/activeadmin_addons/all.scss +12 -31
  12. data/app/assets/stylesheets/activeadmin_addons/inputs/color-picker.scss +4 -0
  13. data/app/assets/stylesheets/activeadmin_addons/inputs/date-time-picker.scss +5 -0
  14. data/app/assets/stylesheets/activeadmin_addons/inputs/numeric-range-filter.scss +12 -0
  15. data/app/assets/stylesheets/activeadmin_addons/inputs/select2.scss +3 -0
  16. data/app/assets/stylesheets/{selected-list.scss → activeadmin_addons/inputs/selected-list.scss} +1 -5
  17. data/app/inputs/ajax_filter_input.rb +3 -49
  18. data/app/inputs/color_picker_input.rb +7 -15
  19. data/app/inputs/date_time_picker_input.rb +12 -25
  20. data/app/inputs/nested_level_input.rb +49 -0
  21. data/app/inputs/nested_select_input.rb +35 -94
  22. data/app/inputs/numeric_range_filter_input.rb +27 -0
  23. data/app/inputs/range_select_input.rb +3 -32
  24. data/app/inputs/search_select_filter_input.rb +12 -0
  25. data/app/inputs/search_select_input.rb +26 -14
  26. data/app/inputs/selected_list_input.rb +36 -77
  27. data/app/inputs/tags_input.rb +36 -68
  28. data/lib/activeadmin_addons.rb +11 -1
  29. data/lib/activeadmin_addons/addons/{paperclip_attachment.rb → attachment_builder.rb} +13 -26
  30. data/lib/activeadmin_addons/addons/bool_builder.rb +31 -0
  31. data/lib/activeadmin_addons/addons/image_builder.rb +12 -0
  32. data/lib/activeadmin_addons/addons/list_builder.rb +73 -0
  33. data/lib/activeadmin_addons/addons/{number.rb → number_builder.rb} +4 -15
  34. data/lib/activeadmin_addons/addons/{state_values.rb → state_builder.rb} +4 -17
  35. data/lib/activeadmin_addons/addons/tag_builder.rb +31 -0
  36. data/lib/activeadmin_addons/engine.rb +6 -13
  37. data/lib/activeadmin_addons/support/custom_builder.rb +22 -2
  38. data/lib/activeadmin_addons/support/input_base.rb +46 -0
  39. data/lib/activeadmin_addons/support/input_helpers/filter_input.rb +6 -0
  40. data/lib/activeadmin_addons/support/input_helpers/filter_input_methods.rb +30 -0
  41. data/lib/activeadmin_addons/support/input_helpers/input_html_helpers.rb +43 -0
  42. data/lib/activeadmin_addons/support/input_helpers/input_methods.rb +68 -0
  43. data/lib/activeadmin_addons/support/input_helpers/input_options_handler.rb +86 -0
  44. data/lib/activeadmin_addons/support/input_helpers/select_helpers.rb +83 -0
  45. data/lib/activeadmin_addons/version.rb +1 -1
  46. data/lib/generators/activeadmin_addons/install/install_generator.rb +9 -2
  47. data/lib/generators/activeadmin_addons/install/templates/initializer.rb +8 -0
  48. data/{app/assets/javascripts → vendor/assets/jquery_palette_color_picker}/palette-color-picker.js +265 -172
  49. data/{app/assets/stylesheets → vendor/assets/jquery_palette_color_picker}/palette-color-picker.scss +155 -145
  50. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/CHANGELOG.md +111 -0
  51. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/CONTRIBUTING.md +144 -0
  52. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/Gemfile +58 -0
  53. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/Guardfile +8 -0
  54. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/LICENSE +20 -0
  55. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/README.md +96 -0
  56. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/Rakefile +33 -0
  57. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/activeadmin.gemspec +66 -0
  58. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  59. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  60. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  61. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/images/active_admin/orderable.png +0 -0
  62. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/application.js.coffee +37 -0
  63. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  64. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  65. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  66. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  67. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +36 -0
  68. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  69. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  70. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  71. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +45 -0
  72. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/per_page.js.coffee +31 -0
  73. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +24 -0
  74. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/_base.scss +41 -0
  75. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/_forms.scss +333 -0
  76. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/_header.scss +156 -0
  77. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
  78. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/_typography.scss +100 -0
  79. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  80. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
  81. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  82. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
  83. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  84. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
  85. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
  86. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
  87. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  88. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  89. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  90. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  91. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  92. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_pagination.scss +44 -0
  93. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  94. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  95. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_status_tags.scss +16 -0
  96. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  97. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_tables.scss +110 -0
  98. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  99. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  100. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_all.scss +10 -0
  101. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
  102. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  103. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_reset.scss +165 -0
  104. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  105. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
  106. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
  107. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  108. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
  109. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
  110. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  111. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/print.scss +288 -0
  112. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  113. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  114. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/stylesheets/active_admin/structure/_title_bar.scss +41 -0
  115. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  116. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  117. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  118. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
  119. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/passwords/new.html.erb +15 -0
  120. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  121. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  122. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/shared/_links.erb +27 -0
  123. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
  124. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/page/index.html.arb +1 -0
  125. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/resource/edit.html.arb +1 -0
  126. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/resource/index.html.arb +1 -0
  127. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/resource/new.html.arb +1 -0
  128. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/active_admin/resource/show.html.arb +1 -0
  129. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/layouts/active_admin.html.arb +1 -0
  130. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/views/layouts/active_admin_logged_out.html.erb +39 -0
  131. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ar.yml +132 -0
  132. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/bg.yml +121 -0
  133. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/bs.yml +122 -0
  134. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ca.yml +107 -0
  135. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/cs.yml +110 -0
  136. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/da.yml +106 -0
  137. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/de-CH.yml +102 -0
  138. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/de.yml +134 -0
  139. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/el.yml +127 -0
  140. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/en-GB.yml +98 -0
  141. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/en.yml +135 -0
  142. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/es-MX.yml +94 -0
  143. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/es.yml +135 -0
  144. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/fa.yml +120 -0
  145. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/fi.yml +113 -0
  146. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/fr.yml +118 -0
  147. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/he.yml +95 -0
  148. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/hr.yml +124 -0
  149. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/hu.yml +99 -0
  150. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/it.yml +117 -0
  151. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ja.yml +135 -0
  152. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ko.yml +120 -0
  153. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/lt.yml +121 -0
  154. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/lv.yml +93 -0
  155. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/nb.yml +116 -0
  156. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/nl.yml +134 -0
  157. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/pl.yml +98 -0
  158. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/pt-BR.yml +132 -0
  159. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/pt-PT.yml +93 -0
  160. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ro.yml +97 -0
  161. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/ru.yml +138 -0
  162. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/sv-SE.yml +133 -0
  163. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/tr.yml +97 -0
  164. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/uk.yml +136 -0
  165. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/vi.yml +94 -0
  166. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/zh-CN.yml +111 -0
  167. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/config/locales/zh-TW.yml +127 -0
  168. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/cucumber.yml +3 -0
  169. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/0-installation.md +98 -0
  170. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/1-general-configuration.md +149 -0
  171. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/10-custom-pages.md +106 -0
  172. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/11-decorators.md +55 -0
  173. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/12-arbre-components.md +150 -0
  174. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/13-authorization-adapter.md +248 -0
  175. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/14-gotchas.md +92 -0
  176. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/2-resource-customization.md +409 -0
  177. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages.md +272 -0
  178. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages/custom-index.md +31 -0
  179. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages/index-as-block.md +21 -0
  180. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages/index-as-blog.md +71 -0
  181. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages/index-as-grid.md +29 -0
  182. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/3-index-pages/index-as-table.md +199 -0
  183. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/4-csv-format.md +39 -0
  184. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/5-forms.md +159 -0
  185. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/6-show-pages.md +105 -0
  186. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/7-sidebars.md +71 -0
  187. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/8-custom-actions.md +160 -0
  188. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/9-batch-actions.md +233 -0
  189. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/docs/README.md +24 -0
  190. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/action_item.feature +73 -0
  191. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/authorization.feature +64 -0
  192. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/authorization_cancan.feature +52 -0
  193. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/authorization_pundit.feature +37 -0
  194. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/belongs_to.feature +66 -0
  195. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/breadcrumb.feature +75 -0
  196. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/comments/commenting.feature +171 -0
  197. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/comments/viewing_index.feature +19 -0
  198. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/dashboard.feature +16 -0
  199. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/decorators.feature +41 -0
  200. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/development_reloading.feature +30 -0
  201. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/edit_page.feature +117 -0
  202. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/favicon.feature +20 -0
  203. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/first_boot.feature +16 -0
  204. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/global_navigation.feature +29 -0
  205. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/i18n.feature +43 -0
  206. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/batch_actions.feature +183 -0
  207. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/filters.feature +161 -0
  208. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/format_as_csv.feature +203 -0
  209. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/formats.feature +66 -0
  210. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_as_block.feature +15 -0
  211. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_as_blog.feature +69 -0
  212. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_as_grid.feature +45 -0
  213. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_as_table.feature +291 -0
  214. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_blank_slate.feature +83 -0
  215. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_parameters.feature +75 -0
  216. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_scope_to.feature +56 -0
  217. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/index_scopes.feature +251 -0
  218. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/page_title.feature +41 -0
  219. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/pagination.feature +63 -0
  220. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/index/switch_index_view.feature +73 -0
  221. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/menu.feature +53 -0
  222. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/meta_tags.feature +21 -0
  223. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/new_page.feature +109 -0
  224. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/registering_assets.feature +34 -0
  225. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/registering_pages.feature +148 -0
  226. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/registering_resources.feature +33 -0
  227. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/renamed_resource.feature +32 -0
  228. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/root_to.feature +17 -0
  229. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/show/columns.feature +40 -0
  230. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/show/default_content.feature +44 -0
  231. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/show/page_title.feature +58 -0
  232. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/show/tabs.feature +27 -0
  233. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/sidebar_sections.feature +210 -0
  234. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/site_title.feature +47 -0
  235. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/specifying_actions.feature +93 -0
  236. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/action_item_steps.rb +7 -0
  237. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/action_link_steps.rb +20 -0
  238. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/additional_web_steps.rb +81 -0
  239. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/asset_steps.rb +15 -0
  240. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/attribute_steps.rb +18 -0
  241. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/batch_action_steps.rb +81 -0
  242. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/blog_steps.rb +3 -0
  243. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/breadcrumb_steps.rb +3 -0
  244. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/column_steps.rb +8 -0
  245. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/comment_steps.rb +12 -0
  246. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/configuration_steps.rb +100 -0
  247. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/dashboard_steps.rb +15 -0
  248. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/factory_steps.rb +35 -0
  249. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/filter_steps.rb +39 -0
  250. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/flash_steps.rb +11 -0
  251. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/format_steps.rb +52 -0
  252. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/i18n_steps.rb +3 -0
  253. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/index_scope_steps.rb +21 -0
  254. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/index_views_steps.rb +3 -0
  255. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/layout_steps.rb +3 -0
  256. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/member_link_steps.rb +7 -0
  257. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/menu_steps.rb +11 -0
  258. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/meta_tag_steps.rb +3 -0
  259. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/pagination_steps.rb +15 -0
  260. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/sidebar_steps.rb +13 -0
  261. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/site_title_steps.rb +17 -0
  262. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/symbol_leak_steps.rb +3 -0
  263. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/tab_steps.rb +8 -0
  264. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/table_steps.rb +120 -0
  265. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/user_steps.rb +45 -0
  266. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/step_definitions/web_steps.rb +85 -0
  267. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/sti_resource.feature +65 -0
  268. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/strong_parameters.feature +73 -0
  269. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/support/env.rb +145 -0
  270. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/support/paths.rb +71 -0
  271. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/support/selectors.rb +45 -0
  272. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/symbol_leak.feature +35 -0
  273. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/users/logging_in.feature +34 -0
  274. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/users/logging_out.feature +13 -0
  275. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/features/users/resetting_password.feature +34 -0
  276. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin.rb +130 -0
  277. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/abstract_view_factory.rb +85 -0
  278. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/application.rb +317 -0
  279. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/asset_registration.rb +29 -0
  280. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/authorization_adapter.rb +132 -0
  281. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/base_controller.rb +77 -0
  282. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/base_controller/authorization.rb +133 -0
  283. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/base_controller/menu.rb +34 -0
  284. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions.rb +16 -0
  285. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions/controller.rb +41 -0
  286. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions/resource_extension.rb +158 -0
  287. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
  288. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions/views/batch_action_selector.rb +57 -0
  289. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  290. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/callbacks.rb +88 -0
  291. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/cancan_adapter.rb +36 -0
  292. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/component.rb +5 -0
  293. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/controller_action.rb +12 -0
  294. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/csv_builder.rb +126 -0
  295. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/dependency.rb +95 -0
  296. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/deprecation.rb +35 -0
  297. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/devise.rb +80 -0
  298. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/dsl.rb +173 -0
  299. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/engine.rb +16 -0
  300. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/error.rb +62 -0
  301. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/event.rb +24 -0
  302. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters.rb +9 -0
  303. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/active.rb +29 -0
  304. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/dsl.rb +21 -0
  305. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/forms.rb +83 -0
  306. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/formtastic_addons.rb +79 -0
  307. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/humanized.rb +68 -0
  308. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/filters/resource_extension.rb +190 -0
  309. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/form_builder.rb +141 -0
  310. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/generators/boilerplate.rb +37 -0
  311. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/collection.rb +17 -0
  312. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/i18n.rb +7 -0
  313. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/optional_display.rb +38 -0
  314. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  315. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/scope_chain.rb +23 -0
  316. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/helpers/settings.rb +115 -0
  317. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs.rb +20 -0
  318. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/datepicker_input.rb +20 -0
  319. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/base.rb +42 -0
  320. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  321. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  322. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  323. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  324. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  325. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  326. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/select_input.rb +54 -0
  327. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/inputs/filters/string_input.rb +26 -0
  328. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/menu.rb +108 -0
  329. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/menu_collection.rb +93 -0
  330. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/menu_item.rb +97 -0
  331. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/namespace.rb +247 -0
  332. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb +26 -0
  333. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record.rb +5 -0
  334. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments.rb +90 -0
  335. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  336. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  337. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  338. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
  339. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  340. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +88 -0
  341. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/mongoid.rb +1 -0
  342. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/page.rb +92 -0
  343. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/page_controller.rb +29 -0
  344. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/page_dsl.rb +28 -0
  345. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/page_presenter.rb +32 -0
  346. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/pundit_adapter.rb +68 -0
  347. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource.rb +168 -0
  348. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/action_items.rb +108 -0
  349. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/belongs_to.rb +44 -0
  350. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/controllers.rb +19 -0
  351. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/includes.rb +12 -0
  352. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb +64 -0
  353. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/naming.rb +62 -0
  354. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/page_presenters.rb +82 -0
  355. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/pagination.rb +23 -0
  356. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/routes.rb +115 -0
  357. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/scope_to.rb +74 -0
  358. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/scopes.rb +50 -0
  359. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/sidebars.rb +28 -0
  360. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_collection.rb +72 -0
  361. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller.rb +51 -0
  362. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/action_builder.rb +21 -0
  363. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/data_access.rb +304 -0
  364. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/decorators.rb +102 -0
  365. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  366. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/scoping.rb +31 -0
  367. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/sidebars.rb +18 -0
  368. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_controller/streaming.rb +37 -0
  369. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource_dsl.rb +184 -0
  370. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/router.rb +106 -0
  371. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/scope.rb +57 -0
  372. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/sidebar_section.rb +37 -0
  373. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/version.rb +3 -0
  374. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_factory.rb +27 -0
  375. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers.rb +19 -0
  376. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  377. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
  378. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
  379. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/display_helper.rb +61 -0
  380. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/download_format_links_helper.rb +46 -0
  381. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/fields_for.rb +50 -0
  382. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/flash_helper.rb +14 -0
  383. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/form_helper.rb +20 -0
  384. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
  385. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  386. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/title_helper.rb +11 -0
  387. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  388. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views.rb +8 -0
  389. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/action_items.rb +17 -0
  390. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/active_admin_form.rb +123 -0
  391. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/attributes_table.rb +112 -0
  392. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/blank_slate.rb +17 -0
  393. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/columns.rb +161 -0
  394. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/dropdown_menu.rb +71 -0
  395. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/index_list.rb +68 -0
  396. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/paginated_collection.rb +163 -0
  397. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/panel.rb +38 -0
  398. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/scopes.rb +66 -0
  399. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/sidebar_section.rb +34 -0
  400. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/site_title.rb +55 -0
  401. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/status_tag.rb +80 -0
  402. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/table_for.rb +237 -0
  403. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/tabs.rb +28 -0
  404. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  405. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/footer.rb +20 -0
  406. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/header.rb +32 -0
  407. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/index_as_block.rb +36 -0
  408. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/index_as_blog.rb +156 -0
  409. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/index_as_grid.rb +80 -0
  410. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/index_as_table.rb +351 -0
  411. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/base.rb +147 -0
  412. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/form.rb +61 -0
  413. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/index.rb +163 -0
  414. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/layout.rb +26 -0
  415. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/page.rb +30 -0
  416. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/pages/show.rb +59 -0
  417. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/tabbed_navigation.rb +66 -0
  418. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/views/title_bar.rb +55 -0
  419. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/activeadmin.rb +1 -0
  420. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/assets/assets_generator.rb +14 -0
  421. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  422. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
  423. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/devise/devise_generator.rb +65 -0
  424. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/install/install_generator.rb +45 -0
  425. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/install/templates/active_admin.rb.erb +262 -0
  426. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/install/templates/admin_user.rb.erb +30 -0
  427. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  428. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  429. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/page/USAGE +8 -0
  430. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/page/page_generator.rb +12 -0
  431. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/page/templates/page.rb +5 -0
  432. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/resource/resource_generator.rb +20 -0
  433. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/generators/active_admin/resource/templates/admin.rb +39 -0
  434. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/ransack_ext.rb +12 -0
  435. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/script/local +44 -0
  436. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/script/travis_cache +107 -0
  437. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/script/use_rails +53 -0
  438. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  439. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  440. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  441. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/fixtures/checkboxes.html +9 -0
  442. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/fixtures/flashes.html +2 -0
  443. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  444. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/helpers/SpecHelper.js +3 -0
  445. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/support/jasmine.yml +74 -0
  446. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/support/jasmine_config.rb +23 -0
  447. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/javascripts/support/jasmine_runner.rb +32 -0
  448. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/rails_helper.rb +158 -0
  449. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/requests/default_namespace_spec.rb +61 -0
  450. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/requests/javascript_spec.rb +20 -0
  451. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/requests/memory_spec.rb +21 -0
  452. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/requests/stylesheets_spec.rb +18 -0
  453. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/spec_helper.rb +17 -0
  454. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/active_admin_request_helpers.rb +27 -0
  455. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/deferred_garbage_collection.rb +19 -0
  456. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/detect_rails_version.rb +34 -0
  457. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/jslint.yml +80 -0
  458. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/rails_template.rb +145 -0
  459. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/rails_template_with_data.rb +59 -0
  460. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/admin/stores.rb +9 -0
  461. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/cucumber.rb +24 -0
  462. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/cucumber_with_reloading.rb +5 -0
  463. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/en.yml +8 -0
  464. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  465. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  466. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/admin_user_policy.rb +11 -0
  467. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/application_policy.rb +45 -0
  468. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/category_policy.rb +7 -0
  469. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/post_policy.rb +15 -0
  470. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/store_policy.rb +11 -0
  471. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/policies/user_policy.rb +11 -0
  472. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/support/templates/post_decorator.rb +11 -0
  473. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/abstract_view_factory_spec.rb +79 -0
  474. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/action_builder_spec.rb +132 -0
  475. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/active_admin_spec.rb +11 -0
  476. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/application_spec.rb +165 -0
  477. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/asset_registration_spec.rb +52 -0
  478. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  479. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/authorization/controller_authorization_spec.rb +39 -0
  480. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/authorization/index_overriding_spec.rb +22 -0
  481. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/auto_link_spec.rb +69 -0
  482. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/batch_actions/resource_spec.rb +97 -0
  483. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/batch_actions/settings_spec.rb +61 -0
  484. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/belongs_to_spec.rb +65 -0
  485. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/cancan_adapter_spec.rb +43 -0
  486. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/comments_spec.rb +188 -0
  487. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/component_spec.rb +18 -0
  488. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/config_shared_examples.rb +59 -0
  489. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/controller_filters_spec.rb +41 -0
  490. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/csv_builder_spec.rb +244 -0
  491. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/dependency_spec.rb +135 -0
  492. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/devise_spec.rb +96 -0
  493. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/dsl_spec.rb +122 -0
  494. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/filters/filter_form_builder_spec.rb +433 -0
  495. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/filters/humanized_spec.rb +44 -0
  496. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/filters/resource_spec.rb +121 -0
  497. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/form_builder_spec.rb +812 -0
  498. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/generators/install_spec.rb +24 -0
  499. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/helpers/collection_spec.rb +65 -0
  500. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/helpers/scope_chain_spec.rb +36 -0
  501. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/helpers/settings_spec.rb +30 -0
  502. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/i18n_spec.rb +12 -0
  503. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/menu_collection_spec.rb +62 -0
  504. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/menu_item_spec.rb +143 -0
  505. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/menu_spec.rb +71 -0
  506. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/namespace/authorization_spec.rb +27 -0
  507. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/namespace/register_page_spec.rb +74 -0
  508. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/namespace/register_resource_spec.rb +161 -0
  509. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/namespace_spec.rb +103 -0
  510. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/order_clause_spec.rb +81 -0
  511. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/page_controller_spec.rb +5 -0
  512. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/page_spec.rb +78 -0
  513. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/pretty_format_spec.rb +77 -0
  514. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/pundit_adapter_spec.rb +98 -0
  515. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/action_items_spec.rb +65 -0
  516. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/includes_spec.rb +21 -0
  517. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/menu_spec.rb +18 -0
  518. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/naming_spec.rb +122 -0
  519. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/page_presenters_spec.rb +44 -0
  520. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/pagination_spec.rb +38 -0
  521. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/routes_spec.rb +73 -0
  522. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/scopes_spec.rb +50 -0
  523. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource/sidebars_spec.rb +43 -0
  524. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_collection_spec.rb +175 -0
  525. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_controller/data_access_spec.rb +140 -0
  526. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_controller/decorators_spec.rb +83 -0
  527. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_controller/sidebars_spec.rb +45 -0
  528. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_controller_spec.rb +269 -0
  529. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_registration_spec.rb +56 -0
  530. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/resource_spec.rb +329 -0
  531. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/routing_spec.rb +180 -0
  532. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/scope_spec.rb +190 -0
  533. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/settings_spec.rb +118 -0
  534. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_factory_spec.rb +19 -0
  535. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/breadcrumbs_spec.rb +217 -0
  536. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/display_name_spec.rb +71 -0
  537. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  538. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  539. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  540. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/form_helper_spec.rb +43 -0
  541. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/view_helpers/method_or_proc_helper_spec.rb +139 -0
  542. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/attributes_table_spec.rb +272 -0
  543. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/batch_action_selector_spec.rb +43 -0
  544. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/blank_slate_spec.rb +27 -0
  545. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/columns_spec.rb +189 -0
  546. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/index_list_spec.rb +35 -0
  547. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/index_table_for_spec.rb +46 -0
  548. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/paginated_collection_spec.rb +250 -0
  549. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/panel_spec.rb +58 -0
  550. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/sidebar_section_spec.rb +68 -0
  551. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/site_title_spec.rb +78 -0
  552. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/status_tag_spec.rb +249 -0
  553. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/table_for_spec.rb +429 -0
  554. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/tabs_spec.rb +39 -0
  555. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  556. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/pages/form_spec.rb +42 -0
  557. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/pages/index_spec.rb +60 -0
  558. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/pages/layout_spec.rb +59 -0
  559. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/pages/show_spec.rb +33 -0
  560. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/spec/unit/views/tabbed_navigation_spec.rb +158 -0
  561. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/tasks/docs.rake +37 -0
  562. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/tasks/parallel_tests.rake +66 -0
  563. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/tasks/test.rake +83 -0
  564. data/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/tasks/yard.rake +9 -0
  565. metadata +567 -22
  566. data/app/assets/external/palette-color-picker/LICENSE.md +0 -21
  567. data/app/assets/javascripts/activeadmin_addons/select2.js +0 -209
  568. data/lib/activeadmin_addons/addons/bool_values.rb +0 -46
  569. data/lib/activeadmin_addons/addons/enum_tag.rb +0 -36
  570. data/lib/activeadmin_addons/addons/list.rb +0 -84
  571. data/lib/activeadmin_addons/addons/paperclip_image.rb +0 -25
@@ -0,0 +1,44 @@
1
+ require 'rails_helper'
2
+
3
+ describe ActiveAdmin::Filters::Humanized do
4
+ let(:param) { ['category_id_eq', '1'] }
5
+
6
+ subject { ActiveAdmin::Filters::Humanized.new(param) }
7
+
8
+ describe '#value' do
9
+ it 'should equal query string parameter' do
10
+ expect(subject.value).to eq('1')
11
+ end
12
+ end
13
+
14
+ describe '#body' do
15
+ context 'when Ransack predicate' do
16
+ it 'parses language from Ransack' do
17
+ expect(subject.body).to eq('Category ID equals')
18
+ end
19
+
20
+ it 'handles strings with embedded predicates' do
21
+ param = ['requires_approval_eq', '1']
22
+ humanizer = ActiveAdmin::Filters::Humanized.new(param)
23
+ expect(humanizer.value).to eq('1')
24
+ expect(humanizer.body).to eq('Requires Approval equals')
25
+ end
26
+ end
27
+
28
+ context 'when ActiveAdmin predicate' do
29
+ it 'parses language from ActiveAdmin' do
30
+ param = ['name_starts_with', 'test']
31
+ humanizer = ActiveAdmin::Filters::Humanized.new(param)
32
+ expect(humanizer.body).to eq('Name starts with')
33
+ end
34
+ end
35
+
36
+ context 'when unknown predicate' do
37
+ it 'uses raw predicate string' do
38
+ param = ['name_predicate_does_not_exist', 'test']
39
+ humanizer = ActiveAdmin::Filters::Humanized.new(param)
40
+ expect(humanizer.body).to eq("Name Predicate Does Not Exist")
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,121 @@
1
+ require 'rails_helper'
2
+
3
+ describe ActiveAdmin::Filters::ResourceExtension do
4
+
5
+ let(:resource) do
6
+ namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
7
+ namespace.register(Post)
8
+ end
9
+
10
+ it "should return a Hash" do
11
+ expect(resource.filters).to be_a Hash
12
+ end
13
+
14
+ it "should return the defaults if no filters are set" do
15
+ expect(resource.filters.keys).to match_array([
16
+ :author, :body, :category, :created_at, :custom_searcher, :position, :published_at, :starred, :taggings, :title, :updated_at
17
+ ])
18
+ end
19
+
20
+ it "should not have defaults when filters are disabled on the resource" do
21
+ resource.filters = false
22
+ expect(resource.filters).to be_empty
23
+ end
24
+
25
+ it "should not have defaults when the filters are disabled on the namespace" do
26
+ resource.namespace.filters = false
27
+ expect(resource.filters).to be_empty
28
+ end
29
+
30
+ it "should not have defaults when the filters are disabled on the application" do
31
+ resource.namespace.application.filters = false
32
+ expect(resource.filters).to be_empty
33
+ end
34
+
35
+ describe "removing a filter" do
36
+ it "should work" do
37
+ expect(resource.filters.keys).to include :author
38
+ resource.remove_filter :author
39
+ expect(resource.filters.keys).to_not include :author
40
+ end
41
+
42
+ it "should work as a string" do
43
+ expect(resource.filters.keys).to include :author
44
+ resource.remove_filter 'author'
45
+ expect(resource.filters.keys).to_not include :author
46
+ end
47
+
48
+ it "should be lazy" do
49
+ expect(resource).to_not receive :default_filters # this hits the DB
50
+ resource.remove_filter :author
51
+ end
52
+
53
+ it "should not prevent the default filters from being added" do
54
+ resource.remove_filter :author
55
+ expect(resource.filters).to_not be_empty
56
+ end
57
+
58
+ it "should raise an exception when filters are disabled" do
59
+ resource.filters = false
60
+ expect{ resource.remove_filter :author }.to raise_error ActiveAdmin::Filters::Disabled
61
+ end
62
+ end
63
+
64
+ describe "removing a multiple filters inline" do
65
+ it "should work" do
66
+ expect(resource.filters.keys).to include :author, :body
67
+ resource.remove_filter :author, :body
68
+ expect(resource.filters.keys).to_not include :author, :body
69
+ end
70
+ end
71
+
72
+ describe "adding a filter" do
73
+ it "should work" do
74
+ resource.add_filter :title
75
+ expect(resource.filters).to eq title: {}
76
+ end
77
+
78
+ it "should work as a string" do
79
+ resource.add_filter 'title'
80
+ expect(resource.filters).to eq title: {}
81
+ end
82
+
83
+ it "should work with specified options" do
84
+ resource.add_filter :title, as: :string
85
+ expect(resource.filters).to eq title: {as: :string}
86
+ end
87
+
88
+ it "should override an existing filter" do
89
+ resource.add_filter :title, one: :two
90
+ resource.add_filter :title, three: :four
91
+
92
+ expect(resource.filters).to eq title: {three: :four}
93
+ end
94
+
95
+ it "should preserve default filters" do
96
+ resource.preserve_default_filters!
97
+ resource.add_filter :count, as: :string
98
+
99
+ expect(resource.filters.keys).to match_array([
100
+ :author, :body, :category, :count, :created_at, :custom_searcher, :position, :published_at, :starred, :taggings, :title, :updated_at
101
+ ])
102
+ end
103
+
104
+ it "should raise an exception when filters are disabled" do
105
+ resource.filters = false
106
+ expect{ resource.add_filter :title }.to raise_error ActiveAdmin::Filters::Disabled
107
+ end
108
+ end
109
+
110
+ it "should reset filters" do
111
+ resource.add_filter :title
112
+ expect(resource.filters.size).to eq 1
113
+ resource.reset_filters!
114
+ expect(resource.filters.size).to be > 1
115
+ end
116
+
117
+ it "should add a sidebar section for the filters" do
118
+ expect(resource.sidebar_sections.first.name).to eq "filters"
119
+ end
120
+
121
+ end
@@ -0,0 +1,812 @@
1
+ require 'rails_helper'
2
+ require "rspec/mocks/standalone"
3
+
4
+ describe ActiveAdmin::FormBuilder do
5
+
6
+ # Setup an ActionView::Base object which can be used for
7
+ # generating the form for.
8
+ let(:helpers) do
9
+ view = action_view
10
+ def view.posts_path
11
+ "/posts"
12
+ end
13
+
14
+ def view.protect_against_forgery?
15
+ false
16
+ end
17
+
18
+ def view.url_for(*args)
19
+ if args.first == {action: "index"}
20
+ posts_path
21
+ else
22
+ super
23
+ end
24
+ end
25
+
26
+ def view.a_helper_method
27
+ "A Helper Method"
28
+ end
29
+
30
+ def view.fa_icon(*args)
31
+ args.inspect
32
+ end
33
+
34
+ view
35
+ end
36
+
37
+ def build_form(options = {}, form_object = Post.new, &block)
38
+ options = {url: helpers.posts_path}.merge(options)
39
+
40
+ form = render_arbre_component({form_object: form_object, form_options: options, form_block: block}, helpers) do
41
+ active_admin_form_for(assigns[:form_object], assigns[:form_options], &assigns[:form_block])
42
+ end.to_s
43
+
44
+ Capybara.string(form)
45
+ end
46
+
47
+ context "in general" do
48
+ context "it without custom settings" do
49
+ let :body do
50
+ build_form do |f|
51
+ f.inputs do
52
+ f.input :title
53
+ f.input :body
54
+ end
55
+ end
56
+ end
57
+
58
+ it "should generate a fieldset with a inputs class" do
59
+ expect(body).to have_selector("fieldset.inputs")
60
+ end
61
+ end
62
+
63
+ context "it with custom settings" do
64
+ let :body do
65
+ build_form do |f|
66
+ f.inputs class: "custom_class" do
67
+ f.input :title
68
+ f.input :body
69
+ end
70
+ end
71
+ end
72
+
73
+ it "should generate a fieldset with a inputs and custom class" do
74
+ expect(body).to have_selector("fieldset.inputs.custom_class")
75
+ end
76
+ end
77
+ end
78
+
79
+ context "in general with actions" do
80
+ let :body do
81
+ build_form do |f|
82
+ f.inputs do
83
+ f.input :title
84
+ f.input :body
85
+ end
86
+ f.actions do
87
+ f.action :submit, label: "Submit Me"
88
+ f.action :submit, label: "Another Button"
89
+ end
90
+ end
91
+ end
92
+
93
+ it "should generate a text input" do
94
+ expect(body).to have_selector("input[type=text][name='post[title]']")
95
+ end
96
+ it "should generate a textarea" do
97
+ expect(body).to have_selector("textarea[name='post[body]']")
98
+ end
99
+ it "should only generate the form once" do
100
+ expect(body).to have_selector("form", count: 1)
101
+ end
102
+ it "should generate actions" do
103
+ expect(body).to have_selector("input[type=submit][value='Submit Me']")
104
+ expect(body).to have_selector("input[type=submit][value='Another Button']")
105
+ end
106
+ end
107
+
108
+ context "when polymorphic relationship" do
109
+ it "should raise error" do
110
+ expect {
111
+ comment = ActiveAdmin::Comment.new
112
+ build_form({url: "admins/comments"}, comment) do |f|
113
+ f.inputs :resource
114
+ end
115
+ }.to raise_error(Formtastic::PolymorphicInputWithoutCollectionError)
116
+ end
117
+ end
118
+
119
+ describe "passing in options with actions" do
120
+ let :body do
121
+ build_form html: { multipart: true } do |f|
122
+ f.inputs :title
123
+ f.actions
124
+ end
125
+ end
126
+ it "should pass the options on to the form" do
127
+ expect(body).to have_selector("form[enctype='multipart/form-data']")
128
+ end
129
+ end
130
+
131
+ if Rails::VERSION::MAJOR > 3
132
+ context "file input present" do
133
+ let :body do
134
+ build_form do |f|
135
+ f.input :body, as: :file
136
+ end
137
+ end
138
+
139
+ it "adds multipart attribute automatically" do
140
+ expect(body).to have_selector("form[enctype='multipart/form-data']")
141
+ end
142
+ end
143
+ end
144
+
145
+ context "with actions" do
146
+ it "should generate the form once" do
147
+ body = build_form do |f|
148
+ f.inputs do
149
+ f.input :title
150
+ end
151
+ f.actions
152
+ end
153
+ expect(body).to have_selector("[id=post_title]", count: 1)
154
+ end
155
+ it "should generate one button and a cancel link" do
156
+ body = build_form do |f|
157
+ f.actions
158
+ end
159
+ expect(body).to have_selector("[type=submit]", count: 1)
160
+ expect(body).to have_selector("[class=cancel]", count: 1)
161
+ end
162
+ it "should generate multiple actions" do
163
+ body = build_form do |f|
164
+ f.actions do
165
+ f.action :submit, label: "Create & Continue"
166
+ f.action :submit, label: "Create & Edit"
167
+ end
168
+ end
169
+ expect(body).to have_selector("[type=submit]", count: 2)
170
+ expect(body).to have_selector("[class=cancel]", count: 0)
171
+ end
172
+
173
+ end
174
+
175
+ context "with Arbre inside" do
176
+ it "should render the Arbre in the expected place" do
177
+ body = build_form do |f|
178
+ div do
179
+ h1 'Heading'
180
+ end
181
+ f.inputs do
182
+ span 'Top note'
183
+ f.input :title
184
+ span 'Bottom note'
185
+ end
186
+ h3 'Footer'
187
+ f.actions
188
+ end
189
+
190
+ expect(body).to have_selector("div > h1")
191
+ expect(body).to have_selector("h1", count: 1)
192
+ expect(body).to have_selector(".inputs > ol > span")
193
+ expect(body).to have_selector("span", count: 2)
194
+ end
195
+ it "should allow a simplified syntax" do
196
+ body = build_form do |f|
197
+ div do
198
+ h1 'Heading'
199
+ end
200
+ inputs do
201
+ span 'Top note'
202
+ input :title
203
+ span 'Bottom note'
204
+ end
205
+ h3 'Footer'
206
+ actions
207
+ end
208
+
209
+ expect(body).to have_selector("div > h1")
210
+ expect(body).to have_selector("h1", count: 1)
211
+ expect(body).to have_selector(".inputs > ol > span")
212
+ expect(body).to have_selector("span", count: 2)
213
+ end
214
+ end
215
+
216
+ context "without passing a block to inputs" do
217
+ let :body do
218
+ build_form do |f|
219
+ f.inputs :title, :body
220
+ end
221
+ end
222
+ it "should have a title input" do
223
+ expect(body).to have_selector("input[type=text][name='post[title]']")
224
+ end
225
+ it "should have a body textarea" do
226
+ expect(body).to have_selector("textarea[name='post[body]']")
227
+ end
228
+ end
229
+
230
+ context "with semantic fields for" do
231
+ let :body do
232
+ build_form do |f|
233
+ f.inputs do
234
+ f.input :title
235
+ f.input :body
236
+ end
237
+ f.form_builder.instance_eval do
238
+ @object.author = User.new
239
+ end
240
+ f.semantic_fields_for :author do |author|
241
+ author.inputs :first_name, :last_name
242
+ end
243
+ end
244
+ end
245
+ it "should generate a nested text input once" do
246
+ expect(body).to have_selector("[id=post_author_attributes_first_name_input]", count: 1)
247
+ end
248
+ end
249
+
250
+ context "with collection inputs" do
251
+ before do
252
+ User.create first_name: "John", last_name: "Doe"
253
+ User.create first_name: "Jane", last_name: "Doe"
254
+ end
255
+
256
+ describe "as select" do
257
+ let :body do
258
+ build_form do |f|
259
+ f.input :author, include_blank: false
260
+ end
261
+ end
262
+ it "should create 2 options" do
263
+ expect(body).to have_selector("option", count: 2)
264
+ end
265
+ end
266
+
267
+ describe "as radio buttons" do
268
+ let :body do
269
+ build_form do |f|
270
+ f.input :author, as: :radio
271
+ end
272
+ end
273
+ it "should create 2 radio buttons" do
274
+ expect(body).to have_selector("[type=radio]", count: 2)
275
+ end
276
+ end
277
+
278
+ end
279
+
280
+ context "with a has_one relation on an author's profile" do
281
+ let :body do
282
+ author = user()
283
+ build_form do |f|
284
+ f.inputs do
285
+ f.input :title
286
+ f.input :body
287
+ end
288
+ f.form_builder.instance_eval do
289
+ @object.author = author
290
+ end
291
+ f.inputs name: 'Author', for: :author do |author|
292
+ author.has_many :profile, allow_destroy: true do |profile|
293
+ profile.input :bio
294
+ end
295
+ end
296
+ end
297
+ end
298
+
299
+ it "should see the button to add profile" do
300
+ def user
301
+ User.new
302
+ end
303
+ expect(body).to have_selector("a[contains(data-html,'post[author_attributes][profile_attributes][bio]')]")
304
+ end
305
+
306
+ it "should see the profile fields for an existing profile" do
307
+ def user
308
+ u = User.new
309
+ u.profile = Profile.new
310
+ u
311
+ end
312
+ expect(body).to have_selector("[id='post_author_attributes_profile_attributes_bio']", count: 1)
313
+ expect(body).to have_selector("textarea[name='post[author_attributes][profile_attributes][bio]']")
314
+ end
315
+ end
316
+
317
+ shared_examples :inputs_with_for_expectation do
318
+ it "should generate a nested text input once" do
319
+ expect(body).to have_selector("[id=post_author_attributes_first_name_input]", count: 1)
320
+ expect(body).to have_selector("[id=post_author_attributes_last_name_input]", count: 1)
321
+ end
322
+ it "should add author first and last name fields" do
323
+ expect(body).to have_selector("input[name='post[author_attributes][first_name]']")
324
+ expect(body).to have_selector("input[name='post[author_attributes][last_name]']")
325
+ end
326
+ end
327
+
328
+ context "with inputs 'for'" do
329
+ let :body do
330
+ build_form do |f|
331
+ f.inputs do
332
+ f.input :title
333
+ f.input :body
334
+ end
335
+ f.form_builder.instance_eval do
336
+ @object.author = User.new
337
+ end
338
+ f.inputs name: 'Author', for: :author do |author|
339
+ author.inputs :first_name, :last_name
340
+ end
341
+ end
342
+ end
343
+
344
+ include_examples :inputs_with_for_expectation
345
+ end
346
+
347
+ context "with two input fields 'for' at the end of block" do
348
+ let :body do
349
+ build_form do |f|
350
+ f.inputs do
351
+ f.input :title
352
+ f.input :body
353
+ end
354
+ f.form_builder.instance_eval do
355
+ @object.author = User.new
356
+ end
357
+ f.inputs name: 'Author', for: :author do |author|
358
+ author.input :first_name
359
+ author.input :last_name
360
+ end
361
+ end
362
+ end
363
+
364
+ include_examples :inputs_with_for_expectation
365
+ end
366
+
367
+ context "with two input fields 'for' at the beginning of block" do
368
+ let :body do
369
+ build_form do |f|
370
+ f.form_builder.instance_eval do
371
+ @object.author = User.new
372
+ end
373
+ f.inputs name: 'Author', for: :author do |author|
374
+ author.input :first_name
375
+ author.input :last_name
376
+ end
377
+ f.inputs do
378
+ f.input :title
379
+ f.input :body
380
+ end
381
+ end
382
+ end
383
+
384
+ include_examples :inputs_with_for_expectation
385
+ end
386
+
387
+ context "with wrapper html" do
388
+ it "should set a class" do
389
+ body = build_form do |f|
390
+ f.input :title, wrapper_html: { class: "important" }
391
+ end
392
+ expect(body).to have_selector("li[class='important string input optional stringish']")
393
+ end
394
+ end
395
+
396
+ context "with inputs twice" do
397
+ let :body do
398
+ build_form do |f|
399
+ f.inputs do
400
+ f.input :title
401
+ f.input :body
402
+ end
403
+ f.inputs do
404
+ f.input :author
405
+ f.input :published_at
406
+ end
407
+ end
408
+ end
409
+ it "should render four inputs" do
410
+ expect(body).to have_selector("input[name='post[title]']", count: 1)
411
+ expect(body).to have_selector("textarea[name='post[body]']", count: 1)
412
+ expect(body).to have_selector("select[name='post[author_id]']", count: 1)
413
+ expect(body).to have_selector("select[name='post[published_at(1i)]']", count: 1)
414
+ expect(body).to have_selector("select[name='post[published_at(2i)]']", count: 1)
415
+ expect(body).to have_selector("select[name='post[published_at(3i)]']", count: 1)
416
+ expect(body).to have_selector("select[name='post[published_at(4i)]']", count: 1)
417
+ end
418
+ end
419
+
420
+ context "with has many inputs" do
421
+ describe "with simple block" do
422
+ let :body do
423
+ build_form({url: '/categories'}, Category.new) do |f|
424
+ f.object.posts.build
425
+ f.has_many :posts do |p|
426
+ p.input :title
427
+ p.input :body
428
+ end
429
+ f.inputs
430
+ end
431
+ end
432
+
433
+ let(:valid_html_id) { /^[A-Za-z]+[\w\-\:\.]*$/ }
434
+
435
+ it "should translate the association name in header" do
436
+ with_translation activerecord: {models: {post: {one: 'Blog Post', other: 'Blog Posts'}}} do
437
+ expect(body).to have_selector("h3", text: "Blog Posts")
438
+ end
439
+ end
440
+
441
+ it "should use model name when there is no translation for given model in header" do
442
+ expect(body).to have_selector("h3", text: "Post")
443
+ end
444
+
445
+ it "should translate the association name in has many new button" do
446
+ with_translation activerecord: {models: {post: {one: 'Blog Post', other: 'Blog Posts'}}} do
447
+ expect(body).to have_selector("a", text: "Add New Blog Post")
448
+ end
449
+ end
450
+
451
+ it "should translate the attribute name" do
452
+ with_translation activerecord: {attributes: {post: {title: 'A very nice title'}}} do
453
+ expect(body).to have_selector("label", text: "A very nice title")
454
+ end
455
+ end
456
+
457
+ it "should use model name when there is no translation for given model in has many new button" do
458
+ expect(body).to have_selector("a", text: "Add New Post")
459
+ end
460
+
461
+ it "should render the nested form" do
462
+ expect(body).to have_selector("input[name='category[posts_attributes][0][title]']")
463
+ expect(body).to have_selector("textarea[name='category[posts_attributes][0][body]']")
464
+ end
465
+
466
+ it "should add a link to remove new nested records" do
467
+ expect(body).to have_selector(".has_many_container > fieldset > ol > li > a.button.has_many_remove[href='#']", text: "Remove")
468
+ end
469
+
470
+ it "should add a link to add new nested records" do
471
+ expect(body).to have_selector(".has_many_container > a.button.has_many_add[href='#']", text: "Add New Post")
472
+ end
473
+
474
+ it "should set an HTML-id valid placeholder" do
475
+ link = body.find('.has_many_container > a.button.has_many_add')
476
+ expect(link[:'data-placeholder']).to match valid_html_id
477
+ end
478
+
479
+ describe "with namespaced model" do
480
+ it "should set an HTML-id valid placeholder" do
481
+ allow(Post).to receive(:name).and_return "ActiveAdmin::Post"
482
+ link = body.find('.has_many_container > a.button.has_many_add')
483
+ expect(link[:'data-placeholder']).to match valid_html_id
484
+ end
485
+ end
486
+ end
487
+
488
+ describe "with complex block" do
489
+ let :body do
490
+ build_form({url: '/categories'}, Category.new) do |f|
491
+ f.object.posts.build
492
+ f.has_many :posts do |p,i|
493
+ p.input :title, label: "Title #{i}"
494
+ end
495
+ end
496
+ end
497
+
498
+ it "should accept a block with a second argument" do
499
+ expect(body).to have_selector("label", text: "Title 1")
500
+ end
501
+
502
+ it "should add a custom header" do
503
+ expect(body).to have_selector("h3", text: "Post")
504
+ end
505
+
506
+ end
507
+
508
+ describe "without heading and new record link" do
509
+ let :body do
510
+ build_form({url: '/categories'}, Category.new) do |f|
511
+ f.object.posts.build
512
+ f.has_many :posts, heading: false, new_record: false do |p|
513
+ p.input :title
514
+ end
515
+ end
516
+ end
517
+
518
+ it "should not add a header" do
519
+ expect(body).not_to have_selector("h3", text: "Post")
520
+ end
521
+
522
+ it "should not add link to new nested records" do
523
+ expect(body).not_to have_selector("a", text: "Add New Post")
524
+ end
525
+
526
+ it "should render the nested form" do
527
+ expect(body).to have_selector("input[name='category[posts_attributes][0][title]']")
528
+ end
529
+ end
530
+
531
+ describe "with custom heading" do
532
+ let :body do
533
+ build_form({url: '/categories'}, Category.new) do |f|
534
+ f.object.posts.build
535
+ f.has_many :posts, heading: "Test heading" do |p|
536
+ p.input :title
537
+ end
538
+ end
539
+ end
540
+
541
+ it "should add a custom header" do
542
+ expect(body).to have_selector("h3", "Test heading")
543
+ end
544
+
545
+ end
546
+
547
+ describe "with custom new record link" do
548
+ let :body do
549
+ build_form({url: '/categories'}, Category.new) do |f|
550
+ f.object.posts.build
551
+ f.has_many :posts, new_record: 'My Custom New Post' do |p|
552
+ p.input :title
553
+ end
554
+ end
555
+ end
556
+
557
+ it "should add a custom new record link" do
558
+ expect(body).to have_selector("a", text: "My Custom New Post")
559
+ end
560
+
561
+ end
562
+
563
+ describe "with allow destroy" do
564
+ context "with an existing post" do
565
+ let :body do
566
+ build_form({url: '/categories'}, Category.new) do |f|
567
+ allow(f.object.posts.build).to receive(:new_record?).and_return(false)
568
+ f.has_many :posts, allow_destroy: true do |p|
569
+ p.input :title
570
+ end
571
+ end
572
+ end
573
+
574
+ it "should include a boolean field for _destroy" do
575
+ expect(body).to have_selector("input[name='category[posts_attributes][0][_destroy]']")
576
+ end
577
+
578
+ it "should have a check box with 'Remove' as its label" do
579
+ expect(body).to have_selector("label[for=category_posts_attributes_0__destroy]", text: "Delete")
580
+ end
581
+
582
+ it "should wrap the destroy field in an li with class 'has_many_delete'" do
583
+ expect(body).to have_selector(".has_many_container > fieldset > ol > li.has_many_delete > input", count: 1)
584
+ end
585
+ end
586
+
587
+ context "with a new post" do
588
+ let :body do
589
+ build_form({url: '/categories'}, Category.new) do |f|
590
+ f.object.posts.build
591
+ f.has_many :posts, allow_destroy: true do |p|
592
+ p.input :title
593
+ end
594
+ end
595
+ end
596
+
597
+ it "should not have a boolean field for _destroy" do
598
+ expect(body).not_to have_selector("input[name='category[posts_attributes][0][_destroy]']")
599
+ end
600
+
601
+ it "should not have a check box with 'Remove' as its label" do
602
+ expect(body).not_to have_selector("label[for=category_posts_attributes_0__destroy]", text: "Remove")
603
+ end
604
+ end
605
+ end
606
+
607
+ describe "sortable" do
608
+ # TODO: it doesn't make any sense to use your foreign key as something that's sortable (and therefore editable)
609
+ context "with a new post" do
610
+ let :body do
611
+ build_form({url: '/categories'}, Category.new) do |f|
612
+ f.object.posts.build
613
+ f.has_many :posts, sortable: :position do |p|
614
+ p.input :title
615
+ end
616
+ end
617
+ end
618
+
619
+ it "shows the nested fields for unsaved records" do
620
+ expect(body).to have_selector("fieldset.inputs.has_many_fields")
621
+ end
622
+
623
+ end
624
+
625
+ context "with post returning nil for the sortable attribute" do
626
+ let :body do
627
+ build_form({url: '/categories'}, Category.new) do |f|
628
+ f.object.posts.build position: 3
629
+ f.object.posts.build
630
+ f.has_many :posts, sortable: :position do |p|
631
+ p.input :title
632
+ end
633
+ end
634
+ end
635
+
636
+ it "shows the nested fields for unsaved records" do
637
+ expect(body).to have_selector("fieldset.inputs.has_many_fields")
638
+ end
639
+
640
+ end
641
+
642
+ context "with existing and new posts" do
643
+ let! :category do
644
+ Category.create name: 'Name'
645
+ end
646
+ let! :post do
647
+ category.posts.create
648
+ end
649
+ let :body do
650
+ build_form({url: '/categories'}, category) do |f|
651
+ f.object.posts.build
652
+ f.has_many :posts, sortable: :position do |p|
653
+ p.input :title
654
+ end
655
+ end
656
+ end
657
+
658
+ it "shows the nested fields for saved and unsaved records" do
659
+ expect(body).to have_selector("fieldset.inputs.has_many_fields")
660
+ end
661
+ end
662
+
663
+ context "without sortable_start set" do
664
+ let :body do
665
+ build_form({url: '/categories'}, Category.new) do |f|
666
+ f.object.posts.build
667
+ f.has_many :posts, sortable: :position do |p|
668
+ p.input :title
669
+ end
670
+ end
671
+ end
672
+
673
+ it "defaults to 0" do
674
+ expect(body).to have_selector("div.has_many_container[data-sortable-start='0']")
675
+ end
676
+ end
677
+
678
+ context "with sortable_start set" do
679
+ let :body do
680
+ build_form({url: '/categories'}, Category.new) do |f|
681
+ f.object.posts.build
682
+ f.has_many :posts, sortable: :position, sortable_start: 15 do |p|
683
+ p.input :title
684
+ end
685
+ end
686
+ end
687
+
688
+ it "sets the data attribute" do
689
+ expect(body).to have_selector("div.has_many_container[data-sortable-start='15']")
690
+ end
691
+ end
692
+ end
693
+
694
+ describe "with nesting" do
695
+ context "in an inputs block" do
696
+ let :body do
697
+ build_form({url: '/categories'}, Category.new) do |f|
698
+ f.inputs "Field Wrapper" do
699
+ f.object.posts.build
700
+ f.has_many :posts do |p|
701
+ p.input :title
702
+ end
703
+ end
704
+ end
705
+ end
706
+
707
+ it "should wrap the has_many fieldset in an li" do
708
+ expect(body).to have_selector("ol > li.has_many_container")
709
+ end
710
+
711
+ it "should have a direct fieldset child" do
712
+ expect(body).to have_selector("li.has_many_container > fieldset")
713
+ end
714
+
715
+ it "should not contain invalid li children" do
716
+ expect(body).not_to have_selector("div.has_many_container > li")
717
+ end
718
+ end
719
+
720
+ context "in another has_many block" do
721
+ let :body do
722
+ build_form({url: '/categories'}, Category.new) do |f|
723
+ f.object.posts.build
724
+ f.has_many :posts do |p|
725
+ p.object.taggings.build
726
+ p.has_many :taggings do |t|
727
+ t.input :tag
728
+ end
729
+ end
730
+ end
731
+ end
732
+
733
+ it "should wrap the inner has_many fieldset in an ol > li" do
734
+ expect(body).to have_selector(".has_many_container ol > li.has_many_container > fieldset")
735
+ end
736
+
737
+ it "should not contain invalid li children" do
738
+ expect(body).not_to have_selector(".has_many_container div.has_many_container > li")
739
+ end
740
+ end
741
+ end
742
+
743
+ it "should render the block if it returns nil" do
744
+ body = build_form({url: '/categories'}, Category.new) do |f|
745
+ f.object.posts.build
746
+ f.has_many :posts do |p|
747
+ p.input :title
748
+ nil
749
+ end
750
+ end
751
+
752
+ expect(body).to have_selector("input[name='category[posts_attributes][0][title]']")
753
+ end
754
+ end
755
+
756
+ { # Testing that the same input can be used multiple times
757
+ "f.input :title, as: :string" => "post_title",
758
+ "f.input :title, as: :text" => "post_title",
759
+ "f.input :created_at, as: :time_select" => "post_created_at_2i",
760
+ "f.input :created_at, as: :datetime_select" => "post_created_at_2i",
761
+ "f.input :created_at, as: :date_select" => "post_created_at_2i",
762
+ # Testing that return values don't screw up the form
763
+ "f.input :title; nil" => "post_title",
764
+ "f.input :title; []" => "post_title",
765
+ "[:title].each{ |r| f.input r }" => "post_title",
766
+ "[:title].map { |r| f.input r }" => "post_title",
767
+ }.each do |source, selector|
768
+ it "should properly buffer `#{source}`" do
769
+ body = build_form do |f|
770
+ f.inputs do
771
+ eval source
772
+ eval source
773
+ end
774
+ end
775
+ expect(body).to have_selector("[id=#{selector}]", count: 2)
776
+ end
777
+ end
778
+
779
+ describe "datepicker input" do
780
+ context 'with default options' do
781
+ let :body do
782
+ build_form do |f|
783
+ f.inputs do
784
+ f.input :created_at, as: :datepicker
785
+ end
786
+ end
787
+ end
788
+ it "should generate a text input with the class of datepicker" do
789
+ expect(body).to have_selector("input.datepicker[type=text][name='post[created_at]']")
790
+ end
791
+ end
792
+
793
+ context 'with date range options' do
794
+ let :body do
795
+ build_form do |f|
796
+ f.inputs do
797
+ f.input :created_at, as: :datepicker,
798
+ datepicker_options: {
799
+ min_date: Date.new(2013, 10, 18),
800
+ max_date: "2013-12-31" }
801
+ end
802
+ end
803
+ end
804
+
805
+ it 'should generate a datepicker text input with data min and max dates' do
806
+ selector = "input.datepicker[type=text][name='post[created_at]']"
807
+ expect(body).to have_selector(selector)
808
+ expect(body.find(selector)["data-datepicker-options"]).to eq({ minDate: '2013-10-18', maxDate: '2013-12-31' }.to_json)
809
+ end
810
+ end
811
+ end
812
+ end