adminterface 0.0.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e501bf0265f24c9421d83bce7febbc2dd03dc34ab27ceb9354d4404e2ead14c1
4
- data.tar.gz: e75d5819a64d83bb394a84bab10f6c6bac19e164c54336f04a7e6b74f5fa5b60
3
+ metadata.gz: 4069cfffd19de3ada098678538e0e7ca4f9a840c8477de55fe3612cd6f541572
4
+ data.tar.gz: 7454d611f8fd759b502577cd30f1a00ee7f7c6587b2361155998ef1c2e29aff7
5
5
  SHA512:
6
- metadata.gz: 6e9d94c6e06702402e4fcc3221e4aa1b6aff300db2d398d3216721487fedbd225eabfc392b8a68d3cd7bbe0f9333c7c67d225edb428c17a3c445c3d21f3d8386
7
- data.tar.gz: 9635c06df87220679047d1db438044f30688b3270052bfca5d22c56504ae912ee05d75ae93e767e156baac597c07bc2504a677a5ff7c889d1114994aca0d4598
6
+ metadata.gz: d04bd12439c118daedfb64958cdcf0a3a24a077331147bc98376ed0a8df5de9eada6dadb7de0eb066690a2d979c0277a357b42cead3ccf2b4a7e9a4c81bb5972
7
+ data.tar.gz: dc004f3881b891829f647c813ec8025459a76be580276b9bcb54ff5eafcd91a35324169b099b0ffb1eb588ea4f34820d41621027bcdff5f3e7509696c81d02f1
data/LICENSE.md CHANGED
@@ -87,7 +87,7 @@ CMDBrew Studio Inc. is the sole and exclusive owner of all right, title, and int
87
87
  If you make a Contribution to the Software, you hereby automatically, immediately, unconditionally, and irrevocably assign the entirety of such Contribution to CMDBrew Studio Inc. for no additional consideration beyond the License granted hereunder. Similarly, in the event that you acquire (by any means) or have (at any time) any right, title, or interest (including any Intellectual Property Right) in or to the Software beyond the License granted hereunder, you hereby automatically, immediately, unconditionally, and irrevocably assign the entirety of such right, title, and interest to CMDBrew Studio Inc. for no additional consideration beyond the License granted hereunder. In the event of any assignment by you to us under this Section "Contributions", you hereby irrevocably waive, to the extent permitted by applicable law, any and all claims you may now or hereafter have in any jurisdiction to all rights of paternity, integrity, disclosure, and withdrawal and any other rights (which may be known as "moral rights") with respect to the subject matter of such assignment. For further information regarding how to contribute, please visit the the Software Repository.
88
88
 
89
89
  ## Refunds
90
- CMDBrew Studio Inc. offers limited refunds on software within 15 days of purchase. Contact contact@cmdbrew.com for assistance.
90
+ CMDBrew Studio Inc. offers limited refunds on software within 14 days of purchase. Contact contact@cmdbrew.com for assistance.
91
91
 
92
92
  ## Indemnity
93
93
  You agree to indemnify and hold harmless CMDBrew Studio Inc. for any third-party claims, actions or suits, as well as any related expenses, liabilities, damages, settlements or fees arising from your use or misuse of the Software, or a violation of any terms of this license.
