andrewroth_activeadmin 0.3.4 → 0.3.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. data/CHANGELOG.md +159 -3
  2. data/CONTRIBUTING.md +113 -0
  3. data/LICENSE +1 -1
  4. data/README.rdoc +19 -20
  5. data/activeadmin.gemspec +3 -1
  6. data/app/assets/javascripts/active_admin/application.js +9 -0
  7. data/app/assets/javascripts/active_admin/base.js +4 -12
  8. data/app/assets/stylesheets/active_admin/_base.css.scss +16 -340
  9. data/app/assets/stylesheets/active_admin/_forms.css.scss +13 -7
  10. data/app/assets/stylesheets/active_admin/_header.css.scss +23 -4
  11. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
  12. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  13. data/app/assets/stylesheets/active_admin/components/_buttons.scss +12 -0
  14. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +2 -0
  15. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  16. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
  18. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  19. data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  20. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  21. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +101 -0
  22. data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +2 -1
  23. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +50 -13
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +9 -1
  25. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +7 -5
  26. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +1 -0
  27. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  28. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +1 -0
  29. data/app/assets/stylesheets/active_admin/pages/_dashboard.scss +5 -0
  30. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  31. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  32. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +26 -0
  33. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +44 -0
  34. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  35. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  36. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  37. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  39. data/app/views/active_admin/page/index.html.arb +1 -0
  40. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  41. data/cucumber.yml +3 -2
  42. data/docs/1-general-configuration.md +46 -10
  43. data/docs/6-show-screens.md +7 -0
  44. data/docs/8-custom-actions.md +12 -2
  45. data/docs/9-custom-pages.md +84 -0
  46. data/features/belongs_to.feature +27 -0
  47. data/features/comments/commenting.feature +3 -2
  48. data/features/dashboard.feature +18 -0
  49. data/features/development_reloading.feature +19 -0
  50. data/features/index/filter_with_check_boxes.feature +25 -0
  51. data/features/index/index_as_table.feature +14 -0
  52. data/features/index/index_scopes.feature +42 -0
  53. data/features/index/pagination.feature +19 -1
  54. data/features/menu.feature +22 -2
  55. data/features/registering_assets.feature +2 -2
  56. data/features/registering_pages.feature +66 -0
  57. data/features/specifying_actions.feature +5 -0
  58. data/features/step_definitions/action_item_steps.rb +2 -6
  59. data/features/step_definitions/action_link_steps.rb +7 -0
  60. data/features/step_definitions/additional_web_steps.rb +8 -0
  61. data/features/step_definitions/asset_steps.rb +5 -1
  62. data/features/step_definitions/breadcrumb_steps.rb +5 -0
  63. data/features/step_definitions/configuration_steps.rb +56 -8
  64. data/features/step_definitions/dashboard_steps.rb +5 -1
  65. data/features/step_definitions/factory_steps.rb +9 -2
  66. data/features/step_definitions/flash_steps.rb +9 -1
  67. data/features/step_definitions/index_scope_steps.rb +16 -4
  68. data/features/step_definitions/member_link_steps.rb +7 -0
  69. data/features/step_definitions/site_title_steps.rb +15 -0
  70. data/features/support/paths.rb +6 -0
  71. data/features/users/logging_out.feature +11 -0
  72. data/lib/active_admin.rb +25 -10
  73. data/lib/active_admin/application.rb +63 -20
  74. data/lib/active_admin/arbre/html/element.rb +10 -0
  75. data/lib/active_admin/asset_registration.rb +15 -2
  76. data/lib/active_admin/base_controller.rb +61 -0
  77. data/lib/active_admin/{resource_controller → base_controller}/menu.rb +1 -1
  78. data/lib/active_admin/comments.rb +48 -54
  79. data/lib/active_admin/comments/comment.rb +13 -2
  80. data/lib/active_admin/comments/namespace_helper.rb +1 -1
  81. data/lib/active_admin/comments/views/active_admin_comments.rb +7 -3
  82. data/lib/active_admin/dashboards.rb +4 -0
  83. data/lib/active_admin/dashboards/dashboard_controller.rb +20 -4
  84. data/lib/active_admin/dsl.rb +6 -159
  85. data/lib/active_admin/event.rb +5 -3
  86. data/lib/active_admin/filter_form_builder.rb +53 -0
  87. data/lib/active_admin/form_builder.rb +25 -19
  88. data/lib/active_admin/inputs.rb +14 -0
  89. data/lib/active_admin/inputs/datepicker_input.rb +11 -0
  90. data/lib/active_admin/inputs/filter_base.rb +46 -0
  91. data/lib/active_admin/inputs/filter_check_boxes_input.rb +40 -0
  92. data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
  93. data/lib/active_admin/inputs/filter_numeric_input.rb +55 -0
  94. data/lib/active_admin/inputs/filter_select_input.rb +23 -0
  95. data/lib/active_admin/inputs/filter_string_input.rb +22 -0
  96. data/lib/active_admin/locales/ca.yml +44 -0
  97. data/lib/active_admin/locales/cs.yml +14 -10
  98. data/lib/active_admin/locales/de.yml +43 -0
  99. data/lib/active_admin/locales/en.yml +5 -0
  100. data/lib/active_admin/locales/hr.yml +40 -0
  101. data/lib/active_admin/locales/ko.yml +40 -0
  102. data/lib/active_admin/locales/lv.yml +43 -0
  103. data/lib/active_admin/locales/nl.yml +40 -0
  104. data/lib/active_admin/locales/no-NB.yml +40 -0
  105. data/lib/active_admin/locales/pl.yml +7 -1
  106. data/lib/active_admin/locales/pt-BR.yml +6 -2
  107. data/lib/active_admin/namespace.rb +48 -33
  108. data/lib/active_admin/page.rb +54 -0
  109. data/lib/active_admin/page_controller.rb +15 -0
  110. data/lib/active_admin/page_dsl.rb +21 -0
  111. data/lib/active_admin/page_presenter.rb +30 -0
  112. data/lib/active_admin/resource.rb +38 -44
  113. data/lib/active_admin/resource/action_items.rb +5 -0
  114. data/lib/active_admin/resource/belongs_to.rb +4 -2
  115. data/lib/active_admin/resource/controllers.rb +35 -0
  116. data/lib/active_admin/resource/menu.rb +1 -2
  117. data/lib/active_admin/resource/naming.rb +43 -31
  118. data/lib/active_admin/resource/page_presenters.rb +28 -0
  119. data/lib/active_admin/resource/scopes.rb +16 -3
  120. data/lib/active_admin/resource/sidebars.rb +4 -0
  121. data/lib/active_admin/resource_collection.rb +88 -0
  122. data/lib/active_admin/resource_controller.rb +18 -54
  123. data/lib/active_admin/resource_controller/action_builder.rb +1 -1
  124. data/lib/active_admin/resource_controller/actions.rb +1 -1
  125. data/lib/active_admin/resource_controller/callbacks.rb +1 -1
  126. data/lib/active_admin/resource_controller/collection.rb +8 -4
  127. data/lib/active_admin/resource_controller/filters.rb +1 -1
  128. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  129. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  130. data/lib/active_admin/resource_controller/sidebars.rb +1 -1
  131. data/lib/active_admin/resource_dsl.rb +157 -0
  132. data/lib/active_admin/router.rb +21 -14
  133. data/lib/active_admin/scope.rb +15 -3
  134. data/lib/active_admin/version.rb +1 -1
  135. data/lib/active_admin/view_factory.rb +4 -3
  136. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -10
  137. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +25 -21
  138. data/lib/active_admin/view_helpers/filter_form_helper.rb +0 -150
  139. data/lib/active_admin/views/components/attributes_table.rb +1 -1
  140. data/lib/active_admin/views/components/paginated_collection.rb +42 -13
  141. data/lib/active_admin/views/components/scopes.rb +17 -17
  142. data/lib/active_admin/views/components/status_tag.rb +6 -5
  143. data/lib/active_admin/views/components/table_for.rb +6 -2
  144. data/lib/active_admin/views/header_renderer.rb +31 -12
  145. data/lib/active_admin/views/index_as_block.rb +2 -2
  146. data/lib/active_admin/views/index_as_blog.rb +3 -3
  147. data/lib/active_admin/views/index_as_grid.rb +4 -4
  148. data/lib/active_admin/views/index_as_table.rb +13 -6
  149. data/lib/active_admin/views/pages/base.rb +4 -4
  150. data/lib/active_admin/views/pages/form.rb +49 -0
  151. data/lib/active_admin/views/pages/index.rb +18 -6
  152. data/lib/active_admin/views/pages/page.rb +24 -0
  153. data/lib/active_admin/views/pages/show.rb +1 -1
  154. data/lib/generators/active_admin/assets/assets_generator.rb +19 -1
  155. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -12
  156. data/lib/generators/active_admin/install/templates/dashboards.rb +6 -0
  157. data/spec/spec_helper.rb +4 -0
  158. data/spec/support/rails_template.rb +11 -0
  159. data/spec/support/templates/cucumber_with_reloading.rb +5 -0
  160. data/spec/unit/active_admin_spec.rb +8 -0
  161. data/spec/unit/application_spec.rb +48 -2
  162. data/spec/unit/arbre/html/element_finder_methods_spec.rb +58 -2
  163. data/spec/unit/asset_registration_spec.rb +9 -3
  164. data/spec/unit/auto_link_spec.rb +2 -2
  165. data/spec/unit/base_controller_shared_examples.rb +28 -0
  166. data/spec/unit/base_controller_spec.rb +8 -0
  167. data/spec/unit/belongs_to_spec.rb +30 -33
  168. data/spec/unit/comments_spec.rb +45 -15
  169. data/spec/unit/config_shared_examples.rb +108 -0
  170. data/spec/unit/dashboard_controller_spec.rb +44 -0
  171. data/spec/unit/event_spec.rb +6 -0
  172. data/spec/unit/filter_form_builder_spec.rb +9 -0
  173. data/spec/unit/form_builder_spec.rb +8 -14
  174. data/spec/unit/namespace/register_page_spec.rb +102 -0
  175. data/spec/unit/namespace/register_resource_spec.rb +188 -0
  176. data/spec/unit/namespace_spec.rb +11 -183
  177. data/spec/unit/page_controller_spec.rb +8 -0
  178. data/spec/unit/page_spec.rb +60 -0
  179. data/spec/unit/resource/menu_spec.rb +1 -51
  180. data/spec/unit/resource/naming_spec.rb +24 -19
  181. data/spec/unit/resource/page_presenters_spec.rb +32 -0
  182. data/spec/unit/resource/scopes_spec.rb +13 -0
  183. data/spec/unit/resource_collection_spec.rb +101 -0
  184. data/spec/unit/resource_controller_spec.rb +40 -32
  185. data/spec/unit/{registration_spec.rb → resource_registration_spec.rb} +0 -0
  186. data/spec/unit/resource_spec.rb +8 -24
  187. data/spec/unit/routing_spec.rb +50 -1
  188. data/spec/unit/scope_spec.rb +18 -4
  189. data/spec/unit/views/components/paginated_collection_spec.rb +150 -0
  190. data/spec/unit/views/components/status_tag_spec.rb +9 -0
  191. data/tasks/test.rake +43 -27
  192. metadata +140 -31
  193. data/app/assets/javascripts/active_admin/vendor.js +0 -382
  194. data/lib/active_admin/comments/configuration.rb +0 -18
  195. data/lib/active_admin/page_config.rb +0 -15
  196. data/lib/active_admin/resource_controller/form.rb +0 -42
  197. data/lib/active_admin/resource_controller/page_configurations.rb +0 -53
  198. data/lib/active_admin/views/pages/edit.rb +0 -28
  199. data/lib/active_admin/views/pages/new.rb +0 -28
  200. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -427
  201. data/spec/integration/belongs_to_spec.rb +0 -42
