activeadmin 0.4.4 → 0.5.0.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (310) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +5 -0
  3. data/CHANGELOG.md +50 -0
  4. data/CONTRIBUTING.md +2 -4
  5. data/Gemfile +10 -4
  6. data/Guardfile +0 -1
  7. data/LICENSE +1 -1
  8. data/README.rdoc +19 -8
  9. data/Rakefile +10 -1
  10. data/activeadmin.gemspec +2 -1
  11. data/app/assets/javascripts/active_admin/application.js +3 -9
  12. data/app/assets/javascripts/active_admin/base.js +1 -0
  13. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +64 -0
  14. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +107 -0
  15. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +100 -0
  16. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +27 -0
  17. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
  18. data/app/assets/javascripts/active_admin/pages/application.js.coffee +13 -0
  19. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
  20. data/app/assets/stylesheets/active_admin/_base.css.scss +32 -26
  21. data/app/assets/stylesheets/active_admin/_forms.css.scss +12 -5
  22. data/app/assets/stylesheets/active_admin/_header.css.scss +1 -2
  23. data/app/assets/stylesheets/active_admin/_typography.css.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  25. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -2
  26. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  27. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +3 -3
  28. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  29. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +20 -27
  31. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +1 -0
  32. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +38 -36
  33. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +5 -5
  34. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +7 -3
  35. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +19 -17
  36. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +2 -2
  37. data/app/assets/stylesheets/active_admin/print.css.scss +290 -0
  38. data/app/views/active_admin/dashboard/index.html.arb +1 -1
  39. data/app/views/active_admin/devise/passwords/edit.html.erb +17 -14
  40. data/app/views/active_admin/devise/passwords/new.html.erb +4 -4
  41. data/app/views/active_admin/devise/sessions/new.html.erb +6 -6
  42. data/app/views/active_admin/devise/shared/_links.erb +6 -6
  43. data/app/views/active_admin/page/index.html.arb +1 -1
  44. data/app/views/active_admin/resource/edit.html.arb +1 -1
  45. data/app/views/active_admin/resource/index.csv.erb +1 -1
  46. data/app/views/active_admin/resource/index.html.arb +1 -1
  47. data/app/views/active_admin/resource/new.html.arb +1 -1
  48. data/app/views/active_admin/resource/show.html.arb +1 -1
  49. data/app/views/layouts/active_admin.html.arb +1 -1
  50. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  51. data/cucumber.yml +1 -1
  52. data/docs/0-installation.md +10 -1
  53. data/docs/{9-custom-pages.md → 10-custom-pages.md} +0 -0
  54. data/docs/2-resource-customization.md +19 -1
  55. data/docs/3-index-pages.md +31 -0
  56. data/docs/4-csv-format.md +9 -0
  57. data/docs/6-show-screens.md +1 -1
  58. data/docs/9-batch-actions.md +161 -0
  59. data/features/dashboard.feature +31 -8
  60. data/features/development_reloading.feature +1 -1
  61. data/features/edit_page.feature +3 -3
  62. data/features/i18n.feature +35 -0
  63. data/features/index/batch_actions.feature +98 -0
  64. data/features/index/filters.feature +26 -0
  65. data/features/index/format_as_csv.feature +35 -0
  66. data/features/index/index_as_table.feature +30 -2
  67. data/features/index/index_blank_slate.feature +8 -3
  68. data/features/index/index_scopes.feature +130 -24
  69. data/features/index/page_title.feature +12 -0
  70. data/features/new_page.feature +3 -3
  71. data/features/registering_pages.feature +61 -0
  72. data/features/root_to.feature +17 -0
  73. data/features/show/default_content.feature +1 -1
  74. data/features/show/page_title.feature +14 -0
  75. data/features/sidebar_sections.feature +26 -0
  76. data/features/site_title.feature +1 -1
  77. data/features/specifying_actions.feature +7 -6
  78. data/features/step_definitions/action_link_steps.rb +1 -1
  79. data/features/step_definitions/additional_web_steps.rb +7 -1
  80. data/features/step_definitions/batch_action_steps.rb +94 -0
  81. data/features/step_definitions/configuration_steps.rb +30 -8
  82. data/features/step_definitions/factory_steps.rb +12 -0
  83. data/features/step_definitions/format_steps.rb +6 -2
  84. data/features/step_definitions/i18n_steps.rb +3 -0
  85. data/features/step_definitions/table_steps.rb +114 -0
  86. data/features/step_definitions/user_steps.rb +30 -4
  87. data/features/support/env.rb +54 -15
  88. data/features/support/paths.rb +2 -0
  89. data/features/users/logging_in.feature +1 -1
  90. data/features/users/logging_out.feature +2 -1
  91. data/features/users/resetting_password.feature +34 -0
  92. data/lib/active_admin.rb +46 -7
  93. data/lib/active_admin/application.rb +30 -15
  94. data/lib/active_admin/base_controller/menu.rb +3 -3
  95. data/lib/active_admin/batch_actions.rb +17 -0
  96. data/lib/active_admin/batch_actions/controller.rb +25 -0
  97. data/lib/active_admin/batch_actions/resource_extension.rb +126 -0
  98. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  99. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  100. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +63 -0
  101. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  102. data/lib/active_admin/comments.rb +5 -2
  103. data/lib/active_admin/comments/comment.rb +4 -3
  104. data/lib/active_admin/comments/views/active_admin_comments.rb +5 -5
  105. data/lib/active_admin/component.rb +1 -18
  106. data/lib/active_admin/csv_builder.rb +8 -3
  107. data/lib/active_admin/dashboards.rb +21 -4
  108. data/lib/active_admin/dashboards/dashboard_controller.rb +1 -5
  109. data/lib/active_admin/dependency_checker.rb +1 -1
  110. data/lib/active_admin/dsl.rb +61 -4
  111. data/lib/active_admin/engine.rb +1 -1
  112. data/lib/active_admin/filters.rb +8 -0
  113. data/lib/active_admin/filters/dsl.rb +12 -0
  114. data/lib/active_admin/filters/forms.rb +93 -0
  115. data/lib/active_admin/filters/resource_extension.rb +92 -0
  116. data/lib/active_admin/form_builder.rb +88 -33
  117. data/lib/active_admin/helpers/collection.rb +23 -0
  118. data/lib/active_admin/helpers/optional_display.rb +1 -1
  119. data/lib/active_admin/inputs/filter_select_input.rb +1 -1
  120. data/lib/active_admin/locales/bg.yml +37 -1
  121. data/lib/active_admin/locales/ca.yml +36 -0
  122. data/lib/active_admin/locales/cs.yml +36 -0
  123. data/lib/active_admin/locales/da.yml +36 -0
  124. data/lib/active_admin/locales/de.yml +42 -0
  125. data/lib/active_admin/locales/en.yml +27 -2
  126. data/lib/active_admin/locales/es.yml +45 -4
  127. data/lib/active_admin/locales/fr.yml +22 -0
  128. data/lib/active_admin/locales/{he_il.yml → he.yml} +37 -2
  129. data/lib/active_admin/locales/hr.yml +49 -5
  130. data/lib/active_admin/locales/hu.yml +21 -0
  131. data/lib/active_admin/locales/it.yml +36 -1
  132. data/lib/active_admin/locales/ja.yml +36 -0
  133. data/lib/active_admin/locales/ko.yml +36 -1
  134. data/lib/active_admin/locales/lv.yml +28 -2
  135. data/lib/active_admin/locales/nl.yml +42 -1
  136. data/lib/active_admin/locales/no-NB.yml +15 -0
  137. data/lib/active_admin/locales/pl.yml +45 -1
  138. data/lib/active_admin/locales/pt-BR.yml +36 -1
  139. data/lib/active_admin/locales/ro.yml +67 -0
  140. data/lib/active_admin/locales/ru.yml +43 -3
  141. data/lib/active_admin/locales/sv-SE.yml +41 -1
  142. data/lib/active_admin/locales/tr.yml +80 -0
  143. data/lib/active_admin/locales/vi.yml +80 -0
  144. data/lib/active_admin/locales/{zh_cn.yml → zh-CN.yml} +42 -2
  145. data/lib/active_admin/locales/zh-TW.yml +36 -1
  146. data/lib/active_admin/menu.rb +55 -30
  147. data/lib/active_admin/menu_builder.rb +65 -0
  148. data/lib/active_admin/menu_item.rb +55 -14
  149. data/lib/active_admin/namespace.rb +25 -55
  150. data/lib/active_admin/page.rb +15 -10
  151. data/lib/active_admin/resource.rb +9 -0
  152. data/lib/active_admin/resource/action_items.rb +4 -4
  153. data/lib/active_admin/resource/controllers.rb +1 -1
  154. data/lib/active_admin/resource/menu.rb +19 -21
  155. data/lib/active_admin/resource/naming.rb +55 -45
  156. data/lib/active_admin/resource/sidebars.rb +0 -13
  157. data/lib/active_admin/resource_collection.rb +10 -10
  158. data/lib/active_admin/resource_controller.rb +5 -5
  159. data/lib/active_admin/resource_controller/actions.rb +2 -0
  160. data/lib/active_admin/resource_controller/collection.rb +13 -4
  161. data/lib/active_admin/resource_dsl.rb +12 -6
  162. data/lib/active_admin/router.rb +27 -8
  163. data/lib/active_admin/scope.rb +1 -0
  164. data/lib/active_admin/sidebar_section.rb +2 -6
  165. data/lib/active_admin/version.rb +1 -1
  166. data/lib/active_admin/view_factory.rb +18 -13
  167. data/lib/active_admin/view_helpers.rb +0 -2
  168. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  169. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +24 -25
  170. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  171. data/lib/active_admin/view_helpers/fields_for.rb +44 -0
  172. data/lib/active_admin/view_helpers/form_helper.rb +6 -0
  173. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
  174. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  175. data/lib/active_admin/views/components/attributes_table.rb +6 -2
  176. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +13 -14
  178. data/lib/active_admin/views/components/popover.rb +27 -0
  179. data/lib/active_admin/views/components/scopes.rb +8 -13
  180. data/lib/active_admin/views/components/sidebar_section.rb +1 -1
  181. data/lib/active_admin/views/components/site_title.rb +55 -0
  182. data/lib/active_admin/views/components/status_tag.rb +4 -4
  183. data/lib/active_admin/views/components/table_for.rb +18 -18
  184. data/lib/active_admin/views/dashboard_section_renderer.rb +1 -1
  185. data/lib/active_admin/views/footer.rb +18 -0
  186. data/lib/active_admin/views/header.rb +31 -0
  187. data/lib/active_admin/views/index_as_block.rb +3 -0
  188. data/lib/active_admin/views/index_as_blog.rb +4 -0
  189. data/lib/active_admin/views/index_as_grid.rb +2 -0
  190. data/lib/active_admin/views/index_as_table.rb +19 -6
  191. data/lib/active_admin/views/pages/base.rb +14 -48
  192. data/lib/active_admin/views/pages/form.rb +3 -3
  193. data/lib/active_admin/views/pages/index.rb +56 -24
  194. data/lib/active_admin/views/pages/layout.rb +2 -2
  195. data/lib/active_admin/views/pages/page.rb +10 -4
  196. data/lib/active_admin/views/pages/show.rb +11 -8
  197. data/lib/active_admin/views/tabbed_navigation.rb +3 -3
  198. data/lib/active_admin/views/title_bar.rb +50 -0
  199. data/lib/active_admin/views/utility_nav.rb +41 -0
  200. data/lib/generators/active_admin/assets/assets_generator.rb +1 -1
  201. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -0
  202. data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +26 -3
  203. data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
  204. data/lib/generators/active_admin/install/install_generator.rb +10 -10
  205. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
  206. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +20 -0
  207. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  208. data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
  209. data/spec/integration/memory_spec.rb +1 -11
  210. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  211. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  212. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  213. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  214. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  215. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  216. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  217. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  218. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  219. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  220. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  221. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  222. data/spec/javascripts/support/jasmine.yml +74 -0
  223. data/spec/javascripts/support/jasmine_config.rb +23 -0
  224. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  225. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  226. data/spec/javascripts/support/jquery.min.js +4 -0
  227. data/spec/spec_helper.rb +13 -13
  228. data/spec/spec_helper_without_rails.rb +2 -3
  229. data/spec/support/detect_rails_version.rb +16 -10
  230. data/spec/support/rails_template.rb +13 -1
  231. data/spec/support/templates/admin/stores.rb +1 -0
  232. data/spec/support/templates/en.yml +6 -0
  233. data/spec/unit/action_builder_spec.rb +38 -0
  234. data/spec/unit/application_spec.rb +12 -16
  235. data/spec/unit/base_controller_shared_examples.rb +3 -6
  236. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  237. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  238. data/spec/unit/breadcrumbs_spec.rb +33 -0
  239. data/spec/unit/comments_spec.rb +6 -0
  240. data/spec/unit/config_shared_examples.rb +17 -64
  241. data/spec/unit/csv_builder_spec.rb +12 -2
  242. data/spec/unit/dashboard_controller_spec.rb +11 -5
  243. data/spec/unit/dsl_include_spec.rb +20 -0
  244. data/spec/unit/{filter_form_builder_spec.rb → filters/filter_form_builder_spec.rb} +10 -7
  245. data/spec/unit/filters/resource_spec.rb +60 -0
  246. data/spec/unit/form_builder_spec.rb +180 -28
  247. data/spec/unit/helpers/collection_spec.rb +65 -0
  248. data/spec/unit/menu_item_spec.rb +48 -53
  249. data/spec/unit/menu_spec.rb +46 -32
  250. data/spec/unit/namespace/register_page_spec.rb +0 -6
  251. data/spec/unit/namespace/register_resource_spec.rb +1 -8
  252. data/spec/unit/namespace_spec.rb +8 -2
  253. data/spec/unit/page_spec.rb +20 -8
  254. data/spec/unit/resource/naming_spec.rb +27 -26
  255. data/spec/unit/resource/sidebars_spec.rb +0 -7
  256. data/spec/unit/resource_collection_spec.rb +11 -11
  257. data/spec/unit/resource_controller/collection_spec.rb +23 -1
  258. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  259. data/spec/unit/resource_controller_spec.rb +43 -0
  260. data/spec/unit/resource_registration_spec.rb +2 -13
  261. data/spec/unit/resource_spec.rb +0 -42
  262. data/spec/unit/routing_spec.rb +60 -14
  263. data/spec/unit/scope_spec.rb +7 -0
  264. data/spec/unit/view_factory_spec.rb +9 -6
  265. data/spec/unit/view_helpers/fields_for_spec.rb +41 -0
  266. data/spec/unit/view_helpers/form_helper_spec.rb +18 -0
  267. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  268. data/spec/unit/views/components/attributes_table_spec.rb +32 -20
  269. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  270. data/spec/unit/views/components/blank_slate_spec.rb +5 -3
  271. data/spec/unit/views/components/columns_spec.rb +32 -22
  272. data/spec/unit/views/components/paginated_collection_spec.rb +54 -12
  273. data/spec/unit/views/components/panel_spec.rb +11 -6
  274. data/spec/unit/views/components/popover_spec.rb +33 -0
  275. data/spec/unit/views/components/sidebar_section_spec.rb +6 -6
  276. data/spec/unit/views/components/site_title_spec.rb +78 -0
  277. data/spec/unit/views/components/status_tag_spec.rb +17 -10
  278. data/spec/unit/views/components/table_for_spec.rb +37 -17
  279. data/spec/unit/views/pages/layout_spec.rb +51 -10
  280. data/spec/unit/views/tabbed_navigation_spec.rb +44 -23
  281. data/tasks/js.rake +32 -0
  282. data/tasks/test.rake +1 -1
  283. metadata +233 -200
  284. data/lib/active_admin/arbre.rb +0 -22
  285. data/lib/active_admin/arbre/builder.rb +0 -125
  286. data/lib/active_admin/arbre/context.rb +0 -45
  287. data/lib/active_admin/arbre/html/attributes.rb +0 -20
  288. data/lib/active_admin/arbre/html/class_list.rb +0 -24
  289. data/lib/active_admin/arbre/html/collection.rb +0 -27
  290. data/lib/active_admin/arbre/html/document.rb +0 -42
  291. data/lib/active_admin/arbre/html/element.rb +0 -161
  292. data/lib/active_admin/arbre/html/html5_elements.rb +0 -47
  293. data/lib/active_admin/arbre/html/tag.rb +0 -145
  294. data/lib/active_admin/arbre/html/text_node.rb +0 -35
  295. data/lib/active_admin/filter_form_builder.rb +0 -53
  296. data/lib/active_admin/renderer.rb +0 -87
  297. data/lib/active_admin/resource_controller/filters.rb +0 -58
  298. data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
  299. data/lib/active_admin/view_helpers/filter_form_helper.rb +0 -36
  300. data/lib/active_admin/view_helpers/renderer_helper.rb +0 -29
  301. data/lib/active_admin/views/header_renderer.rb +0 -82
  302. data/lib/generators/active_admin/assets/templates/dashboards.rb +0 -36
  303. data/lib/generators/active_admin/install/templates/dashboards.rb +0 -44
  304. data/spec/unit/arbre/context_spec.rb +0 -35
  305. data/spec/unit/arbre/html/element_finder_methods_spec.rb +0 -110
  306. data/spec/unit/arbre/html/element_spec.rb +0 -236
  307. data/spec/unit/arbre/html/tag_attributes_spec.rb +0 -61
  308. data/spec/unit/arbre/html/tag_spec.rb +0 -63
  309. data/spec/unit/arbre/html_spec.rb +0 -228
  310. data/spec/unit/renderer_spec.rb +0 -126
