adminterface 0.0.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +1 -1
  3. data/README.md +61 -0
  4. data/Rakefile +43 -0
  5. data/app/assets/config/adminterface_manifest.js +1 -0
  6. data/app/assets/stylesheets/adminterface/_base.scss +20 -0
  7. data/app/assets/stylesheets/adminterface/_print.scss +56 -0
  8. data/app/assets/stylesheets/adminterface/components/_active_admin_comment.scss +19 -0
  9. data/app/assets/stylesheets/adminterface/components/_all.scss +24 -0
  10. data/app/assets/stylesheets/adminterface/components/_aside.scss +28 -0
  11. data/app/assets/stylesheets/adminterface/components/_attributes_table.scss +19 -0
  12. data/app/assets/stylesheets/adminterface/components/_comments.scss +7 -0
  13. data/app/assets/stylesheets/adminterface/components/_divider.scss +28 -0
  14. data/app/assets/stylesheets/adminterface/components/_filters.scss +27 -0
  15. data/app/assets/stylesheets/adminterface/components/_flash.scss +4 -0
  16. data/app/assets/stylesheets/adminterface/components/_footer.scss +4 -0
  17. data/app/assets/stylesheets/adminterface/components/_form.scss +219 -0
  18. data/app/assets/stylesheets/adminterface/components/_header.scss +30 -0
  19. data/app/assets/stylesheets/adminterface/components/_index.scss +1 -0
  20. data/app/assets/stylesheets/adminterface/components/_index_as_grid.scss +5 -0
  21. data/app/assets/stylesheets/adminterface/components/_index_as_table.scss +1 -0
  22. data/app/assets/stylesheets/adminterface/components/_index_footer.scss +19 -0
  23. data/app/assets/stylesheets/adminterface/components/_modal_dialog.scss +4 -0
  24. data/app/assets/stylesheets/adminterface/components/_pagination.scss +3 -0
  25. data/app/assets/stylesheets/adminterface/components/_panel.scss +21 -0
  26. data/app/assets/stylesheets/adminterface/components/_sidebar.scss +13 -0
  27. data/app/assets/stylesheets/adminterface/components/_site_title.scss +17 -0
  28. data/app/assets/stylesheets/adminterface/components/_table_for.scss +37 -0
  29. data/app/assets/stylesheets/adminterface/components/_table_tools.scss +19 -0
  30. data/app/assets/stylesheets/adminterface/components/_thumbnail.scss +29 -0
  31. data/app/assets/stylesheets/adminterface/components/_title_bar.scss +36 -0
  32. data/app/assets/stylesheets/adminterface/components/inputs/_all.scss +2 -0
  33. data/app/assets/stylesheets/adminterface/components/inputs/_password.scss +28 -0
  34. data/app/assets/stylesheets/adminterface/components/inputs/_text.scss +30 -0
  35. data/app/assets/stylesheets/adminterface/helpers/_aa_icon.scss +1 -0
  36. data/app/assets/stylesheets/adminterface/helpers/_all.scss +2 -0
  37. data/app/assets/stylesheets/adminterface/helpers/_pointer.scss +1 -0
  38. data/app/assets/stylesheets/adminterface/layouts/_all.scss +4 -0
  39. data/app/assets/stylesheets/adminterface/layouts/_base.scss +5 -0
  40. data/app/assets/stylesheets/adminterface/layouts/_logged_in.scss +30 -0
  41. data/app/assets/stylesheets/adminterface/layouts/_logged_out.scss +14 -0
  42. data/app/assets/stylesheets/adminterface/layouts/types/_all.scss +4 -0
  43. data/app/assets/stylesheets/adminterface/layouts/types/_mixins.scss +195 -0
  44. data/app/assets/stylesheets/adminterface/layouts/types/_navigation_aside.scss +33 -0
  45. data/app/assets/stylesheets/adminterface/layouts/types/_navigation_sidebar.scss +15 -0
  46. data/app/assets/stylesheets/adminterface/layouts/types/_navigation_top.scss +33 -0
  47. data/app/assets/stylesheets/adminterface/mixins/_all.scss +3 -0
  48. data/app/assets/stylesheets/adminterface/mixins/_layouts.scss +38 -0
  49. data/app/assets/stylesheets/adminterface/mixins/_utilities.scss +39 -0
  50. data/app/assets/stylesheets/adminterface/mixins/_variables.scss +100 -0
  51. data/app/assets/stylesheets/adminterface/placeholders/_aa_icon.scss +10 -0
  52. data/app/assets/stylesheets/adminterface/placeholders/_all.scss +3 -0
  53. data/app/assets/stylesheets/adminterface/placeholders/_background.scss +5 -0
  54. data/app/assets/stylesheets/adminterface/placeholders/_typography.scss +11 -0
  55. data/app/assets/stylesheets/adminterface/vendors/_all.scss +4 -0
  56. data/app/assets/stylesheets/adminterface/vendors/bootstrap/_all.scss +6 -0
  57. data/app/assets/stylesheets/adminterface/vendors/bootstrap/_variables.scss +51 -0
  58. data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_buttons.scss +5 -0
  59. data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_dropdowns.scss +28 -0
  60. data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_navs.scss +25 -0
  61. data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/form/_labels.scss +5 -0
  62. data/app/assets/stylesheets/adminterface/vendors/bootstrap/content/_tables.scss +2 -0
  63. data/app/assets/stylesheets/adminterface/vendors/bootstrap/content/_typography.scss +2 -0
  64. data/app/assets/stylesheets/adminterface/vendors/flatpickr/_all.scss +2 -0
  65. data/app/assets/stylesheets/adminterface/vendors/flatpickr/_variables.scss +7 -0
  66. data/app/assets/stylesheets/adminterface/vendors/flatpickr/main.scss +50 -0
  67. data/app/assets/stylesheets/adminterface/vendors/tom_select/_all.scss +1 -0
  68. data/app/assets/stylesheets/adminterface/vendors/tom_select/_main.scss +6 -0
  69. data/app/assets/stylesheets/adminterface/vendors/trix/_actiontext.scss +36 -0
  70. data/app/assets/stylesheets/adminterface/vendors/trix/_all.scss +3 -0
  71. data/app/assets/stylesheets/adminterface/vendors/trix/_trix_editor.scss +86 -0
  72. data/app/assets/stylesheets/adminterface/vendors/trix/_variables.scss +31 -0
  73. data/app/javascript/adminterface/base.js +14 -0
  74. data/app/javascript/adminterface/config.js +129 -0
  75. data/app/javascript/adminterface/initializers/batch_actions.js +9 -0
  76. data/app/javascript/adminterface/initializers/bootstrap.js +29 -0
  77. data/app/javascript/adminterface/initializers/confirm_dialog.js +23 -0
  78. data/app/javascript/adminterface/initializers/detached_dropdown.js +16 -0
  79. data/app/javascript/adminterface/initializers/drawer_menu_item_toggler.js +15 -0
  80. data/app/javascript/adminterface/initializers/filters.js +23 -0
  81. data/app/javascript/adminterface/initializers/has_many.js +7 -0
  82. data/app/javascript/adminterface/initializers/header_toggler.js +10 -0
  83. data/app/javascript/adminterface/initializers/index.js +2 -0
  84. data/app/javascript/adminterface/initializers/per_page.js +12 -0
  85. data/app/javascript/adminterface/initializers/plugins/flatpickr.js +24 -0
  86. data/app/javascript/adminterface/initializers/plugins/input_counter.js +21 -0
  87. data/app/javascript/adminterface/initializers/plugins/password_visibility.js +23 -0
  88. data/app/javascript/adminterface/initializers/plugins/tom_select.js +24 -0
  89. data/app/javascript/adminterface/lib/__tests__/detached_dropdown.spec.js +70 -0
  90. data/app/javascript/adminterface/lib/__tests__/filters.spec.js +151 -0
  91. data/app/javascript/adminterface/lib/__tests__/utils.spec.js +281 -0
  92. data/app/javascript/adminterface/lib/batch_actions.js +106 -0
  93. data/app/javascript/adminterface/lib/checkbox_toggler.js +55 -0
  94. data/app/javascript/adminterface/lib/confirm_dialog.js +113 -0
  95. data/app/javascript/adminterface/lib/detached_dropdown.js +34 -0
  96. data/app/javascript/adminterface/lib/filters.js +34 -0
  97. data/app/javascript/adminterface/lib/has_many.js +122 -0
  98. data/app/javascript/adminterface/lib/header_toggler.js +54 -0
  99. data/app/javascript/adminterface/lib/input.js +108 -0
  100. data/app/javascript/adminterface/lib/inputs/base/groupish.js +55 -0
  101. data/app/javascript/adminterface/lib/inputs/base/pluginish.js +63 -0
  102. data/app/javascript/adminterface/lib/inputs/base_input.js +87 -0
  103. data/app/javascript/adminterface/lib/inputs/boolean_input.js +30 -0
  104. data/app/javascript/adminterface/lib/inputs/check_boxes_input.js +14 -0
  105. data/app/javascript/adminterface/lib/inputs/choices_input.js +96 -0
  106. data/app/javascript/adminterface/lib/inputs/color_input.js +14 -0
  107. data/app/javascript/adminterface/lib/inputs/country_input.js +90 -0
  108. data/app/javascript/adminterface/lib/inputs/datalist_input.js +41 -0
  109. data/app/javascript/adminterface/lib/inputs/date_picker_input.js +11 -0
  110. data/app/javascript/adminterface/lib/inputs/datetime_picker_input.js +11 -0
  111. data/app/javascript/adminterface/lib/inputs/hidden_input.js +21 -0
  112. data/app/javascript/adminterface/lib/inputs/password_input.js +13 -0
  113. data/app/javascript/adminterface/lib/inputs/radio_input.js +13 -0
  114. data/app/javascript/adminterface/lib/inputs/select_input.js +68 -0
  115. data/app/javascript/adminterface/lib/inputs/string_input.js +13 -0
  116. data/app/javascript/adminterface/lib/inputs/switch_input.js +9 -0
  117. data/app/javascript/adminterface/lib/inputs/text_input.js +12 -0
  118. data/app/javascript/adminterface/lib/inputs/time_picker_input.js +13 -0
  119. data/app/javascript/adminterface/lib/inputs/time_zone_input.js +66 -0
  120. data/app/javascript/adminterface/lib/per_page.js +18 -0
  121. data/app/javascript/adminterface/lib/plugins/input_counter.js +94 -0
  122. data/app/javascript/adminterface/lib/plugins/password_visibility.js +70 -0
  123. data/app/javascript/adminterface/lib/table_checkbox_toggler.js +47 -0
  124. data/app/javascript/adminterface/lib/utils.js +148 -0
  125. data/app/views/active_admin/devise/confirmations/new.html.erb +19 -0
  126. data/app/views/active_admin/devise/passwords/edit.html.erb +21 -0
  127. data/app/views/active_admin/devise/passwords/new.html.erb +19 -0
  128. data/app/views/active_admin/devise/registrations/new.html.erb +24 -0
  129. data/app/views/active_admin/devise/sessions/new.html.erb +23 -0
  130. data/app/views/active_admin/devise/shared/_links.html.erb +25 -0
  131. data/app/views/active_admin/devise/shared/_omniauth.html.erb +10 -0
  132. data/app/views/active_admin/devise/unlocks/new.html.erb +19 -0
  133. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  134. data/app/views/kaminari/active_admin/_gap.html.erb +12 -0
  135. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  136. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  137. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  138. data/app/views/kaminari/active_admin/_paginator.html.erb +27 -0
  139. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  140. data/app/views/layouts/active_admin_logged_out.html.erb +56 -0
  141. data/config/locales/active_admin.en.yml +25 -0
  142. data/lib/adminterface/callable.rb +7 -0
  143. data/lib/adminterface/configs.rb +76 -0
  144. data/lib/adminterface/data/base.rb +11 -0
  145. data/lib/adminterface/data/countries.rb +44 -0
  146. data/lib/adminterface/data/time_zones.rb +31 -0
  147. data/lib/adminterface/data.rb +6 -0
  148. data/lib/adminterface/encryption/encryptor.rb +26 -0
  149. data/lib/adminterface/engine.rb +22 -0
  150. data/lib/adminterface/extensions/base_controller.rb +55 -0
  151. data/lib/adminterface/extensions/batch_actions/resource_extension.rb +64 -0
  152. data/lib/adminterface/extensions/batch_actions/views/batch_action_selector.rb +48 -0
  153. data/lib/adminterface/extensions/batch_actions/views/selection_cells.rb +39 -0
  154. data/lib/adminterface/extensions/dsl.rb +13 -0
  155. data/lib/adminterface/extensions/dynamic_settings_node.rb +26 -0
  156. data/lib/adminterface/extensions/filters/forms.rb +76 -0
  157. data/lib/adminterface/extensions/form_builder.rb +165 -0
  158. data/lib/adminterface/extensions/inputs/base/active_admin_config.rb +21 -0
  159. data/lib/adminterface/extensions/inputs/base/choices.rb +33 -0
  160. data/lib/adminterface/extensions/inputs/base/groupish.rb +50 -0
  161. data/lib/adminterface/extensions/inputs/base/html.rb +15 -0
  162. data/lib/adminterface/extensions/inputs/base/labelling.rb +15 -0
  163. data/lib/adminterface/extensions/inputs/base/pluginish.rb +56 -0
  164. data/lib/adminterface/extensions/inputs/base/stringish.rb +19 -0
  165. data/lib/adminterface/extensions/inputs/base/wrapping.rb +25 -0
  166. data/lib/adminterface/extensions/inputs/base.rb +19 -0
  167. data/lib/adminterface/extensions/inputs/boolean_input.rb +42 -0
  168. data/lib/adminterface/extensions/inputs/check_boxes_input.rb +34 -0
  169. data/lib/adminterface/extensions/inputs/color_input.rb +29 -0
  170. data/lib/adminterface/extensions/inputs/country_input.rb +33 -0
  171. data/lib/adminterface/extensions/inputs/datalist_input.rb +26 -0
  172. data/lib/adminterface/extensions/inputs/date_picker_input.rb +30 -0
  173. data/lib/adminterface/extensions/inputs/date_select_input.rb +7 -0
  174. data/lib/adminterface/extensions/inputs/datetime_picker_input.rb +19 -0
  175. data/lib/adminterface/extensions/inputs/datetime_select_input.rb +7 -0
  176. data/lib/adminterface/extensions/inputs/email_input.rb +23 -0
  177. data/lib/adminterface/extensions/inputs/file_input.rb +19 -0
  178. data/lib/adminterface/extensions/inputs/filters/base/search_method_select.rb +37 -0
  179. data/lib/adminterface/extensions/inputs/filters/base.rb +3 -0
  180. data/lib/adminterface/extensions/inputs/filters/boolean_input.rb +4 -0
  181. data/lib/adminterface/extensions/inputs/filters/check_boxes_input.rb +12 -0
  182. data/lib/adminterface/extensions/inputs/filters/date_picker_input.rb +4 -0
  183. data/lib/adminterface/extensions/inputs/filters/date_range_input.rb +50 -0
  184. data/lib/adminterface/extensions/inputs/filters/select_input.rb +4 -0
  185. data/lib/adminterface/extensions/inputs/number_input.rb +23 -0
  186. data/lib/adminterface/extensions/inputs/password_input.rb +23 -0
  187. data/lib/adminterface/extensions/inputs/phone_input.rb +23 -0
  188. data/lib/adminterface/extensions/inputs/radio_input.rb +41 -0
  189. data/lib/adminterface/extensions/inputs/range_input.rb +22 -0
  190. data/lib/adminterface/extensions/inputs/rich_text_area_input.rb +21 -0
  191. data/lib/adminterface/extensions/inputs/search_input.rb +23 -0
  192. data/lib/adminterface/extensions/inputs/select_input.rb +33 -0
  193. data/lib/adminterface/extensions/inputs/string_input.rb +19 -0
  194. data/lib/adminterface/extensions/inputs/switch_input.rb +11 -0
  195. data/lib/adminterface/extensions/inputs/text_input.rb +27 -0
  196. data/lib/adminterface/extensions/inputs/time_picker_input.rb +19 -0
  197. data/lib/adminterface/extensions/inputs/time_select_input.rb +7 -0
  198. data/lib/adminterface/extensions/inputs/time_zone_input.rb +33 -0
  199. data/lib/adminterface/extensions/inputs/url_input.rb +23 -0
  200. data/lib/adminterface/extensions/menu_item.rb +16 -0
  201. data/lib/adminterface/extensions/namespace_settings.rb +30 -0
  202. data/lib/adminterface/extensions/orm/active_record/comments/views/active_admin_comments.rb +122 -0
  203. data/lib/adminterface/extensions/resource/action_items.rb +117 -0
  204. data/lib/adminterface/extensions/sidebar_section.rb +35 -0
  205. data/lib/adminterface/extensions/view_helpers/alert_helper.rb +36 -0
  206. data/lib/adminterface/extensions/view_helpers/component_helper.rb +23 -0
  207. data/lib/adminterface/extensions/views/action_items.rb +39 -0
  208. data/lib/adminterface/extensions/views/columns.rb +59 -0
  209. data/lib/adminterface/extensions/views/components/active_admin_form.rb +47 -0
  210. data/lib/adminterface/extensions/views/components/attributes_table.rb +28 -0
  211. data/lib/adminterface/extensions/views/components/blank_slate.rb +19 -0
  212. data/lib/adminterface/extensions/views/components/dropdown_menu.rb +55 -0
  213. data/lib/adminterface/extensions/views/components/icon.rb +26 -0
  214. data/lib/adminterface/extensions/views/components/index_list.rb +43 -0
  215. data/lib/adminterface/extensions/views/components/menu.rb +18 -0
  216. data/lib/adminterface/extensions/views/components/menu_item.rb +64 -0
  217. data/lib/adminterface/extensions/views/components/paginated_collection.rb +52 -0
  218. data/lib/adminterface/extensions/views/components/panel.rb +71 -0
  219. data/lib/adminterface/extensions/views/components/scopes.rb +53 -0
  220. data/lib/adminterface/extensions/views/components/sidebar_section.rb +39 -0
  221. data/lib/adminterface/extensions/views/components/site_title.rb +36 -0
  222. data/lib/adminterface/extensions/views/components/status_tag.rb +26 -0
  223. data/lib/adminterface/extensions/views/components/table_for.rb +23 -0
  224. data/lib/adminterface/extensions/views/components/tabs.rb +76 -0
  225. data/lib/adminterface/extensions/views/footer.rb +27 -0
  226. data/lib/adminterface/extensions/views/header.rb +59 -0
  227. data/lib/adminterface/extensions/views/index_as_grid.rb +53 -0
  228. data/lib/adminterface/extensions/views/index_as_table.rb +77 -0
  229. data/lib/adminterface/extensions/views/pages/base.rb +164 -0
  230. data/lib/adminterface/extensions/views/pages/form.rb +27 -0
  231. data/lib/adminterface/extensions/views/pages/index.rb +136 -0
  232. data/lib/adminterface/extensions/views/pages/page.rb +18 -0
  233. data/lib/adminterface/extensions/views/title_bar.rb +74 -0
  234. data/lib/adminterface/fixtures/components.yml +73 -0
  235. data/lib/adminterface/fixtures/css_classes.yml +107 -0
  236. data/lib/adminterface/initializers/batch_actions.rb +15 -0
  237. data/lib/adminterface/initializers/comments.rb +13 -0
  238. data/lib/adminterface/initializers/configurations.rb +38 -0
  239. data/lib/adminterface/initializers/formtastic.rb +58 -0
  240. data/lib/adminterface/initializers/resource.rb +20 -0
  241. data/lib/adminterface/initializers/view_helpers.rb +14 -0
  242. data/lib/adminterface/initializers/views.rb +39 -0
  243. data/lib/adminterface/license.rb +18 -0
  244. data/lib/adminterface/licensing/base.rb +99 -0
  245. data/lib/adminterface/licensing/commercial.rb +7 -0
  246. data/lib/adminterface/licensing/notice.rb +54 -0
  247. data/lib/adminterface/licensing/personal.rb +13 -0
  248. data/lib/adminterface/public.pem +9 -0
  249. data/lib/adminterface/version.rb +3 -0
  250. data/lib/adminterface.rb +55 -0
  251. data/lib/generators/adminterface/comments/comments_generator.rb +29 -0
  252. data/lib/generators/adminterface/comments/templates/README +13 -0
  253. data/lib/generators/adminterface/comments/templates/active_admin_comment_action_text.rb +18 -0
  254. data/lib/generators/adminterface/comments/templates/migrations/drop_body_for_active_admin_comments.rb.erb +28 -0
  255. data/lib/generators/adminterface/configs/configs_generator.rb +19 -0
  256. data/lib/generators/adminterface/configs/templates/README +33 -0
  257. data/lib/generators/adminterface/install/install_generator.rb +41 -0
  258. data/lib/generators/adminterface/install/templates/dashboard.rb +32 -0
  259. data/lib/generators/adminterface/views/views_generator.rb +15 -0
  260. data/lib/generators/adminterface/webpacker/templates/README +27 -0
  261. data/lib/generators/adminterface/webpacker/templates/active_admin.js +12 -0
  262. data/lib/generators/adminterface/webpacker/templates/active_admin.scss +8 -0
  263. data/lib/generators/adminterface/webpacker/templates/print.scss +3 -0
  264. data/lib/generators/adminterface/webpacker/webpacker_generator.rb +55 -0
  265. data/lib/tasks/adminterface_tasks.rake +4 -0
  266. metadata +285 -9
  267. data/lib/name.rb +0 -1
