activeadmin 0.2.2 → 0.3.0
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.
- data/.gitignore +34 -0
- data/.travis.yml +4 -0
- data/.yardopts +8 -0
- data/CHANGELOG.md +177 -0
- data/Gemfile +21 -32
- data/Guardfile +8 -0
- data/README.rdoc +75 -14
- data/Rakefile +7 -100
- data/activeadmin.gemspec +21 -353
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/loading.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow_dark.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js +12 -0
- data/{lib/generators/active_admin/install/templates/active_admin_vendor.js → app/assets/javascripts/active_admin/vendor.js} +0 -0
- data/{lib/active_admin/stylesheets/active_admin.scss → app/assets/stylesheets/active_admin/_base.css.scss} +58 -82
- data/{lib/active_admin/stylesheets/active_admin/_forms.scss → app/assets/stylesheets/active_admin/_forms.css.scss} +94 -5
- data/{lib/active_admin/stylesheets/active_admin/_header.scss → app/assets/stylesheets/active_admin/_header.css.scss} +13 -11
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/{lib/active_admin/stylesheets/active_admin/_typography.scss → app/assets/stylesheets/active_admin/_typography.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/_comments.scss → app/assets/stylesheets/active_admin/components/_comments.css.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +38 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_all.scss → app/assets/stylesheets/active_admin/mixins/_all.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_buttons.scss → app/assets/stylesheets/active_admin/mixins/_buttons.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_gradients.scss → app/assets/stylesheets/active_admin/mixins/_gradients.css.scss} +8 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_icons.scss → app/assets/stylesheets/active_admin/mixins/_icons.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_reset.scss → app/assets/stylesheets/active_admin/mixins/_reset.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_rounded.scss → app/assets/stylesheets/active_admin/mixins/_rounded.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_sections.scss → app/assets/stylesheets/active_admin/mixins/_sections.css.scss} +9 -2
- data/{lib/active_admin/stylesheets/active_admin/mixins/_shadows.scss → app/assets/stylesheets/active_admin/mixins/_shadows.css.scss} +1 -1
- data/{lib/active_admin/stylesheets/active_admin/mixins/_variables.scss → app/assets/stylesheets/active_admin/mixins/_variables.css.scss} +12 -3
- data/{lib/active_admin/views/templates/active_admin_dashboard → app/views/active_admin/dashboard}/index.html.arb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/reset_password_instructions.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/unlock_instructions.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/edit.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/new.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/sessions/new.html.erb +1 -1
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/shared/_links.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/unlocks/new.html.erb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/edit.html.arb +0 -0
- data/app/views/active_admin/resource/index.csv.erb +20 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/index.html.arb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/new.html.arb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/show.html.arb +0 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/{lib/active_admin/views/templates → app/views}/layouts/active_admin_logged_out.html.erb +8 -4
- data/docs/0-installation.md +50 -0
- data/docs/1-general-configuration.md +43 -0
- data/docs/2-resource-customization.md +35 -0
- data/docs/3-index-pages.md +55 -0
- data/docs/3-index-pages/index-as-block.md +16 -0
- data/docs/3-index-pages/index-as-blog.md +61 -0
- data/docs/3-index-pages/index-as-grid.md +21 -0
- data/docs/3-index-pages/index-as-table.md +90 -0
- data/docs/4-csv-format.md +14 -0
- data/docs/5-forms.md +39 -0
- data/docs/6-show-screens.md +22 -0
- data/docs/7-sidebars.md +35 -0
- data/docs/8-custom-actions.md +123 -0
- data/features/comments/commenting.feature +31 -4
- data/features/edit_page.feature +30 -1
- data/features/index/filters.feature +35 -0
- data/features/index/format_as_csv.feature +46 -0
- data/features/index/formats.feature +2 -0
- data/features/index/index_as_block.feature +1 -1
- data/features/index/index_as_grid.feature +1 -1
- data/features/index/index_as_table.feature +2 -0
- data/features/index/index_blank_slate.feature +56 -0
- data/features/index/pagination.feature +0 -6
- data/features/registering_assets.feature +2 -2
- data/features/sidebar_sections.feature +7 -8
- data/features/specifying_actions.feature +72 -1
- data/features/step_definitions/action_item_steps.rb +2 -2
- data/features/step_definitions/additional_web_steps.rb +26 -16
- data/features/step_definitions/attribute_steps.rb +5 -7
- data/features/step_definitions/configuration_steps.rb +9 -9
- data/features/step_definitions/factory_steps.rb +4 -3
- data/features/step_definitions/format_steps.rb +29 -1
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/menu_steps.rb +2 -2
- data/features/step_definitions/sidebar_steps.rb +1 -5
- data/features/step_definitions/user_steps.rb +8 -2
- data/features/step_definitions/web_steps.rb +82 -90
- data/features/sti_resource.feature +12 -0
- data/features/support/env.rb +12 -10
- data/features/support/paths.rb +2 -0
- data/features/support/selectors.rb +45 -0
- data/lib/active_admin.rb +33 -263
- data/lib/active_admin/application.rb +228 -0
- data/lib/active_admin/arbre.rb +10 -10
- data/lib/active_admin/arbre/{html.rb → builder.rb} +29 -2
- data/lib/active_admin/arbre/context.rb +8 -0
- data/lib/active_admin/arbre/{attributes.rb → html/attributes.rb} +0 -0
- data/lib/active_admin/arbre/{class_list.rb → html/class_list.rb} +0 -0
- data/lib/active_admin/arbre/{collection.rb → html/collection.rb} +0 -0
- data/lib/active_admin/arbre/{document.rb → html/document.rb} +0 -0
- data/lib/active_admin/arbre/{element.rb → html/element.rb} +6 -6
- data/lib/active_admin/arbre/{html5_elements.rb → html/html5_elements.rb} +0 -0
- data/lib/active_admin/arbre/{tag.rb → html/tag.rb} +0 -0
- data/lib/active_admin/arbre/{text_node.rb → html/text_node.rb} +0 -0
- data/lib/active_admin/asset_registration.rb +1 -1
- data/lib/active_admin/callbacks.rb +5 -3
- data/lib/active_admin/comments.rb +3 -3
- data/lib/active_admin/comments/comment.rb +6 -0
- data/lib/active_admin/comments/configuration.rb +8 -6
- data/lib/active_admin/comments/namespace_helper.rb +1 -1
- data/lib/active_admin/comments/views/active_admin_comments.rb +1 -1
- data/lib/active_admin/csv_builder.rb +45 -0
- data/lib/active_admin/dashboards.rb +1 -1
- data/lib/active_admin/dashboards/dashboard_controller.rb +3 -10
- data/lib/active_admin/dependency_checker.rb +28 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +14 -3
- data/lib/active_admin/dsl.rb +26 -4
- data/lib/active_admin/engine.rb +4 -0
- data/lib/active_admin/form_builder.rb +18 -9
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +70 -0
- data/lib/active_admin/locales/cs.yml +34 -0
- data/lib/active_admin/locales/da.yml +28 -0
- data/lib/active_admin/locales/en.yml +40 -0
- data/lib/active_admin/locales/es.yml +40 -0
- data/lib/active_admin/locales/fr.yml +40 -0
- data/lib/active_admin/locales/it.yml +39 -0
- data/lib/active_admin/locales/pl.yml +34 -0
- data/lib/active_admin/locales/pt-BR.yml +41 -0
- data/lib/active_admin/locales/ru.yml +40 -0
- data/lib/active_admin/locales/zh_cn.yml +40 -0
- data/lib/active_admin/menu_item.rb +6 -0
- data/lib/active_admin/namespace.rb +14 -5
- data/lib/active_admin/reloader.rb +30 -0
- data/lib/active_admin/renderer.rb +1 -1
- data/lib/active_admin/resource.rb +45 -88
- data/lib/active_admin/resource/action_items.rb +88 -0
- data/lib/active_admin/resource/menu.rb +45 -0
- data/lib/active_admin/resource/naming.rb +46 -0
- data/lib/active_admin/resource/scopes.rb +33 -0
- data/lib/active_admin/resource/sidebars.rb +36 -0
- data/lib/active_admin/resource_controller.rb +32 -37
- data/lib/active_admin/resource_controller/action_builder.rb +1 -1
- data/lib/active_admin/resource_controller/actions.rb +66 -40
- data/lib/active_admin/resource_controller/callbacks.rb +1 -1
- data/lib/active_admin/resource_controller/collection.rb +9 -14
- data/lib/active_admin/resource_controller/filters.rb +1 -1
- data/lib/active_admin/resource_controller/form.rb +1 -1
- data/lib/active_admin/resource_controller/menu.rb +1 -1
- data/lib/active_admin/resource_controller/page_configurations.rb +2 -2
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller/sidebars.rb +1 -21
- data/lib/active_admin/router.rb +85 -0
- data/lib/active_admin/sass/active_admin.scss +3 -0
- data/lib/active_admin/sass/css_loader.rb +16 -0
- data/lib/active_admin/sass/helpers.rb +45 -0
- data/lib/active_admin/scope.rb +16 -2
- data/lib/active_admin/sidebar_section.rb +41 -0
- data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +5 -3
- data/lib/active_admin/view_helpers.rb +1 -2
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/filter_form_helper.rb +26 -14
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
- data/lib/active_admin/views/components/attributes_table.rb +2 -2
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +1 -3
- data/lib/active_admin/views/components/paginated_collection.rb +26 -8
- data/lib/active_admin/views/components/scopes.rb +13 -8
- data/lib/active_admin/views/components/sidebar_section.rb +1 -3
- data/lib/active_admin/views/components/status_tag.rb +55 -0
- data/lib/active_admin/views/components/table_for.rb +25 -6
- data/lib/active_admin/views/header_renderer.rb +20 -4
- data/lib/active_admin/views/index_as_block.rb +12 -7
- data/lib/active_admin/views/index_as_blog.rb +61 -21
- data/lib/active_admin/views/index_as_grid.rb +22 -1
- data/lib/active_admin/views/index_as_table.rb +97 -6
- data/lib/active_admin/views/pages/base.rb +20 -9
- data/lib/active_admin/views/pages/dashboard.rb +7 -4
- data/lib/active_admin/views/pages/edit.rb +3 -2
- data/lib/active_admin/views/pages/index.rb +30 -5
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/new.rb +3 -2
- data/lib/active_admin/views/pages/show.rb +1 -1
- data/lib/active_admin/views/tabbed_navigation.rb +94 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +21 -0
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +427 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +6 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/dashboards.rb +36 -0
- data/lib/generators/active_admin/install/install_generator.rb +2 -4
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +26 -4
- data/lib/generators/active_admin/install/templates/dashboards.rb +4 -2
- data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +2 -2
- data/script/local +44 -0
- data/script/use_rails +46 -0
- data/spec/integration/belongs_to_spec.rb +1 -1
- data/spec/integration/default_namespace.rb +77 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/spec_helper.rb +21 -11
- data/spec/support/detect_rails_version.rb +10 -0
- data/spec/support/integration_example_group.rb +1 -1
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +1 -1
- data/spec/support/rails_template_with_data.rb +2 -1
- data/spec/support/templates/cucumber.rb +0 -4
- data/spec/unit/active_admin_spec.rb +8 -44
- data/spec/unit/application_spec.rb +78 -0
- data/spec/unit/arbre/context_spec.rb +22 -0
- data/spec/unit/arbre/html/element_finder_methods_spec.rb +2 -2
- data/spec/unit/arbre/html/element_spec.rb +2 -3
- data/spec/unit/arbre/html/tag_attributes_spec.rb +2 -2
- data/spec/unit/arbre/html/tag_spec.rb +2 -2
- data/spec/unit/arbre/html_spec.rb +2 -3
- data/spec/unit/auto_link_spec.rb +2 -1
- data/spec/unit/belongs_to_spec.rb +2 -1
- data/spec/unit/comments_spec.rb +43 -39
- data/spec/unit/controller_filters_spec.rb +11 -3
- data/spec/unit/csv_builder_spec.rb +83 -0
- data/spec/unit/devise_spec.rb +66 -0
- data/spec/unit/display_name_spec.rb +2 -2
- data/spec/unit/filter_form_builder_spec.rb +6 -3
- data/spec/unit/form_builder_spec.rb +20 -2
- data/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_item_spec.rb +6 -0
- data/spec/unit/namespace_spec.rb +68 -19
- data/spec/unit/rails_spec.rb +43 -0
- data/spec/unit/registration_spec.rb +18 -27
- data/spec/unit/reloader_spec.rb +28 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +80 -0
- data/spec/unit/resource/naming_spec.rb +64 -0
- data/spec/unit/resource/scopes_spec.rb +30 -0
- data/spec/unit/resource/sidebars_spec.rb +50 -0
- data/spec/unit/resource_controller/collection_spec.rb +1 -1
- data/spec/unit/resource_controller_spec.rb +29 -24
- data/spec/unit/resource_spec.rb +78 -94
- data/spec/unit/sass/helpers_spec.rb +47 -0
- data/spec/unit/scope_spec.rb +11 -1
- data/spec/unit/view_factory_spec.rb +4 -1
- data/spec/unit/{components → views/components}/attributes_table_spec.rb +2 -2
- data/spec/unit/views/components/blank_slate_spec.rb +15 -0
- data/spec/unit/{components → views/components}/columns_spec.rb +2 -2
- data/spec/unit/{components → views/components}/panel_spec.rb +1 -3
- data/spec/unit/{components → views/components}/sidebar_section_spec.rb +3 -3
- data/spec/unit/views/components/status_tag_spec.rb +79 -0
- data/spec/unit/{components → views/components}/table_for_spec.rb +2 -1
- data/spec/unit/views/pages/layout_spec.rb +22 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +125 -0
- data/tasks/docs.rake +39 -0
- data/tasks/test.rake +55 -0
- data/tasks/yard.rake +6 -0
- metadata +310 -189
- data/CHANGELOG.rdoc +0 -76
- data/lib/active_admin/action_items.rb +0 -37
- data/lib/active_admin/sidebar.rb +0 -39
- data/lib/active_admin/stylesheets/active_admin/_flash_messages.scss +0 -13
- data/lib/active_admin/view_helpers/status_tag_helper.rb +0 -13
- data/lib/active_admin/view_helpers/table_helper.rb +0 -12
- data/lib/active_admin/views/tabs_renderer.rb +0 -52
- data/lib/active_admin/views/templates/active_admin_default/index.csv.erb +0 -2
- data/lib/active_admin/views/templates/layouts/active_admin.html.erb +0 -39
- data/lib/generators/active_admin/install/templates/active_admin.js +0 -51
- data/spec/controllers/index_as_csv_spec.rb +0 -35
- data/spec/unit/action_items_spec.rb +0 -27
- data/spec/unit/tabs_renderer_spec.rb +0 -56
data/.gitignore
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
## MAC OS
|
2
|
+
.DS_Store
|
3
|
+
|
4
|
+
## TEXTMATE
|
5
|
+
*.tmproj
|
6
|
+
tmtags
|
7
|
+
|
8
|
+
## EMACS
|
9
|
+
*~
|
10
|
+
\#*
|
11
|
+
.\#*
|
12
|
+
|
13
|
+
## VIM
|
14
|
+
*.swp
|
15
|
+
|
16
|
+
## PROJECT::GENERAL
|
17
|
+
tags
|
18
|
+
coverage
|
19
|
+
rdoc
|
20
|
+
doc
|
21
|
+
.yardoc
|
22
|
+
pkg
|
23
|
+
|
24
|
+
## PROJECT::SPECIFIC
|
25
|
+
.bundle
|
26
|
+
spec/rails
|
27
|
+
*.sqlite3-journal
|
28
|
+
Gemfile.lock
|
29
|
+
Gemfile-*.lock
|
30
|
+
capybara*
|
31
|
+
viewcumber
|
32
|
+
test-rails*
|
33
|
+
public
|
34
|
+
.rvmrc
|
data/.travis.yml
ADDED
data/.yardopts
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
## Master
|
2
|
+
|
3
|
+
Nothing yet
|
4
|
+
|
5
|
+
## 0.3.0
|
6
|
+
|
7
|
+
326 commits by 35 contributors
|
8
|
+
|
9
|
+
### New Features
|
10
|
+
|
11
|
+
* I18n! Now supported in 10 languages!
|
12
|
+
* Customizeable CSV (@pcreux, @gregbell)
|
13
|
+
* Menus now support `if` and `priority` (Moritz Lawitschka)
|
14
|
+
* Rails 3.1 support
|
15
|
+
* Asset pipeline support (@gregbell)
|
16
|
+
* `skip_before_filter` now supported in DSL (@shayfrendt)
|
17
|
+
* Added a blank slate design (@mattvague)
|
18
|
+
* Collection and Member actions use the Active Admin layout (@gregbell)
|
19
|
+
|
20
|
+
### Enhancements
|
21
|
+
|
22
|
+
* Better I18n config file loading (@fabiokr)
|
23
|
+
* `TableFor` now supports I18n headers (@fabiokr)
|
24
|
+
* `AttributesTable` now supports I18n attributes (@fabiokr)
|
25
|
+
* Member actions all use CSS class `member_link` (@doug316)
|
26
|
+
* Made `status_tag` an Arbre component (@pcreux)
|
27
|
+
* CSV downloads have sexy names such as "articles-2011-06-21.csv" (@pcreux)
|
28
|
+
* Created `ActiveAdmin::Setting` to easily create settings (@gregbell)
|
29
|
+
* New datepicker styles (@mattvague)
|
30
|
+
* Set `@page_title` in member action to render a custom title (@gregbell)
|
31
|
+
* #248: Settable logout link options in initializer (@gregbell)
|
32
|
+
* Added a DependencyChecker that warns if dependencies aren't met (@pcreux)
|
33
|
+
|
34
|
+
### Bug Fixes
|
35
|
+
|
36
|
+
* #52: Fix update action with STI models (@gregbell)
|
37
|
+
* #122: Fix sortable columns on nested resources (@knoopx)
|
38
|
+
* Fix so that Dashboard Sections can appear in root namespace (@knoopx)
|
39
|
+
* #131: Fixed `status_tag` with nil content (@pcreux)
|
40
|
+
* #110: Fixed dropdown menu floats in Firefox (@mattvague)
|
41
|
+
* Use quoted table names (@krug)
|
42
|
+
* Fixed CSS float of `.paginated_collection_contents` bug in Firefox (@mattvague)
|
43
|
+
* Removed unwanted gradient in IE in attribute table headers (@emzeq)
|
44
|
+
* #222: Added `Arbre::Context#length` for Rack servers (@gregbell)
|
45
|
+
* #255: Fixed problem with dropdown menus in IE8 and IE9 (@mattvague)
|
46
|
+
* #235: Default sort order should use primary_key (@gregbell)
|
47
|
+
* #197: Fixed issues with #form params disappearing (@rolfb)
|
48
|
+
* #186: Fixes for when `default_namespace = false` (@gregbell)
|
49
|
+
* #135: Comments on STI classes redirect correctly (@gregbell)
|
50
|
+
* #77: Fixed performance issue where ActiveRecord::Base.all was being called (@pcreux)
|
51
|
+
* #332: Fixed Devise redirection when in false namespace (@gregbell)
|
52
|
+
* #171: Fixed issue where class names would clash with HTML object names (@gregbell)
|
53
|
+
* #381: Fixed issues with Devise < 1.2 (@pcreux)
|
54
|
+
* #369: Added support for pluralized model names such as News (@gregbell)
|
55
|
+
* #42: Default forms work with polymorphic associations (@mattvague)
|
56
|
+
|
57
|
+
### Dependencies
|
58
|
+
|
59
|
+
* Switched from will_paginate to Kaminari for pagination (@mwindwer)
|
60
|
+
* Removed dependency on InheritedViews (@gregbell)
|
61
|
+
* Removed Jeweler. Using Bundler and a gemspec (@gregbell)
|
62
|
+
|
63
|
+
### Contributors
|
64
|
+
|
65
|
+
* Armand du Plessis
|
66
|
+
* Aurelio Agundez
|
67
|
+
* Bruno Bonamin
|
68
|
+
* Chris Ostrowski
|
69
|
+
* Corey Woodcox
|
70
|
+
* DeLynn Berry
|
71
|
+
* Doug Puchalski
|
72
|
+
* Fabio Kreusch
|
73
|
+
* Greg Bell
|
74
|
+
* Ismael G Marin C
|
75
|
+
* Jackson Pires
|
76
|
+
* Jesper Hvirring Henriksen
|
77
|
+
* Josef Šimánek
|
78
|
+
* Jørgen Orehøj Erichsen
|
79
|
+
* Liborio Cannici
|
80
|
+
* Matt Vague
|
81
|
+
* Matthew Windwer
|
82
|
+
* Moritz Lawitschka
|
83
|
+
* Nathan Le Ray
|
84
|
+
* Nicolas Mosconi
|
85
|
+
* Philippe Creux
|
86
|
+
* Rolf Bjaanes
|
87
|
+
* Ryan D Johnson
|
88
|
+
* Ryan Krug
|
89
|
+
* Shay Frendt
|
90
|
+
* Steve Klabnik
|
91
|
+
* Tiago Rafael Godinho
|
92
|
+
* Toby Hede
|
93
|
+
* Vijay Dev
|
94
|
+
* Víctor Martínez
|
95
|
+
* doabit
|
96
|
+
* hoverlover
|
97
|
+
* nhurst
|
98
|
+
* whatthewhat
|
99
|
+
* Łukasz Anwajler
|
100
|
+
|
101
|
+
|
102
|
+
## 0.2.2 (2011-05-26)
|
103
|
+
|
104
|
+
68 Commits by 13 Contributors
|
105
|
+
|
106
|
+
### Features & Enhancements
|
107
|
+
|
108
|
+
* Arbre includes self closing tags (#100)
|
109
|
+
* Controller class & action added to body as CSS classes (#99)
|
110
|
+
* HAML is not required by default (#92)
|
111
|
+
* Devise login now respects Devise.authentication_keys (#69)
|
112
|
+
* Active Admin no longer uses <tt>ActiveRecord::Base#search</tt> (#28)
|
113
|
+
* Resource's can now override the label in the menu (#48)
|
114
|
+
* Subdirectories are now loaded in the Active Admin load path
|
115
|
+
|
116
|
+
### Bug Fixes
|
117
|
+
|
118
|
+
* Sort order now includes table name (#38)
|
119
|
+
* Fixed table_for 'odd', 'even' row classes (#96)
|
120
|
+
* Fixed Devise installation if AdminUser already exists (#95)
|
121
|
+
* Fixed issues when ActiveAdmin.default_namespaces is false (#32)
|
122
|
+
* Added styles for missing HTML 5 inputs (#31)
|
123
|
+
* Fixed issue if adding empty Active Admin Comment (#21)
|
124
|
+
* Fixed layout issues in FF 4 (#22)
|
125
|
+
* Use Sass::Plugin.options[:css_location] instead of Rails.root (#55)
|
126
|
+
|
127
|
+
### Test Suite
|
128
|
+
|
129
|
+
* Update RSpec to latest & fix specs (Thanks Ben Marini & Jeremt Ruppel!) (#100)
|
130
|
+
* Added tests for STI models (#52)
|
131
|
+
|
132
|
+
### Contributors
|
133
|
+
|
134
|
+
* Ben Marini
|
135
|
+
* Bookis Smuin
|
136
|
+
* Caley Woods
|
137
|
+
* Doug Puchalski
|
138
|
+
* Federico Romero
|
139
|
+
* Greg Bell
|
140
|
+
* Ian MacLeod
|
141
|
+
* Jeremy Ruppel
|
142
|
+
* Jordan Sitkin
|
143
|
+
* Juha Suuraho
|
144
|
+
* Mathieu Martin
|
145
|
+
* Paul Annesley
|
146
|
+
* Philippe Creux
|
147
|
+
|
148
|
+
## 0.2.1 (2011-05-12)
|
149
|
+
|
150
|
+
### Bug Fixes
|
151
|
+
* Fixed issue with dashboard rendering a sidebar
|
152
|
+
|
153
|
+
## 0.2.0 (2011-05-12)
|
154
|
+
|
155
|
+
0.2.0 is essentially an entire re-write of Active Admin. Here are some
|
156
|
+
of the highlights. 250 commits. Enough said.
|
157
|
+
|
158
|
+
### Features & Enhancements
|
159
|
+
|
160
|
+
* Full visual redesign
|
161
|
+
* Integrated Devise for authentication
|
162
|
+
* Brand new view and component layer called Arbre (Project coming soon)
|
163
|
+
* Added ActiveAdmin::Comments
|
164
|
+
|
165
|
+
### Bug Fixes
|
166
|
+
|
167
|
+
* Too many to list! Been in production for close to a year
|
168
|
+
|
169
|
+
## 0.1.1 (2010-09-15)
|
170
|
+
|
171
|
+
### Bug Fixes
|
172
|
+
|
173
|
+
* Fixed issues running on Ruby 1.9.2
|
174
|
+
|
175
|
+
## 0.1.0
|
176
|
+
|
177
|
+
e Initial release
|
data/Gemfile
CHANGED
@@ -1,50 +1,39 @@
|
|
1
|
-
# These resources are needed to setup the test env
|
2
1
|
source 'http://rubygems.org'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
when
|
13
|
-
gem
|
14
|
-
when
|
15
|
-
gem
|
16
|
-
|
17
|
-
gem 'rails', '= 3.0.5'
|
18
|
-
when "3.0.6"
|
19
|
-
gem 'rails', '= 3.0.6'
|
20
|
-
when "3.0.7"
|
21
|
-
gem 'rails', '= 3.0.7'
|
3
|
+
gemspec
|
4
|
+
|
5
|
+
require File.expand_path('../spec/support/detect_rails_version', __FILE__)
|
6
|
+
|
7
|
+
rails_version = ENV['RAILS'] || detect_rails_version || "3.1.0.rc10"
|
8
|
+
gem 'rails', rails_version
|
9
|
+
|
10
|
+
case rails_version
|
11
|
+
when /^3\.0/
|
12
|
+
gem "meta_search", '~> 1.0.0'
|
13
|
+
when /^3\.1/
|
14
|
+
gem "meta_search", '>= 1.1.0.pre'
|
15
|
+
gem 'sass-rails', "~> 3.1.0.rc"
|
22
16
|
else
|
23
|
-
|
24
|
-
gem 'rails', '>= 3.0.0'
|
17
|
+
raise "Rails #{rails_version} is not supported yet"
|
25
18
|
end
|
26
19
|
|
27
|
-
gem "meta_search", '>= 0.9.2'
|
28
|
-
gem 'devise', '>= 1.1.2'
|
29
|
-
gem 'formtastic', '>= 1.1.0'
|
30
|
-
gem 'will_paginate', '>= 3.0.pre2'
|
31
|
-
gem 'inherited_views'
|
32
|
-
gem 'sass', '>= 3.1.0'
|
33
|
-
|
34
20
|
group :development, :test do
|
35
21
|
gem 'sqlite3-ruby', :require => 'sqlite3'
|
36
|
-
gem 'jeweler', '1.5.2'
|
37
22
|
gem 'rake', '0.8.7', :require => false
|
38
23
|
gem 'haml', '~> 3.1.1', :require => false
|
24
|
+
gem 'yard'
|
25
|
+
gem 'rdiscount' # For yard
|
39
26
|
end
|
40
27
|
|
41
28
|
group :test do
|
42
29
|
gem 'rspec', '~> 2.6.0'
|
43
30
|
gem 'rspec-rails', '~> 2.6.0'
|
44
|
-
gem 'capybara', '0.
|
45
|
-
gem 'cucumber', '0.
|
46
|
-
gem 'cucumber-rails', '0.
|
31
|
+
gem 'capybara', '1.0.0'
|
32
|
+
gem 'cucumber', '0.10.6'
|
33
|
+
gem 'cucumber-rails', '0.5.2'
|
47
34
|
gem 'database_cleaner'
|
48
35
|
gem 'shoulda', '2.11.2', :require => nil
|
49
36
|
gem 'launchy'
|
37
|
+
gem 'jslint_on_rails', '~> 1.0.6'
|
38
|
+
gem 'guard-rspec'
|
50
39
|
end
|
data/Guardfile
ADDED
@@ -0,0 +1,8 @@
|
|
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
|
8
|
+
|
data/README.rdoc
CHANGED
@@ -4,9 +4,18 @@ 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
|
+
== Help / Support / Demo
|
8
|
+
* Mailing list: http://groups.google.com/group/activeadmin
|
9
|
+
* Bug reports: https://github.com/gregbell/active_admin/issues
|
10
|
+
* RDoc: http://rubydoc.info/github/gregbell/active_admin/master/frames
|
11
|
+
* Guides: http://activeadmin.info/documentation.html
|
12
|
+
* Live demo: http://demo.activeadmin.info/admin
|
13
|
+
* Website: http://www.activeadmin.info
|
14
|
+
|
15
|
+
|
7
16
|
== Goals
|
8
17
|
|
9
|
-
1. Allow developers to quickly create gorgeous administration interfaces
|
18
|
+
1. Allow developers to quickly create gorgeous administration interfaces
|
10
19
|
<strong>(Not Just CRUD)</strong>
|
11
20
|
2. Build a DSL for developers and an interface for businesses.
|
12
21
|
3. Ensure that developers can easily customize every nook and cranny of the interface.
|
@@ -26,7 +35,7 @@ After updating your bundle, run the installer
|
|
26
35
|
$> rails generate active_admin:install
|
27
36
|
|
28
37
|
The installer creates an initializer used for configuring defaults used by Active Admin as well
|
29
|
-
as a new folder at <tt>app/admin</tt> to put all your admin configurations.
|
38
|
+
as a new folder at <tt>app/admin</tt> to put all your admin configurations.
|
30
39
|
|
31
40
|
Migrate your db and start the server:
|
32
41
|
|
@@ -171,13 +180,13 @@ If the default title does not work for you, pass it as the first argument:
|
|
171
180
|
|
172
181
|
Sometimes calling methods just isn't enough and you need to write some view
|
173
182
|
specific code. For example, say we wanted a colum called Title which holds a
|
174
|
-
link to the posts admin screen.
|
183
|
+
link to the posts admin screen.
|
175
184
|
|
176
185
|
The column method accepts a block as an argument which will then be rendered
|
177
186
|
within the context of the view for each of the objects in the collection.
|
178
187
|
|
179
188
|
index do
|
180
|
-
column "Title" do |post|
|
189
|
+
column "Title" do |post|
|
181
190
|
link_to post.title, admin_post_path(post)
|
182
191
|
end
|
183
192
|
end
|
@@ -196,7 +205,7 @@ If a column is defined using a block, you must pass the key to turn on sorting.
|
|
196
205
|
is the attribute which gets used to sort objects using Active Record.
|
197
206
|
|
198
207
|
index do
|
199
|
-
column "Title", :sortable => :title do |post|
|
208
|
+
column "Title", :sortable => :title do |post|
|
200
209
|
link_to post.title, admin_post_path(post)
|
201
210
|
end
|
202
211
|
end
|
@@ -228,7 +237,7 @@ Sometimes you want to display the index screen for a set of resources as a grid
|
|
228
237
|
index block.
|
229
238
|
|
230
239
|
index :as => :grid do |product|
|
231
|
-
link_to(image_tag(product.image_path),
|
240
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
232
241
|
end
|
233
242
|
|
234
243
|
The block is rendered within a cell in the grid once for each resource in the
|
@@ -238,7 +247,7 @@ You can customize the number of colums that are rendered using the columns
|
|
238
247
|
option:
|
239
248
|
|
240
249
|
index :as => :grid, :columns => 5 do |product|
|
241
|
-
link_to(image_tag(product.image_path),
|
250
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
242
251
|
end
|
243
252
|
|
244
253
|
|
@@ -263,7 +272,7 @@ By default the index screen includes a "Filters" sidebar on the right hand side
|
|
263
272
|
with a filter for each attribute of the registered model. You can customize the
|
264
273
|
filters that are displayed as well as the type of widgets they use.
|
265
274
|
|
266
|
-
To
|
275
|
+
To display a filter for an attribute, use the filter method
|
267
276
|
|
268
277
|
ActiveAdmin.register Post do
|
269
278
|
filter :title
|
@@ -291,6 +300,21 @@ the collection as a proc to be called at render time.
|
|
291
300
|
# Will call available
|
292
301
|
filter :author, :as => :check_boxes, :collection => proc { Author.all }
|
293
302
|
|
303
|
+
You can change the filter label by passing a label option:
|
304
|
+
|
305
|
+
filter :author, :label => 'Author'
|
306
|
+
|
307
|
+
By default, Active Admin will try to use ActiveModel I18n to determine the label.
|
308
|
+
|
309
|
+
== Customizing the CSV format
|
310
|
+
|
311
|
+
Customizing the CSV format is as simple as customizing the index page.
|
312
|
+
|
313
|
+
csv do
|
314
|
+
column :name
|
315
|
+
column("Author") { |post| post.author.full_name }
|
316
|
+
end
|
317
|
+
|
294
318
|
== Customizing the Form
|
295
319
|
|
296
320
|
Active Admin gives complete control over the output of the form by creating a thin DSL on top of
|
@@ -315,13 +339,29 @@ the fabulous DSL created by Formtastic (http://github.com/justinfrench/formtasti
|
|
315
339
|
Please view the documentation for Formtastic to see all the wonderful things you can do:
|
316
340
|
http://github.com/justinfrench/formtastic
|
317
341
|
|
342
|
+
If you require a more custom form than can be provided through the DSL, you can pass
|
343
|
+
a partial in to render the form yourself.
|
344
|
+
|
345
|
+
For example:
|
346
|
+
|
347
|
+
ActiveAdmin.register Post do
|
348
|
+
form :partial => "form"
|
349
|
+
end
|
350
|
+
|
351
|
+
Then implement app/views/admin/posts/_form.html.erb:
|
352
|
+
|
353
|
+
<%= semantic_form_for [:admin, @post] do |f| %>
|
354
|
+
<%= f.inputs :title, :body %>
|
355
|
+
<%= f.buttons :commit %>
|
356
|
+
<% end %>
|
357
|
+
|
318
358
|
|
319
359
|
== Customizing the Show Screen
|
320
360
|
|
321
361
|
Customizing the show screen is as simple as implementing the show block:
|
322
362
|
|
323
363
|
ActiveAdmin.register Post do
|
324
|
-
show do
|
364
|
+
show do
|
325
365
|
h3 post.title
|
326
366
|
div do
|
327
367
|
simple_format post.body
|
@@ -333,7 +373,7 @@ The show block is rendered within the context of the view and uses the Arbre HTM
|
|
333
373
|
can also render a partial at any point.
|
334
374
|
|
335
375
|
ActiveAdmin.register Post do
|
336
|
-
show do
|
376
|
+
show do
|
337
377
|
# renders app/views/admin/posts/_some_partial.html.erb
|
338
378
|
render "some_partial"
|
339
379
|
end
|
@@ -376,13 +416,35 @@ Or you can pass your own custom partial to render.
|
|
376
416
|
|
377
417
|
sidebar :help, :partial => "custom_help_partial"
|
378
418
|
|
419
|
+
== Add collection and member actions
|
420
|
+
|
421
|
+
To add a collection action, use the collection_action method:
|
422
|
+
|
423
|
+
collection_action :import_csv do
|
424
|
+
# do csv import
|
425
|
+
redirect_to :action => :index, :notice => "CSV imported successfully!"
|
426
|
+
end
|
427
|
+
|
428
|
+
To add a member action, use the member_action method:
|
429
|
+
|
430
|
+
member_action :lock, :method => :post do
|
431
|
+
resource.lock!
|
432
|
+
redirect_to :action => :show, :notice => "Locked!"
|
433
|
+
end
|
434
|
+
|
435
|
+
== Internationalization (I18n)
|
436
|
+
|
437
|
+
To internationalize Active Admin or to change default strings, you can copy
|
438
|
+
lib/active_admin/locales/en.yml to your application config/locales directory and
|
439
|
+
change its content. You can contribute to the project with your translations to!
|
440
|
+
|
379
441
|
== Tools Being Used
|
380
442
|
|
381
|
-
We believe strongly in not writing code unless we have to, so Active Admin is built using many
|
443
|
+
We believe strongly in not writing code unless we have to, so Active Admin is built using many
|
382
444
|
other open source projects:
|
383
445
|
|
384
446
|
InheritedResources::
|
385
|
-
Inherited Resources speeds up development by making your controllers inherit all restful
|
447
|
+
Inherited Resources speeds up development by making your controllers inherit all restful
|
386
448
|
actions so you just have to focus on what is important.
|
387
449
|
InheritedViews::
|
388
450
|
Inherited Views is a thin addition to Inherited Resources which adds in html views to the mix
|
@@ -390,7 +452,7 @@ Formtastic::
|
|
390
452
|
A DSL for semantically building amazing forms.
|
391
453
|
Devise::
|
392
454
|
User authentication is done using Devise
|
393
|
-
|
455
|
+
Kaminari::
|
394
456
|
Pagination for rails apps
|
395
457
|
Iconic Icons::
|
396
458
|
Excellent SVG icon set designed by P.J. Onori: http://somerandomdude.com/projects/iconic
|
@@ -423,4 +485,3 @@ We are using the awesome Github issues!
|
|
423
485
|
== Copyright
|
424
486
|
|
425
487
|
Copyright (c) 2010 Greg Bell, VersaPay Corporation. See LICENSE for details.
|
426
|
-
|