data/.gitignore CHANGED
@@ -12,6 +12,8 @@ tmtags
12
12
 
13
13
  ## VIM
14
14
  *.swp
15
+ # IDEA / RUBYMINE
16
+ .idea
15
17
 
16
18
  ## PROJECT::GENERAL
17
19
  tags
@@ -34,3 +36,4 @@ public
34
36
  .rvmrc
35
37
  .rspec
36
38
  .rails-version
39
+ .rbenv-version
@@ -2,6 +2,11 @@ script: bundle exec rake
2
2
  rvm:
3
3
  - ree
4
4
  - 1.9.2
5
+ - 1.9.3
5
6
  before_install:
6
7
  - gem update --system
7
8
  - gem --version
9
+ env:
10
+ - RAILS=3.0.12
11
+ - RAILS=3.1.4
12
+ - RAILS=3.2.3
@@ -1,5 +1,37 @@
1
1
  ## Master (unreleased)
2
2
 
3
+ ### Enhancements
4
+
5
+ * Created new view components (Footer, TitleBar, Header, UtilityNav) to more
6
+ easily customize the views in Active Admin and per namespace. (@gregbell)
7
+ * All CSS is now encapsulated under the `body.active_admin` class. This may
8
+ change the precedence of styles that you created to override or use in
9
+ other areas of your application.
10
+ * Dashboards are now implemented as pages. For more details of how to configure
11
+ a page, checkout http://activeadmin.info/docs/9-custom-pages.html
12
+ * Root route can be set to any controller#action using `#root_to`.
13
+ * Batch Actions allows you to select entries on index page and perform
14
+ an action against them.
15
+ * CSV separators are configurable.
16
+ * Lot of bug fixes.
17
+
18
+ ### Deprecations
19
+
20
+ * Removed all references to ActiveAdmin::Renderer. If you were using these
21
+ please update code to use an Arbre component. Removed
22
+ `ActiveAdmin:Views::HeaderRender` and replaced with
23
+ `ActiveAdmin::Views::Header` component.
24
+ * ActiveAdmin::Menu and ActiveAdmin::MenuItem API has changed. If you were
25
+ creating custom menu items, the builder syntax has changed to. Menu#add now
26
+ accepts a MenuItem, instead of building the menu item for you.
27
+ * `ActiveAdmin::Dashboards.build` is deprecated in favour of generating a page
28
+ and using the new `config.root_to` option.
29
+ * Arbre is now a gem on its own.
30
+
31
+ ### Contributions
32
+
33
+ 552 commits (140 Pull Requests) by 88 contributors.
34
+
3
35
  ## 0.4.4
