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,267 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/resource_collection"
3
+
4
+ module ActiveAdmin
5
+
6
+ # Namespaces are the basic organizing principle for resources within Active Admin
7
+ #
8
+ # Each resource is registered into a namespace which defines:
9
+ # * the namespaceing for routing
10
+ # * the module to namespace controllers
11
+ # * the menu which gets displayed (other resources in the same namespace)
12
+ #
13
+ # For example:
14
+ #
15
+ # ActiveAdmin.register Post, namespace: :admin
16
+ #
17
+ # Will register the Post model into the "admin" namespace. This will namespace the
18
+ # urls for the resource to "/admin/posts" and will set the controller to
19
+ # Admin::PostsController
20
+ #
21
+ # You can also register to the "root" namespace, which is to say no namespace at all.
22
+ #
23
+ # ActiveAdmin.register Post, namespace: false
24
+ #
25
+ # This will register the resource to an instantiated namespace called :root. The
26
+ # resource will be accessible from "/posts" and the controller will be PostsController.
27
+ #
28
+ class Namespace
29
+ class << self
30
+ def setting(name, default)
31
+ ActiveAdmin.deprecator.warn "This method does not do anything and will be removed."
32
+ end
33
+ end
34
+
35
+ RegisterEvent = "active_admin.namespace.register".freeze
36
+
37
+ attr_reader :application, :resources, :menus
38
+
39
+ def initialize(application, name)
40
+ @application = application
41
+ @name = name.to_s.underscore
42
+ @resources = ResourceCollection.new
43
+ register_module unless root?
44
+ build_menu_collection
45
+ end
46
+
47
+ def name
48
+ @name.to_sym
49
+ end
50
+
51
+ def settings
52
+ @settings ||= SettingsNode.build(application.namespace_settings)
53
+ end
54
+
55
+ def respond_to_missing?(method, include_private = false)
56
+ settings.respond_to?(method) || super
57
+ end
58
+
59
+ def method_missing(method, *args)
60
+ settings.respond_to?(method) ? settings.send(method, *args) : super
61
+ end
62
+
63
+ # Register a resource into this namespace. The preferred method to access this is to
64
+ # use the global registration ActiveAdmin.register which delegates to the proper
65
+ # namespace instance.
66
+ def register(resource_class, options = {}, &block)
67
+ config = find_or_build_resource(resource_class, options)
68
+
69
+ # Register the resource
70
+ register_resource_controller(config)
71
+ parse_registration_block(config, &block) if block_given?
72
+ reset_menu!
73
+
74
+ # Dispatch a registration event
75
+ ActiveSupport::Notifications.instrument ActiveAdmin::Resource::RegisterEvent, { active_admin_resource: config }
76
+
77
+ # Return the config
78
+ config
79
+ end
80
+
81
+ def register_page(name, options = {}, &block)
82
+ config = build_page(name, options)
83
+
84
+ # Register the resource
85
+ register_page_controller(config)
86
+ parse_page_registration_block(config, &block) if block_given?
87
+ reset_menu!
88
+
89
+ config
90
+ end
91
+
92
+ def root?
93
+ name == :root
94
+ end
95
+
96
+ # Returns the name of the module if required. Will be nil if none
97
+ # is required.
98
+ #
99
+ # eg:
100
+ # Namespace.new(:admin).module_name # => 'Admin'
101
+ # Namespace.new(:root).module_name # => nil
102
+ #
103
+ def module_name
104
+ root? ? nil : @name.camelize
105
+ end
106
+
107
+ def route_prefix
108
+ root? ? nil : @name
109
+ end
110
+
111
+ # Unload all the registered resources for this namespace
112
+ def unload!
113
+ unload_resources!
114
+ reset_menu!
115
+ end
116
+
117
+ # Returns the first registered ActiveAdmin::Resource instance for a given class
118
+ def resource_for(klass)
119
+ resources[klass]
120
+ end
121
+
122
+ def fetch_menu(name)
123
+ @menus.fetch(name)
124
+ end
125
+
126
+ def reset_menu!
127
+ @menus.clear!
128
+ end
129
+
130
+ # Add a callback to be ran when we build the menu
131
+ #
132
+ # @param [Symbol] name The name of the menu. Default: :default
133
+ # @yield [ActiveAdmin::Menu] The block to be ran when the menu is built
134
+ #
135
+ # @return [void]
136
+ def build_menu(name = DEFAULT_MENU)
137
+ @menus.before_build do |menus|
138
+ menus.menu name do |menu|
139
+ yield menu
140
+ end
141
+ end
142
+ end
143
+
144
+ # The default logout menu item
145
+ #
146
+ # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
147
+ # @param [Fixnum] priority The numeric priority for the order in which it appears
148
+ # @param [Hash] html_options An options hash to pass along to link_to
149
+ #
150
+ def add_logout_button_to_menu(menu, priority = 20, html_options = {})
151
+ if logout_link_path
152
+ html_options = html_options.reverse_merge(method: logout_link_method || :get)
153
+ menu.add id: "logout", priority: priority, html_options: html_options,
154
+ label: -> { I18n.t "active_admin.logout" },
155
+ url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
156
+ if: :current_active_admin_user?
157
+ end
158
+ end
159
+
160
+ # The default user session menu item
161
+ #
162
+ # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
163
+ # @param [Fixnum] priority The numeric priority for the order in which it appears
164
+ # @param [Hash] html_options An options hash to pass along to link_to
165
+ #
166
+ def add_current_user_to_menu(menu, priority = 10, html_options = {})
167
+ if current_user_method
168
+ menu.add id: "current_user", priority: priority, html_options: html_options,
169
+ label: -> { display_name current_active_admin_user },
170
+ url: -> { auto_url_for(current_active_admin_user) },
171
+ if: :current_active_admin_user?
172
+ end
173
+ end
174
+
175
+ protected
176
+
177
+ def build_menu_collection
178
+ @menus = MenuCollection.new
179
+
180
+ @menus.on_build do
181
+ build_default_utility_nav
182
+
183
+ resources.each do |resource|
184
+ resource.add_to_menu(@menus)
185
+ end
186
+ end
187
+ end
188
+
189
+ # Builds the default utility navigation in top right header with current user & logout button
190
+ def build_default_utility_nav
191
+ return if @menus.exists? :utility_navigation
192
+ @menus.menu :utility_navigation do |menu|
193
+ add_current_user_to_menu menu
194
+ add_logout_button_to_menu menu
195
+ end
196
+ end
197
+
198
+ # Either returns an existing Resource instance or builds a new one.
199
+ def find_or_build_resource(resource_class, options)
200
+ resources.add Resource.new(self, resource_class, options)
201
+ end
202
+
203
+ def build_page(name, options)
204
+ resources.add Page.new(self, name, options)
205
+ end
206
+
207
+ # TODO: replace `eval` with `Class.new`
208
+ def register_page_controller(config)
209
+ eval "class ::#{config.controller_name} < ActiveAdmin::PageController; end"
210
+ config.controller.active_admin_config = config
211
+ end
212
+
213
+ def unload_resources!
214
+ resources.each do |resource|
215
+ parent = (module_name || "Object").constantize
216
+ name = resource.controller_name.split("::").last
217
+ parent.send(:remove_const, name) if parent.const_defined?(name, false)
218
+
219
+ # Remove circular references
220
+ resource.controller.active_admin_config = nil
221
+ if resource.is_a?(Resource) && resource.dsl
222
+ resource.dsl.run_registration_block { @config = nil }
223
+ end
224
+ end
225
+ @resources = ResourceCollection.new
226
+ end
227
+
228
+ # Creates a ruby module to namespace all the classes in if required
229
+ def register_module
230
+ unless Object.const_defined? module_name
231
+ Object.const_set module_name, Module.new
232
+ end
233
+ end
234
+
235
+ # TODO: replace `eval` with `Class.new`
236
+ def register_resource_controller(config)
237
+ eval "class ::#{config.controller_name} < ActiveAdmin::ResourceController; end"
238
+ config.controller.active_admin_config = config
239
+ end
240
+
241
+ def parse_registration_block(config, &block)
242
+ config.dsl = ResourceDSL.new(config)
243
+ config.dsl.run_registration_block(&block)
244
+ end
245
+
246
+ def parse_page_registration_block(config, &block)
247
+ PageDSL.new(config).run_registration_block(&block)
248
+ end
249
+
250
+ class Store
251
+ include Enumerable
252
+ delegate :[], :[]=, :empty?, to: :@namespaces
253
+
254
+ def initialize
255
+ @namespaces = {}
256
+ end
257
+
258
+ def each(&block)
259
+ @namespaces.values.each(&block)
260
+ end
261
+
262
+ def names
263
+ @namespaces.keys
264
+ end
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/dynamic_settings_node"
3
+
4
+ module ActiveAdmin
5
+ class NamespaceSettings < DynamicSettingsNode
6
+ # The default number of resources to display on index pages
7
+ register :default_per_page, 30
8
+
9
+ # The max number of resources to display on index pages and batch exports
10
+ register :max_per_page, 10_000
11
+
12
+ # The title which gets displayed in the main layout
13
+ register :site_title, "", :string_symbol_or_proc
14
+
15
+ # Set the site title link href (defaults to AA dashboard)
16
+ register :site_title_link, ""
17
+
18
+ # Set the site title image displayed in the main layout (has precendence over :site_title)
19
+ register :site_title_image, "", :string_symbol_or_proc
20
+
21
+ # Add to the site head
22
+ register :head, "", :string_symbol_or_proc
23
+
24
+ # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
25
+ register :footer, "", :string_symbol_or_proc
26
+
27
+ # Set a favicon
28
+ register :favicon, false
29
+
30
+ # Additional meta tags to place in head of logged in pages
31
+ register :meta_tags, {}
32
+
33
+ # Additional meta tags to place in head of logged out pages
34
+ register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
35
+
36
+ # The view factory to use to generate all the view classes. Take
37
+ # a look at ActiveAdmin::ViewFactory
38
+ register :view_factory, ActiveAdmin::ViewFactory.new
39
+
40
+ # The method to call in controllers to get the current user
41
+ register :current_user_method, false
42
+
43
+ # The method to call in the controllers to ensure that there
44
+ # is a currently authenticated admin user
45
+ register :authentication_method, false
46
+
47
+ # The path to log user's out with. If set to a symbol, we assume
48
+ # that it's a method to call which returns the path
49
+ register :logout_link_path, :destroy_admin_user_session_path
50
+
51
+ # The method to use when generating the link for user logout
52
+ register :logout_link_method, :get
53
+
54
+ # Whether the batch actions are enabled or not
55
+ register :batch_actions, false
56
+
57
+ # Whether filters are enabled
58
+ register :filters, true
59
+
60
+ # The namespace root
61
+ register :root_to, "dashboard#index"
62
+
63
+ # Options that are passed to root_to
64
+ register :root_to_options, {}
65
+
66
+ # Options passed to the routes, i.e. { path: '/custom' }
67
+ register :route_options, {}
68
+
69
+ # Display breadcrumbs
70
+ register :breadcrumb, true
71
+
72
+ # Display create another checkbox on a new page
73
+ # @return [Boolean] (true)
74
+ register :create_another, false
75
+
76
+ # Default CSV options
77
+ register :csv_options, { col_sep: ",", byte_order_mark: "\xEF\xBB\xBF" }
78
+
79
+ # Default Download Links options
80
+ register :download_links, true
81
+
82
+ # The authorization adapter to use
83
+ register :authorization_adapter, ActiveAdmin::AuthorizationAdapter
84
+
85
+ # A proc to be used when a user is not authorized to view the current resource
86
+ register :on_unauthorized_access, :rescue_active_admin_access_denied
87
+
88
+ # A regex to detect unsupported browser, set to false to disable
89
+ register :unsupported_browser_matcher, /MSIE [1-8]\.0/
90
+
91
+ # Whether to display 'Current Filters' on search screen
92
+ register :current_filters, true
93
+
94
+ # class to handle ordering
95
+ register :order_clause, ActiveAdmin::OrderClause
96
+
97
+ # default show_count for scopes
98
+ register :scopes_show_count, true
99
+
100
+ # Request parameters that are permitted by default
101
+ register :permitted_params, [
102
+ :utf8, :_method, :authenticity_token, :commit, :id
103
+ ]
104
+
105
+ # Set flash message keys that shouldn't show in ActiveAdmin
106
+ register :flash_keys_to_except, ["timedout"]
107
+
108
+ # Include association filters by default
109
+ register :include_default_association_filters, true
110
+
111
+ register :maximum_association_filter_arity, :unlimited
112
+
113
+ register :filter_columns_for_large_association, [
114
+ :display_name,
115
+ :full_name,
116
+ :name,
117
+ :username,
118
+ :login,
119
+ :title,
120
+ :email,
121
+ ]
122
+ register :filter_method_for_large_association, "_start"
123
+
124
+ # Switch between asset pipeline and webpacker assets
125
+ register :use_webpacker, false
126
+ end
127
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ class OrderClause
4
+ attr_reader :field, :order, :active_admin_config
5
+
6
+ def initialize(active_admin_config, clause)
7
+ clause =~ /^([\w\.]+)(->'\w+')?_(desc|asc)$/
8
+ @column = $1
9
+ @op = $2
10
+ @order = $3
11
+ @active_admin_config = active_admin_config
12
+ @field = [@column, @op].compact.join
13
+ end
14
+
15
+ def valid?
16
+ @field.present? && @order.present?
17
+ end
18
+
19
+ def apply(chain)
20
+ chain.reorder(Arel.sql sql)
21
+ end
22
+
23
+ def to_sql
24
+ [table_column, @op, " ", @order].compact.join
25
+ end
26
+
27
+ def table
28
+ active_admin_config.resource_column_names.include?(@column) ? active_admin_config.resource_table_name : nil
29
+ end
30
+
31
+ def table_column
32
+ (@column =~ /\./) ? @column :
33
+ [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".")
34
+ end
35
+
36
+ def sql
37
+ custom_sql || to_sql
38
+ end
39
+
40
+ protected
41
+
42
+ def custom_sql
43
+ if active_admin_config.ordering[@column].present?
44
+ active_admin_config.ordering[@column].call(self)
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ class Comment < ActiveRecord::Base
4
+
5
+ self.table_name = "#{table_name_prefix}active_admin_comments#{table_name_suffix}"
6
+
7
+ belongs_to :resource, polymorphic: true, optional: true
8
+ belongs_to :author, polymorphic: true
9
+
10
+ validates_presence_of :body, :namespace, :resource
11
+
12
+ before_create :set_resource_type
13
+
14
+ # @return [String] The name of the record to use for the polymorphic relationship
15
+ def self.resource_type(resource)
16
+ ResourceController::Decorators.undecorate(resource).class.base_class.name.to_s
17
+ end
18
+
19
+ def self.find_for_resource_in_namespace(resource, namespace)
20
+ where(
21
+ resource_type: resource_type(resource),
22
+ resource_id: resource.id,
23
+ namespace: namespace.to_s
24
+ ).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
25
+ end
26
+
27
+ def set_resource_type
28
+ self.resource_type = self.class.resource_type(resource)
29
+ end
30
+
31
+ def self.ransackable_attributes(auth_object = nil)
32
+ authorizable_ransackable_attributes
33
+ end
34
+
35
+ def self.ransackable_associations(auth_object = nil)
36
+ authorizable_ransackable_associations
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Comments
4
+
5
+ module NamespaceHelper
6
+
7
+ # Returns true if the namespace allows comments
8
+ def comments?
9
+ comments == true
10
+ end
11
+
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Comments
4
+
5
+ module ResourceHelper
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ attr_accessor :comments
10
+ end
11
+
12
+ def comments?
13
+ (namespace.comments? && comments != false) || comments == true
14
+ end
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Comments
4
+
5
+ # Adds #active_admin_comments to the show page for use
6
+ # and sets it up on the default main content
7
+ module ShowPageHelper
8
+
9
+ # Add admin comments to the main content if they are
10
+ # turned on for the current resource
11
+ def default_main_content
12
+ super
13
+ active_admin_comments if active_admin_config.comments?
14
+ end
15
+
16
+ # Display the comments for the resource. Same as calling
17
+ # #active_admin_comments_for with the current resource
18
+ def active_admin_comments(*args, &block)
19
+ active_admin_comments_for(resource, *args, &block)
20
+ end
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/views"
3
+ require "active_admin/views/components/panel"
4
+
5
+ module ActiveAdmin
6
+ module Comments
7
+ module Views
8
+
9
+ class Comments < ActiveAdmin::Views::Panel
10
+ builder_method :active_admin_comments_for
11
+
12
+ attr_accessor :resource
13
+
14
+ def build(resource)
15
+ if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
16
+ @resource = resource
17
+ @comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
18
+ super(title, for: resource)
19
+ build_comments
20
+ end
21
+ end
22
+
23
+ protected
24
+
25
+ def title
26
+ I18n.t "active_admin.comments.title_content", count: @comments.total_count
27
+ end
28
+
29
+ def build_comments
30
+ if @comments.any?
31
+ @comments.each(&method(:build_comment))
32
+ div page_entries_info(@comments).html_safe, class: "pagination_information"
33
+ else
34
+ build_empty_message
35
+ end
36
+
37
+ text_node paginate @comments
38
+
39
+ if authorized?(ActiveAdmin::Auth::NEW, ActiveAdmin::Comment)
40
+ build_comment_form
41
+ end
42
+ end
43
+
44
+ def build_comment(comment)
45
+ div for: comment do
46
+ div class: "active_admin_comment_meta" do
47
+ h4 class: "active_admin_comment_author" do
48
+ comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
49
+ end
50
+ span pretty_format comment.created_at
51
+ if authorized?(ActiveAdmin::Auth::DESTROY, comment)
52
+ text_node link_to I18n.t("active_admin.comments.delete"), comments_url(comment.id), method: :delete, data: { confirm: I18n.t("active_admin.comments.delete_confirmation") }
53
+ end
54
+ end
55
+ div class: "active_admin_comment_body" do
56
+ simple_format comment.body
57
+ end
58
+ end
59
+ end
60
+
61
+ def build_empty_message
62
+ span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
63
+ end
64
+
65
+ def comments_url(*args)
66
+ parts = []
67
+ parts << active_admin_namespace.name unless active_admin_namespace.root?
68
+ parts << active_admin_namespace.comments_registration_name.underscore
69
+ parts << "path"
70
+ send parts.join("_"), *args
71
+ end
72
+
73
+ def comment_form_url
74
+ parts = []
75
+ parts << active_admin_namespace.name unless active_admin_namespace.root?
76
+ parts << active_admin_namespace.comments_registration_name.underscore.pluralize
77
+ parts << "path"
78
+ send parts.join "_"
79
+ end
80
+
81
+ def build_comment_form
82
+ active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
83
+ f.inputs do
84
+ f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
85
+ f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
86
+ f.input :body, label: false, input_html: { size: "80x8" }
87
+ end
88
+ f.actions do
89
+ f.action :submit, label: I18n.t("active_admin.comments.add")
90
+ end
91
+ end
92
+ end
93
+
94
+ def default_id_for_prefix
95
+ "active_admin_comments_for"
96
+ end
97
+ end
98
+
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/views"
3
+ require "active_admin/orm/active_record/comments/views/active_admin_comments"