data/CHANGELOG.md CHANGED
@@ -1,6 +1,127 @@
1
1
  ## Master
2
2
 
3
- Nothing yet
3
+ ### Upgrade Notes
4
+
5
+ If you're running on Rails 3.0.x, make sure to run `rails generate active_admin:assets`
6
+ since we've changed both the CSS and JS files.
7
+
8
+ ### Deprecations
9
+
10
+ * In the initializer `config.allow_comments_in = []` is now
11
+ `config.allow_comments = true`. Use the new namespace specific configurations
12
+ to allow or disallow configuration within a specific namespace.
13
+
14
+ ### New Features
15
+
16
+ * Namespace specific configurations in the initializer ([@gregbell][])
17
+ * [#624][]: Set an image as the site title using `config.site_title_image` in the
18
+ Active Admin initializer. ([@mattvague][])
19
+ * [#758][]: Create a standalone page in Active Admin using
20
+ `ActiveAdmin.register_page` ([@pcreux][])
21
+ * [#723][]: Register stylesheets with a media type ([@macfanatic][])
22
+
23
+ ### Enhancements
24
+
25
+ * [#428][]: Paginated Collection now supports `:param_name` and `:download_links`.
26
+ These two additions allow you to use the `paginated_collection` component multiple
27
+ times on show screens. ([@samvincent][])
28
+ * [#527][]: Refactored all form helpers to use Formtastic 2([@ebeigarts][])
29
+ * [#551][]: Dashboards can now be conditionally displayed using `:if` ([@samvincent][])
30
+ * [#555][]: scopes now accept `:if`. They only get displayed if the proc returns true ([@macfanatic][])
31
+ * [#601][]: Breadcrumbs are internationalized ([@vairix-ssierra][])
32
+ * [#605][]: Validations on ActiveAdmin::Comment should work with
33
+ `accepts_nested_attributes_for` ([@DMajrekar ][])
34
+ * [#623][]: Index table can sort on any table using `:sort => 'table.column'` ([@ZequeZ][])
35
+ * [#638][]: Add `:label` option to `status_tag` component ([@fbuenemann][])
36
+ * [#644][]: Added proper I18n support to pagination ([@fbuenemann][])
37
+ * [#689][]: Scopes preserve title when provided as a string ([@macfanatic][])
38
+ * [#711][]: Styles update. Now sexier and more refined design. Redesigned Scopes. Split
39
+ css into smaller files. ([@mattvague][])
40
+ * [#741][]: Default media type of css is now "all" instead of "screen" ([@sftsang][])
41
+ * [#751][]: Pagination numbers work with a custom `[@per_page][]` ([@DMajrekar][])
42
+ * `default_actions` in an index table only display implemented actions ([@watson][])
43
+
44
+ ### Bug Fixes
45
+
46
+ * [#590][]: Comments now work in the default namespace ([@jbarket][])
47
+ * [#780][]: Fix stack level too deep exception when logout path is setup to use
48
+ `:logout_path` named route. ([@george][])
49
+ * [#637][]: Fix scope all I18n ([@fbuenemann][])
50
+
51
+ ### Dependencies
52
+
53
+ * [#468][]: Removed vendored jQuery. Now depends on the jquery-rails gem. If you're
54
+ running Rails 3.0.x (no asset pipeline), make sure to run
55
+ `rails generate active_admin:assets` to generate the correct files. ([@gregbell][])
56
+ * [#527][]: Active Admin now requires Formtastic 2.0 or greater ([@ebeigarts][])
57
+ * [#711][]: Active admin now depends on Bourbon > 1.0.0. If you're using Rails
58
+ 3.0.x, make sure to run `rails generate active_admin:assets` to ensure you
59
+ have the correct css files ([@mattvague][])
60
+
61
+ ### Contributors
62
+
63
+ 202 commits by 31 authors
64
+
65
+ * Bendik Lynghaug
66
+ * Dinesh Majrekar
67
+ * Douwe Homans
68
+ * Edgars Beigarts
69
+ * Eunsub Kim
70
+ * Felix Bünemann
71
+ * George Anderson
72
+ * Greg Bell
73
+ * Henrik Hodne
74
+ * Ivan Storck
75
+ * Jeff Dickey
76
+ * John Ferlito
77
+ * Jonathan Barket
78
+ * Josef Šimánek
79
+ * Juan E.
80
+ * Kieran Klaassen
81
+ * Marc Riera
82
+ * Matt Vague
83
+ * Matthew Brewer
84
+ * Philippe Creux
85
+ * Radan Skorić
86
+ * Rhys Powell
87
+ * Sam Vincent
88
+ * Sebastian Sierra
89
+ * Sherman Tsang
90
+ * Szymon Przybył
91
+ * Thomas Watson
92
+ * Yara Mayer
93
+ * Zequez
94
+ * emmek
95
+
96
+ ## 0.3.4
97
+
98
+ 2 commits by 2 authors
99
+
100
+ ### Bug Fixes
101
+
102
+ * Fix reloading issues across operating systems.
103
+ * Fix issue where SASS was recompiling on every request. This can seriously
104
+ decrease the load time of applications when running in development mode.
105
+ Thanks [@dhiemstra][] for tracking this one down!
106
+
107
+ ### Contributors
108
+
109
+ * Danny Hiemstra
110
+ * Greg Bell
111
+
112
+ ## 0.3.3
113
+
114
+ 1 commit by 1 author
115
+
116
+ ### Enhancements
117
+
118
+ * Only reload Active Admin when files in the load paths have changed. This is a
119
+ major speed increase in development mode. Also helps with memory consumption
120
+ because we aren't reloading Active admin all the time.
121
+
122
+ ### Contributors
123
+
124
+ * Greg Bell
4
125
 
5
126
  ## 0.3.4
6
127
 
@@ -50,8 +171,8 @@ Nothing yet
50
171
  * Active Admin no longer assumes sass-rails is installed
51
172
  * Arbre::Context passes methods to the underlying html which fixes
52
173
  issues on different types of servers (and on Heroku)
53
- * #45: Fix for multibyte characters (@tricknotes)
54
- * #505: Fix titlebar height when no breadcrumb (@mattvague)
174
+ * [#45][]: Fix for multibyte characters ([@tricknotes][])
175
+ * [#505][]: Fix titlebar height when no breadcrumb ([@mattvague][])
55
176
  * Fixed vertical align in dashboard
56
177
  * Fixed i18n path's for multi-word model names
57
178
 
@@ -263,6 +384,7 @@ of the highlights. 250 commits. Enough said.
263
384
  [#32]: https://github.com/gregbell/active_admin/issues/32
264
385
  [#38]: https://github.com/gregbell/active_admin/issues/38
265
386
  [#42]: https://github.com/gregbell/active_admin/issues/42
387
+ [#45]: https://github.com/gregbell/active_admin/issues/45
266
388
  [#48]: https://github.com/gregbell/active_admin/issues/48
267
389
  [#52]: https://github.com/gregbell/active_admin/issues/52
268
390
  [#55]: https://github.com/gregbell/active_admin/issues/55
@@ -287,15 +409,49 @@ of the highlights. 250 commits. Enough said.
287
409
  [#332]: https://github.com/gregbell/active_admin/issues/332
288
410
  [#369]: https://github.com/gregbell/active_admin/issues/369
289
411
  [#381]: https://github.com/gregbell/active_admin/issues/381
412
+ [#428]: https://github.com/gregbell/active_admin/issues/428
413
+ [#468]: https://github.com/gregbell/active_admin/issues/468
414
+ [#505]: https://github.com/gregbell/active_admin/issues/505
415
+ [#527]: https://github.com/gregbell/active_admin/issues/527
416
+ [#551]: https://github.com/gregbell/active_admin/issues/551
417
+ [#555]: https://github.com/gregbell/active_admin/issues/555
418
+ [#590]: https://github.com/gregbell/active_admin/issues/590
419
+ [#601]: https://github.com/gregbell/active_admin/issues/601
420
+ [#605]: https://github.com/gregbell/active_admin/issues/605
421
+ [#623]: https://github.com/gregbell/active_admin/issues/623
422
+ [#624]: https://github.com/gregbell/active_admin/issues/624
423
+ [#637]: https://github.com/gregbell/active_admin/issues/637
424
+ [#638]: https://github.com/gregbell/active_admin/issues/638
425
+ [#644]: https://github.com/gregbell/active_admin/issues/644
426
+ [#689]: https://github.com/gregbell/active_admin/issues/689
427
+ [#711]: https://github.com/gregbell/active_admin/issues/711
428
+ [#741]: https://github.com/gregbell/active_admin/issues/741
429
+ [#751]: https://github.com/gregbell/active_admin/issues/751
430
+ [#758]: https://github.com/gregbell/active_admin/issues/758
431
+ [#780]: https://github.com/gregbell/active_admin/issues/780
432
+ [@DMajrekar]: https://github.com/DMajrekar
433
+ [@ZequeZ]: https://github.com/ZequeZ
434
+ [@dhiemstra]: https://github.com/dhiemstra
290
435
  [@doug316]: https://github.com/doug316
436
+ [@ebeigarts]: https://github.com/ebeigarts
291
437
  [@emzeq]: https://github.com/emzeq
292
438
  [@fabiokr]: https://github.com/fabiokr
439
+ [@fbuenemann]: https://github.com/fbuenemann
440
+ [@george]: https://github.com/george
293
441
  [@gregbell]: https://github.com/gregbell
442
+ [@jbarket]: https://github.com/jbarket
294
443
  [@knoopx]: https://github.com/knoopx
295
444
  [@krug]: https://github.com/krug
445
+ [@macfanatic]: https://github.com/macfanatic
296
446
  [@mattvague]: https://github.com/mattvague
297
447
  [@mwindwer]: https://github.com/mwindwer
298
448
  [@page_title]: https://github.com/page_title
299
449
  [@pcreux]: https://github.com/pcreux
450
+ [@per_page]: https://github.com/per_page
300
451
  [@rolfb]: https://github.com/rolfb
452
+ [@samvincent]: https://github.com/samvincent
453
+ [@sftsang]: https://github.com/sftsang
301
454
  [@shayfrendt]: https://github.com/shayfrendt
455
+ [@tricknotes]: https://github.com/tricknotes
456
+ [@vairix]: https://github.com/vairix-ssierra
457
+ [@watson]: https://github.com/watson
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,113 @@
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 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.
17
+
18
+
19
+ ### 2. Fork & Create a Feature Branch
20
+
21
+ The next step is to fork Active Admin (if you haven't already done so) and
22
+ create a new git branch based on the feature or issue you're working on. Please
23
+ use a descriptive name for your branch.
24
+
25
+ For example a great branch name would be (where issue #325 is the ticket you're
26
+ working on):
27
+
28
+ $> git checkout -b 325-add-japanese-translations
29
+
30
+
31
+ ### 3. Get the test suite running
32
+
33
+ Active Admin is a gem that many people and businesses rely on for managing data
34
+ in their production applications. Bugs are not cool. Although we're not perfect,
35
+ we pride ourselves on writing well tested code. I hope you do too :)
36
+
37
+ Active Admin uses rspec and cucumber for it's test suite.
38
+
39
+ Make sure you have a recent version of bundler:
40
+
41
+ $> gem install bundler
42
+
43
+ Then install the development the development dependencies:
44
+
45
+ $> bundle install
46
+
47
+ Now you should be able to run the entire suite using:
48
+
49
+ $> rake test
50
+
51
+ `rake test` runs the unit specs, integration specs and cucumber scenarios. The
52
+ test suite will generate a rails application in `spec/rails` to run the tests
53
+ against.
54
+
55
+
56
+ ### 4. Implement your fix or feature
57
+
58
+ At this point, you should be ready to implement your feature!
59
+
60
+
61
+ ### 5. View your changes in a Rails application
62
+
63
+ Active Admin is meant to be used by humans, not cucumbers. So make sure to take
64
+ a look at your changes in a browser (preferably a few browsers if you made view
65
+ changes).
66
+
67
+ To boot up a test rails application, use the provided script:
68
+
69
+ $> ./script/local server
70
+
71
+ This will generate a rails application at ./test-rails-app with some sane
72
+ defaults and use your local version of Active Admin.
73
+
74
+ If you have any Bundler issues, call the provided `use_rails` script then prepend
75
+ the version of rails you would like to use in an environment variable:
76
+
77
+ $> ./script/use_rails 3.1.0
78
+ $> RAILS=3.1.0 ./script/local server
79
+
80
+ You should be able to open `http://localhost:3000/admin` and view a test
81
+ environment.
82
+
83
+ If you need to perform any other commands on the test application, use the
84
+ `local` script. For example to boot the rails console:
85
+
86
+ $> ./script/local console
87
+
88
+ Or to migrate the database:
89
+
90
+ $> ./script/local rake db:migrate
91
+
92
+
93
+ ### 6. Run tests against major supported rails versions
94
+
95
+ Once you've implemented your code, got the tests passing, previewed it in a
96
+ browser, you're ready to test it against multiple versions of Rails.
97
+
98
+ $> rake test:major_supported_rails
99
+
100
+ This command runs the cukes and specs against a couple of major versions of
101
+ Rails. We will run this command when we review your pull request, if this
102
+ rake task isn't passing, the pull request will not be merged in.
103
+
104
+
105
+ ### 7. Make a pull request
106
+
107
+ At this point, you should switch back to your master branch and make sure it's
108
+ up to date with Active Admin's master branch. If there were any changes, you
109
+ should rebase your feature branch and make sure that it will merge correctly. If
110
+ there are any merge conflicts, your pull request will not be merged in.
111
+
112
+ Now push your changes up to your feature branch on github and make a pull request!
113
+ We will pull your changes, run the test suite, review the code and merge it in.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 Greg Bell, VersaPay Corporation
1
+ Copyright (c) 2011 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
data/README.rdoc CHANGED
@@ -6,15 +6,18 @@ to implement beautiful and elegant interfaces with very little effort.
6
6
 
7
7
  {<img src="http://travis-ci.org/gregbell/active_admin.png" />}[http://travis-ci.org/gregbell/active_admin]
8
8
 
9
- == Help / Support / Demo
9
+ == Documentation & Support
10
10
 
11
11
  * Documentation & Guides: http://activeadmin.info/documentation.html
12
- * Mailing list: http://groups.google.com/group/activeadmin
13
- * Bug reports: https://github.com/gregbell/active_admin/issues
14
12
  * RDoc: http://rubydoc.info/github/gregbell/active_admin/master/frames
15
13
  * Live demo: http://demo.activeadmin.info/admin
16
14
  * Website: http://www.activeadmin.info
15
+ * <b>Need Support?</b> Ask the Mailing list: http://groups.google.com/group/activeadmin
17
16
 
17
+ == Bugs & Feature Requests
18
+
19
+ * Bug Reports & Feature Requests: https://github.com/gregbell/active_admin/issues
20
+ * Want to Contribute? Read the Guide: https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md
18
21
 
19
22
  == Goals
20
23
 
@@ -33,11 +36,18 @@ on Rails 3 application. To install, simply add the following to your Gemfile:
33
36
  # Gemfile in Rails < 3.1
34
37
  gem 'activeadmin'
35
38
 
36
- If you are using Rails >= 3.1, you must also have sass-rails in your Gemfile:
39
+ If you are using Rails >= 3.1, you must also have sass-rails and meta_search in your Gemfile (if sass-rails is already present in assets group, move it out):
37
40
 
38
41
  # Gemfile in Rails >= 3.1
39
42
  gem 'activeadmin'
40
43
  gem 'sass-rails'
44
+ gem 'meta_search', '>= 1.1.0.pre'
45
+
46
+ and add activeadmin assets into precompiling by adding the following line into your config/environments/production.rb:
47
+
48
+ config.assets.precompile += %w[active_admin.css active_admin.js]
49
+
50
+ There is also some issue with precompiling activeadmin images in Rails 3.1.0, it is fixed in Rails 3.1.1.
41
51
 
42
52
  After updating your bundle, run the installer
43
53
 
@@ -65,6 +75,10 @@ To register your first model, run:
65
75
  This creates a file at <tt>app/admin/my_model_names.rb</tt> for configuring the resource.
66
76
  Refresh your web browser to see the interface.
67
77
 
78
+ == Upgrading
79
+
80
+ When upgrading to a new version of ActiveAdmin you may need to run
81
+ $> rails generate active_admin:assets
68
82
 
69
83
  == Next Steps
70
84
 
@@ -93,21 +107,6 @@ Iconic Icons::
93
107
  Excellent SVG icon set designed by P.J. Onori: http://somerandomdude.com/projects/iconic
94
108
 
95
109
 
96
- == Roadmap & Issue Tracking
97
-
98
- We are using the awesome Github issues! Please submit bugs or features to
99
- https://github.com/gregbell/active_admin/issues
100
-
101
-
102
- == Note on Patches/Pull Requests
103
-
104
- * Fork the project.
105
- * Make a NEW TOPIC BRANCH, then make your feature addition or bug fix
106
- * Add specs and cukes for it. This is important so I don't break it in a
107
- future version unintentionally.
108
- * Commit, do not mess with rakefile, version, or history.
109
- * Send a pull request.
110
-
111
110
  == Copyright
112
111
 
113
- Copyright (c) 2010 Greg Bell, VersaPay Corporation. See LICENSE for details.
112
+ Copyright (c) 2011 Greg Bell, VersaPay Corporation. See LICENSE for details.
data/activeadmin.gemspec CHANGED
@@ -18,9 +18,11 @@ Gem::Specification.new do |s|
18
18
  s.require_paths = ["lib"]
19
19
 
20
20
  s.add_dependency("rails", ">= 3.0.0")
21
+ s.add_dependency("jquery-rails", ">= 1.0.0")
22
+ s.add_dependency("bourbon", ">= 1.0.0")
21
23
  s.add_dependency("meta_search", ">= 0.9.2")
22
24
  s.add_dependency("devise", ">= 1.1.2")
23
- s.add_dependency("formtastic", "< 2.0.0")
25
+ s.add_dependency("formtastic", ">= 2.0.0")
24
26
  s.add_dependency("inherited_resources", "< 1.3.0")
25
27
  s.add_dependency("kaminari", ">= 0.12.4")
26
28
  s.add_dependency("sass", ">= 3.1.0")
@@ -0,0 +1,9 @@
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,12 +1,4 @@
1
- //= require "active_admin/vendor"
2
-
3
- /* Active Admin JS */
4
-
5
- $(function(){
6
- $(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});
7
-
8
- $(".clear_filters_btn").click(function(){
9
- window.location.search = "";
10
- return false;
11
- });
12
- });
1
+ //= require jquery
2
+ //= require jquery-ui
3
+ //= require jquery_ujs
4
+ //= require active_admin/application
@@ -1,6 +1,5 @@
1
1
  /* Active Admin CSS */
2
2
 
3
-
4
3
  // Reset Away!
5
4
  @import "active_admin/mixins";
6
5
  @include global-reset;
@@ -13,9 +12,24 @@
13
12
  @import "active_admin/components/flash_messages";
14
13
  @import "active_admin/components/date_picker";
15
14
  @import "active_admin/components/tables";
15
+ @import "active_admin/components/blank_slates";
16
+ @import "active_admin/components/breadcrumbs";
17
+ @import "active_admin/components/buttons";
18
+ @import "active_admin/components/grid";
19
+ @import "active_admin/components/links";
20
+ @import "active_admin/components/pagination";
21
+ @import "active_admin/components/panels";
22
+ @import "active_admin/components/scopes";
23
+ @import "active_admin/components/status_tags";
24
+ @import "active_admin/components/table_tools";
25
+ @import "active_admin/pages/dashboard";
26
+ @import "active_admin/pages/logged_out";
27
+ @import "active_admin/structure/footer";
28
+ @import "active_admin/structure/main_structure";
29
+ @import "active_admin/structure/title_bar";
16
30
 
17
31
  body {
18
- font-family: Helvetica, Arial, sans-serif;
32
+ @include sans-family;
19
33
  line-height: 150%;
20
34
  font-size: 72%;
21
35
  background: #fff;
@@ -23,341 +37,3 @@ body {
23
37
  padding: 0;
24
38
  color: $text-color;
25
39
  }
26
-
27
- // ----------------------------------- Page Title Bar
28
- #title_bar {
29
- @include section-header;
30
- @include clearfix;
31
- @include box-sizing(border-box);
32
- display: table;
33
- width: 100%;
34
- position: relative;
35
- margin: 0;
36
- padding: 10px $horizontal-page-margin;
37
-
38
- #titlebar_left, #titlebar_right {
39
- height: 50px;
40
- vertical-align: middle;
41
- display: table-cell;
42
- }
43
-
44
- #titlebar_right {
45
- text-align: right;
46
- }
47
-
48
- h2 {
49
- margin: 0;
50
- padding: 0;
51
- font-size: 2.6em;
52
- font-weight: bold;
53
- }
54
-
55
- .action_items {
56
- a {
57
- @include light-button;
58
- @include icon(#777, 0.8em);
59
- @include gradient(#f9f9f9, #dddbdb);
60
- display: inline-block;
61
- padding: .8em 1.5em .7em 1.5em;
62
- border: 1px solid #f8f8f8;
63
- span.icon { vertical-align: bottom; margin-right: 4px;}
64
- &:hover{ @include icon-color(#000); }
65
- }
66
- }
67
- }
68
-
69
- // ----------------------------------- Main Structure
70
-
71
- #wrapper {
72
- display: table;
73
- width: 100%;
74
- }
75
-
76
- #active_admin_content {
77
- margin: 0;
78
- padding: 25px $horizontal-page-margin;
79
-
80
- #main_content_wrapper {
81
- float: left;
82
- width: 100%;
83
-
84
- #main_content{
85
- margin-right: 300px;
86
- }
87
- }
88
-
89
- &.without_sidebar #main_content_wrapper #main_content{ margin-right: 0; }
90
-
91
- #sidebar {
92
- float: left;
93
- width: $sidebar-width;
94
- margin-left: -$sidebar-width;
95
- }
96
- }
97
-
98
- // ----------------------------------- Footer
99
- #footer {
100
- padding: 30px 30px;
101
- font-size: 0.8em;
102
- clear: both;
103
-
104
- p {
105
- padding-top: 10px
106
- }
107
- }
108
-
109
- // ----------------------------------- Links
110
- a, a:link, a:visited {
111
- color: $link-color;
112
- text-decoration: underline;
113
- }
114
- a:hover { text-decoration: none; }
115
-
116
- // ----------------------------------- Buttons
117
-
118
- td, p {
119
- @include icon(#B3BCC1, 0.8em);
120
- span.icon { margin: 0 3px; }
121
- }
122
-
123
- a.member_link {
124
- margin-right: 7px;
125
- white-space: nowrap;
126
- }
127
-
128
- a.button, input[type=submit] { @include dark-button; }
129
-
130
- // ----------------------------------- Breadcrumbs
131
- .breadcrumb {
132
- display: block;
133
- font-size: 0.9em;
134
- font-weight: normal;
135
- line-height: 1.0em;
136
- margin-bottom: 12px;
137
- text-transform: uppercase;
138
-
139
- a, a:link {
140
- color: #8a949e ;
141
- text-decoration: none;
142
- }
143
-
144
- a:hover { text-decoration: underline; }
145
-
146
- .breadcrumb_sep {
147
- margin: 0 2px;
148
- color: #aab2ba;
149
- }
150
- }
151
-
152
- // ----------------------------------- Sections & Panels
153
- // Helper class to apply to elements to make them sections
154
- .section, .panel{ @include section; }
155
-
156
- // ----------------------------------- Blank Slate
157
-
158
- .blank_slate_container {
159
- clear: both;
160
- text-align: center;
161
-
162
- .blank_slate {
163
- @include rounded;
164
- -webkit-font-smoothing: antialiased;
165
- border: 1px dashed #DADADA;
166
- color: #AAA;
167
- display: inline-block;
168
- font-size: 1.2em;
169
- font-weight: bold;
170
- padding: 14px 25px;
171
- text-align: center;
172
-
173
- small {
174
- display: block;
175
- font-size: 0.9em;
176
- font-weight: normal;
177
- }
178
- }
179
- }
180
-
181
- .admin_dashboard .blank_slate_container .blank_slate {
182
- margin-top: 40px;
183
- margin-bottom: 40px;
184
- }
185
-
186
- .with_sidebar .blank_slate_container .blank_slate {
187
- margin-top: 80px;
188
- }
189
-
190
- // ----------------------------------- Sidebar Sections
191
- .sidebar_section { @include section; }
192
-
193
- // -------------------------------------- Pagination
194
- .pagination_information {
195
- float: right;
196
- margin-bottom: 5px;
197
- font-size: 0.95em;
198
- color: #b3bcc1;
199
- b { color: #5c6469; }
200
- }
201
-
202
- .paginated_collection_contents {
203
- clear: both;
204
- }
205
-
206
- .pagination {
207
- display: inline;
208
- font-size: 0.9;
209
- margin-left: 10px;
210
-
211
- a { @include light-button; }
212
- span.page.current { @include default-button; }
213
- a, span.page.current {
214
- @include rounded(0px);
215
- margin-right: 4px;
216
- padding: 2px 5px;
217
- }
218
- span.page.current { padding-left: 7px; }
219
- }
220
-
221
- // -------------------------------------- Index Footer (Under Table)
222
- #index_footer { padding-top: 5px; text-align: right; font-size: 0.85em; }
223
-
224
-
225
-
226
- .index_content { clear: both; }
227
-
228
- // -------------------------------------- Index as Grid
229
- table.index_grid td { border: none; background: none; padding: 0 20px 20px 0; margin: 0;}
230
-
231
-
232
- // -------------------------------------- Logged Out
233
- body.logged_out {
234
- background: #e8e9ea;
235
-
236
- #content_wrapper{
237
- width: 500px;
238
- margin: 70px auto;
239
- #active_admin_content {
240
- @include shadow;
241
- background: #fff;
242
- padding: 13px 30px;
243
- }
244
- }
245
-
246
- h2 {
247
- @include section-header;
248
- @include primary-gradient;
249
- @include text-shadow(#000);
250
- color: #fff;
251
- margin: -13px -30px 20px -30px;
252
- }
253
-
254
- #login {
255
- /* Login Form */
256
- form {
257
- fieldset {
258
- @include no-shadow;
259
- background: none;
260
- padding: 0;
261
- li { padding: 10px 0; }
262
-
263
- input[type=text], input[type=email], input[type=password] {
264
- width: 70%;
265
- }
266
- &.buttons { margin-left: 20%; }
267
- margin-bottom: 0;
268
- }
269
- }
270
-
271
- a { float: right; margin-top: -32px; }
272
- }
273
-
274
- }
275
-
276
- // -------------------------------------- Dashboard
277
- table.dashboard {
278
- width: 100%;
279
- td { border-bottom: none; }
280
- .dashboard_section { @include section; }
281
- }
282
-
283
-
284
- // -------------------------------------- Resource Attributes Table
285
- .attributes_table { overflow: hidden; }
286
-
287
- .attributes_table table {
288
- th, td {
289
- padding: 8px $cell-horizontal-padding 6px $cell-horizontal-padding;
290
- vertical-align: top;
291
- border-bottom: 1px solid #e8e8e8;
292
- }
293
- th {
294
- @include no-shadow;
295
- @include no-gradient;
296
- width: 150px;
297
- font-size: 0.9em;
298
- padding-left: 0;
299
- text-transform: uppercase;
300
- color: $primary-color;
301
- @include text-shadow;
302
- }
303
- td {
304
- .empty {
305
- color: #bbb;
306
- font-size: 0.8em;
307
- text-transform: uppercase;
308
- letter-spacing: 0.2em;
309
- }
310
- }
311
- }
312
-
313
- .sidebar_section .attributes_table th { width: 50px; }
314
-
315
-
316
- // -------------------------------------- Status Tags
317
- .status {
318
- background: darken($secondary-color, 15%);
319
- color: #fff;
320
- text-transform: uppercase;
321
- letter-spacing: 0.15em;
322
- padding: 3px 5px 2px 5px;
323
- font-size: 0.8em;
324
-
325
- &.ok, &.published, &.complete, &.completed, &.green { background: #8daa92; }
326
- &.warn, &.warning, &.orange { background: #e29b20; }
327
- &.error, &.errored, &.red { background: #d45f53; }
328
-
329
-
330
- }
331
-
332
-
333
- // -------------------------------------- Scopes
334
- .scopes {
335
- float: left;
336
- margin-bottom: 10px;
337
- font-size: 1.0em;
338
-
339
- .scope {
340
- padding: 4px 8px 3px 8px;
341
- margin-right: 4px;
342
- a { text-decoration: none; font-weight: bold; color: #888; }
343
- a:hover { text-decoration: underline; ; }
344
- &.selected {
345
- @include rounded(5px);
346
- @include inset-shadow(0,1px,0,#ccc);
347
- @include text-shadow;
348
- background: #efefef;
349
- color: #666;
350
- em { font-weight: bold; font-style: normal;
351
- }
352
- }
353
- .count{ color: #aaa; font-size: 0.9em; }
354
- }
355
- .scopes_seperator { display: none; }
356
- }
357
-
358
- // -------------------------------------- Columns
359
- .columns {
360
- clear: both;
361
- padding: 0;
362
- .column { float: left; }
363
- }