4
36
 
5
37
  ### Dependencies
@@ -25,6 +57,7 @@
25
57
  * [#1032][]: The html body now includes a class for the namespace name ([@mattvague][])
26
58
  * [#1013][]: Hide the count from one specific scope using `:show_count => false`
27
59
  ([@latortuga][])
60
+ * [#1023][]: Add localization support for comments ([@MoritzMoritz][])
28
61
 
29
62
  ### Bug Fixes
30
63
 
@@ -34,6 +67,21 @@
34
67
  * [#983][]: Fixed compatibility with pry-rails ([@pcreux][])
35
68
  * [#409][]: Install generator handles custom class names for user ([@gregbell][])
36
69
 
70
+ ### Contributors
71
+
72
+ 42 Commits by 10 authors
73
+
74
+ * Allen Huang
75
+ * Daniel Lepage
76
+ * Thibaut Barrère
77
+ * Drew Ulmer
78
+ * Juan Schwindt
79
+ * Moritz Behr
80
+ * Jeff Ancel
81
+ * Matt Vague
82
+ * Greg Bell
83
+ * Philippe Creux
84
+
37
85
 
38
86
  ## 0.4.1
39
87
 
@@ -525,12 +573,14 @@ of the highlights. 250 commits. Enough said.
525
573
  [#994]: https://github.com/gregbell/active_admin/issues/994
526
574
  [#1013]: https://github.com/gregbell/active_admin/issues/1013
527
575
  [#1016]: https://github.com/gregbell/active_admin/issues/1016
576
+ [#1023]: https://github.com/gregbell/active_admin/issues/1023
528
577
  [#1032]: https://github.com/gregbell/active_admin/issues/1032
529
578
  [#1033]: https://github.com/gregbell/active_admin/issues/1033
530
579
  [#1041]: https://github.com/gregbell/active_admin/issues/1041
531
580
  [#1063]: https://github.com/gregbell/active_admin/issues/1063
532
581
  [@BoboFraggins]: https://github.com/BoboFraggins
533
582
  [@DMajrekar]: https://github.com/DMajrekar
583
+ [@MoritzMoritz]: https://github.com/MoritzMoritz
534
584
  [@ZequeZ]: https://github.com/ZequeZ
535
585
  [@bobbytables]: https://github.com/bobbytables
536
586
  [@comboy]: https://github.com/comboy
@@ -10,10 +10,8 @@ The first step to contributing to Active Admin is creating a ticket in our
10
10
  The community has been hard at work already, so please take a second to search
11
11
  for the issue or feature before creating a new one.
12
12
 
13
- All features or 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. If
15
- it's a feature, the team can prioritize what it should work on based on these
16
- tickets.
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.
17
15
 
18
16
 
19
17
  ### 2. Fork & Create a Feature Branch
data/Gemfile CHANGED
@@ -2,10 +2,13 @@ source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- require File.expand_path('../spec/support/detect_rails_version', __FILE__)
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)
6
8
 
7
9
  rails_version = detect_rails_version
8
10
  gem 'rails', rails_version
11
+ gem 'bourbon'
9
12
 
10
13
  case rails_version
11
14
  when /^3\.0/
@@ -19,17 +22,18 @@ else
19
22
  end
20
23
 
21
24
  group :development, :test do
22
- gem 'sqlite3-ruby', :require => 'sqlite3'
25
+ gem 'sqlite3'
23
26
 
24
27
  gem 'rake', '~> 0.9.2.2', :require => false
25
28
  gem 'haml', '~> 3.1.1', :require => false
26
29
  gem 'yard'
27
30
  gem 'rdiscount' # For yard
31
+ gem "sprockets"
32
+ gem 'rails-i18n' # Gives us default i18n for many languages
28
33
  end
29
34
 
30
35
  group :test do
31
- gem 'rspec-rails', '~> 2.8.1'
32
- gem 'cucumber', '1.1.4'
36
+ gem 'rspec-rails', '~> 2.9.0'
33
37
  gem 'cucumber-rails', '1.2.1', :require => false
34
38
  gem 'capybara', '1.1.2'
35
39
  gem 'database_cleaner'
@@ -37,4 +41,6 @@ group :test do
37
41
  gem 'launchy'
38
42
  gem 'jslint_on_rails', '~> 1.0.6'
39
43
  gem 'guard-rspec'
44
+ gem "guard-coffeescript"
45
+ gem 'jasmine'
40
46
  end
data/Guardfile CHANGED
@@ -5,4 +5,3 @@ guard 'rspec', :all_on_start => false, :version => 2 do
5
5
  watch(%r{^lib/active_admin/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
6
6
  watch('spec/spec_helper.rb') { "spec/" }
7
7
  end
8
-
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Greg Bell, VersaPay Corporation
1
+ Copyright (c) 2012 Greg Bell, VersaPay Corporation
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -4,30 +4,41 @@ Active Admin is a framework for creating administration style interfaces. It
4
4
  abstracts common business application patterns to make it simple for developers
5
5
  to implement beautiful and elegant interfaces with very little effort.
6
6
 
7
- {<img src="https://secure.travis-ci.org/gregbell/active_admin.png" />}[http://travis-ci.org/gregbell/active_admin]
7
+ {<img src="https://secure.travis-ci.org/gregbell/active_admin.png?branch=master" />}[http://travis-ci.org/gregbell/active_admin] {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/gregbell/active_admin]
8
8
 
9
9
  == Documentation & Support
10
10
 
11
11
  * Documentation & Guides: http://activeadmin.info/documentation.html
12
12
  * Wiki: https://github.com/gregbell/active_admin/wiki
13
- * RDoc: http://rubydoc.info/github/gregbell/active_admin/master/frames
13
+ * RDoc: http://rubydoc.info/gems/activeadmin/frames
14
14
  * Live demo: http://demo.activeadmin.info/admin
15
15
  * Website: http://www.activeadmin.info
16
16
  * <b>Need Support?</b> Ask the Mailing list: http://groups.google.com/group/activeadmin
17
17
 
18
- == Bugs & Feature Requests
19
-
20
- * Bug Reports & Feature Requests: https://github.com/gregbell/active_admin/issues
21
- * Want to Contribute? Read the Guide: https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md
22
-
23
18
  == Goals
24
19
 
25
20
  1. Allow developers to quickly create gorgeous administration interfaces
26
- <strong>(Not Just CRUD)</strong>
21
+ <b>(Not Just CRUD)</b>
27
22
  2. Build a DSL for developers and an interface for businesses.
28
23
  3. Ensure that developers can easily customize every nook and cranny of the interface.
29
24
  4. Build common interfaces as shareable gems so that the entire community benefits.
30
25
 
26
+ == Bugs Reports & Contributing
27
+
28
+ * Bug Reports: https://github.com/gregbell/active_admin/issues
29
+ * Want to Contribute? Read the Guide: https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md
30
+
31
+ == Feature Requests
32
+
33
+ Please don't put feature requests in Github Issues. They will be closed as soon as they
34
+ are reviewed by one of the core team members. If you would like a feature in Active Admin,
35
+ please submit a well tested pull request with the desired changes. If you're not a coder,
36
+ then the mailing list may be a good place to try to convince someone to help you out
37
+ with your cause.
38
+
39
+ If you are going to submit a pull request, please read the contributing guide:
40
+ https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md
41
+
31
42
 
32
43
  == Getting Started
33
44
 
data/Rakefile CHANGED
@@ -1,8 +1,8 @@
1
1
  require "bundler"
2
+ require 'rake'
2
3
  Bundler.setup
3
4
  Bundler::GemHelper.install_tasks
4
5
 
5
- require 'rake'
6
6
 
7
7
  def cmd(command)
8
8
  puts command
@@ -16,3 +16,12 @@ FileList['tasks/**/*.rake'].each { |task| import task }
16
16
 
17
17
  # Run the specs & cukes
18
18
  task :default => :test
19
+
20
+ begin
21
+ require 'jasmine'
22
+ load 'jasmine/tasks/jasmine.rake'
23
+ rescue LoadError
24
+ task :jasmine do
25
+ abort "Jasmine is not available. In order to run jasmine, you must: (sudo) gem install jasmine"
26
+ end
27
+ end
@@ -22,9 +22,10 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency("bourbon", ">= 1.0.0")
23
23
  s.add_dependency("meta_search", ">= 0.9.2")
24
24
  s.add_dependency("devise", ">= 1.1.2")
25
- s.add_dependency("formtastic", "~> 2.1.1")
25
+ s.add_dependency("formtastic", ">= 2.0.0")
26
26
  s.add_dependency("inherited_resources", ">= 1.3.1")
27
27
  s.add_dependency("kaminari", ">= 0.13.0")
28
28
  s.add_dependency("sass", ">= 3.1.0")
29
29
  s.add_dependency("fastercsv", ">= 0")
30
+ s.add_dependency("arbre", ">= 1.0.1")
30
31
  end
@@ -1,9 +1,3 @@
1
- /* Active Admin JS */
2
- $(function(){
3
- $(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});
4
-
5
- $(".clear_filters_btn").click(function(){
6
- window.location.search = "";
7
- return false;
8
- });
9
- });
1
+ //= require_tree ./lib/
2
+ //= require_tree ./components/
3
+ //= require_tree ./pages/
@@ -1,4 +1,5 @@
1
1
  //= require jquery
2
2
  //= require jquery-ui
3
3
  //= require jquery_ujs
4
+
4
5
  //= require active_admin/application
@@ -0,0 +1,64 @@
1
+ window.AA.CheckboxToggler = class AA.CheckboxToggler
2
+
3
+ constructor: (@options, @container) ->
4
+
5
+ defaults = {}
6
+
7
+ @options = $.extend( {}, defaults, options );
8
+
9
+ @_init()
10
+ @_bind()
11
+
12
+ _init: ->
13
+
14
+ if not @container
15
+ throw new Error("Container element not found")
16
+ else
17
+ @$container = $(@container)
18
+
19
+ if not @$container.find(".toggle_all").length
20
+ throw new Error("'toggle all' checkbox not found")
21
+ else
22
+ @toggle_all_checkbox = @$container.find(".toggle_all")
23
+
24
+ @checkboxes = @$container.find(":checkbox").not(@toggle_all_checkbox)
25
+
26
+ _bind: ->
27
+ @checkboxes.bind "change", (e) =>
28
+ @_didChangeCheckbox(e.target)
29
+
30
+ @toggle_all_checkbox.bind "change", (e) =>
31
+ @_didChangeToggleAllCheckbox()
32
+
33
+ _didChangeCheckbox: (checkbox) ->
34
+ if @checkboxes.filter(":checked").length == @checkboxes.length - 1
35
+ @_uncheckToggleAllCheckbox()
36
+ else if @checkboxes.filter(":checked").length == @checkboxes.length
37
+ @_checkToggleAllCheckbox()
38
+
39
+ _didChangeToggleAllCheckbox: ->
40
+ if @toggle_all_checkbox.attr("checked") == "checked"
41
+ @_checkAllCheckboxes()
42
+ else
43
+ @_uncheckAllCheckboxes()
44
+
45
+ _uncheckToggleAllCheckbox: ->
46
+ @toggle_all_checkbox.removeAttr("checked")
47
+
48
+ _checkToggleAllCheckbox: ->
49
+ @toggle_all_checkbox.attr("checked","checked")
50
+
51
+ _uncheckAllCheckboxes: ->
52
+ @checkboxes.each (index, el) =>
53
+ $(el).removeAttr("checked")
54
+ @_didChangeCheckbox(el)
55
+
56
+ _checkAllCheckboxes: ->
57
+ @checkboxes.each (index, el) =>
58
+ $(el).attr("checked","checked")
59
+ @_didChangeCheckbox(el)
60
+
61
+
62
+ ( ( $ ) ->
63
+ $.widget.bridge 'checkboxToggler', AA.CheckboxToggler
64
+ )( jQuery )
@@ -0,0 +1,107 @@
1
+ window.AA.DropdownMenu = class AA.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
+ return @
24
+
25
+ open: ->
26
+ @isOpen = true
27
+ @$menuList.fadeIn @options.fadeInDuration
28
+
29
+ @_positionMenuList()
30
+ @_positionNipple()
31
+
32
+ return @
33
+
34
+
35
+ close: ->
36
+ @isOpen = false
37
+ @$menuList.fadeOut this.options.fadeOutDuration
38
+
39
+ return @
40
+
41
+ destroy: ->
42
+ @$element.unbind()
43
+ @$element = null
44
+
45
+ return @
46
+
47
+ isDisabled: ->
48
+ @$menuButton.hasClass("disabled")
49
+
50
+ disable: ->
51
+ @$menuButton.addClass("disabled")
52
+
53
+ enable: ->
54
+ @$menuButton.removeClass("disabled")
55
+
56
+ option: (key, value) ->
57
+ if $.isPlainObject(key)
58
+ return @options = $.extend(true, @options, key)
59
+
60
+ else if key?
61
+ return @options[key]
62
+
63
+ else
64
+ return @options[key] = value
65
+
66
+ # Private
67
+
68
+ _buildMenuList: ->
69
+ @$menuList.prepend("<div class=\"dropdown_menu_nipple\"></div>")
70
+ @$menuList.hide()
71
+
72
+ _bind: ->
73
+ $("body").bind 'click', () =>
74
+ if @isOpen is true
75
+ @close()
76
+
77
+ @$menuButton.bind 'click', () =>
78
+ unless @isDisabled()
79
+ if @isOpen is true
80
+ @close()
81
+ else
82
+ @open()
83
+
84
+ # Return false so that the event is stopped
85
+ false
86
+
87
+ _positionMenuList: ->
88
+ centerOfButtonFromLeft = @$menuButton.offset().left + @$menuButton.outerWidth() / 2
89
+ centerOfmenuListFromLeft = @$menuList.outerWidth() / 2
90
+ menuListLeftPos = centerOfButtonFromLeft - centerOfmenuListFromLeft
91
+ @$menuList.css "left", menuListLeftPos
92
+
93
+ _positionNipple: ->
94
+ centerOfmenuListFromLeft = @$menuList.outerWidth() / 2
95
+ bottomOfButtonFromTop = @$menuButton.offset().top + @$menuButton.outerHeight() + 10
96
+ @$menuList.css "top", bottomOfButtonFromTop
97
+ $nipple = @$menuList.find(".dropdown_menu_nipple")
98
+ centerOfnippleFromLeft = $nipple.outerWidth() / 2
99
+ nippleLeftPos = centerOfmenuListFromLeft - centerOfnippleFromLeft
100
+ $nipple.css "left", nippleLeftPos
101
+
102
+ (($) ->
103
+ $.widget.bridge 'aaDropdownMenu', AA.DropdownMenu
104
+
105
+ $ ->
106
+ $(".dropdown_menu").aaDropdownMenu()
107
+ )(jQuery)