data/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Adminterface <!-- omit in toc -->
2
+ [![CI](https://github.com/CMDBrew/adminterface/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/CMDBrew/adminterface/actions/workflows/ci.yml)
3
+
4
+ An add-on that brings Bootstrap 5 and other goodies into ActiveAdmin.
5
+
6
+ [![](preview.jpg)](https://adminterface.io)
7
+
8
+ ## Dependencies
9
+ - Rails >= 6.0
10
+ - Ruby >= 2.7
11
+ - ActiveAdmin ~> 2.9
12
+ - Bootstrap ~> 5
13
+ - Webpacker >= 5.0
14
+
15
+ ## Quick Start
16
+ 1. Add the following to your application's Gemfile:
17
+ ```ruby
18
+ gem "adminterface"
19
+ ```
20
+ 2. Then execute:
21
+ ```bash
22
+ $ bundle install
23
+ ```
24
+ 3. Install ActiveAdmin (If you haven't)
25
+ ```bash
26
+ $ rails g active_admin:install --use_webpacker
27
+ ```
28
+ 4. Install Adminterface
29
+ ```bash
30
+ $ rails g adminterface:install
31
+ ```
32
+ 5. Migrate your database and start the server
33
+ ```bash
34
+ $ rails db:migrate
35
+ $ rails server
36
+ ```
37
+
38
+ ## Documentation
39
+ Check our [website](https://adminterface.io) to find in-depth documentation for everything that Adminterface offers.
40
+
41
+ ## Contributing
42
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
43
+
44
+ ## License
45
+ Adminterface is free for personal and non-commercial use and with a yearly subscription for commercial purposes. See [our Terms of Service in full text](LICENSE.md) for more information.
46
+
47
+ ### For Commerical License
48
+ Get a license at https://adminterface.io/pricing, then create and add the `license_key` into the following file in your project:
49
+ ```ruby
50
+ # config/initializers/adminterface.rb
51
+ Adminterface.setup do |config|
52
+ config.license_key = "**********************"
53
+
54
+ ## Use Rails credentials:
55
+ ## doc: https://edgeguides.rubyonrails.org/security.html#custom-credentials
56
+ # config.license_key = Rails.application.credentials.adminterface[:license_key]
57
+
58
+ ## Or, use environment variables:
59
+ # config.license_key = ENV["ADMINTERFACE_LICENSE_KEY"]
60
+ end
61
+ ```
data/Rakefile ADDED
@@ -0,0 +1,43 @@
1
+ require "bundler/setup"
2
+
3
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
+ load "rails/tasks/statistics.rake"
6
+
7
+ require "bundler/gem_tasks"
8
+ require "rake/testtask"
9
+
10
+ Rake::TestTask.new(:test) do |t|
11
+ t.libs << "test"
12
+ t.pattern = "test/**/*_test.rb"
13
+ t.verbose = false
14
+ end
15
+
16
+ # Prepare webpack for dummy
17
+ task :prepare_assets do
18
+ system "rm -rf test/dummy/public/packs"
19
+ system "rm -rf test/dummy/public/packs-test"
20
+ system "yarn install --frozen-lockfile"
21
+ system "(cd test/dummy && yarn install --frozen-lockfile)"
22
+ end
23
+
24
+ # Generate dependency licenses
25
+ task :licenses do
26
+ system "bundle exec license_finder report --decisions_file reports/dependency_decisions.yml --format json --save reports/licenses.json"
27
+ end
28
+
29
+ # Custom Rails stats command
30
+ task stats: :statsetup
31
+ task :statsetup do
32
+ require "rails/code_statistics"
33
+
34
+ custom_directories = [
35
+ %w[Libraries\ tests test/lib]
36
+ ]
37
+ STATS_DIRECTORIES.concat(custom_directories)
38
+
39
+ custom_test_types = %w[Libraries\ tests]
40
+ CodeStatistics::TEST_TYPES.concat(custom_test_types)
41
+ end
42
+
43
+ task default: :test
@@ -0,0 +1 @@
1
+ //= link_directory ../stylesheets/adminterface .css
@@ -0,0 +1,20 @@
1
+ @import "./vendors/bootstrap/variables";
2
+ @import "bootstrap/scss/bootstrap";
3
+ @import "bootstrap-icons/font/bootstrap-icons";
4
+ @import "flatpickr/dist/flatpickr";
5
+ @import "tom-select/dist/css/tom-select.bootstrap5";
6
+ @import "./mixins/all";
7
+ @import "./placeholders/all";
8
+ @import "./helpers/all";
9
+ @import "./vendors/all";
10
+ @import "./components/all";
11
+
12
+ // stylelint-disable no-invalid-position-at-import-rule
13
+ @media screen {
14
+ @import "./layouts/all";
15
+ }
16
+
17
+ @media print {
18
+ @import "./print";
19
+ }
20
+ // stylelint-enable no-invalid-position-at-import-rule
@@ -0,0 +1,56 @@
1
+ // Header
2
+ .navbar-toggler {
3
+ display: none;
4
+ }
5
+
6
+ // TitleBar
7
+ #title_bar {
8
+ #titlebar_right {
9
+ display: none;
10
+ }
11
+ }
12
+
13
+ // Main
14
+ #wrapper {
15
+ padding: 1rem 0;
16
+ }
17
+
18
+ // Table
19
+ .col-actions,
20
+ .table_tools {
21
+ display: none;
22
+ }
23
+
24
+ // Sidebars
25
+ #filters_sidebar_section {
26
+ display: none;
27
+ }
28
+
29
+ // Index
30
+ #index_footer {
31
+ .download_links,
32
+ .pagination_per_page,
33
+ .paginator {
34
+ display: none;
35
+ }
36
+ }
37
+
38
+ // Show
39
+ #new_active_admin_comment {
40
+ display: none;
41
+ }
42
+
43
+ // Form
44
+ .formtastic {
45
+ fieldset {
46
+ &.has_many_fields {
47
+ ol li.handle,
48
+ .has-many-actions {
49
+ display: none;
50
+ }
51
+ }
52
+ &.actions { display: none; }
53
+
54
+ .has_many_add { display: none; }
55
+ }
56
+ }
@@ -0,0 +1,19 @@
1
+ .active_admin_comment {
2
+ &.formtastic { margin-bottom: map-get($spacers, 4); }
3
+
4
+ &:not(.formtastic) {
5
+ fieldset.actions ol { flex-direction: row; }
6
+ }
7
+ }
8
+
9
+ .comments {
10
+ .paginating-footer {
11
+ display: flex;
12
+ align-items: center;
13
+ flex-direction: column;
14
+
15
+ .pagination_information { margin-bottom: $spacer; }
16
+ }
17
+
18
+ .empty { display: none; }
19
+ }
@@ -0,0 +1,24 @@
1
+ @import './active_admin_comment';
2
+ @import './aside';
3
+ @import './attributes_table';
4
+ @import './comments';
5
+ @import './divider';
6
+ @import './filters';
7
+ @import './flash';
8
+ @import './footer';
9
+ @import './form';
10
+ @import './header';
11
+ @import './index_as_grid';
12
+ @import './index_as_table';
13
+ @import './index_footer';
14
+ @import './index';
15
+ @import './inputs/all';
16
+ @import './modal_dialog';
17
+ @import './pagination';
18
+ @import './panel';
19
+ @import './sidebar';
20
+ @import './site_title';
21
+ @import './table_for';
22
+ @import './table_tools';
23
+ @import './thumbnail';
24
+ @import './title_bar';
@@ -0,0 +1,28 @@
1
+ .aside {
2
+ position: fixed;
3
+ top: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ z-index: $zindex-fixed + 1;
7
+ display: block !important;
8
+ width: 100%;
9
+ height: auto !important;
10
+ padding: 0;
11
+
12
+ @include shadow($aside-box-shadow);
13
+ @include transition(transform 0.2s linear);
14
+
15
+ &:not(.show) {
16
+ @include transform(translateX(100%));
17
+ }
18
+
19
+ @include media-breakpoint-up($aside-breakpoint) {
20
+ position: absolute;
21
+ z-index: 11;
22
+ width: $aside-width;
23
+ }
24
+ }
25
+
26
+ body.aside-active {
27
+ overflow: hidden !important;
28
+ }
@@ -0,0 +1,19 @@
1
+ .attributes_table {
2
+ .empty { color: $text-muted; }
3
+
4
+ .table {
5
+ background: transparent;
6
+ & > tbody > tr > th { padding-left: 0; }
7
+ & > tbody > tr > td { padding-right: 0; }
8
+
9
+ & > tbody > tr:first-child {
10
+ td,
11
+ th {
12
+ border-top: 0;
13
+ }
14
+ }
15
+
16
+ th { width: $attribute-table-key-width; }
17
+ td { text-align: left; }
18
+ }
19
+ }
@@ -0,0 +1,7 @@
1
+ .active_admin_comment_header {
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: flex-start;
5
+
6
+ .active_admin_comment_meta { flex: 1; }
7
+ }
@@ -0,0 +1,28 @@
1
+ %divider {
2
+ flex: 1;
3
+ height: 1px;
4
+ background-color: currentColor;
5
+ color: $hr-color;
6
+ opacity: $hr-opacity;
7
+ content: "";
8
+
9
+ @include transform(translateY(-50%));
10
+ }
11
+
12
+ .divider {
13
+ display: flex;
14
+ flex-direction: row;
15
+ align-items: center;
16
+
17
+ &::before {
18
+ @extend %divider;
19
+
20
+ margin-right: $spacer;
21
+ }
22
+
23
+ &::after {
24
+ @extend %divider;
25
+
26
+ margin-left: $spacer;
27
+ }
28
+ }
@@ -0,0 +1,27 @@
1
+ #filters {
2
+ &.aside {
3
+ .sidebar_section {
4
+ display: flex;
5
+ flex-direction: column;
6
+ height: 100%;
7
+ }
8
+
9
+ .panel {
10
+ border-radius: 0;
11
+ border: 0;
12
+ }
13
+
14
+ .panel-body {
15
+ flex: 1;
16
+ overflow-y: auto;
17
+ }
18
+
19
+ .btn-close {
20
+ position: absolute;
21
+ top: 0.5rem;
22
+ right: $card-spacer-x;
23
+ z-index: 11;
24
+ color: $text-muted;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,4 @@
1
+ .flashes .flash {
2
+ margin-bottom: 0;
3
+ border-radius: 0;
4
+ }
@@ -0,0 +1,4 @@
1
+ #footer p {
2
+ display: inline-block;
3
+ margin: 0;
4
+ }
@@ -0,0 +1,219 @@
1
+ %fields-with-errors {
2
+ $_color: $form-feedback-invalid-color;
3
+ $_icon: $form-feedback-icon-invalid;
4
+ $_focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($_color, $input-btn-focus-color-opacity);
5
+
6
+ .invalid-feedback,
7
+ .invalid-tooltip {
8
+ display: block;
9
+ }
10
+
11
+ .form-control {
12
+ border-color: $_color;
13
+
14
+ @if $enable-validation-icons {
15
+ padding-right: $input-height-inner;
16
+ background-image: escape-svg($_icon);
17
+ background-repeat: no-repeat;
18
+ background-position: right $input-height-inner-quarter center;
19
+ background-size: $input-height-inner-half $input-height-inner-half;
20
+ }
21
+
22
+ &:focus {
23
+ border-color: $_color;
24
+ box-shadow: $_focus-box-shadow;
25
+ }
26
+ }
27
+
28
+ .form-control-color { max-width: 4.5rem; }
29
+
30
+ trix-editor.form-control,
31
+ textarea.form-control {
32
+ @if $enable-validation-icons {
33
+ padding-right: $input-height-inner;
34
+ background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
35
+ }
36
+ }
37
+
38
+ .form-select:not(.ts-dropdown) {
39
+ border-color: $_color;
40
+
41
+ @if $enable-validation-icons {
42
+ &:not([multiple]):not([size]),
43
+ &:not([multiple])[size="1"] {
44
+ padding-right: $form-select-feedback-icon-padding-end;
45
+ background-image: escape-svg($form-select-indicator), escape-svg($_icon);
46
+ background-position: $form-select-bg-position, $form-select-feedback-icon-position;
47
+ background-size: $form-select-bg-size, $form-select-feedback-icon-size;
48
+ }
49
+ }
50
+
51
+ &:focus {
52
+ border-color: $_color;
53
+ box-shadow: $_focus-box-shadow;
54
+ }
55
+ }
56
+
57
+ .form-check {
58
+ .form-check-input {
59
+ border-color: $_color;
60
+
61
+ &:checked { background-color: $_color; }
62
+ &:focus { box-shadow: $_focus-box-shadow; }
63
+ }
64
+
65
+ .form-check-label { color: $_color; }
66
+ }
67
+ }
68
+
69
+ %feedback-hint {
70
+ width: 100%;
71
+ margin-top: $form-feedback-margin-top;
72
+ font-style: $form-feedback-font-style;
73
+ color: $secondary;
74
+
75
+ @include font-size($form-feedback-font-size);
76
+ }
77
+
78
+ %fragements {
79
+ legend { margin-bottom: 0; }
80
+ legend.label { font-size: $font-size-base; }
81
+
82
+ .fragments-group {
83
+ display: flex;
84
+ flex-direction: row;
85
+ padding: 0;
86
+ margin: 0 calc(-#{$spacer} / 4) !important;
87
+ list-style: none;
88
+
89
+ .fragment {
90
+ flex: 1;
91
+ padding: 0 calc(#{$spacer} / 4);
92
+ margin-bottom: $spacer;
93
+ }
94
+ }
95
+ }
96
+
97
+ .formtastic {
98
+ .errors { margin-bottom: 0; }
99
+ .hidden { display: none; }
100
+ .input.error { @extend %fields-with-errors; }
101
+ .fragments { @extend %fragements; }
102
+ .inline-hints { @extend %feedback-hint; }
103
+
104
+ li.has-many-inputs,
105
+ fieldset.inputs,
106
+ fieldset.actions {
107
+ & > ol {
108
+ padding: 0;
109
+ margin: 0;
110
+ list-style: none;
111
+ }
112
+ }
113
+
114
+ fieldset.actions {
115
+ ol {
116
+ display: flex;
117
+ align-items: flex-end;
118
+ -webkit-box-orient: horizontal;
119
+ -webkit-box-align: end;
120
+ -webkit-box-direction: reverse;
121
+ flex-direction: row-reverse;
122
+ }
123
+
124
+ li {
125
+ display: inline-block;
126
+ margin-right: map-get($spacers, 2);
127
+ &:first-child { margin: 0; }
128
+ }
129
+ }
130
+
131
+ fieldset.columns > ol {
132
+ display: flex;
133
+ flex-direction: row;
134
+ flex-wrap: wrap;
135
+ padding: 0;
136
+ }
137
+
138
+ fieldset.has_many_fields {
139
+ &.sortable-placeholder {
140
+ z-index: 11;
141
+ background: $form-sortable-placeholder-bg;
142
+ visibility: visible;
143
+ box-sizing: border-box;
144
+
145
+ &[draggable="true"] {
146
+ max-height: $form-sortable-placeholder-max-height;
147
+ overflow: hidden;
148
+ }
149
+ }
150
+
151
+ &.sortable-drag {
152
+ background: $form-sortable-drag-bg;
153
+ box-sizing: border-box;
154
+
155
+ &[draggable="true"] {
156
+ max-height: $form-sortable-drag-max-height;
157
+ overflow: hidden;
158
+ }
159
+ }
160
+
161
+ & > ol {
162
+ display: flex;
163
+ flex-direction: row;
164
+
165
+ li {
166
+ &.handle {
167
+ display: flex;
168
+ color: $text-muted;
169
+ cursor: move;
170
+ align-items: flex-start;
171
+ padding: 0;
172
+ padding-right: $spacer;
173
+
174
+ &::before {
175
+ @extend %aa-icon;
176
+
177
+ content: map-get($aa-icons, 'form-has-many-sortable-handle');
178
+ }
179
+ }
180
+
181
+ &.has-many-inputs {
182
+ display: flex;
183
+ flex: 1;
184
+ flex-direction: row;
185
+ padding: 0;
186
+ > ol:first-child { flex: 1; }
187
+ }
188
+ }
189
+
190
+ .has_many_delete {
191
+ input[type='checkbox']:checked + label { color: $danger; }
192
+
193
+ label.form-check-label {
194
+ span,
195
+ i {
196
+ display: none;
197
+ }
198
+ }
199
+ }
200
+
201
+ .has_many_remove {
202
+ padding-left: $spacer;
203
+ font-size: 0;
204
+ text-decoration: none;
205
+
206
+ &::before {
207
+ @extend %aa-icon;
208
+
209
+ content: map-get($aa-icons, 'form-has-many-destroy');
210
+ }
211
+ }
212
+ }
213
+
214
+ .columns { margin: 0 calc(-#{$grid-gutter-width} / 2); }
215
+ .has_many_delete { margin-bottom: 0; }
216
+ }
217
+
218
+ .choices-group { @extend %list-unstyled; }
219
+ }
@@ -0,0 +1,30 @@
1
+ #header {
2
+ #main-nav { margin-right: auto; }
3
+ .dropdown-item a { color: inherit; }
4
+
5
+ .navbar-nav {
6
+ @include media-breakpoint-up($sidebar-breakpoint) {
7
+ align-items: center;
8
+ }
9
+ }
10
+
11
+ .nav-item {
12
+ .nav-link {
13
+ @extend %text-truncate;
14
+
15
+ width: 100%;
16
+
17
+ & > * {
18
+ display: inline-block;
19
+ vertical-align: middle;
20
+ }
21
+
22
+ i.aa-icon {
23
+ margin-right: map-get($spacers, 1);
24
+ font-size: $header-icon-size;
25
+ width: $header-icon-size;
26
+ height: $header-icon-size;
27
+ }
28
+ }
29
+ }
30
+ }
@@ -0,0 +1 @@
1
+ .index_content .index > * { width: 100%; }
@@ -0,0 +1,5 @@
1
+ .index_as_grid {
2
+ .resource_selection_toggle_panel {
3
+ margin-bottom: $spacer;
4
+ }
5
+ }
@@ -0,0 +1 @@
1
+ .index_as_table table.index_table { margin-bottom: 0; }
@@ -0,0 +1,19 @@
1
+ #index_footer {
2
+ margin-top: $spacer;
3
+ text-align: center;
4
+
5
+ .pagination_per_page {
6
+ display: inline-block;
7
+ & + .paginator { margin-top: $spacer; }
8
+ }
9
+
10
+ .paginator {
11
+ & + .pagination_information { margin-top: $spacer; }
12
+
13
+ ul {
14
+ display: flex;
15
+ justify-content: center;
16
+ margin: 0 auto;
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,4 @@
1
+ #modal-dialog-confirm {
2
+ #dialog-message { margin-bottom: 0; }
3
+ #dialog-message + #modal-dialog-confirm-form:not(:empty) { margin-top: $spacer; }
4
+ }
@@ -0,0 +1,3 @@
1
+ .pagination {
2
+ flex-wrap: wrap;
3
+ }