super-sharp-tool 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. checksums.yaml +7 -0
  2. data/activeadmin-3.5.1/CHANGELOG.md +1153 -0
  3. data/activeadmin-3.5.1/CODE_OF_CONDUCT.md +74 -0
  4. data/activeadmin-3.5.1/CONTRIBUTING.md +187 -0
  5. data/activeadmin-3.5.1/LICENSE +20 -0
  6. data/activeadmin-3.5.1/README.md +117 -0
  7. data/activeadmin-3.5.1/app/assets/javascripts/active_admin/base.js +520 -0
  8. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_base.scss +57 -0
  9. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_forms.scss +315 -0
  10. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_header.scss +188 -0
  11. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
  12. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  13. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_print.scss +287 -0
  14. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_typography.scss +100 -0
  15. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
  16. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
  17. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  18. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
  19. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  20. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
  21. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_date_picker.scss +148 -0
  22. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +154 -0
  23. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  24. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  25. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  26. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  27. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  28. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_pagination.scss +58 -0
  29. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  30. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
  31. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  32. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_table_tools.scss +70 -0
  33. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_tables.scss +112 -0
  34. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_tabs.scss +68 -0
  35. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  36. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
  37. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
  38. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  39. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  40. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
  41. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
  42. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  43. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
  44. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_variables.scss +51 -0
  45. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  46. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_footer.scss +19 -0
  47. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  48. data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
  49. data/activeadmin-3.5.1/app/javascript/active_admin/base.js +28 -0
  50. data/activeadmin-3.5.1/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  51. data/activeadmin-3.5.1/app/javascript/active_admin/ext/jquery.js +9 -0
  52. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  53. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  54. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/datepicker.js +19 -0
  55. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  56. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/filters.js +10 -0
  57. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/has-many.js +98 -0
  58. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/per-page.js +13 -0
  59. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  60. data/activeadmin-3.5.1/app/javascript/active_admin/initializers/tabs.js +6 -0
  61. data/activeadmin-3.5.1/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  62. data/activeadmin-3.5.1/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  63. data/activeadmin-3.5.1/app/javascript/active_admin/lib/filters.js +39 -0
  64. data/activeadmin-3.5.1/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  65. data/activeadmin-3.5.1/app/javascript/active_admin/lib/per-page.js +38 -0
  66. data/activeadmin-3.5.1/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  67. data/activeadmin-3.5.1/app/javascript/active_admin/lib/utils.js +40 -0
  68. data/activeadmin-3.5.1/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  69. data/activeadmin-3.5.1/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  70. data/activeadmin-3.5.1/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  71. data/activeadmin-3.5.1/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
  72. data/activeadmin-3.5.1/app/views/active_admin/devise/passwords/new.html.erb +15 -0
  73. data/activeadmin-3.5.1/app/views/active_admin/devise/registrations/new.html.erb +21 -0
  74. data/activeadmin-3.5.1/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  75. data/activeadmin-3.5.1/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  76. data/activeadmin-3.5.1/app/views/active_admin/devise/shared/_links.erb +33 -0
  77. data/activeadmin-3.5.1/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
  78. data/activeadmin-3.5.1/app/views/active_admin/page/index.html.arb +2 -0
  79. data/activeadmin-3.5.1/app/views/active_admin/resource/edit.html.arb +2 -0
  80. data/activeadmin-3.5.1/app/views/active_admin/resource/index.html.arb +2 -0
  81. data/activeadmin-3.5.1/app/views/active_admin/resource/new.html.arb +2 -0
  82. data/activeadmin-3.5.1/app/views/active_admin/resource/show.html.arb +2 -0
  83. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  84. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  85. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  86. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  87. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_page.html.erb +12 -0
  88. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  89. data/activeadmin-3.5.1/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  90. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  91. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  92. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  93. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  94. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  95. data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  96. data/activeadmin-3.5.1/app/views/layouts/active_admin.html.arb +2 -0
  97. data/activeadmin-3.5.1/app/views/layouts/active_admin_logged_out.html.erb +50 -0
  98. data/activeadmin-3.5.1/config/locales/ar.yml +128 -0
  99. data/activeadmin-3.5.1/config/locales/az.yml +131 -0
  100. data/activeadmin-3.5.1/config/locales/bg.yml +112 -0
  101. data/activeadmin-3.5.1/config/locales/bs.yml +114 -0
  102. data/activeadmin-3.5.1/config/locales/ca.yml +98 -0
  103. data/activeadmin-3.5.1/config/locales/cs.yml +102 -0
  104. data/activeadmin-3.5.1/config/locales/da.yml +130 -0
  105. data/activeadmin-3.5.1/config/locales/de-CH.yml +94 -0
  106. data/activeadmin-3.5.1/config/locales/de.yml +154 -0
  107. data/activeadmin-3.5.1/config/locales/el.yml +119 -0
  108. data/activeadmin-3.5.1/config/locales/en-CA.yml +132 -0
  109. data/activeadmin-3.5.1/config/locales/en-GB.yml +132 -0
  110. data/activeadmin-3.5.1/config/locales/en.yml +154 -0
  111. data/activeadmin-3.5.1/config/locales/eo.yml +137 -0
  112. data/activeadmin-3.5.1/config/locales/es-MX.yml +90 -0
  113. data/activeadmin-3.5.1/config/locales/es.yml +154 -0
  114. data/activeadmin-3.5.1/config/locales/fa.yml +112 -0
  115. data/activeadmin-3.5.1/config/locales/fi.yml +105 -0
  116. data/activeadmin-3.5.1/config/locales/fr.yml +133 -0
  117. data/activeadmin-3.5.1/config/locales/he.yml +132 -0
  118. data/activeadmin-3.5.1/config/locales/hr.yml +116 -0
  119. data/activeadmin-3.5.1/config/locales/hu.yml +94 -0
  120. data/activeadmin-3.5.1/config/locales/id.yml +128 -0
  121. data/activeadmin-3.5.1/config/locales/it.yml +154 -0
  122. data/activeadmin-3.5.1/config/locales/ja.yml +133 -0
  123. data/activeadmin-3.5.1/config/locales/ko.yml +113 -0
  124. data/activeadmin-3.5.1/config/locales/lt.yml +134 -0
  125. data/activeadmin-3.5.1/config/locales/lv.yml +85 -0
  126. data/activeadmin-3.5.1/config/locales/mk.yml +126 -0
  127. data/activeadmin-3.5.1/config/locales/nb.yml +122 -0
  128. data/activeadmin-3.5.1/config/locales/nl.yml +136 -0
  129. data/activeadmin-3.5.1/config/locales/pl.yml +160 -0
  130. data/activeadmin-3.5.1/config/locales/pt-BR.yml +135 -0
  131. data/activeadmin-3.5.1/config/locales/pt-PT.yml +85 -0
  132. data/activeadmin-3.5.1/config/locales/ro.yml +90 -0
  133. data/activeadmin-3.5.1/config/locales/ru.yml +135 -0
  134. data/activeadmin-3.5.1/config/locales/sk.yml +160 -0
  135. data/activeadmin-3.5.1/config/locales/sv-SE.yml +154 -0
  136. data/activeadmin-3.5.1/config/locales/tr.yml +133 -0
  137. data/activeadmin-3.5.1/config/locales/uk.yml +132 -0
  138. data/activeadmin-3.5.1/config/locales/vi.yml +154 -0
  139. data/activeadmin-3.5.1/config/locales/zh-CN.yml +154 -0
  140. data/activeadmin-3.5.1/config/locales/zh-TW.yml +128 -0
  141. data/activeadmin-3.5.1/lib/active_admin/abstract_view_factory.rb +48 -0
  142. data/activeadmin-3.5.1/lib/active_admin/application.rb +234 -0
  143. data/activeadmin-3.5.1/lib/active_admin/application_settings.rb +43 -0
  144. data/activeadmin-3.5.1/lib/active_admin/asset_registration.rb +30 -0
  145. data/activeadmin-3.5.1/lib/active_admin/authorization_adapter.rb +132 -0
  146. data/activeadmin-3.5.1/lib/active_admin/base_controller/authorization.rb +129 -0
  147. data/activeadmin-3.5.1/lib/active_admin/base_controller/menu.rb +35 -0
  148. data/activeadmin-3.5.1/lib/active_admin/base_controller.rb +82 -0
  149. data/activeadmin-3.5.1/lib/active_admin/batch_actions/controller.rb +41 -0
  150. data/activeadmin-3.5.1/lib/active_admin/batch_actions/resource_extension.rb +157 -0
  151. data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/batch_action_form.rb +39 -0
  152. data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/batch_action_selector.rb +59 -0
  153. data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/selection_cells.rb +39 -0
  154. data/activeadmin-3.5.1/lib/active_admin/batch_actions.rb +17 -0
  155. data/activeadmin-3.5.1/lib/active_admin/callbacks.rb +89 -0
  156. data/activeadmin-3.5.1/lib/active_admin/cancan_adapter.rb +37 -0
  157. data/activeadmin-3.5.1/lib/active_admin/collection_decorator.rb +32 -0
  158. data/activeadmin-3.5.1/lib/active_admin/component.rb +6 -0
  159. data/activeadmin-3.5.1/lib/active_admin/controller_action.rb +14 -0
  160. data/activeadmin-3.5.1/lib/active_admin/csv_builder.rb +144 -0
  161. data/activeadmin-3.5.1/lib/active_admin/dependency.rb +97 -0
  162. data/activeadmin-3.5.1/lib/active_admin/devise.rb +91 -0
  163. data/activeadmin-3.5.1/lib/active_admin/dsl.rb +161 -0
  164. data/activeadmin-3.5.1/lib/active_admin/dynamic_setting.rb +39 -0
  165. data/activeadmin-3.5.1/lib/active_admin/dynamic_settings_node.rb +29 -0
  166. data/activeadmin-3.5.1/lib/active_admin/engine.rb +29 -0
  167. data/activeadmin-3.5.1/lib/active_admin/error.rb +63 -0
  168. data/activeadmin-3.5.1/lib/active_admin/filters/active.rb +30 -0
  169. data/activeadmin-3.5.1/lib/active_admin/filters/active_filter.rb +124 -0
  170. data/activeadmin-3.5.1/lib/active_admin/filters/active_sidebar.rb +28 -0
  171. data/activeadmin-3.5.1/lib/active_admin/filters/dsl.rb +22 -0
  172. data/activeadmin-3.5.1/lib/active_admin/filters/forms.rb +86 -0
  173. data/activeadmin-3.5.1/lib/active_admin/filters/formtastic_addons.rb +75 -0
  174. data/activeadmin-3.5.1/lib/active_admin/filters/resource_extension.rb +180 -0
  175. data/activeadmin-3.5.1/lib/active_admin/filters.rb +12 -0
  176. data/activeadmin-3.5.1/lib/active_admin/form_builder.rb +186 -0
  177. data/activeadmin-3.5.1/lib/active_admin/generators/boilerplate.rb +54 -0
  178. data/activeadmin-3.5.1/lib/active_admin/helpers/collection.rb +21 -0
  179. data/activeadmin-3.5.1/lib/active_admin/helpers/i18n.rb +8 -0
  180. data/activeadmin-3.5.1/lib/active_admin/helpers/optional_display.rb +39 -0
  181. data/activeadmin-3.5.1/lib/active_admin/helpers/routes/url_helpers.rb +16 -0
  182. data/activeadmin-3.5.1/lib/active_admin/helpers/scope_chain.rb +25 -0
  183. data/activeadmin-3.5.1/lib/active_admin/inputs/datepicker_input.rb +28 -0
  184. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/base/search_method_select.rb +76 -0
  185. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/base.rb +45 -0
  186. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/boolean_input.rb +25 -0
  187. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/check_boxes_input.rb +51 -0
  188. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/date_picker_input.rb +14 -0
  189. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/date_range_input.rb +53 -0
  190. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/numeric_input.rb +13 -0
  191. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/select_input.rb +59 -0
  192. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/string_input.rb +27 -0
  193. data/activeadmin-3.5.1/lib/active_admin/inputs/filters/text_input.rb +26 -0
  194. data/activeadmin-3.5.1/lib/active_admin/inputs.rb +22 -0
  195. data/activeadmin-3.5.1/lib/active_admin/localizers/resource_localizer.rb +36 -0
  196. data/activeadmin-3.5.1/lib/active_admin/localizers.rb +12 -0
  197. data/activeadmin-3.5.1/lib/active_admin/menu.rb +107 -0
  198. data/activeadmin-3.5.1/lib/active_admin/menu_collection.rb +92 -0
  199. data/activeadmin-3.5.1/lib/active_admin/menu_item.rb +70 -0
  200. data/activeadmin-3.5.1/lib/active_admin/namespace.rb +267 -0
  201. data/activeadmin-3.5.1/lib/active_admin/namespace_settings.rb +127 -0
  202. data/activeadmin-3.5.1/lib/active_admin/order_clause.rb +49 -0
  203. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/comment.rb +40 -0
  204. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/namespace_helper.rb +15 -0
  205. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/resource_helper.rb +18 -0
  206. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/show_page_helper.rb +24 -0
  207. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +101 -0
  208. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/views.rb +3 -0
  209. data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments.rb +102 -0
  210. data/activeadmin-3.5.1/lib/active_admin/orm/active_record.rb +6 -0
  211. data/activeadmin-3.5.1/lib/active_admin/orm/mongoid.rb +2 -0
  212. data/activeadmin-3.5.1/lib/active_admin/page.rb +112 -0
  213. data/activeadmin-3.5.1/lib/active_admin/page_controller.rb +30 -0
  214. data/activeadmin-3.5.1/lib/active_admin/page_dsl.rb +33 -0
  215. data/activeadmin-3.5.1/lib/active_admin/page_presenter.rb +34 -0
  216. data/activeadmin-3.5.1/lib/active_admin/pundit_adapter.rb +123 -0
  217. data/activeadmin-3.5.1/lib/active_admin/resource/action_items.rb +121 -0
  218. data/activeadmin-3.5.1/lib/active_admin/resource/attributes.rb +55 -0
  219. data/activeadmin-3.5.1/lib/active_admin/resource/belongs_to.rb +53 -0
  220. data/activeadmin-3.5.1/lib/active_admin/resource/controllers.rb +20 -0
  221. data/activeadmin-3.5.1/lib/active_admin/resource/includes.rb +13 -0
  222. data/activeadmin-3.5.1/lib/active_admin/resource/menu.rb +68 -0
  223. data/activeadmin-3.5.1/lib/active_admin/resource/model.rb +16 -0
  224. data/activeadmin-3.5.1/lib/active_admin/resource/naming.rb +63 -0
  225. data/activeadmin-3.5.1/lib/active_admin/resource/ordering.rb +12 -0
  226. data/activeadmin-3.5.1/lib/active_admin/resource/page_presenters.rb +83 -0
  227. data/activeadmin-3.5.1/lib/active_admin/resource/pagination.rb +24 -0
  228. data/activeadmin-3.5.1/lib/active_admin/resource/routes.rb +146 -0
  229. data/activeadmin-3.5.1/lib/active_admin/resource/scope_to.rb +75 -0
  230. data/activeadmin-3.5.1/lib/active_admin/resource/scopes.rb +53 -0
  231. data/activeadmin-3.5.1/lib/active_admin/resource/sidebars.rb +29 -0
  232. data/activeadmin-3.5.1/lib/active_admin/resource.rb +227 -0
  233. data/activeadmin-3.5.1/lib/active_admin/resource_collection.rb +73 -0
  234. data/activeadmin-3.5.1/lib/active_admin/resource_controller/action_builder.rb +32 -0
  235. data/activeadmin-3.5.1/lib/active_admin/resource_controller/data_access.rb +348 -0
  236. data/activeadmin-3.5.1/lib/active_admin/resource_controller/decorators.rb +81 -0
  237. data/activeadmin-3.5.1/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  238. data/activeadmin-3.5.1/lib/active_admin/resource_controller/resource_class_methods.rb +27 -0
  239. data/activeadmin-3.5.1/lib/active_admin/resource_controller/scoping.rb +32 -0
  240. data/activeadmin-3.5.1/lib/active_admin/resource_controller/sidebars.rb +19 -0
  241. data/activeadmin-3.5.1/lib/active_admin/resource_controller/streaming.rb +45 -0
  242. data/activeadmin-3.5.1/lib/active_admin/resource_controller.rb +68 -0
  243. data/activeadmin-3.5.1/lib/active_admin/resource_dsl.rb +210 -0
  244. data/activeadmin-3.5.1/lib/active_admin/router.rb +115 -0
  245. data/activeadmin-3.5.1/lib/active_admin/scope.rb +65 -0
  246. data/activeadmin-3.5.1/lib/active_admin/settings_node.rb +20 -0
  247. data/activeadmin-3.5.1/lib/active_admin/sidebar_section.rb +40 -0
  248. data/activeadmin-3.5.1/lib/active_admin/version.rb +4 -0
  249. data/activeadmin-3.5.1/lib/active_admin/view_factory.rb +28 -0
  250. data/activeadmin-3.5.1/lib/active_admin/view_helpers/active_admin_application_helper.rb +13 -0
  251. data/activeadmin-3.5.1/lib/active_admin/view_helpers/auto_link_helper.rb +46 -0
  252. data/activeadmin-3.5.1/lib/active_admin/view_helpers/breadcrumb_helper.rb +34 -0
  253. data/activeadmin-3.5.1/lib/active_admin/view_helpers/display_helper.rb +119 -0
  254. data/activeadmin-3.5.1/lib/active_admin/view_helpers/download_format_links_helper.rb +60 -0
  255. data/activeadmin-3.5.1/lib/active_admin/view_helpers/fields_for.rb +51 -0
  256. data/activeadmin-3.5.1/lib/active_admin/view_helpers/flash_helper.rb +15 -0
  257. data/activeadmin-3.5.1/lib/active_admin/view_helpers/form_helper.rb +21 -0
  258. data/activeadmin-3.5.1/lib/active_admin/view_helpers/method_or_proc_helper.rb +101 -0
  259. data/activeadmin-3.5.1/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  260. data/activeadmin-3.5.1/lib/active_admin/view_helpers/sidebar_helper.rb +16 -0
  261. data/activeadmin-3.5.1/lib/active_admin/view_helpers/title_helper.rb +12 -0
  262. data/activeadmin-3.5.1/lib/active_admin/view_helpers/view_factory_helper.rb +12 -0
  263. data/activeadmin-3.5.1/lib/active_admin/view_helpers.rb +21 -0
  264. data/activeadmin-3.5.1/lib/active_admin/views/action_items.rb +18 -0
  265. data/activeadmin-3.5.1/lib/active_admin/views/components/active_admin_form.rb +164 -0
  266. data/activeadmin-3.5.1/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  267. data/activeadmin-3.5.1/lib/active_admin/views/components/attributes_table.rb +95 -0
  268. data/activeadmin-3.5.1/lib/active_admin/views/components/blank_slate.rb +18 -0
  269. data/activeadmin-3.5.1/lib/active_admin/views/components/columns.rb +162 -0
  270. data/activeadmin-3.5.1/lib/active_admin/views/components/dropdown_menu.rb +69 -0
  271. data/activeadmin-3.5.1/lib/active_admin/views/components/index_list.rb +70 -0
  272. data/activeadmin-3.5.1/lib/active_admin/views/components/menu.rb +33 -0
  273. data/activeadmin-3.5.1/lib/active_admin/views/components/menu_item.rb +59 -0
  274. data/activeadmin-3.5.1/lib/active_admin/views/components/paginated_collection.rb +164 -0
  275. data/activeadmin-3.5.1/lib/active_admin/views/components/panel.rb +39 -0
  276. data/activeadmin-3.5.1/lib/active_admin/views/components/scopes.rb +75 -0
  277. data/activeadmin-3.5.1/lib/active_admin/views/components/sidebar.rb +14 -0
  278. data/activeadmin-3.5.1/lib/active_admin/views/components/sidebar_section.rb +35 -0
  279. data/activeadmin-3.5.1/lib/active_admin/views/components/site_title.rb +55 -0
  280. data/activeadmin-3.5.1/lib/active_admin/views/components/status_tag.rb +76 -0
  281. data/activeadmin-3.5.1/lib/active_admin/views/components/table_for.rb +211 -0
  282. data/activeadmin-3.5.1/lib/active_admin/views/components/tabs.rb +41 -0
  283. data/activeadmin-3.5.1/lib/active_admin/views/components/unsupported_browser.rb +12 -0
  284. data/activeadmin-3.5.1/lib/active_admin/views/footer.rb +32 -0
  285. data/activeadmin-3.5.1/lib/active_admin/views/header.rb +20 -0
  286. data/activeadmin-3.5.1/lib/active_admin/views/index_as_block.rb +37 -0
  287. data/activeadmin-3.5.1/lib/active_admin/views/index_as_blog.rb +156 -0
  288. data/activeadmin-3.5.1/lib/active_admin/views/index_as_grid.rb +81 -0
  289. data/activeadmin-3.5.1/lib/active_admin/views/index_as_table.rb +401 -0
  290. data/activeadmin-3.5.1/lib/active_admin/views/pages/base.rb +134 -0
  291. data/activeadmin-3.5.1/lib/active_admin/views/pages/form.rb +65 -0
  292. data/activeadmin-3.5.1/lib/active_admin/views/pages/index.rb +166 -0
  293. data/activeadmin-3.5.1/lib/active_admin/views/pages/layout.rb +27 -0
  294. data/activeadmin-3.5.1/lib/active_admin/views/pages/page.rb +31 -0
  295. data/activeadmin-3.5.1/lib/active_admin/views/pages/show.rb +60 -0
  296. data/activeadmin-3.5.1/lib/active_admin/views/tabbed_navigation.rb +12 -0
  297. data/activeadmin-3.5.1/lib/active_admin/views/title_bar.rb +56 -0
  298. data/activeadmin-3.5.1/lib/active_admin/views.rb +9 -0
  299. data/activeadmin-3.5.1/lib/active_admin.rb +135 -0
  300. data/activeadmin-3.5.1/lib/activeadmin.rb +2 -0
  301. data/activeadmin-3.5.1/lib/generators/active_admin/assets/assets_generator.rb +15 -0
  302. data/activeadmin-3.5.1/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  303. data/activeadmin-3.5.1/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
  304. data/activeadmin-3.5.1/lib/generators/active_admin/devise/devise_generator.rb +69 -0
  305. data/activeadmin-3.5.1/lib/generators/active_admin/install/install_generator.rb +56 -0
  306. data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/active_admin.rb.erb +352 -0
  307. data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
  308. data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  309. data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
  310. data/activeadmin-3.5.1/lib/generators/active_admin/page/USAGE +8 -0
  311. data/activeadmin-3.5.1/lib/generators/active_admin/page/page_generator.rb +13 -0
  312. data/activeadmin-3.5.1/lib/generators/active_admin/page/templates/page.rb +6 -0
  313. data/activeadmin-3.5.1/lib/generators/active_admin/resource/resource_generator.rb +21 -0
  314. data/activeadmin-3.5.1/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  315. data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  316. data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  317. data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  318. data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  319. data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  320. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/data.js +39 -0
  321. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/disable-selection.js +51 -0
  322. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/focusable.js +79 -0
  323. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +81 -0
  324. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/keycode.js +51 -0
  325. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/labels.js +70 -0
  326. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/plugin.js +49 -0
  327. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/position.js +513 -0
  328. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/scroll-parent.js +50 -0
  329. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/tabbable.js +41 -0
  330. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/unique-id.js +54 -0
  331. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/version.js +20 -0
  332. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widget.js +761 -0
  333. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/button.js +454 -0
  334. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +294 -0
  335. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
  336. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2240 -0
  337. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +957 -0
  338. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1264 -0
  339. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +226 -0
  340. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1281 -0
  341. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1614 -0
  342. data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +918 -0
  343. data/super-sharp-tool.gemspec +12 -0
  344. metadata +383 -0