@@ -0,0 +1,55 @@
1
+ require "activeadmin"
2
+ require "rainbow"
3
+ require "httparty"
4
+
5
+ # Adminterface main file
6
+ module Adminterface
7
+ autoload :VERSION, "adminterface/version"
8
+ autoload :Configs, "adminterface/configs"
9
+ autoload :Data, "adminterface/data"
10
+ autoload :License, "adminterface/license"
11
+ autoload :Callable, "adminterface/callable"
12
+
13
+ # Load Initializers
14
+ module Initializers
15
+ autoload :BatchActions, "adminterface/initializers/batch_actions"
16
+ autoload :Comments, "adminterface/initializers/comments"
17
+ autoload :Configurations, "adminterface/initializers/configurations"
18
+ autoload :Formtastic, "adminterface/initializers/formtastic"
19
+ autoload :Resource, "adminterface/initializers/resource"
20
+ autoload :ViewHelpers, "adminterface/initializers/view_helpers"
21
+ autoload :Views, "adminterface/initializers/views"
22
+ end
23
+
24
+ module Licensing
25
+ autoload :Notice, "adminterface/licensing/notice"
26
+ autoload :Commercial, "adminterface/licensing/commercial"
27
+ autoload :Personal, "adminterface/licensing/personal"
28
+ end
29
+
30
+ module Encryption
31
+ autoload :Encryptor, "adminterface/encryption/encryptor"
32
+ end
33
+
34
+ # License key
35
+ mattr_accessor :license_key
36
+ @@license_key = nil
37
+
38
+ def self.setup
39
+ yield self
40
+ end
41
+
42
+ def self.rails6_and_up?
43
+ Rails::VERSION::MAJOR >= 6
44
+ end
45
+
46
+ def self.cache_store
47
+ if Rails.cache.instance_of?(ActiveSupport::Cache::NullStore)
48
+ ActiveSupport::Cache::MemoryStore.new
49
+ else
50
+ Rails.cache
51
+ end
52
+ end
53
+ end
54
+
55
+ require "adminterface/engine"
@@ -0,0 +1,29 @@
1
+ module Adminterface
2
+ module Generators
3
+ class CommentsGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+
6
+ desc "Generate action_text migrations and initializers for ActiveAdmin::Comment"
7
+ source_root File.expand_path("templates", __dir__)
8
+
9
+ def self.next_migration_number(dirname)
10
+ next_migration_number = current_migration_number(dirname) + 1
11
+ ActiveRecord::Migration.next_migration_number(next_migration_number)
12
+ end
13
+
14
+ def create_initializer
15
+ template "active_admin_comment_action_text.rb",
16
+ "config/initializers/active_admin_comment_action_text.rb"
17
+ end
18
+
19
+ def create_migrations
20
+ migration_template "migrations/drop_body_for_active_admin_comments.rb.erb",
21
+ "db/migrate/drop_body_for_active_admin_comments.rb"
22
+ end
23
+
24
+ def show_readme
25
+ readme "README" if behavior == :invoke
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ ===============================================================================
2
+ Command: `rails generate adminterface:comments`
3
+ This command does the following:
4
+
5
+ 1. Create a migration `drop_body_for_active_admin_comments.rb`
6
+ - Your existing data is saved inside the `body_backup` column by default
7
+ - Un-comment the lines inside this file to migrate existing data from the `ActiveAdmin::Comment` table to `ActionText::RichText`
8
+
9
+ 2. Create an initializer `initializers/active_admin_comment_action_text.rb`
10
+ - This tells the `ActiveAdmin::Comment` model to use ActionText instead of the `body` database column
11
+
12
+ 3. For guides, please visit https://github.com/CMDBrew/adminterface
13
+ ===============================================================================
@@ -0,0 +1,18 @@
1
+ module Adminterface
2
+ module ActionTextComment
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ # Fix author validation issue— https://github.com/activeadmin/activeadmin/issues/5258
7
+ _validate_callbacks.each do |callback|
8
+ callback.raw_filter.attributes.delete :author
9
+ end
10
+
11
+ has_rich_text :body
12
+ end
13
+ end
14
+ end
15
+
16
+ Rails.configuration.to_prepare do
17
+ ActiveAdmin::Comment.send :include, Adminterface::ActionTextComment
18
+ end
@@ -0,0 +1,28 @@
1
+ class DropBodyForActiveAdminComments < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version.to_s %>]
2
+ def up
3
+ rename_column :active_admin_comments, :body, :body_backup
4
+
5
+ ## Add migration to migrate existing data if necessary
6
+ # ActiveAdmin::Comment.reset_column_information
7
+ # ActiveAdmin::Comment.find_each do |comment|
8
+ # comment.body = comment.body_backup
9
+ # comment.save
10
+ # end
11
+
12
+ # remove_column :active_admin_comments, :body_backup, :text
13
+ end
14
+
15
+ def down
16
+ # add_column :active_admin_comments, :body_backup, :text
17
+
18
+ ## Add migration to migrate existing data if necessary
19
+ # ActiveAdmin::Comment.reset_column_information
20
+ # ActiveAdmin::Comment.find_each do |comment|
21
+ # comment.body_backup = comment.body.to_plain_text
22
+ # comment.save
23
+ # end
24
+
25
+ rename_column :active_admin_comments, :body_backup, :body
26
+ end
27
+ end
28
+
@@ -0,0 +1,19 @@
1
+ module Adminterface
2
+ module Generators
3
+ class ConfigsGenerator < Rails::Generators::Base
4
+ desc "Copies config files into a directory for customization"
5
+ argument :namespace, type: :string, default: "Admin"
6
+
7
+ source_root File.expand_path("templates", __dir__)
8
+
9
+ def copy
10
+ directory Adminterface::Engine.root.join("lib/adminterface/fixtures"),
11
+ "config/adminterface/#{namespace.underscore}/"
12
+ end
13
+
14
+ def show_readme
15
+ readme "README" if behavior == :invoke
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ ===============================================================================
2
+ Depending on how you want to structure your application, you can use configs files to update:
3
+ 1. Global Settings
4
+ ```
5
+ # config/initializers/active_admin.rb
6
+ ActiveAdmin.setup do
7
+ config.css_classes = YAML.load_file(Rails.root.join("config/adminterface/css_classes.yml").to_s)
8
+ config.components = YAML.load_file(Rails.root.join("config/adminterface/components.yml").to_s)
9
+ end
10
+ ```
11
+
12
+ 2. Namespace Settings
13
+ ```
14
+ # config/initializers/active_admin.rb
15
+ ActiveAdmin.setup do
16
+ config.namespace :site_1 do |site|
17
+ config.css_classes = YAML.load_file(Rails.root.join("config/adminterface/site_1/css_classes.yml").to_s)
18
+ config.components = YAML.load_file(Rails.root.join("config/adminterface/site_1/components.yml").to_s)
19
+ end
20
+ end
21
+ ```
22
+
23
+ 3. Resource Settings
24
+ ```
25
+ # app/admin/users.rb
26
+ ActiveAdmin.register User do
27
+ config.css_classes = YAML.load_file(Rails.root.join("config/adminterface/admin/users/css_classes.yml").to_s)
28
+ config.components = YAML.load_file(Rails.root.join("config/adminterface/admin/users/components.yml").to_s)
29
+ end
30
+ ```
31
+
32
+ 4. For guides, please visit https://github.com/CMDBrew/adminterface
33
+ ===============================================================================
@@ -0,0 +1,41 @@
1
+ module Adminterface
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ desc "Installs Adminterface and generates necessary files and migrations"
5
+ source_root File.expand_path("templates", __dir__)
6
+
7
+ def install_rails_addons
8
+ invoke "action_text:install"
9
+ end
10
+
11
+ def install_assets
12
+ install_webpacker? do
13
+ generate "adminterface:webpacker"
14
+ end
15
+ end
16
+
17
+ def install_action_text_for_comments
18
+ generate "adminterface:comments"
19
+ end
20
+
21
+ def add_samples
22
+ template "dashboard.rb", "app/admin/dashboard.rb"
23
+ end
24
+
25
+ private
26
+
27
+ def install_webpacker?
28
+ return yield if defined?(Webpacker)
29
+
30
+ puts Rainbow("Adminterface requires webpacker:").yellow
31
+ if yes?("Install webpacker and continue?")
32
+ gem "webpacker"
33
+ rails_command "webpacker:install"
34
+ yield
35
+ else
36
+ puts Rainbow("Installation aborted").red
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,32 @@
1
+ ActiveAdmin.register_page "Dashboard" do
2
+ menu priority: 1
3
+
4
+ content title: proc { I18n.t("active_admin.dashboard") } do
5
+ div class: "alert alert-info" do
6
+ h4 I18n.t("active_admin.dashboard_welcome.welcome"), class: "alert-heading"
7
+ para I18n.t("active_admin.dashboard_welcome.call_to_action").html_safe
8
+ hr
9
+ para I18n.t("active_admin.dashboard_welcome.footnote").html_safe, class: "mb-0"
10
+ end
11
+
12
+ # Here is an example of a simple dashboard with columns and panels.
13
+ #
14
+ # columns do
15
+ # column do
16
+ # panel "Recent Posts" do
17
+ # ul do
18
+ # Post.recent(5).map do |post|
19
+ # li link_to(post.title, admin_post_path(post))
20
+ # end
21
+ # end
22
+ # end
23
+ # end
24
+
25
+ # column do
26
+ # panel "Info" do
27
+ # para "Welcome to ActiveAdmin."
28
+ # end
29
+ # end
30
+ # end
31
+ end
32
+ end
@@ -0,0 +1,15 @@
1
+ module Adminterface
2
+ module Generators
3
+ class ViewsGenerator < Rails::Generators::Base
4
+ desc "Copies view templates for customization"
5
+
6
+ source_root Adminterface::Engine.root.join("app/views")
7
+
8
+ def copy
9
+ directory "active_admin", "app/views/active_admin"
10
+ directory "kaminari/active_admin", "app/views/kaminari/active_admin"
11
+ directory "layouts/active_admin_logged_out.html.erb", "app/views/layouts/active_admin_logged_out.html.erb"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,27 @@
1
+ ===============================================================================
2
+ Command: `rails generate adminterface:webpacker`
3
+ Depending on your application's configuration, you might need to perform some manual steps:
4
+
5
+ 1. Change your ActiveAdmin config to use webpacker
6
+ ```
7
+ # config/initializers/active_admin.rb
8
+ # ...
9
+ #
10
+ # == Webpacker
11
+ #
12
+ # By default, Active Admin uses Sprocket's asset pipeline.
13
+ # You can switch to using Webpacker here.
14
+ #
15
+ config.use_webpacker = true
16
+ ```
17
+
18
+ 2. Migrate your custom javascripts and stylesheets to webpacker
19
+ - app/assets/javascripts/active_admin.js -> app/javascript/packs/active_admin.js
20
+ - app/assets/stylesheets/active_admin.scss -> app/javascript/stylesheets/active_admin.scss
21
+
22
+ 3. Remove unnecessary sprockets files
23
+ - app/assets/javascripts/active_admin.js
24
+ - app/assets/stylesheets/active_admin.scss
25
+
26
+ 4. For guides, please visit https://github.com/CMDBrew/adminterface
27
+ ===============================================================================
@@ -0,0 +1,12 @@
1
+ // Load Adminterface styles into Webpacker,
2
+ // see `adminterface.scss` for customization.
3
+ import '../stylesheets/active_admin'
4
+
5
+ import Rails from '@rails/ujs'
6
+ import '@cmdbrew/adminterface'
7
+
8
+ require('@rails/activestorage').start()
9
+ require('trix')
10
+ require('@rails/actiontext')
11
+
12
+ Rails.start()
@@ -0,0 +1,8 @@
1
+ // Sass variable overrides must be declared before loading up Adminterface styles.
2
+ //
3
+ // To view the variables that Adminterface provides, take a look at
4
+ // `app/assets/stylesheets/adminterface/mixins/_variables.scss` in the
5
+ // Adminterface source.
6
+
7
+ // Adminterface got SASS!
8
+ @import "~@cmdbrew/adminterface/src/scss/base";
@@ -0,0 +1,3 @@
1
+ // Active Admin Print Stylesheet
2
+ // Keeping this file for activeadmin <= 2.9.0 backward compatibility. The latest ActiveAdmin has combined print.scss into the main file.
3
+ // https://github.com/activeadmin/activeadmin/pull/6922/commits/14b64cdf946449091a467ea22adbafd88782b614
@@ -0,0 +1,55 @@
1
+ module Adminterface
2
+ module Generators
3
+ class WebpackerGenerator < Rails::Generators::Base
4
+ desc "Install Stylesheets and JavaScripts using Webpacker"
5
+ class_option :version,
6
+ aliases: "-v", type: :string, default: Adminterface::VERSION,
7
+ desc: "Install with a specific npm package version"
8
+
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ def install_packages
12
+ insert_into_file "config/webpack/environment.js", after: /require\(('|")@rails\/webpacker\1\);?\n/ do
13
+ <<~EOF
14
+
15
+ environment.loaders.get('sass').use.splice(-1, 0, {
16
+ loader: 'resolve-url-loader'
17
+ })
18
+ EOF
19
+ end
20
+
21
+ run "yarn add @cmdbrew/adminterface@v#{find_npm_version}"
22
+ end
23
+
24
+ def install_assets
25
+ template "active_admin.js", "app/javascript/packs/active_admin.js"
26
+ template "active_admin.scss", "app/javascript/stylesheets/active_admin.scss"
27
+ template "print.scss", "app/javascript/packs/active_admin/print.scss"
28
+ end
29
+
30
+ def update_active_admin_configs
31
+ gsub_file "config/initializers/active_admin.rb", "# config.use_webpacker = true", "config.use_webpacker = true"
32
+ end
33
+
34
+ def remove_activeadmin_dependencies
35
+ run "yarn remove @activeadmin/activeadmin"
36
+ remove_file "config/webpack/plugins/jquery.js"
37
+ gsub_file "config/webpack/environment.js", "environment.plugins.prepend('jquery', jquery)\n", ""
38
+ gsub_file "config/webpack/environment.js", "const jquery = require('./plugins/jquery')\n", ""
39
+ end
40
+
41
+ def show_readme
42
+ readme "README" if behavior == :invoke
43
+ end
44
+
45
+ private
46
+
47
+ def find_npm_version
48
+ version = options[:version]
49
+ return version unless version.include?(".rc")
50
+
51
+ version.gsub(".rc", "-rc")
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :adminterface do
3
+ # # Task goes here
4
+ # end