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,102 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/orm/active_record/comments/views"
3
+ require "active_admin/orm/active_record/comments/show_page_helper"
4
+ require "active_admin/orm/active_record/comments/namespace_helper"
5
+ require "active_admin/orm/active_record/comments/resource_helper"
6
+
7
+ # Add the comments configuration
8
+ ActiveAdmin::Application.inheritable_setting :comments, true
9
+ ActiveAdmin::Application.inheritable_setting :comments_registration_name, "Comment"
10
+ ActiveAdmin::Application.inheritable_setting :comments_order, "created_at ASC"
11
+ ActiveAdmin::Application.inheritable_setting :comments_menu, {}
12
+
13
+ # Insert helper modules
14
+ ActiveAdmin::Namespace.send :include, ActiveAdmin::Comments::NamespaceHelper
15
+ ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
16
+ ActiveAdmin.application.view_factory.show_page.send :include, ActiveAdmin::Comments::ShowPageHelper
17
+
18
+ # Load the model as soon as it's referenced. By that point, Rails & Kaminari will be ready
19
+ ActiveAdmin.autoload :Comment, "active_admin/orm/active_record/comments/comment"
20
+
21
+ # Hint i18n-tasks about model and attribute translations used by default install
22
+ # i18n-tasks-use t('activerecord.models.comment')
23
+ # i18n-tasks-use t('activerecord.models.active_admin/comment')
24
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.author_type')
25
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.body')
26
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.created_at')
27
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.namespace')
28
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.resource_type')
29
+ # i18n-tasks-use t('activerecord.attributes.active_admin/comment.updated_at')
30
+ # i18n-tasks-use t('active_admin.scopes.all')
31
+
32
+ # Walk through all the loaded namespaces after they're loaded
33
+ ActiveAdmin.after_load do |app|
34
+ app.namespaces.each do |namespace|
35
+ namespace.register ActiveAdmin::Comment, as: namespace.comments_registration_name do
36
+ actions :index, :show, :create, :destroy
37
+
38
+ menu namespace.comments ? namespace.comments_menu : false
39
+
40
+ config.comments = false # Don't allow comments on comments
41
+ config.batch_actions = false # The default destroy batch action isn't showing up anyway...
42
+
43
+ scope :all, show_count: false
44
+ # Register a scope for every namespace that exists.
45
+ # The current namespace will be the default scope.
46
+ app.namespaces.map(&:name).each do |name|
47
+ scope name, default: namespace.name == name do |scope|
48
+ scope.where namespace: name.to_s
49
+ end
50
+ end
51
+
52
+ # Store the author and namespace
53
+ before_save do |comment|
54
+ comment.namespace = active_admin_config.namespace.name
55
+ comment.author = current_active_admin_user
56
+ end
57
+
58
+ controller do
59
+ # Prevent N+1 queries
60
+ def scoped_collection
61
+ super.includes(:author, :resource)
62
+ end
63
+
64
+ # Redirect to the resource show page after comment creation
65
+ def create
66
+ create! do |success, failure|
67
+ success.html do
68
+ redirect_back fallback_location: active_admin_root
69
+ end
70
+ failure.html do
71
+ flash[:error] = I18n.t "active_admin.comments.errors.empty_text"
72
+ redirect_back fallback_location: active_admin_root
73
+ end
74
+ end
75
+ end
76
+
77
+ def destroy
78
+ destroy! do |success, failure|
79
+ success.html do
80
+ redirect_back fallback_location: active_admin_root
81
+ end
82
+ failure.html do
83
+ redirect_back fallback_location: active_admin_root
84
+ end
85
+ end
86
+ end
87
+ end
88
+
89
+ permit_params :body, :namespace, :resource_id, :resource_type
90
+
91
+ index do
92
+ column I18n.t("active_admin.comments.resource_type"), :resource_type
93
+ column I18n.t("active_admin.comments.author_type"), :author_type
94
+ column I18n.t("active_admin.comments.resource"), :resource
95
+ column I18n.t("active_admin.comments.author"), :author
96
+ column I18n.t("active_admin.comments.body"), :body
97
+ column I18n.t("active_admin.comments.created_at"), :created_at
98
+ actions
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ # ActiveRecord-specific plugins should be required here
3
+
4
+ ActiveAdmin::DatabaseHitDuringLoad.database_error_classes << ActiveRecord::StatementInvalid
5
+
6
+ require "active_admin/orm/active_record/comments"
@@ -0,0 +1,2 @@
1
+ # frozen_string_literal: true
2
+ # Mongoid-specific plugins should be required here
@@ -0,0 +1,112 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ # Page is the primary data storage for page configuration in Active Admin
4
+ #
5
+ # When you register a page (ActiveAdmin.register_page "Status") you are actually creating
6
+ # a new Page instance within the given Namespace.
7
+ #
8
+ # The instance of the current page is available in PageController and views
9
+ # by calling the #active_admin_config method.
10
+ #
11
+ class Page
12
+
13
+ # The namespace this config belongs to
14
+ attr_reader :namespace
15
+
16
+ # The name of the page
17
+ attr_reader :name
18
+
19
+ # An array of custom actions defined for this page
20
+ attr_reader :page_actions
21
+
22
+ # Set breadcrumb builder
23
+ attr_accessor :breadcrumb
24
+
25
+ module Base
26
+ def initialize(namespace, name, options)
27
+ @namespace = namespace
28
+ @name = name
29
+ @options = options
30
+ @page_actions = []
31
+ end
32
+ end
33
+
34
+ include Base
35
+ include Resource::Controllers
36
+ include Resource::PagePresenters
37
+ include Resource::Sidebars
38
+ include Resource::ActionItems
39
+ include Resource::Menu
40
+ include Resource::Naming
41
+ include Resource::Routes
42
+
43
+ # label is singular
44
+ def plural_resource_label
45
+ name
46
+ end
47
+
48
+ def resource_name
49
+ @resource_name ||= Resource::Name.new(nil, name)
50
+ end
51
+
52
+ def underscored_resource_name
53
+ resource_name.to_s.parameterize.underscore
54
+ end
55
+
56
+ def camelized_resource_name
57
+ underscored_resource_name.camelize
58
+ end
59
+
60
+ def namespace_name
61
+ namespace.name.to_s
62
+ end
63
+
64
+ def default_menu_options
65
+ super.merge(id: resource_name)
66
+ end
67
+
68
+ def controller_name
69
+ [namespace.module_name, camelized_resource_name + "Controller"].compact.join("::")
70
+ end
71
+
72
+ # Override from `ActiveAdmin::Resource::Controllers`
73
+ def route_uncountable?
74
+ false
75
+ end
76
+
77
+ def add_default_action_items
78
+ end
79
+
80
+ def add_default_sidebar_sections
81
+ end
82
+
83
+ # Clears all the custom actions this page knows about
84
+ def clear_page_actions!
85
+ @page_actions = []
86
+ end
87
+
88
+ def belongs_to(target, options = {})
89
+ @belongs_to = Resource::BelongsTo.new(self, target, options)
90
+ self.navigation_menu_name = target unless @belongs_to.optional?
91
+ controller.send :belongs_to, target, options.dup
92
+ end
93
+
94
+ def belongs_to_config
95
+ @belongs_to
96
+ end
97
+
98
+ # Do we belong to another resource?
99
+ def belongs_to?
100
+ !!belongs_to_config
101
+ end
102
+
103
+ def breadcrumb
104
+ instance_variable_defined?(:@breadcrumb) ? @breadcrumb : namespace.breadcrumb
105
+ end
106
+
107
+ def order_clause
108
+ @order_clause || namespace.order_clause
109
+ end
110
+
111
+ end
112
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+
4
+ # All Pages controllers inherit from this controller.
5
+ class PageController < BaseController
6
+
7
+ # Active admin actions don't require layout. All custom actions do.
8
+ ACTIVE_ADMIN_ACTIONS = [:index]
9
+
10
+ actions :index
11
+
12
+ before_action :authorize_access!
13
+
14
+ def index(options = {}, &block)
15
+ render "active_admin/page/index"
16
+ end
17
+
18
+ def clear_page_actions!
19
+ active_admin_config.clear_page_actions!
20
+ end
21
+
22
+ private
23
+
24
+ def authorize_access!
25
+ permission = action_to_permission(params[:action])
26
+ authorize! permission, active_admin_config
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ # This is the class where all the register_page blocks are evaluated.
4
+ class PageDSL < DSL
5
+
6
+ # Page content.
7
+ #
8
+ # The block should define the view using Arbre.
9
+ #
10
+ # Example:
11
+ #
12
+ # ActiveAdmin.register "My Page" do
13
+ # content do
14
+ # para "Sweet!"
15
+ # end
16
+ # end
17
+ #
18
+ def content(options = {}, &block)
19
+ config.set_page_presenter :index, ActiveAdmin::PagePresenter.new(options, &block)
20
+ end
21
+
22
+ def page_action(name, options = {}, &block)
23
+ config.page_actions << ControllerAction.new(name, options)
24
+ controller do
25
+ define_method(name, &block || Proc.new {})
26
+ end
27
+ end
28
+
29
+ def belongs_to(target, options = {})
30
+ config.belongs_to(target, options)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+
4
+ # A simple object that gets used to present different aspects of views
5
+ #
6
+ # Initialize with a set of options and a block. The options become
7
+ # available using hash style syntax.
8
+ #
9
+ # Usage:
10
+ #
11
+ # presenter = PagePresenter.new as: :table do
12
+ # # some awesome stuff
13
+ # end
14
+ #
15
+ # presenter[:as] #=> :table
16
+ # presenter.block #=> The block passed in to new
17
+ #
18
+ class PagePresenter
19
+
20
+ attr_reader :block, :options
21
+
22
+ delegate :has_key?, :fetch, to: :options
23
+
24
+ def initialize(options = {}, &block)
25
+ @options = options
26
+ @block = block
27
+ end
28
+
29
+ def [](key)
30
+ @options[key]
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+ ActiveAdmin::Dependency.pundit!
3
+
4
+ require "pundit"
5
+
6
+ # Add a setting to the application to configure the pundit default policy
7
+ ActiveAdmin::Application.inheritable_setting :pundit_default_policy, nil
8
+ ActiveAdmin::Application.inheritable_setting :pundit_policy_namespace, nil
9
+
10
+ module ActiveAdmin
11
+
12
+ class PunditAdapter < AuthorizationAdapter
13
+
14
+ def authorized?(action, subject = nil)
15
+ policy = retrieve_policy(subject)
16
+ action = format_action(action, subject)
17
+
18
+ policy.respond_to?(action) && policy.public_send(action)
19
+ end
20
+
21
+ def scope_collection(collection, action = Auth::READ)
22
+ # scoping is appliable only to read/index action
23
+ # which means there is no way how to scope other actions
24
+ Pundit.policy_scope!(user, namespace(collection))
25
+ rescue Pundit::NotDefinedError => e
26
+ if default_policy_class && default_policy_class.const_defined?(:Scope)
27
+ default_policy_class::Scope.new(user, collection).resolve
28
+ else
29
+ raise e
30
+ end
31
+ end
32
+
33
+ def retrieve_policy(subject)
34
+ target = policy_target(subject)
35
+ if (policy = policy(namespace(target)) || compat_policy(subject))
36
+ policy
37
+ elsif default_policy_class
38
+ default_policy(subject)
39
+ else
40
+ raise Pundit::NotDefinedError, "unable to find a compatible policy for `#{target}`"
41
+ end
42
+ end
43
+
44
+ def format_action(action, subject)
45
+ # https://github.com/varvet/pundit/blob/main/lib/generators/pundit/install/templates/application_policy.rb
46
+ case action
47
+ when Auth::READ then subject.is_a?(Class) ? :index? : :show?
48
+ when Auth::DESTROY then subject.is_a?(Class) ? :destroy_all? : :destroy?
49
+ else "#{action}?"
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def policy_target(subject)
56
+ case subject
57
+ when nil then resource
58
+ when Class then subject.new
59
+ else subject
60
+ end
61
+ end
62
+
63
+ # This method is needed to fallback to our previous policy searching logic.
64
+ # I.e.: when class name contains `default_policy_namespace` (eg: ShopAdmin)
65
+ # we should try to search it without namespace. This is because that's
66
+ # the only thing that worked in this case before we fixed our buggy namespace
67
+ # detection, so people are probably relying on it.
68
+ # This fallback might be removed in future versions of ActiveAdmin, so
69
+ # pundit_adapter search will work consistently with provided namespaces
70
+ def compat_policy(subject)
71
+ return unless default_policy_namespace
72
+
73
+ target = policy_target(subject)
74
+
75
+ return unless target.class.to_s.include?(default_policy_module) &&
76
+ (policy = policy(target))
77
+
78
+ policy_name = policy.class.to_s
79
+
80
+ ActiveAdmin.deprecator.warn "You have `pundit_policy_namespace` configured as `#{default_policy_namespace}`, " \
81
+ "but ActiveAdmin was unable to find policy #{default_policy_module}::#{policy_name}. " \
82
+ "#{policy_name} will be used instead. " \
83
+ "This behavior will be removed in future versions of ActiveAdmin. " \
84
+ "To fix this warning, move your #{policy_name} policy to the #{default_policy_module} namespace"
85
+
86
+ policy
87
+ end
88
+
89
+ def namespace(object)
90
+ if default_policy_namespace && !object.class.to_s.start_with?("#{default_policy_module}::")
91
+ [default_policy_namespace.to_sym, object]
92
+ else
93
+ object
94
+ end
95
+ end
96
+
97
+ def default_policy_class
98
+ ActiveAdmin.application.pundit_default_policy && ActiveAdmin.application.pundit_default_policy.constantize
99
+ end
100
+
101
+ def default_policy(subject)
102
+ default_policy_class.new(user, subject)
103
+ end
104
+
105
+ def default_policy_namespace
106
+ ActiveAdmin.application.pundit_policy_namespace
107
+ end
108
+
109
+ def default_policy_module
110
+ default_policy_namespace.to_s.camelize
111
+ end
112
+
113
+ def policy(target)
114
+ policies[target] ||= Pundit.policy(user, target)
115
+ end
116
+
117
+ def policies
118
+ @policies ||= {}
119
+ end
120
+
121
+ end
122
+
123
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/optional_display"
3
+
4
+ module ActiveAdmin
5
+
6
+ class Resource
7
+ module ActionItems
8
+
9
+ # Adds the default action items to a resource when it's initialized
10
+ def initialize(*args)
11
+ super
12
+ add_default_action_items
13
+ end
14
+
15
+ # @return [Array] The set of action items for this resource
16
+ def action_items
17
+ @action_items ||= []
18
+ end
19
+
20
+ # Add a new action item to a resource
21
+ #
22
+ # @param [Symbol] name
23
+ # @param [Hash] options valid keys include:
24
+ # :only: A single or array of controller actions to display
25
+ # this action item on.
26
+ # :except: A single or array of controller actions not to
27
+ # display this action item on.
28
+ # :priority: A single integer value. To control the display order. Default is 10.
29
+ def add_action_item(name, options = {}, &block)
30
+ self.action_items << ActiveAdmin::ActionItem.new(name, options, &block)
31
+ end
32
+
33
+ def remove_action_item(name)
34
+ self.action_items.delete_if { |item| item.name == name }
35
+ end
36
+
37
+ # Returns a set of action items to display for a specific controller action
38
+ #
39
+ # @param [String, Symbol] action the action to retrieve action items for
40
+ #
41
+ # @return [Array] Array of ActionItems for the controller actions
42
+ def action_items_for(action, render_context = nil)
43
+ action_items.select { |item| item.display_on? action, render_context }.sort_by(&:priority)
44
+ end
45
+
46
+ # Clears all the existing action items for this resource
47
+ def clear_action_items!
48
+ @action_items = []
49
+ end
50
+
51
+ # Used by active_admin Base view
52
+ def action_items?
53
+ !!@action_items && @action_items.any?
54
+ end
55
+
56
+ private
57
+
58
+ # Adds the default action items to each resource
59
+ def add_default_action_items
60
+ add_default_new_action_item
61
+ add_default_edit_action_item
62
+ add_default_show_action_item
63
+ end
64
+
65
+ # Adds the default New link on index
66
+ def add_default_new_action_item
67
+ add_action_item :new, only: :index do
68
+ if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::NEW, active_admin_config.resource_class)
69
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
70
+ link_to localizer.t(:new_model), new_resource_path
71
+ end
72
+ end
73
+ end
74
+
75
+ # Adds the default Edit link on show
76
+ def add_default_edit_action_item
77
+ add_action_item :edit, only: :show do
78
+ if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
79
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
80
+ link_to localizer.t(:edit_model), edit_resource_path(resource)
81
+ end
82
+ end
83
+ end
84
+
85
+ # Adds the default Destroy link on show
86
+ def add_default_show_action_item
87
+ add_action_item :destroy, only: :show do
88
+ if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
89
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
90
+ link_to localizer.t(:delete_model), resource_path(resource), method: :delete,
91
+ data: { confirm: localizer.t(:delete_confirmation) }
92
+ end
93
+ end
94
+ end
95
+
96
+ end
97
+ end
98
+
99
+ # Model class to store the data for ActionItems
100
+ class ActionItem
101
+ include ActiveAdmin::OptionalDisplay
102
+
103
+ attr_accessor :block, :name
104
+
105
+ def initialize(name, options = {}, &block)
106
+ @name = name
107
+ @options = options
108
+ @block = block
109
+ normalize_display_options!
110
+ end
111
+
112
+ def html_class
113
+ "action_item #{@options[:class]}".rstrip
114
+ end
115
+
116
+ def priority
117
+ @options[:priority] || 10
118
+ end
119
+ end
120
+
121
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+
4
+ class Resource
5
+ module Attributes
6
+
7
+ def default_attributes
8
+ resource_class.columns.each_with_object({}) do |c, attrs|
9
+ unless reject_col?(c)
10
+ name = c.name.to_sym
11
+ attrs[name] = (method_for_column(name) || name)
12
+ end
13
+ end
14
+ end
15
+
16
+ def method_for_column(c)
17
+ resource_class.respond_to?(:reflect_on_all_associations) && foreign_methods.has_key?(c) && foreign_methods[c].name.to_sym
18
+ end
19
+
20
+ def foreign_methods
21
+ @foreign_methods ||= resource_class.reflect_on_all_associations.
22
+ select { |r| r.macro == :belongs_to }.
23
+ reject { |r| r.chain.length > 2 && !r.options[:polymorphic] }.
24
+ index_by { |r| r.foreign_key.to_sym }
25
+ end
26
+
27
+ def reject_col?(c)
28
+ primary_col?(c) || sti_col?(c) || counter_cache_col?(c) || filtered_col?(c)
29
+ end
30
+
31
+ def primary_col?(c)
32
+ c.name == resource_class.primary_key
33
+ end
34
+
35
+ def sti_col?(c)
36
+ c.name == resource_class.inheritance_column
37
+ end
38
+
39
+ def counter_cache_col?(c)
40
+ # This helper is called inside a loop. Let's memoize the result.
41
+ @counter_cache_columns ||= begin
42
+ resource_class.reflect_on_all_associations(:has_many)
43
+ .select(&:has_cached_counter?)
44
+ .map(&:counter_cache_column)
45
+ end
46
+
47
+ @counter_cache_columns.include?(c.name)
48
+ end
49
+
50
+ def filtered_col?(c)
51
+ ActiveAdmin.application.filter_attributes.include?(c.name.to_sym)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveAdmin
4
+ class Resource
5
+ class BelongsTo
6
+
7
+ class TargetNotFound < StandardError
8
+ def initialize(key, namespace)
9
+ super "Could not find #{key} in #{namespace.name} " +
10
+ "with #{namespace.resources.map(&:resource_name)}"
11
+ end
12
+ end
13
+
14
+ # The resource which initiated this relationship
15
+ attr_reader :owner
16
+
17
+ # The name of the relation
18
+ attr_reader :target_name
19
+
20
+ def initialize(owner, target_name, options = {})
21
+ @owner = owner
22
+ @target_name = target_name
23
+ @options = options
24
+ end
25
+
26
+ # Returns the target resource class or raises an exception if it doesn't exist
27
+ def target
28
+ resource or raise TargetNotFound.new (@options[:class_name] || @target_name.to_s.camelize), namespace
29
+ end
30
+
31
+ def resource
32
+ namespace.resources[@options[:class_name]] ||
33
+ namespace.resources[@target_name.to_s.camelize]
34
+ end
35
+
36
+ def namespace
37
+ @owner.namespace
38
+ end
39
+
40
+ def optional?
41
+ @options[:optional]
42
+ end
43
+
44
+ def required?
45
+ !optional?
46
+ end
47
+
48
+ def to_param
49
+ (@options[:param] || "#{@target_name}_id").to_sym
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ class Resource
4
+ module Controllers
5
+ delegate :resources_configuration, to: :controller
6
+
7
+ # Returns a properly formatted controller name for this
8
+ # config within its namespace
9
+ def controller_name
10
+ [namespace.module_name, resource_name.plural.camelize + "Controller"].compact.join("::")
11
+ end
12
+
13
+ # Returns the controller for this config
14
+ def controller
15
+ @controller ||= controller_name.constantize
16
+ end
17
+
18
+ end
19
+ end
20
+ end