@@ -0,0 +1,164 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+ class FormtasticProxy < ::Arbre::Rails::Forms::FormBuilderProxy
5
+ def split_string_on(string, match)
6
+ return "" unless string && match
7
+ part_1 = string.split(Regexp.new("#{match}\\z")).first
8
+ [part_1, match]
9
+ end
10
+
11
+ def opening_tag
12
+ @opening_tag || ""
13
+ end
14
+
15
+ def closing_tag
16
+ @closing_tag || ""
17
+ end
18
+
19
+ def to_s
20
+ opening_tag + children.to_s + closing_tag
21
+ end
22
+ end
23
+
24
+ class ActiveAdminForm < FormtasticProxy
25
+ builder_method :active_admin_form_for
26
+
27
+ def build(resource, options = {}, &block)
28
+ @resource = resource
29
+ options = options.deep_dup
30
+ options[:builder] ||= ActiveAdmin::FormBuilder
31
+ form_string = helpers.semantic_form_for(resource, options) do |f|
32
+ @form_builder = f
33
+ end
34
+
35
+ @opening_tag, @closing_tag = split_string_on(form_string, "</form>")
36
+ instance_eval(&block) if block_given?
37
+
38
+ # Rails sets multipart automatically if a file field is present,
39
+ # but the form tag has already been rendered before the block eval.
40
+ if multipart? && @opening_tag !~ /multipart/
41
+ @opening_tag.sub!(/<form/, '<form enctype="multipart/form-data"')
42
+ end
43
+ end
44
+
45
+ def inputs(*args, &block)
46
+ if block_given?
47
+ form_builder.template.assigns[:has_many_block] = true
48
+ end
49
+ if block_given? && block.arity == 0
50
+ wrapped_block = proc do
51
+ wrap_it = form_builder.already_in_an_inputs_block ? true : false
52
+ form_builder.already_in_an_inputs_block = true
53
+ content = form_builder.template.capture do
54
+ block.call
55
+ end
56
+ form_builder.already_in_an_inputs_block = wrap_it
57
+ content
58
+ end
59
+ insert_tag(SemanticInputsProxy, form_builder, *args, &wrapped_block)
60
+ else
61
+ # Set except option to prevent sensitive fields from being shown in forms by default.
62
+ opts = args.extract_options!
63
+ opts[:except] ||= []
64
+ ActiveAdmin.application.filter_attributes.each { |e| opts[:except] << e }
65
+ args << opts
66
+
67
+ proxy_call_to_form(:inputs, *args, &block)
68
+ end
69
+ end
70
+
71
+ def input(*args)
72
+ proxy_call_to_form :input, *args
73
+ end
74
+
75
+ def actions(*args, &block)
76
+ block_given? ?
77
+ insert_tag(SemanticActionsProxy, form_builder, *args, &block) :
78
+ actions(*args) { commit_action_with_cancel_link }
79
+ end
80
+
81
+ def commit_action_with_cancel_link
82
+ add_create_another_checkbox
83
+ action(:submit)
84
+ cancel_link
85
+ end
86
+
87
+ def add_create_another_checkbox
88
+ if %w(new create).include?(helpers.action_name) && active_admin_config && active_admin_config.create_another
89
+ current_arbre_element.add_child(create_another_checkbox)
90
+ end
91
+ end
92
+
93
+ def has_many(*args, &block)
94
+ insert_tag(HasManyProxy, form_builder, *args, &block)
95
+ end
96
+
97
+ def multipart?
98
+ form_builder && form_builder.multipart?
99
+ end
100
+
101
+ def object
102
+ form_builder.object
103
+ end
104
+
105
+ private
106
+
107
+ def create_another_checkbox
108
+ create_another = params[:create_another]
109
+ label = @resource.class.model_name.human
110
+ Arbre::Context.new do
111
+ li class: "create_another" do
112
+ input(
113
+ checked: create_another,
114
+ id: "create_another",
115
+ name: "create_another",
116
+ type: "checkbox"
117
+ )
118
+ label(I18n.t("active_admin.create_another", model: label), for: "create_another")
119
+ end
120
+ end
121
+ end
122
+ end
123
+
124
+ class SemanticInputsProxy < FormtasticProxy
125
+ def build(form_builder, *args, &block)
126
+ html_options = args.extract_options!
127
+ html_options[:class] ||= "inputs"
128
+ legend = args.shift if args.first.is_a?(::String)
129
+ legend = html_options.delete(:name) if html_options.key?(:name)
130
+ legend_tag = legend ? helpers.tag.legend(helpers.tag.span(legend), class: "fieldset-title") : ""
131
+ fieldset_attrs = tag_attributes html_options
132
+ @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
+ @closing_tag = "</ol></fieldset>"
134
+ super(*(args << html_options), &block)
135
+ end
136
+
137
+ private
138
+
139
+ def tag_attributes(html_options)
140
+ if Rails::VERSION::MAJOR <= 6
141
+ # Reimplement tag.attributes to backport support for Rails 6.1.
142
+ # TODO: this can be removed when support for Rails 6.x is dropped
143
+ helpers.tag.tag_options(html_options.to_h).to_s.strip.html_safe
144
+ else
145
+ helpers.tag.attributes html_options
146
+ end
147
+ end
148
+ end
149
+
150
+ class SemanticActionsProxy < FormtasticProxy
151
+ def build(form_builder, *args, &block)
152
+ @opening_tag = "<fieldset class=\"actions\"><ol>"
153
+ @closing_tag = "</ol></fieldset>"
154
+ super(*args, &block)
155
+ end
156
+ end
157
+
158
+ class HasManyProxy < FormtasticProxy
159
+ def build(form_builder, *args, &block)
160
+ text_node form_builder.has_many(*args, &block)
161
+ end
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/filters/active"
3
+
4
+ module ActiveAdmin
5
+ module Views
6
+
7
+ class ActiveFiltersSidebarContent < ActiveAdmin::Component
8
+ builder_method :active_filters_sidebar_content
9
+
10
+ def build
11
+ active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
12
+ active_scopes = assigns[:search].instance_variable_get("@scope_args")
13
+
14
+ scope_block(current_scope)
15
+ filters_list(active_filters, active_scopes)
16
+ end
17
+
18
+ def scope_block(current_scope)
19
+ return unless current_scope
20
+
21
+ h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
22
+ b scope_name(current_scope), class: "current_scope_name"
23
+ end
24
+
25
+ def filters_list(active_filters, active_scopes)
26
+ div style: "margin-top: 10px" do
27
+ h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
28
+ ul do
29
+ if active_filters.filters.blank? && active_scopes.blank?
30
+ li I18n.t("active_admin.search_status.no_current_filters")
31
+ else
32
+ active_filters.filters.each { |filter| filter_item(filter) }
33
+ active_scopes.each { |name, value| scope_item(name, value) }
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def filter_item(filter)
40
+ li filter.html_options do
41
+ span filter.label
42
+ b to_sentence(filter.values.map { |v| pretty_format(v) })
43
+ end
44
+ end
45
+
46
+ def scope_item(name, value)
47
+ filter_name = name.gsub(/_eq$/, "")
48
+ filter = active_admin_config.filters[filter_name.to_sym]
49
+ label = filter.try(:[], :label) || filter_name.titleize
50
+
51
+ li class: "current_filter_#{name}" do
52
+ span "#{label} #{Ransack::Translate.predicate('eq')}"
53
+ b value
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+
5
+ class AttributesTable < ActiveAdmin::Component
6
+ builder_method :attributes_table_for
7
+
8
+ def build(obj, *attrs)
9
+ @collection = Array.wrap(obj)
10
+ @resource_class = @collection.first.class
11
+ options = {}
12
+ options[:for] = @collection.first if single_record?
13
+ super(options)
14
+ @table = table
15
+ build_colgroups
16
+ rows(*attrs)
17
+ end
18
+
19
+ def rows(*attrs)
20
+ attrs.each { |attr| row(attr) }
21
+ end
22
+
23
+ def row(*args, &block)
24
+ title = args[0]
25
+ options = args.extract_options!
26
+ classes = [:row]
27
+ if options[:class]
28
+ classes << options[:class]
29
+ elsif title.present?
30
+ classes << "row-#{title.to_s.parameterize(separator: "_")}"
31
+ end
32
+ options[:class] = classes.join(" ")
33
+
34
+ @table << tr(options) do
35
+ th do
36
+ header_content_for(title)
37
+ end
38
+ @collection.each do |record|
39
+ td do
40
+ content_for(record, block || title)
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ protected
47
+
48
+ def default_id_for_prefix
49
+ "attributes_table"
50
+ end
51
+
52
+ # Build Colgroups
53
+ #
54
+ # Colgroups are only necessary for a collection of records; not
55
+ # a single record.
56
+ def build_colgroups
57
+ return if single_record?
58
+ reset_cycle(self.class.to_s)
59
+ within @table do
60
+ col # column for row headers
61
+ @collection.each do |record|
62
+ classes = Arbre::HTML::ClassList.new
63
+ classes << cycle(:even, :odd, name: self.class.to_s)
64
+ classes << dom_class_name_for(record)
65
+ col(id: dom_id_for(record), class: classes)
66
+ end
67
+ end
68
+ end
69
+
70
+ def header_content_for(attr)
71
+ if @resource_class.respond_to?(:human_attribute_name)
72
+ @resource_class.human_attribute_name(attr, default: attr.to_s.titleize)
73
+ else
74
+ attr.to_s.titleize
75
+ end
76
+ end
77
+
78
+ def empty_value
79
+ span I18n.t("active_admin.empty"), class: "empty"
80
+ end
81
+
82
+ def content_for(record, attr)
83
+ value = helpers.format_attribute record, attr
84
+ value.blank? && current_arbre_element.children.to_s.empty? ? empty_value : value
85
+ # Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
86
+ current_arbre_element << value unless current_arbre_element.children.include? value
87
+ end
88
+
89
+ def single_record?
90
+ @single_record ||= @collection.size == 1
91
+ end
92
+ end
93
+
94
+ end
95
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+ # Build a Blank Slate
5
+ class BlankSlate < ActiveAdmin::Component
6
+ builder_method :blank_slate
7
+
8
+ def default_class_name
9
+ "blank_slate_container"
10
+ end
11
+
12
+ def build(content)
13
+ super(span(content.html_safe, class: "blank_slate"))
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,162 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+
5
+ # = Columns Component
6
+ #
7
+ # The Columns component allows you draw content into scalable columns. All
8
+ # you need to do is define the number of columns and the component will
9
+ # take care of the rest.
10
+ #
11
+ # == Simple Columns
12
+ #
13
+ # To display columns, use the #columns method. Within the block, call the
14
+ # #column method to create a new column.
15
+ #
16
+ # To create a two column layout:
17
+ #
18
+ # columns do
19
+ # column do
20
+ # span "Column # 1
21
+ # end
22
+ # column do
23
+ # span "Column # 2
24
+ # end
25
+ # end
26
+ #
27
+ #
28
+ # == Multiple Span Columns
29
+ #
30
+ # To make a column span multiple, pass the :span option to the column method:
31
+ #
32
+ # columns do
33
+ # column span: 2 do
34
+ # span "Column # 1
35
+ # end
36
+ # column do
37
+ # span "Column # 2
38
+ # end
39
+ # end
40
+ #
41
+ # By default, each column spans 1 column. So the above layout would have 2 columns,
42
+ # the first being 2 time bigger than the second.
43
+ #
44
+ #
45
+ # == Max and Min Column Sizes
46
+ #
47
+ # Active Admin is a fluid width layout, which means that columns are all defined
48
+ # using percentages. Sometimes this can cause issues if you don't want a column
49
+ # to shrink or expand past a certain point.
50
+ #
51
+ # To overcome this, columns include a :max_width and :min_width option.
52
+ #
53
+ # columns do
54
+ # column max_width: "200px", min_width: "100px" do
55
+ # span "Column # 1
56
+ # end
57
+ # column do
58
+ # span "Column # 2
59
+ # end
60
+ # end
61
+ #
62
+ # Now the first column will not grow bigger than 200px and will not shrink smaller
63
+ # than 100px.
64
+ class Columns < ActiveAdmin::Component
65
+ builder_method :columns
66
+
67
+ # For documentation, please take a look at Column#build
68
+ def column(*args, &block)
69
+ insert_tag Column, *args, &block
70
+ end
71
+
72
+ # Override add child to set widths
73
+ def add_child(*)
74
+ super
75
+ calculate_columns!
76
+ end
77
+
78
+ protected
79
+
80
+ # Override the closing tag to include a clear
81
+ def closing_tag
82
+ "<div style=\"clear:both;\"></div>" + super
83
+ end
84
+
85
+ def margin_size
86
+ 2
87
+ end
88
+
89
+ # Calculate our columns sizes and margins
90
+ def calculate_columns!
91
+ span_count = columns_span_count
92
+ columns_count = children.size
93
+
94
+ all_margins_width = margin_size * (span_count - 1)
95
+ column_width = (100.00 - all_margins_width) / span_count
96
+
97
+ columns.each_with_index do |column, i|
98
+ is_last_column = i == (columns_count - 1)
99
+ column.set_column_styles(column_width, margin_size, is_last_column)
100
+ end
101
+ end
102
+
103
+ def columns_span_count
104
+ count = 0
105
+ columns.each do |column|
106
+ count += column.span_size
107
+ end
108
+
109
+ count
110
+ end
111
+
112
+ def columns
113
+ children.select { |child| child.is_a?(Column) }
114
+ end
115
+ end
116
+
117
+ class Column < ActiveAdmin::Component
118
+
119
+ attr_accessor :span_size, :max_width, :min_width
120
+
121
+ # @param [Hash] options An options hash for the column
122
+ #
123
+ # @option options [Integer] :span The columns this column should span
124
+ def build(options = {})
125
+ options = options.dup
126
+ @span_size = options.delete(:span) || 1
127
+ @max_width = options.delete(:max_width)
128
+ @min_width = options.delete(:min_width)
129
+
130
+ super(options)
131
+ end
132
+
133
+ def set_column_styles(column_width, margin_width, is_last_column = false)
134
+ column_with_span_width = (span_size * column_width) + ((span_size - 1) * margin_width)
135
+
136
+ styles = []
137
+
138
+ styles << "width: #{column_with_span_width}%;"
139
+
140
+ if max_width
141
+ styles << "max-width: #{safe_width(max_width)};"
142
+ end
143
+
144
+ if min_width
145
+ styles << "min-width: #{safe_width(min_width)};"
146
+ end
147
+
148
+ styles << "margin-right: #{margin_width}%;" unless is_last_column
149
+
150
+ set_attribute :style, styles.join(" ")
151
+ end
152
+
153
+ private
154
+
155
+ # Converts values without a '%' or 'px' suffix to a pixel value
156
+ def safe_width(width)
157
+ width.to_s.gsub(/\A(\d+)\z/, '\1px')
158
+ end
159
+
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+
5
+ # Action List - A button with a drop down menu of links
6
+ #
7
+ # Creating a new action list:
8
+ #
9
+ # dropdown_menu "Administration" do
10
+ # item "Edit Details", edit_details_path
11
+ # item "Edit My Account", edit_my_account_path
12
+ # end
13
+ #
14
+ # This will create a button with the label "Administration" and
15
+ # a drop down once clicked with 2 options.
16
+ #
17
+ class DropdownMenu < ActiveAdmin::Component
18
+ builder_method :dropdown_menu
19
+
20
+ # Build a new action list
21
+ #
22
+ # @param [String] name The name to display in the button
23
+ #
24
+ # @param [Hash] options A set of options that get passed along to
25
+ # to the parent dom element.
26
+ def build(name, options = {})
27
+ options = options.dup
28
+
29
+ # Easily set options for the button or menu
30
+ button_options = options.delete(:button) || {}
31
+ menu_options = options.delete(:menu) || {}
32
+
33
+ @button = build_button(name, button_options)
34
+ @menu = build_menu(menu_options)
35
+
36
+ super(options)
37
+ end
38
+
39
+ def item(*args, **kwargs)
40
+ within @menu do
41
+ li link_to(*args, **kwargs)
42
+ end
43
+ end
44
+
45
+ private
46
+
47
+ def build_button(name, button_options)
48
+ button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
49
+ button_options[:href] = "#"
50
+
51
+ a name, button_options
52
+ end
53
+
54
+ def build_menu(options)
55
+ options[:class] = "#{options[:class]} dropdown_menu_list"
56
+
57
+ menu_list = nil
58
+
59
+ div class: "dropdown_menu_list_wrapper" do
60
+ menu_list = ul(options)
61
+ end
62
+
63
+ menu_list
64
+ end
65
+
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/collection"
3
+
4
+ module ActiveAdmin
5
+ module Views
6
+
7
+ # Renders a collection of index views available to the resource
8
+ # as a list with a separator
9
+ class IndexList < ActiveAdmin::Component
10
+ builder_method :index_list_renderer
11
+
12
+ include ::ActiveAdmin::Helpers::Collection
13
+
14
+ def default_class_name
15
+ "indexes table_tools_segmented_control"
16
+ end
17
+
18
+ def tag_name
19
+ "ul"
20
+ end
21
+
22
+ # Builds the links for presenting different index views to the user
23
+ #
24
+ # @param [Array] index_classes The class constants that represent index page presenters
25
+ def build(index_classes)
26
+ unless current_filter_search_empty?
27
+ index_classes.each do |index_class|
28
+ build_index_list(index_class)
29
+ end
30
+ end
31
+ end
32
+
33
+ protected
34
+
35
+ # Builds the individual link and HTML classes for each index page presenter
36
+ #
37
+ # @param [Class] index_class The class on which to build the link and html classes
38
+ def build_index_list(index_class)
39
+ li class: classes_for_index(index_class) do
40
+ params = request.query_parameters.except :page, :commit, :format
41
+ url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
42
+
43
+ a href: url_with_params, class: "table_tools_button" do
44
+ name = index_class.index_name
45
+ I18n.t("active_admin.index_list.#{name}", default: name.to_s.titleize)
46
+ end
47
+ end
48
+ end
49
+
50
+ def classes_for_index(index_class)
51
+ classes = ["index"]
52
+ classes << "selected" if current_index?(index_class)
53
+ classes.join(" ")
54
+ end
55
+
56
+ def current_index?(index_class)
57
+ if params[:as]
58
+ params[:as] == index_class.index_name
59
+ else
60
+ active_admin_config.default_index_class == index_class
61
+ end
62
+ end
63
+
64
+ def current_filter_search_empty?
65
+ params.include?(:q) && collection_is_empty?
66
+ end
67
+
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+
5
+ # Renders an ActiveAdmin::Menu as a set of unordered list items.
6
+ #
7
+ # This component takes cares of deciding which items should be
8
+ # displayed given the current context and renders them appropriately.
9
+ #
10
+ # The entire component is rendered within one ul element.
11
+ class Menu < Component
12
+ attr_reader :menu
13
+ builder_method :menu
14
+
15
+ # @param [ActiveAdmin::Menu] menu the Menu to render
16
+ # @param [Hash] options the options as passed to the underlying ul element.
17
+ #
18
+ def build(menu, options = {})
19
+ @menu = menu
20
+ super(options)
21
+
22
+ menu.items.each do |item|
23
+ menu_item(item) if helpers.render_in_context self, item.should_display
24
+ end
25
+ children.sort!
26
+ end
27
+
28
+ def tag_name
29
+ "ul"
30
+ end
31
+ end
32
+ end
33
+ end