yousty-activeadmin 1.0.0.pre

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 (490) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +43 -0
  3. data/.travis.yml +8 -0
  4. data/.yardopts +9 -0
  5. data/CHANGELOG.md +1056 -0
  6. data/CONTRIBUTING.md +110 -0
  7. data/Gemfile +41 -0
  8. data/Guardfile +7 -0
  9. data/LICENSE +25 -0
  10. data/README.md +67 -0
  11. data/Rakefile +25 -0
  12. data/activeadmin.gemspec +33 -0
  13. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  14. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  15. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  16. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  17. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  18. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  19. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
  20. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
  21. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
  22. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
  23. data/app/assets/images/active_admin/loading.gif +0 -0
  24. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  25. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  26. data/app/assets/images/active_admin/orderable.png +0 -0
  27. data/app/assets/javascripts/active_admin/application.js.coffee +6 -0
  28. data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
  29. data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
  30. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
  31. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
  32. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
  33. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
  34. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
  35. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
  36. data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
  37. data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -0
  38. data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
  39. data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
  40. data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
  41. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  42. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
  43. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  44. data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
  45. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  46. data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
  47. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
  48. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  49. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
  50. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  51. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  52. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  53. data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
  54. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  55. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  56. data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  57. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  58. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
  59. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +110 -0
  60. data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
  61. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
  62. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
  63. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
  64. data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
  65. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
  66. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
  67. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
  68. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  69. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
  70. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +32 -0
  71. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  72. data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
  73. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  74. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  75. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
  76. data/app/views/active_admin/dashboard/index.html.arb +1 -0
  77. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  78. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  79. data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
  80. data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
  81. data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  82. data/app/views/active_admin/devise/shared/_links.erb +27 -0
  83. data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
  84. data/app/views/active_admin/page/index.html.arb +1 -0
  85. data/app/views/active_admin/resource/edit.html.arb +1 -0
  86. data/app/views/active_admin/resource/index.csv.erb +17 -0
  87. data/app/views/active_admin/resource/index.html.arb +1 -0
  88. data/app/views/active_admin/resource/new.html.arb +1 -0
  89. data/app/views/active_admin/resource/show.html.arb +1 -0
  90. data/app/views/layouts/active_admin.html.arb +1 -0
  91. data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
  92. data/config/locales/bg.yml +101 -0
  93. data/config/locales/ca.yml +98 -0
  94. data/config/locales/cs.yml +105 -0
  95. data/config/locales/da.yml +102 -0
  96. data/config/locales/de-CH.yml +117 -0
  97. data/config/locales/de.yml +119 -0
  98. data/config/locales/en-GB.yml +91 -0
  99. data/config/locales/en.yml +110 -0
  100. data/config/locales/es.yml +106 -0
  101. data/config/locales/es_MX.yml +104 -0
  102. data/config/locales/fi.yml +109 -0
  103. data/config/locales/fr.yml +97 -0
  104. data/config/locales/he.yml +91 -0
  105. data/config/locales/hr.yml +93 -0
  106. data/config/locales/hu.yml +92 -0
  107. data/config/locales/it.yml +89 -0
  108. data/config/locales/ja.yml +104 -0
  109. data/config/locales/ko.yml +84 -0
  110. data/config/locales/lt.yml +90 -0
  111. data/config/locales/lv.yml +89 -0
  112. data/config/locales/nl.yml +90 -0
  113. data/config/locales/no-NB.yml +85 -0
  114. data/config/locales/pl.yml +93 -0
  115. data/config/locales/pt-BR.yml +90 -0
  116. data/config/locales/pt-PT.yml +89 -0
  117. data/config/locales/ro.yml +93 -0
  118. data/config/locales/ru.yml +103 -0
  119. data/config/locales/sv-SE.yml +89 -0
  120. data/config/locales/tr.yml +90 -0
  121. data/config/locales/uk.yml +100 -0
  122. data/config/locales/vi.yml +90 -0
  123. data/config/locales/zh-CN.yml +90 -0
  124. data/config/locales/zh-TW.yml +90 -0
  125. data/cucumber.yml +3 -0
  126. data/docs/0-installation.md +84 -0
  127. data/docs/1-general-configuration.md +137 -0
  128. data/docs/10-custom-pages.md +98 -0
  129. data/docs/11-decorators.md +66 -0
  130. data/docs/12-arbre-components.md +144 -0
  131. data/docs/13-authorization-adapter.md +227 -0
  132. data/docs/2-resource-customization.md +340 -0
  133. data/docs/3-index-pages/create-an-index.md +29 -0
  134. data/docs/3-index-pages/index-as-block.md +21 -0
  135. data/docs/3-index-pages/index-as-blog.md +71 -0
  136. data/docs/3-index-pages/index-as-grid.md +29 -0
  137. data/docs/3-index-pages/index-as-table.md +154 -0
  138. data/docs/3-index-pages.md +206 -0
  139. data/docs/4-csv-format.md +39 -0
  140. data/docs/5-forms.md +110 -0
  141. data/docs/6-show-pages.md +77 -0
  142. data/docs/7-sidebars.md +42 -0
  143. data/docs/8-custom-actions.md +139 -0
  144. data/docs/9-batch-actions.md +155 -0
  145. data/features/action_item.feature +73 -0
  146. data/features/authorization.feature +64 -0
  147. data/features/authorization_cancan.feature +52 -0
  148. data/features/belongs_to.feature +63 -0
  149. data/features/breadcrumb.feature +27 -0
  150. data/features/comments/commenting.feature +140 -0
  151. data/features/comments/viewing_index.feature +19 -0
  152. data/features/dashboard.feature +16 -0
  153. data/features/decorators.feature +41 -0
  154. data/features/development_reloading.feature +31 -0
  155. data/features/edit_page.feature +127 -0
  156. data/features/favicon.feature +20 -0
  157. data/features/first_boot.feature +16 -0
  158. data/features/global_navigation.feature +29 -0
  159. data/features/i18n.feature +38 -0
  160. data/features/index/batch_actions.feature +123 -0
  161. data/features/index/filters.feature +138 -0
  162. data/features/index/format_as_csv.feature +117 -0
  163. data/features/index/formats.feature +66 -0
  164. data/features/index/index_as_block.feature +15 -0
  165. data/features/index/index_as_blog.feature +69 -0
  166. data/features/index/index_as_grid.feature +45 -0
  167. data/features/index/index_as_table.feature +195 -0
  168. data/features/index/index_blank_slate.feature +61 -0
  169. data/features/index/index_parameters.feature +75 -0
  170. data/features/index/index_scope_to.feature +56 -0
  171. data/features/index/index_scopes.feature +251 -0
  172. data/features/index/page_title.feature +30 -0
  173. data/features/index/pagination.feature +59 -0
  174. data/features/index/switch_index_view.feature +73 -0
  175. data/features/menu.feature +53 -0
  176. data/features/new_page.feature +119 -0
  177. data/features/registering_assets.feature +35 -0
  178. data/features/registering_pages.feature +148 -0
  179. data/features/registering_resources.feature +33 -0
  180. data/features/root_to.feature +17 -0
  181. data/features/show/default_content.feature +43 -0
  182. data/features/show/page_title.feature +47 -0
  183. data/features/sidebar_sections.feature +198 -0
  184. data/features/site_title.feature +47 -0
  185. data/features/specifying_actions.feature +93 -0
  186. data/features/step_definitions/action_item_steps.rb +7 -0
  187. data/features/step_definitions/action_link_steps.rb +7 -0
  188. data/features/step_definitions/additional_web_steps.rb +82 -0
  189. data/features/step_definitions/asset_steps.rb +15 -0
  190. data/features/step_definitions/attribute_steps.rb +13 -0
  191. data/features/step_definitions/batch_action_steps.rb +55 -0
  192. data/features/step_definitions/breadcrumb_steps.rb +3 -0
  193. data/features/step_definitions/comment_steps.rb +12 -0
  194. data/features/step_definitions/configuration_steps.rb +100 -0
  195. data/features/step_definitions/dashboard_steps.rb +15 -0
  196. data/features/step_definitions/factory_steps.rb +34 -0
  197. data/features/step_definitions/filter_steps.rb +17 -0
  198. data/features/step_definitions/flash_steps.rb +11 -0
  199. data/features/step_definitions/format_steps.rb +45 -0
  200. data/features/step_definitions/i18n_steps.rb +3 -0
  201. data/features/step_definitions/index_scope_steps.rb +21 -0
  202. data/features/step_definitions/index_views_steps.rb +3 -0
  203. data/features/step_definitions/layout_steps.rb +3 -0
  204. data/features/step_definitions/member_link_steps.rb +7 -0
  205. data/features/step_definitions/menu_steps.rb +11 -0
  206. data/features/step_definitions/pagination_steps.rb +8 -0
  207. data/features/step_definitions/sidebar_steps.rb +8 -0
  208. data/features/step_definitions/site_title_steps.rb +15 -0
  209. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  210. data/features/step_definitions/tab_steps.rb +3 -0
  211. data/features/step_definitions/table_steps.rb +119 -0
  212. data/features/step_definitions/user_steps.rb +39 -0
  213. data/features/step_definitions/web_steps.rb +86 -0
  214. data/features/sti_resource.feature +73 -0
  215. data/features/support/env.rb +112 -0
  216. data/features/support/paths.rb +71 -0
  217. data/features/support/selectors.rb +45 -0
  218. data/features/symbol_leak.feature +35 -0
  219. data/features/users/logging_in.feature +34 -0
  220. data/features/users/logging_out.feature +13 -0
  221. data/features/users/resetting_password.feature +34 -0
  222. data/lib/active_admin/abstract_view_factory.rb +95 -0
  223. data/lib/active_admin/application.rb +242 -0
  224. data/lib/active_admin/asset_registration.rb +29 -0
  225. data/lib/active_admin/authorization_adapter.rb +132 -0
  226. data/lib/active_admin/base_controller/authorization.rb +151 -0
  227. data/lib/active_admin/base_controller/menu.rb +34 -0
  228. data/lib/active_admin/base_controller.rb +78 -0
  229. data/lib/active_admin/batch_actions/controller.rb +24 -0
  230. data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
  231. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  232. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  233. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
  234. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  235. data/lib/active_admin/batch_actions.rb +17 -0
  236. data/lib/active_admin/callbacks.rb +87 -0
  237. data/lib/active_admin/cancan_adapter.rb +40 -0
  238. data/lib/active_admin/component.rb +5 -0
  239. data/lib/active_admin/controller_action.rb +12 -0
  240. data/lib/active_admin/csv_builder.rb +49 -0
  241. data/lib/active_admin/deprecation.rb +36 -0
  242. data/lib/active_admin/devise.rb +70 -0
  243. data/lib/active_admin/dsl.rb +166 -0
  244. data/lib/active_admin/engine.rb +7 -0
  245. data/lib/active_admin/event.rb +33 -0
  246. data/lib/active_admin/filters/dsl.rb +21 -0
  247. data/lib/active_admin/filters/forms.rb +89 -0
  248. data/lib/active_admin/filters/formtastic_addons.rb +70 -0
  249. data/lib/active_admin/filters/resource_extension.rb +136 -0
  250. data/lib/active_admin/filters.rb +9 -0
  251. data/lib/active_admin/form_builder.rb +152 -0
  252. data/lib/active_admin/helpers/collection.rb +23 -0
  253. data/lib/active_admin/helpers/optional_display.rb +38 -0
  254. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  255. data/lib/active_admin/helpers/settings.rb +108 -0
  256. data/lib/active_admin/iconic/icons.rb +142 -0
  257. data/lib/active_admin/iconic.rb +51 -0
  258. data/lib/active_admin/inputs/datepicker_input.rb +20 -0
  259. data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
  260. data/lib/active_admin/inputs/filter_base.rb +33 -0
  261. data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
  262. data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -0
  263. data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
  264. data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
  265. data/lib/active_admin/inputs/filter_select_input.rb +61 -0
  266. data/lib/active_admin/inputs/filter_string_input.rb +24 -0
  267. data/lib/active_admin/inputs.rb +15 -0
  268. data/lib/active_admin/menu.rb +107 -0
  269. data/lib/active_admin/menu_collection.rb +96 -0
  270. data/lib/active_admin/menu_item.rb +97 -0
  271. data/lib/active_admin/namespace.rb +224 -0
  272. data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
  273. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  274. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  275. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
  276. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
  277. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  278. data/lib/active_admin/orm/active_record/comments.rb +84 -0
  279. data/lib/active_admin/orm/active_record.rb +3 -0
  280. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  281. data/lib/active_admin/orm/mongoid.rb +1 -0
  282. data/lib/active_admin/page.rb +88 -0
  283. data/lib/active_admin/page_controller.rb +29 -0
  284. data/lib/active_admin/page_dsl.rb +28 -0
  285. data/lib/active_admin/page_presenter.rb +32 -0
  286. data/lib/active_admin/resource/action_items.rb +91 -0
  287. data/lib/active_admin/resource/belongs_to.rb +36 -0
  288. data/lib/active_admin/resource/controllers.rb +18 -0
  289. data/lib/active_admin/resource/menu.rb +64 -0
  290. data/lib/active_admin/resource/naming.rb +84 -0
  291. data/lib/active_admin/resource/page_presenters.rb +82 -0
  292. data/lib/active_admin/resource/pagination.rb +19 -0
  293. data/lib/active_admin/resource/routes.rb +99 -0
  294. data/lib/active_admin/resource/scope_to.rb +74 -0
  295. data/lib/active_admin/resource/scopes.rb +50 -0
  296. data/lib/active_admin/resource/sidebars.rb +27 -0
  297. data/lib/active_admin/resource.rb +153 -0
  298. data/lib/active_admin/resource_collection.rb +42 -0
  299. data/lib/active_admin/resource_controller/action_builder.rb +21 -0
  300. data/lib/active_admin/resource_controller/data_access.rb +298 -0
  301. data/lib/active_admin/resource_controller/decorators.rb +20 -0
  302. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  303. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  304. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  305. data/lib/active_admin/resource_controller.rb +50 -0
  306. data/lib/active_admin/resource_dsl.rb +134 -0
  307. data/lib/active_admin/router.rb +106 -0
  308. data/lib/active_admin/scope.rb +57 -0
  309. data/lib/active_admin/sidebar_section.rb +37 -0
  310. data/lib/active_admin/version.rb +3 -0
  311. data/lib/active_admin/view_factory.rb +27 -0
  312. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  313. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
  314. data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
  315. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
  316. data/lib/active_admin/view_helpers/display_helper.rb +49 -0
  317. data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -0
  318. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  319. data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
  320. data/lib/active_admin/view_helpers/form_helper.rb +24 -0
  321. data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
  322. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
  323. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  324. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  325. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  326. data/lib/active_admin/view_helpers.rb +21 -0
  327. data/lib/active_admin/views/action_items.rb +17 -0
  328. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  329. data/lib/active_admin/views/components/attributes_table.rb +103 -0
  330. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  331. data/lib/active_admin/views/components/columns.rb +150 -0
  332. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  333. data/lib/active_admin/views/components/index_list.rb +68 -0
  334. data/lib/active_admin/views/components/paginated_collection.rb +125 -0
  335. data/lib/active_admin/views/components/panel.rb +34 -0
  336. data/lib/active_admin/views/components/popover.rb +27 -0
  337. data/lib/active_admin/views/components/scopes.rb +66 -0
  338. data/lib/active_admin/views/components/sidebar_section.rb +28 -0
  339. data/lib/active_admin/views/components/site_title.rb +55 -0
  340. data/lib/active_admin/views/components/status_tag.rb +56 -0
  341. data/lib/active_admin/views/components/table_for.rb +191 -0
  342. data/lib/active_admin/views/footer.rb +20 -0
  343. data/lib/active_admin/views/header.rb +32 -0
  344. data/lib/active_admin/views/index_as_block.rb +36 -0
  345. data/lib/active_admin/views/index_as_blog.rb +156 -0
  346. data/lib/active_admin/views/index_as_grid.rb +80 -0
  347. data/lib/active_admin/views/index_as_table.rb +264 -0
  348. data/lib/active_admin/views/pages/base.rb +139 -0
  349. data/lib/active_admin/views/pages/form.rb +51 -0
  350. data/lib/active_admin/views/pages/index.rb +147 -0
  351. data/lib/active_admin/views/pages/layout.rb +26 -0
  352. data/lib/active_admin/views/pages/page.rb +30 -0
  353. data/lib/active_admin/views/pages/show.rb +59 -0
  354. data/lib/active_admin/views/tabbed_navigation.rb +62 -0
  355. data/lib/active_admin/views/title_bar.rb +53 -0
  356. data/lib/active_admin/views.rb +8 -0
  357. data/lib/active_admin.rb +125 -0
  358. data/lib/activeadmin.rb +1 -0
  359. data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
  360. data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
  361. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  362. data/lib/generators/active_admin/devise/devise_generator.rb +86 -0
  363. data/lib/generators/active_admin/install/install_generator.rb +46 -0
  364. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -0
  365. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
  366. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  367. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  368. data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
  369. data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
  370. data/lib/ransack_ext.rb +12 -0
  371. data/script/local +44 -0
  372. data/script/use_rails +53 -0
  373. data/spec/integration/default_namespace_spec.rb +61 -0
  374. data/spec/integration/javascript_spec.rb +20 -0
  375. data/spec/integration/memory_spec.rb +29 -0
  376. data/spec/integration/stylesheets_spec.rb +41 -0
  377. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  378. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  379. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  380. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  381. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  382. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  383. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  384. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  385. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  386. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  387. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  388. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  389. data/spec/javascripts/support/jasmine.yml +74 -0
  390. data/spec/javascripts/support/jasmine_config.rb +23 -0
  391. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  392. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  393. data/spec/javascripts/support/jquery.min.js +4 -0
  394. data/spec/spec_helper.rb +175 -0
  395. data/spec/spec_helper_without_rails.rb +16 -0
  396. data/spec/support/deferred_garbage_collection.rb +19 -0
  397. data/spec/support/detect_rails_version.rb +42 -0
  398. data/spec/support/integration_example_group.rb +31 -0
  399. data/spec/support/jslint.yml +80 -0
  400. data/spec/support/rails_template.rb +111 -0
  401. data/spec/support/rails_template_with_data.rb +59 -0
  402. data/spec/support/templates/admin/stores.rb +11 -0
  403. data/spec/support/templates/cucumber.rb +24 -0
  404. data/spec/support/templates/cucumber_with_reloading.rb +5 -0
  405. data/spec/support/templates/en.yml +8 -0
  406. data/spec/support/templates/post_decorator.rb +53 -0
  407. data/spec/unit/abstract_view_factory_spec.rb +79 -0
  408. data/spec/unit/action_builder_spec.rb +126 -0
  409. data/spec/unit/active_admin_spec.rb +11 -0
  410. data/spec/unit/application_spec.rb +141 -0
  411. data/spec/unit/asset_registration_spec.rb +52 -0
  412. data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  413. data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
  414. data/spec/unit/auto_link_spec.rb +32 -0
  415. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  416. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  417. data/spec/unit/belongs_to_spec.rb +42 -0
  418. data/spec/unit/cancan_adapter_spec.rb +43 -0
  419. data/spec/unit/comments_spec.rb +106 -0
  420. data/spec/unit/component_spec.rb +18 -0
  421. data/spec/unit/config_shared_examples.rb +59 -0
  422. data/spec/unit/controller_filters_spec.rb +32 -0
  423. data/spec/unit/csv_builder_spec.rb +103 -0
  424. data/spec/unit/devise_spec.rb +116 -0
  425. data/spec/unit/dsl_spec.rb +61 -0
  426. data/spec/unit/event_spec.rb +47 -0
  427. data/spec/unit/filters/filter_form_builder_spec.rb +423 -0
  428. data/spec/unit/filters/resource_spec.rb +119 -0
  429. data/spec/unit/form_builder_spec.rb +514 -0
  430. data/spec/unit/generators/install_spec.rb +23 -0
  431. data/spec/unit/helpers/collection_spec.rb +65 -0
  432. data/spec/unit/helpers/scope_chain_spec.rb +36 -0
  433. data/spec/unit/helpers/settings_spec.rb +30 -0
  434. data/spec/unit/menu_collection_spec.rb +62 -0
  435. data/spec/unit/menu_item_spec.rb +143 -0
  436. data/spec/unit/menu_spec.rb +71 -0
  437. data/spec/unit/namespace/authorization_spec.rb +27 -0
  438. data/spec/unit/namespace/register_page_spec.rb +74 -0
  439. data/spec/unit/namespace/register_resource_spec.rb +163 -0
  440. data/spec/unit/namespace_spec.rb +103 -0
  441. data/spec/unit/page_controller_spec.rb +5 -0
  442. data/spec/unit/page_spec.rb +72 -0
  443. data/spec/unit/pretty_format_spec.rb +35 -0
  444. data/spec/unit/resource/action_items_spec.rb +62 -0
  445. data/spec/unit/resource/menu_spec.rb +18 -0
  446. data/spec/unit/resource/naming_spec.rb +122 -0
  447. data/spec/unit/resource/page_presenters_spec.rb +44 -0
  448. data/spec/unit/resource/pagination_spec.rb +38 -0
  449. data/spec/unit/resource/routes_spec.rb +73 -0
  450. data/spec/unit/resource/scopes_spec.rb +43 -0
  451. data/spec/unit/resource/sidebars_spec.rb +43 -0
  452. data/spec/unit/resource_collection_spec.rb +160 -0
  453. data/spec/unit/resource_controller/data_access_spec.rb +73 -0
  454. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  455. data/spec/unit/resource_controller_spec.rb +265 -0
  456. data/spec/unit/resource_registration_spec.rb +56 -0
  457. data/spec/unit/resource_spec.rb +243 -0
  458. data/spec/unit/routing_spec.rb +172 -0
  459. data/spec/unit/scope_spec.rb +108 -0
  460. data/spec/unit/settings_spec.rb +88 -0
  461. data/spec/unit/view_factory_spec.rb +21 -0
  462. data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -0
  463. data/spec/unit/view_helpers/display_name_spec.rb +41 -0
  464. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  465. data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  466. data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
  467. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +101 -0
  468. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  469. data/spec/unit/views/components/attributes_table_spec.rb +230 -0
  470. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  471. data/spec/unit/views/components/blank_slate_spec.rb +17 -0
  472. data/spec/unit/views/components/columns_spec.rb +142 -0
  473. data/spec/unit/views/components/index_list_spec.rb +32 -0
  474. data/spec/unit/views/components/paginated_collection_spec.rb +227 -0
  475. data/spec/unit/views/components/panel_spec.rb +51 -0
  476. data/spec/unit/views/components/popover_spec.rb +33 -0
  477. data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
  478. data/spec/unit/views/components/site_title_spec.rb +78 -0
  479. data/spec/unit/views/components/status_tag_spec.rb +95 -0
  480. data/spec/unit/views/components/table_for_spec.rb +201 -0
  481. data/spec/unit/views/pages/form_spec.rb +35 -0
  482. data/spec/unit/views/pages/layout_spec.rb +63 -0
  483. data/spec/unit/views/pages/show_spec.rb +20 -0
  484. data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
  485. data/tasks/docs.rake +37 -0
  486. data/tasks/js.rake +32 -0
  487. data/tasks/parallel_tests.rake +60 -0
  488. data/tasks/test.rake +79 -0
  489. data/tasks/yard.rake +7 -0
  490. metadata +896 -0
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,110 @@
1
+ ## Contributing
2
+
3
+ This is a guide to contributing to Active Admin. It should walk you through the
4
+ major steps to contributing code to the project.
5
+
6
+ ### 1. Create an Issue on GitHub
7
+
8
+ The first step to contributing to Active Admin is creating a ticket in our
9
+ [ticketing system on GitHub](https://github.com/gregbell/active_admin/issues).
10
+ The community has been hard at work already, so please take a second to search
11
+ for the issue or feature before creating a new one.
12
+
13
+ All bug fixes should have a ticket. This makes it easy for everyone
14
+ to discuss the code and know if a fix is already in progress for an issue.
15
+
16
+
17
+ ### 2. Fork & Create a Feature Branch
18
+
19
+ The next step is to fork Active Admin (if you haven't already done so) and
20
+ create a new git branch based on the feature or issue you're working on. Please
21
+ use a descriptive name for your branch.
22
+
23
+ For example a great branch name would be (where issue #325 is the ticket you're
24
+ working on):
25
+
26
+ ```sh
27
+ git checkout -b 325-add-japanese-translations
28
+ ```
29
+
30
+ ### 3. Get the test suite running
31
+
32
+ Install the development dependencies:
33
+ ```sh
34
+ bundle install
35
+ ```
36
+
37
+ Now you should be able to run the entire suite using:
38
+ ```sh
39
+ rake test
40
+ ```
41
+
42
+ Which will generate a rails application in `spec/rails` to run the tests against.
43
+
44
+ If your tests are passing locally but they're failing on Travis, reset test your environment:
45
+ ```sh
46
+ rm -rf spec/rails && bundle update
47
+ ```
48
+
49
+ ### 4. Implement your fix or feature
50
+
51
+ At this point, you should be ready to implement your feature!
52
+
53
+
54
+ ### 5. View your changes in a Rails application
55
+
56
+ Active Admin is meant to be used by humans, not cucumbers. So make sure to take
57
+ a look at your changes in a browser (preferably a few browsers if you made view
58
+ changes).
59
+
60
+ To boot up a test rails application, use the provided script:
61
+ ```sh
62
+ script/local server
63
+ ```
64
+
65
+ This will generate a rails application at ./test-rails-app with some sane
66
+ defaults and use your local version of Active Admin.
67
+
68
+ If you have any Bundler issues, call the provided `use_rails` script then prepend
69
+ the version of rails you would like to use in an environment variable:
70
+ ```sh
71
+ script/use_rails 4.0.0
72
+ RAILS=4.0.0 script/local server
73
+ ```
74
+
75
+ You should be able to open `http://localhost:3000/admin` and view a test
76
+ environment.
77
+
78
+ If you need to perform any other commands on the test application, use the
79
+ `local` script. For example to boot the rails console:
80
+ ```sh
81
+ script/local console
82
+ ```
83
+
84
+ Or to migrate the database:
85
+ ```sh
86
+ script/local rake db:migrate
87
+ ```
88
+
89
+ ### 6. Run tests against major supported rails versions
90
+
91
+ Once you've implemented your code, got the tests passing, previewed it in a
92
+ browser, you're ready to test it against multiple versions of Rails.
93
+ ```sh
94
+ rake test:major_supported_rails
95
+ ```
96
+
97
+ This command runs the cukes and specs against a couple of major versions of
98
+ Rails. We will run this command when we review your pull request, if this
99
+ rake task isn't passing, the pull request will not be merged in.
100
+
101
+
102
+ ### 7. Make a pull request
103
+
104
+ At this point, you should switch back to your master branch and make sure it's
105
+ up to date with Active Admin's master branch. If there were any changes, you
106
+ should rebase your feature branch and make sure that it will merge correctly. If
107
+ there are any merge conflicts, your pull request will not be merged in.
108
+
109
+ Now push your changes up to your feature branch on GitHub and make a pull request!
110
+ We will pull your changes, run the test suite, review the code and merge it in.
data/Gemfile ADDED
@@ -0,0 +1,41 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ ACTIVE_ADMIN_PATH = File.dirname(__FILE__) unless defined?(ACTIVE_ADMIN_PATH)
6
+
7
+ require File.expand_path('spec/support/detect_rails_version', ACTIVE_ADMIN_PATH)
8
+
9
+ rails_version = detect_rails_version
10
+ gem 'rails', rails_version
11
+
12
+ group :development do
13
+ gem 'better_errors', '~> 1.0.0' # Web UI to debug exceptions. Go to /__better_errors to access the latest one
14
+ gem 'binding_of_caller', '~> 0.7.1' # Retrieve the binding of a method's caller in MRI Ruby >= 1.9.2
15
+ end
16
+
17
+ group :development, :test do
18
+ gem 'rake', '~> 10.1.0', require: false
19
+ gem 'rails-i18n' # Provides default i18n for many languages
20
+ gem 'redcarpet' # Markdown implementation (for yard)
21
+ gem 'yard'
22
+ gem 'yard-redcarpet-ext' # Enables Markdown tables, which are disabled by default
23
+ end
24
+
25
+ group :test do
26
+ gem 'cancan'
27
+ gem 'capybara', '= 1.1.2'
28
+ gem 'simplecov', require: false
29
+ gem 'coveralls', '~> 0.7.0', require: false # Test coverage tool: www.coveralls.io
30
+ # Move to next stable version including: https://github.com/cucumber/cucumber-rails/pull/253
31
+ gem 'cucumber-rails', github: 'cucumber/cucumber-rails', require: false
32
+ gem 'database_cleaner', '~> 1.2.0'
33
+ gem 'guard-rspec'
34
+ gem 'jasmine'
35
+ gem 'jslint_on_rails', '~> 1.1.1'
36
+ gem 'launchy'
37
+ gem 'parallel_tests'
38
+ gem 'rspec-rails', '~> 2.14.0'
39
+ gem 'shoulda-matchers'
40
+ gem 'sqlite3'
41
+ end
data/Guardfile ADDED
@@ -0,0 +1,7 @@
1
+ # More info at https://github.com/guard/guard#readme
2
+
3
+ guard 'rspec', :all_on_start => false, :version => 2 do
4
+ watch(%r{^spec/.+_spec\.rb$})
5
+ watch(%r{^lib/active_admin/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
6
+ watch('spec/spec_helper.rb') { "spec/" }
7
+ end
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2013 Greg Bell, VersaPay Corporation
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ Iconic Icons are designed by P.J. Onori and are shared under
23
+ the Creative Commons Attribution-Share Alike 3.0 license:
24
+ http://creativecommons.org/licenses/by-sa/3.0/us
25
+ http://somerandomdude.com/projects/iconic/
data/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # Active Admin
2
+
3
+ Active Admin is a Ruby on Rails framework for creating elegant backends for website administration.
4
+
5
+ [![Travis CI ](https://api.travis-ci.org/gregbell/active_admin.png) ](https://travis-ci.org/gregbell/active_admin)
6
+ [![Code Climate](https://codeclimate.com/github/gregbell/active_admin.png) ](https://codeclimate.com/github/gregbell/active_admin)
7
+ [![Gemnasium ](https://gemnasium.com/gregbell/active_admin.png) ](https://gemnasium.com/gregbell/active_admin)
8
+ [![Coveralls ](https://coveralls.io/repos/gregbell/active_admin/badge.png)](https://coveralls.io/r/gregbell/active_admin)
9
+ [![Gittip ](https://img.shields.io/gittip/activeadmin.png) ](https://www.gittip.com/activeadmin)
10
+
11
+ ## Links
12
+
13
+ * Website: <http://www.activeadmin.info>
14
+ * Live demo: <http://demo.activeadmin.info/admin>
15
+ * Documentation
16
+ * Guides: <http://activeadmin.info/documentation.html>
17
+ * YARD: <http://rubydoc.info/gems/activeadmin/frames>
18
+ * Wiki: <https://github.com/gregbell/active_admin/wiki>
19
+
20
+ ## Goals
21
+
22
+ 1. Allow developers to quickly create gorgeous administration interfaces __(Not Just CRUD)__
23
+ 2. Build a DSL for developers and an interface for businesses.
24
+ 3. Ensure that developers can easily customize every nook and cranny of the interface.
25
+ 4. Build common interfaces as shareable gems so that the entire community benefits.
26
+
27
+ ## Rails 4
28
+
29
+ There isn't yet an official release that supports Rails 4. For now, you'll have to use master:
30
+ ```ruby
31
+ gem 'activeadmin', github: 'gregbell/active_admin'
32
+ ```
33
+
34
+ ## Getting started
35
+
36
+ Check out [the docs](https://github.com/gregbell/active_admin/blob/master/docs/0-installation.md)!
37
+
38
+ ## Need help?
39
+
40
+ Ask the [mailing list](http://groups.google.com/group/activeadmin) or
41
+ [Stack Overflow](http://stackoverflow.com/questions/tagged/activeadmin).
42
+
43
+ ## Want to contribute?
44
+
45
+ The [contributing guide](https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md)
46
+ is a good place to start. If you have questions, feel free to ask
47
+ [@seanlinsley](https://twitter.com/seanlinsley).
48
+
49
+ ## Dependencies
50
+
51
+ We try not to reinvent the wheel, so Active Admin is built with other open source projects:
52
+
53
+ Tool | Description
54
+ --------------------- | -----------
55
+ [Arbre] | Ruby -> HTML, just like that.
56
+ [Devise] | Powerful, extensible user authentication
57
+ [Formtastic] | A Rails form builder plugin with semantically rich and accessible markup
58
+ [Iconic Icons] | An excellent SVG icon set designed by P.J. Onori
59
+ [Inherited Resources] | Simplifies controllers with pre-built RESTful controller actions
60
+ [Kaminari] | Elegant pagination for any sort of collection
61
+
62
+ [Arbre]: https://github.com/gregbell/arbre
63
+ [Devise]: https://github.com/plataformatec/devise
64
+ [Formtastic]: https://github.com/justinfrench/formtastic
65
+ [Iconic Icons]: http://somerandomdude.com/projects/iconic
66
+ [Inherited Resources]: https://github.com/josevalim/inherited_resources
67
+ [Kaminari]: https://github.com/amatsuda/kaminari
data/Rakefile ADDED
@@ -0,0 +1,25 @@
1
+ require "bundler"
2
+ require 'rake'
3
+ Bundler.setup
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ def cmd(command)
7
+ puts command
8
+ raise unless system command
9
+ end
10
+
11
+ require File.expand_path('../spec/support/detect_rails_version', __FILE__)
12
+
13
+ # Import all our rake tasks
14
+ FileList['tasks/**/*.rake'].each { |task| import task }
15
+
16
+ task :default => :test
17
+
18
+ begin
19
+ require 'jasmine'
20
+ load 'jasmine/tasks/jasmine.rake'
21
+ rescue LoadError
22
+ task :jasmine do
23
+ abort "Jasmine is not available. In order to run jasmine, you must: (sudo) gem install jasmine"
24
+ end
25
+ end
@@ -0,0 +1,33 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "active_admin/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = %q{yousty-activeadmin}
7
+ s.license = "MIT"
8
+ s.version = ActiveAdmin::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.homepage = %q{http://activeadmin.info}
11
+ s.authors = ["Greg Bell"]
12
+ s.email = ["gregdbell@gmail.com"]
13
+ s.description = %q{The administration framework for Ruby on Rails.}
14
+ s.summary = %q{The administration framework for Ruby on Rails.}
15
+
16
+ s.files = `git ls-files`.split("\n").sort
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency "arbre", "~> 1.0"
22
+ s.add_dependency "bourbon"
23
+ s.add_dependency "coffee-rails"
24
+ s.add_dependency "devise", "~> 3.0"
25
+ s.add_dependency "formtastic", "~> 2.3.0.rc2" # change to 2.3 when stable is released
26
+ s.add_dependency "inherited_resources", "~> 1.3"
27
+ s.add_dependency "jquery-rails"
28
+ s.add_dependency "jquery-ui-rails"
29
+ s.add_dependency "kaminari", "~> 0.13"
30
+ s.add_dependency "rails", ">= 3.2", "< 4.1"
31
+ s.add_dependency "ransack", "~> 1.0"
32
+ s.add_dependency "sass-rails"
33
+ end
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="87.5px" viewBox="0 0 100 87.5" style="enable-background:new 0 0 100 87.5;" xml:space="preserve">
2
+ <path style="fill:#010101;" d="M12.5,6.25c0,3.455-2.795,6.25-6.25,6.25C2.795,12.5,0,9.705,0,6.25C0,2.795,2.795,0,6.25,0 C9.705,0,12.5,2.795,12.5,6.25z"/>
3
+ <rect x="25" style="fill:#010101;" width="75" height="12.5"/>
4
+ <path style="fill:#010101;" d="M12.5,56.25c0,3.455-2.795,6.25-6.25,6.25C2.795,62.5,0,59.705,0,56.25S2.795,50,6.25,50 C9.705,50,12.5,52.795,12.5,56.25z"/>
5
+ <rect x="25" y="50" style="fill:#010101;" width="75" height="12.5"/>
6
+ <path style="fill:#010101;" d="M12.5,31.25c0,3.455-2.795,6.25-6.25,6.25C2.795,37.5,0,34.705,0,31.25S2.795,25,6.25,25 C9.705,25,12.5,27.795,12.5,31.25z"/>
7
+ <path style="fill:#010101;" d="M12.5,81.25c0,3.455-2.795,6.25-6.25,6.25C2.795,87.5,0,84.705,0,81.25S2.795,75,6.25,75 C9.705,75,12.5,77.795,12.5,81.25z"/>
8
+ <rect x="25" y="25" style="fill:#010101;" width="75" height="12.5"/>
9
+ <rect x="25" y="75" style="fill:#010101;" width="75" height="12.5"/>
10
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="63.62px" viewBox="0 0 100 63.62" enable-background="new 0 0 100 63.62" xml:space="preserve">
2
+ <path d="M40.592,41.293V23.226c0-4.67,3.617-8.457,8.079-8.457h17.675v-4.307C66.346,4.685,61.868,0,56.35,0H9.996 C4.477,0,0,4.685,0,10.463v22.354c0,5.777,4.477,10.463,9.996,10.463h7.649c0,4.115,0,8.234,0,12.352 c0,0.682,0.936,1.162,1.422,0.59c3.645-4.314,7.287-8.627,10.933-12.941h10.825C40.677,42.641,40.592,41.979,40.592,41.293z"/>
3
+ <path d="M45.178,26.205v20.168c0,4.211,3.263,7.627,7.289,7.627h19.21c2.658,3.145,5.313,6.289,7.97,9.434 c0.354,0.42,1.036,0.068,1.036-0.428c0-3.002,0-6.004,0-9.006h12.029c4.025,0,7.288-3.416,7.288-7.627V26.205 c0-4.212-3.263-7.629-7.288-7.629H52.467C48.441,18.576,45.178,21.992,45.178,26.205z"/>
4
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
2
+ <g>
3
+ <path fill="#000000" d="M24.666,2.5H5.334C3.769,2.5,2.5,3.769,2.5,5.334v19.331c0,1.565,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.834-1.269,2.834-2.834V5.334C27.5,3.769,26.231,2.5,24.666,2.5z"/>
4
+ <path fill="#000000" d="M59.704,2.5H40.373c-1.565,0-2.834,1.269-2.834,2.834v19.331c0,1.565,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.835-1.269,2.835-2.834V5.334C62.539,3.769,61.27,2.5,59.704,2.5z"/>
5
+ <path fill="#000000" d="M94.742,2.5h-19.33c-1.566,0-2.835,1.269-2.835,2.834v19.331c0,1.565,1.269,2.834,2.835,2.834h19.33 c1.566,0,2.836-1.269,2.836-2.834V5.334C97.578,3.769,96.309,2.5,94.742,2.5z"/>
6
+ <path fill="#000000" d="M24.666,37.667H5.334c-1.565,0-2.834,1.269-2.834,2.834v19.331c0,1.565,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.834-1.269,2.834-2.834V40.501C27.5,38.936,26.231,37.667,24.666,37.667z"/>
7
+ <path fill="#000000" d="M59.704,37.667H40.373c-1.565,0-2.834,1.269-2.834,2.834v19.331c0,1.565,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.835-1.269,2.835-2.834V40.501C62.539,38.936,61.27,37.667,59.704,37.667z"/>
8
+ <path fill="#000000" d="M94.742,37.667h-19.33c-1.566,0-2.835,1.269-2.835,2.834v19.331c0,1.565,1.269,2.834,2.835,2.834h19.33 c1.566,0,2.836-1.269,2.836-2.834V40.501C97.578,38.936,96.309,37.667,94.742,37.667z"/>
9
+ <path fill="#000000" d="M24.666,72.833H5.334c-1.565,0-2.834,1.269-2.834,2.835v19.33c0,1.566,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.834-1.268,2.834-2.834v-19.33C27.5,74.102,26.231,72.833,24.666,72.833z"/>
10
+ <path fill="#000000" d="M59.704,72.833H40.373c-1.565,0-2.834,1.269-2.834,2.835v19.33c0,1.566,1.269,2.834,2.834,2.834h19.331 c1.565,0,2.835-1.268,2.835-2.834v-19.33C62.539,74.102,61.27,72.833,59.704,72.833z"/>
11
+ <path fill="#000000" d="M94.742,72.833h-19.33c-1.566,0-2.835,1.269-2.835,2.835v19.33c0,1.566,1.269,2.834,2.835,2.834h19.33 c1.566,0,2.836-1.268,2.836-2.834v-19.33C97.578,74.102,96.309,72.833,94.742,72.833z"/>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
2
+ <path d="M0,0v100h100V0H0z M93.164,39.662H66.55V25.469h2.396h24.219V39.662z M64.499,58.308H35.501V41.706h28.998V58.308z M35.501,39.662V25.469h2.389h24.219h2.39v14.193H35.501z M31.055,25.469h2.396v14.193H6.836V25.469H31.055z M33.451,41.706v16.602 H6.836V41.706H33.451z M6.836,60.352h26.615v16.575H6.836V60.352z M35.501,60.352h28.998v16.575H35.501V60.352z M66.55,60.352 h26.614v16.575H66.55V60.352z M66.55,58.308V41.706h26.614v16.602H66.55z M6.836,93.164v-14.18h26.615v14.18H6.836z M35.501,93.164 v-14.18h28.998v14.18H35.501z M66.55,78.984h26.614v14.18H66.55V78.984z"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ #= require_self
2
+ #= require_tree ./lib/
3
+ #= require_tree ./components/
4
+
5
+ window.ActiveAdmin = {}
6
+ window.AA = window.ActiveAdmin unless window.AA
@@ -0,0 +1,5 @@
1
+ #= require jquery
2
+ #= require jquery.ui.all
3
+ #= require jquery_ujs
4
+ #
5
+ #= require active_admin/application
@@ -0,0 +1,23 @@
1
+ # Initializers
2
+ $ ->
3
+ # jQuery datepickers (also evaluates dynamically added HTML)
4
+ $(document).on 'focus', '.datepicker:not(.hasDatepicker)', ->
5
+ defaults = dateFormat: 'yy-mm-dd'
6
+ options = $(@).data 'datepicker-options'
7
+ $(@).datepicker $.extend(defaults, options)
8
+
9
+ # Clear Filters button
10
+ $('.clear_filters_btn').click ->
11
+ window.location.search = ''
12
+
13
+ # Batch Actions dropdown
14
+ $('.dropdown_button').popover()
15
+
16
+ # Filter form: don't send any inputs that are empty
17
+ $('.filter_form').submit ->
18
+ $(@).find(':input').filter(-> @value is '').prop 'disabled', true
19
+
20
+ # Filter form: for filters that let you choose the query method from
21
+ # a dropdown, apply that choice to the filter input field.
22
+ $('.filter_form_field.select_and_search select').change ->
23
+ $(@).siblings('input').prop name: "q[#{@value}]"
@@ -0,0 +1,26 @@
1
+ jQuery ($) ->
2
+
3
+ #
4
+ # Use Rails.js click handler to allow for Rails' confirm dialogs
5
+ #
6
+
7
+ $(document).delegate "#batch_actions_selector li a", "click.rails", ->
8
+ $("#batch_action").val $(@).attr("data-action")
9
+ $("#collection_selection").submit()
10
+
11
+ #
12
+ # Add checkbox selection to resource tables and lists if batch actions are enabled
13
+ #
14
+
15
+ if $("#batch_actions_selector").length && $(":checkbox.toggle_all").length
16
+
17
+ if $(".paginated_collection table.index_table").length
18
+ $(".paginated_collection table.index_table").tableCheckboxToggler()
19
+ else
20
+ $(".paginated_collection").checkboxToggler()
21
+
22
+ $(".paginated_collection").find(":checkbox").bind "change", ->
23
+ if $(".paginated_collection").find(":checkbox").filter(":checked").length > 0
24
+ $("#batch_actions_selector").aaDropdownMenu("enable")
25
+ else
26
+ $("#batch_actions_selector").aaDropdownMenu("disable")
@@ -0,0 +1,41 @@
1
+ $ ->
2
+ # Provides a before-removal hook:
3
+ # $ ->
4
+ # # This is a good place to tear down JS plugins to prevent memory leaks.
5
+ # $(document).on 'has_many_remove:before', '.has_many', (e, fieldset)->
6
+ # fieldset.find('.select2').select2 'destroy'
7
+ #
8
+ $(document).on 'click', 'a.button.has_many_remove', (e)->
9
+ e.preventDefault()
10
+ parent = $(@).closest '.has_many'
11
+ to_remove = $(@).closest 'fieldset'
12
+
13
+ parent.trigger 'has_many_remove:before', [ to_remove ]
14
+ to_remove.remove()
15
+
16
+ # Provides before and after creation hooks:
17
+ # $ ->
18
+ # # The before hook allows you to prevent the creation of new records.
19
+ # $(document).on 'has_many_add:before', '.has_many', (e)->
20
+ # if $(@).children('fieldset').length >= 3
21
+ # alert "you've reached the maximum number of items"
22
+ # e.preventDefault()
23
+ #
24
+ # # The after hook is a good place to initialize JS plugins and the like.
25
+ # $(document).on 'has_many_add:after', '.has_many', (e, fieldset)->
26
+ # fieldset.find('select').chosen()
27
+ #
28
+ $(document).on 'click', 'a.button.has_many_add', (e)->
29
+ e.preventDefault()
30
+ elem = $(@)
31
+ parent = elem.closest '.has_many'
32
+ parent.trigger before_add = $.Event 'has_many_add:before'
33
+
34
+ unless before_add.isDefaultPrevented()
35
+ index = parent.data('has_many_index') || parent.children('fieldset').length - 1
36
+ parent.data has_many_index: ++index
37
+
38
+ regex = new RegExp elem.data('placeholder'), 'g'
39
+ html = elem.data('html').replace regex, index
40
+
41
+ parent.trigger 'has_many_add:after', [ $(html).insertBefore(@) ]
@@ -0,0 +1,37 @@
1
+ window.ActiveAdmin.CheckboxToggler = class ActiveAdmin.CheckboxToggler
2
+ constructor: (@options, @container)->
3
+ defaults = {}
4
+ @options = $.extend {}, defaults, options
5
+ @_init()
6
+ @_bind()
7
+
8
+ _init: ->
9
+ if not @container
10
+ throw new Error('Container element not found')
11
+ else
12
+ @$container = $(@container)
13
+
14
+ if not @$container.find('.toggle_all').length
15
+ throw new Error('"toggle all" checkbox not found')
16
+ else
17
+ @toggle_all_checkbox = @$container.find '.toggle_all'
18
+
19
+ @checkboxes = @$container.find(':checkbox').not @toggle_all_checkbox
20
+
21
+ _bind: ->
22
+ @checkboxes.change (e)=> @_didChangeCheckbox e.target
23
+ @toggle_all_checkbox.change => @_didChangeToggleAllCheckbox()
24
+
25
+ _didChangeCheckbox: (checkbox)->
26
+ switch @checkboxes.filter(':checked').length
27
+ when @checkboxes.length - 1 then @toggle_all_checkbox.prop checked: null
28
+ when @checkboxes.length then @toggle_all_checkbox.prop checked: true
29
+
30
+ _didChangeToggleAllCheckbox: ->
31
+ setting = if @toggle_all_checkbox.prop 'checked' then true else null
32
+ @checkboxes.each (index, el)=>
33
+ $(el).prop checked: setting
34
+ @_didChangeCheckbox(el)
35
+
36
+ jQuery ($)->
37
+ $.widget.bridge 'checkboxToggler', ActiveAdmin.CheckboxToggler
@@ -0,0 +1,105 @@
1
+ window.ActiveAdmin.DropdownMenu = class ActiveAdmin.DropdownMenu
2
+
3
+ constructor: (@options, @element) ->
4
+
5
+ @$element = $(@element)
6
+
7
+ defaults = {
8
+ fadeInDuration: 20,
9
+ fadeOutDuration: 100,
10
+ onClickActionItemCallback: null
11
+ }
12
+
13
+ @options = $.extend({}, defaults, options)
14
+
15
+ @$menuButton = @$element.find(".dropdown_menu_button")
16
+ @$menuList = @$element.find(".dropdown_menu_list_wrapper")
17
+
18
+ @isOpen = false
19
+
20
+ @_buildMenuList()
21
+ @_bind()
22
+
23
+ open: ->
24
+ @isOpen = true
25
+ @$menuList.fadeIn @options.fadeInDuration
26
+
27
+ @_positionMenuList()
28
+ @_positionNipple()
29
+
30
+ return @
31
+
32
+
33
+ close: ->
34
+ @isOpen = false
35
+ @$menuList.fadeOut this.options.fadeOutDuration
36
+
37
+ return @
38
+
39
+ destroy: ->
40
+ @$element.unbind()
41
+ @$element = null
42
+
43
+ return @
44
+
45
+ isDisabled: ->
46
+ @$menuButton.hasClass("disabled")
47
+
48
+ disable: ->
49
+ @$menuButton.addClass("disabled")
50
+
51
+ enable: ->
52
+ @$menuButton.removeClass("disabled")
53
+
54
+ option: (key, value) ->
55
+ if $.isPlainObject(key)
56
+ return @options = $.extend(true, @options, key)
57
+
58
+ else if key?
59
+ return @options[key]
60
+
61
+ else
62
+ return @options[key] = value
63
+
64
+ # Private
65
+
66
+ _buildMenuList: ->
67
+ @$menuList.prepend("<div class=\"dropdown_menu_nipple\"></div>")
68
+ @$menuList.hide()
69
+
70
+ _bind: ->
71
+ $("body").bind 'click', () =>
72
+ if @isOpen is true
73
+ @close()
74
+
75
+ @$menuButton.bind 'click', () =>
76
+ unless @isDisabled()
77
+ if @isOpen is true
78
+ @close()
79
+ else
80
+ @open()
81
+
82
+ # Return false so that the event is stopped
83
+ false
84
+
85
+ _positionMenuList: ->
86
+ centerOfButtonFromLeft = @$menuButton.position().left + @$menuButton.outerWidth() / 2
87
+ centerOfmenuListFromLeft = @$menuList.outerWidth() / 2
88
+ menuListLeftPos = centerOfButtonFromLeft - centerOfmenuListFromLeft
89
+ @$menuList.css "left", menuListLeftPos
90
+
91
+ _positionNipple: ->
92
+ centerOfmenuListFromLeft = @$menuList.outerWidth() / 2
93
+ bottomOfButtonFromTop = @$menuButton.position().top + @$menuButton.outerHeight() + 10
94
+ @$menuList.css "top", bottomOfButtonFromTop
95
+ $nipple = @$menuList.find(".dropdown_menu_nipple")
96
+ centerOfnippleFromLeft = $nipple.outerWidth() / 2
97
+ nippleLeftPos = centerOfmenuListFromLeft - centerOfnippleFromLeft
98
+ $nipple.css "left", nippleLeftPos
99
+
100
+ (($) ->
101
+ $.widget.bridge 'aaDropdownMenu', ActiveAdmin.DropdownMenu
102
+
103
+ $ ->
104
+ $(".dropdown_menu").aaDropdownMenu()
105
+ )(jQuery)