jacobat-refinerycms 0.9.6.14
Sign up to get free protection for your applications and to get access to all the features.
- data/.gems +8 -0
- data/.gitignore +23 -0
- data/.yardopts +31 -0
- data/Gemfile +12 -0
- data/Rakefile +70 -0
- data/VERSION +1 -0
- data/app/controllers/admin/base_controller.rb +8 -0
- data/app/controllers/application.rb +3 -0
- data/app/controllers/application_controller.rb +7 -0
- data/app/helpers/application_helper.rb +7 -0
- data/bin/refinery +84 -0
- data/bin/refinery-override +76 -0
- data/bin/refinery-update-core +92 -0
- data/config/amazon_s3.yml.example +18 -0
- data/config/application.rb +88 -0
- data/config/boot.rb +110 -0
- data/config/database.yml.example +20 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +26 -0
- data/config/environments/production.rb +26 -0
- data/config/environments/test.rb +22 -0
- data/config/initializers/inflections.rb +10 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/preinitializer.rb +27 -0
- data/config/rackspace_cloudfiles.yml.example +14 -0
- data/config/routes.rb +20 -0
- data/contributors.md +20 -0
- data/db/migrate/20091029034951_remove_blurb_from_news_items.rb +9 -0
- data/db/migrate/20091109012126_add_missing_indexes.rb +25 -0
- data/db/migrate/20091130040711_add_down_for_maintenance_page.rb +15 -0
- data/db/migrate/20091207033335_add_superuser_to_users.rb +12 -0
- data/db/migrate/20100114092849_add_themes_table.rb +19 -0
- data/db/migrate/20100127004649_add_reset_code_to_users.rb +9 -0
- data/db/migrate/20100202034802_remove_custom_title_image_id_and_image_id_from_pages.rb +13 -0
- data/db/migrate/20100204011654_change_part_titles_to_titleized_version_for_new_format.rb +13 -0
- data/db/migrate/20100223211536_remove_themes_table.rb +17 -0
- data/db/schema.rb +150 -0
- data/db/seeds.rb +121 -0
- data/doc/.yardoc/checksums +0 -0
- data/doc/.yardoc/objects/root.dat +0 -0
- data/doc/.yardoc/proxy_types +0 -0
- data/lib/refinery_initializer.rb +23 -0
- data/license.md +21 -0
- data/public/.htaccess +40 -0
- data/public/404.html +29 -0
- data/public/422.html +30 -0
- data/public/500.html +29 -0
- data/public/favicon.ico +0 -0
- data/public/images/refinery/add.png +0 -0
- data/public/images/refinery/admin_bg.png +0 -0
- data/public/images/refinery/ajax-loader.gif +0 -0
- data/public/images/refinery/branch-end.gif +0 -0
- data/public/images/refinery/branch-start.gif +0 -0
- data/public/images/refinery/branch.gif +0 -0
- data/public/images/refinery/header_background.png +0 -0
- data/public/images/refinery/hover-gradient.jpg +0 -0
- data/public/images/refinery/icons/accept.png +0 -0
- data/public/images/refinery/icons/add.png +0 -0
- data/public/images/refinery/icons/application_edit.png +0 -0
- data/public/images/refinery/icons/application_go.png +0 -0
- data/public/images/refinery/icons/arrow_left.png +0 -0
- data/public/images/refinery/icons/arrow_switch.png +0 -0
- data/public/images/refinery/icons/arrow_up.png +0 -0
- data/public/images/refinery/icons/cancel.png +0 -0
- data/public/images/refinery/icons/cog_add.png +0 -0
- data/public/images/refinery/icons/cog_edit.png +0 -0
- data/public/images/refinery/icons/cross.png +0 -0
- data/public/images/refinery/icons/delete.png +0 -0
- data/public/images/refinery/icons/edit.png +0 -0
- data/public/images/refinery/icons/email_edit.png +0 -0
- data/public/images/refinery/icons/email_go.png +0 -0
- data/public/images/refinery/icons/email_open.png +0 -0
- data/public/images/refinery/icons/eye.png +0 -0
- data/public/images/refinery/icons/image_add.png +0 -0
- data/public/images/refinery/icons/image_edit.png +0 -0
- data/public/images/refinery/icons/layout_add.png +0 -0
- data/public/images/refinery/icons/layout_edit.png +0 -0
- data/public/images/refinery/icons/page_add.png +0 -0
- data/public/images/refinery/icons/page_edit.png +0 -0
- data/public/images/refinery/icons/page_white_edit.png +0 -0
- data/public/images/refinery/icons/page_white_put.png +0 -0
- data/public/images/refinery/icons/star.png +0 -0
- data/public/images/refinery/icons/tick.png +0 -0
- data/public/images/refinery/icons/user_add.png +0 -0
- data/public/images/refinery/icons/user_comment.png +0 -0
- data/public/images/refinery/icons/user_edit.png +0 -0
- data/public/images/refinery/logo-large.png +0 -0
- data/public/images/refinery/logo-medium.png +0 -0
- data/public/images/refinery/logo-small-medium.png +0 -0
- data/public/images/refinery/logo-small.png +0 -0
- data/public/images/refinery/logo.png +0 -0
- data/public/images/refinery/nav-3-background.gif +0 -0
- data/public/images/refinery/page_bg.png +0 -0
- data/public/images/refinery/resolve_digital_footer_logo.png +0 -0
- data/public/images/thickbox/cross.png +0 -0
- data/public/images/thickbox/loadingAnimation.gif +0 -0
- data/public/images/thickbox/macFFBgHack.png +0 -0
- data/public/images/wymeditor/skins/refinery/blockquote.png +0 -0
- data/public/images/wymeditor/skins/refinery/center.png +0 -0
- data/public/images/wymeditor/skins/refinery/css.png +0 -0
- data/public/images/wymeditor/skins/refinery/h1.png +0 -0
- data/public/images/wymeditor/skins/refinery/h2.png +0 -0
- data/public/images/wymeditor/skins/refinery/h3.png +0 -0
- data/public/images/wymeditor/skins/refinery/h4.png +0 -0
- data/public/images/wymeditor/skins/refinery/h5.png +0 -0
- data/public/images/wymeditor/skins/refinery/h6.png +0 -0
- data/public/images/wymeditor/skins/refinery/icons.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
- data/public/images/wymeditor/skins/refinery/justify.png +0 -0
- data/public/images/wymeditor/skins/refinery/left.png +0 -0
- data/public/images/wymeditor/skins/refinery/paragraph.png +0 -0
- data/public/images/wymeditor/skins/refinery/right.png +0 -0
- data/public/images/wymeditor/skins/wymeditor_icon.png +0 -0
- data/public/javascripts/admin.js +5 -0
- data/public/javascripts/application.js +1 -0
- data/public/javascripts/jquery/GPL-LICENSE.txt +278 -0
- data/public/javascripts/jquery/MIT-LICENSE.txt +20 -0
- data/public/javascripts/jquery-ui-1.8rc1.min.js +375 -0
- data/public/javascripts/jquery.js +6078 -0
- data/public/javascripts/refinery/admin.js +705 -0
- data/public/javascripts/refinery/boot_wym.js +154 -0
- data/public/javascripts/thickbox.js +350 -0
- data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +4975 -0
- data/public/javascripts/wymeditor/lang/ca.js +45 -0
- data/public/javascripts/wymeditor/lang/cs.js +45 -0
- data/public/javascripts/wymeditor/lang/de.js +45 -0
- data/public/javascripts/wymeditor/lang/en.js +48 -0
- data/public/javascripts/wymeditor/lang/es.js +45 -0
- data/public/javascripts/wymeditor/lang/fa.js +46 -0
- data/public/javascripts/wymeditor/lang/fr.js +45 -0
- data/public/javascripts/wymeditor/lang/he.js +45 -0
- data/public/javascripts/wymeditor/lang/hu.js +45 -0
- data/public/javascripts/wymeditor/lang/it.js +45 -0
- data/public/javascripts/wymeditor/lang/nb.js +45 -0
- data/public/javascripts/wymeditor/lang/nl.js +45 -0
- data/public/javascripts/wymeditor/lang/nn.js +45 -0
- data/public/javascripts/wymeditor/lang/pl.js +45 -0
- data/public/javascripts/wymeditor/lang/pt-br.js +45 -0
- data/public/javascripts/wymeditor/lang/pt.js +45 -0
- data/public/javascripts/wymeditor/lang/ru.js +45 -0
- data/public/javascripts/wymeditor/lang/sv.js +45 -0
- data/public/javascripts/wymeditor/lang/tr.js +45 -0
- data/public/javascripts/wymeditor/lang/zh_cn.js +47 -0
- data/public/javascripts/wymeditor/skins/refinery/skin.js +40 -0
- data/public/robots.txt +2 -0
- data/public/stylesheets/application.css +5 -0
- data/public/stylesheets/formatting.css +5 -0
- data/public/stylesheets/home.css +5 -0
- data/public/stylesheets/ie6.css +0 -0
- data/public/stylesheets/ie7.css +0 -0
- data/public/stylesheets/refinery/application.css +45 -0
- data/public/stylesheets/refinery/formatting.css +53 -0
- data/public/stylesheets/refinery/home.css +0 -0
- data/public/stylesheets/refinery/refinery.css +1233 -0
- data/public/stylesheets/refinery/theme.css +36 -0
- data/public/stylesheets/refinery/thickbox.css +165 -0
- data/public/stylesheets/refinery/tooltips.css +38 -0
- data/public/stylesheets/theme.css +1 -0
- data/public/stylesheets/wymeditor/skins/refinery/skin.css +218 -0
- data/public/stylesheets/wymeditor/skins/refinery/wymiframe.css +92 -0
- data/public/wymeditor/GPL-license.txt +278 -0
- data/public/wymeditor/MIT-license.txt +20 -0
- data/public/wymeditor/README +35 -0
- data/readme.md +181 -0
- data/script/about +3 -0
- data/script/console +3 -0
- data/script/dbconsole +3 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/performance/request +3 -0
- data/script/plugin +3 -0
- data/script/process/inspector +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/test/files/The world!.gif +0 -0
- data/test/files/car-wallpapers19.jpg +0 -0
- data/test/files/teng.pdf +0 -0
- data/test/fixtures/images.yml +14 -0
- data/test/fixtures/inquiries.yml +22 -0
- data/test/fixtures/news_items.yml +14 -0
- data/test/fixtures/page_parts.yml +9 -0
- data/test/fixtures/pages.yml +94 -0
- data/test/fixtures/refinery_settings.yml +3 -0
- data/test/fixtures/resources.yml +4 -0
- data/test/fixtures/users.yml +16 -0
- data/test/functional/dashboard_controller_test.rb +24 -0
- data/test/performance/browsing_test.rb +9 -0
- data/test/test_helper.rb +43 -0
- data/test/unit/image_test.rb +27 -0
- data/test/unit/inquiry_test.rb +41 -0
- data/test/unit/news_items_test.rb +33 -0
- data/test/unit/page_part_test.rb +19 -0
- data/test/unit/page_test.rb +133 -0
- data/test/unit/refinery_setting_test.rb +57 -0
- data/test/unit/resource_test.rb +33 -0
- data/themes/demolicious/LICENSE +21 -0
- data/themes/demolicious/README +1 -0
- data/themes/demolicious/images/footer_background.png +0 -0
- data/themes/demolicious/images/header_background.png +0 -0
- data/themes/demolicious/stylesheets/application.css +94 -0
- data/themes/demolicious/stylesheets/formatting.css +36 -0
- data/themes/demolicious/stylesheets/home.css +8 -0
- data/themes/demolicious/stylesheets/ie6.css +0 -0
- data/themes/demolicious/stylesheets/ie7.css +0 -0
- data/themes/demolicious/views/layouts/application.html.erb +20 -0
- data/themes/demolicious/views/pages/home.html.erb +1 -0
- data/themes/demolicious/views/pages/show.html.erb +1 -0
- data/themes/hemingway/LICENSE +7 -0
- data/themes/hemingway/README +3 -0
- data/themes/hemingway/images/archives.gif +0 -0
- data/themes/hemingway/images/footer_black.gif +0 -0
- data/themes/hemingway/images/kyle-header.jpg +0 -0
- data/themes/hemingway/images/readon_black.gif +0 -0
- data/themes/hemingway/images/search.gif +0 -0
- data/themes/hemingway/images/spinner.gif +0 -0
- data/themes/hemingway/images/trackback_pingback.gif +0 -0
- data/themes/hemingway/stylesheets/application.css +713 -0
- data/themes/hemingway/stylesheets/formatting.css +1 -0
- data/themes/hemingway/stylesheets/home.css +1 -0
- data/themes/hemingway/views/layouts/application.html.erb +55 -0
- data/todo.md +23 -0
- data/vendor/cache/aasm-2.1.3.gem +0 -0
- data/vendor/cache/actionmailer-2.3.5.gem +0 -0
- data/vendor/cache/actionpack-2.3.5.gem +0 -0
- data/vendor/cache/activerecord-2.3.5.gem +0 -0
- data/vendor/cache/activeresource-2.3.5.gem +0 -0
- data/vendor/cache/activesupport-2.3.5.gem +0 -0
- data/vendor/cache/friendly_id-2.3.1.gem +0 -0
- data/vendor/cache/hpricot-0.8.2.gem +0 -0
- data/vendor/cache/rack-1.0.1.gem +0 -0
- data/vendor/cache/rails-2.3.5.gem +0 -0
- data/vendor/cache/rake-0.8.7.gem +0 -0
- data/vendor/cache/rubyzip-0.9.1.gem +0 -0
- data/vendor/cache/slim_scrooge-1.0.3.gem +0 -0
- data/vendor/cache/will_paginate-2.3.11.gem +0 -0
- data/vendor/plugins/acts_as_indexed/CHANGELOG +74 -0
- data/vendor/plugins/acts_as_indexed/MIT-LICENSE +20 -0
- data/vendor/plugins/acts_as_indexed/README.rdoc +114 -0
- data/vendor/plugins/acts_as_indexed/Rakefile +35 -0
- data/vendor/plugins/acts_as_indexed/init.rb +2 -0
- data/vendor/plugins/acts_as_indexed/lib/acts_as_indexed.rb +224 -0
- data/vendor/plugins/acts_as_indexed/lib/search_atom.rb +107 -0
- data/vendor/plugins/acts_as_indexed/lib/search_index.rb +329 -0
- data/vendor/plugins/acts_as_indexed/lib/will_paginate_search.rb +29 -0
- data/vendor/plugins/acts_as_indexed/test/abstract_unit.rb +47 -0
- data/vendor/plugins/acts_as_indexed/test/acts_as_indexed_test.rb +102 -0
- data/vendor/plugins/acts_as_indexed/test/database.yml +10 -0
- data/vendor/plugins/acts_as_indexed/test/fixtures/post.rb +5 -0
- data/vendor/plugins/acts_as_indexed/test/fixtures/posts.yml +31 -0
- data/vendor/plugins/acts_as_indexed/test/schema.rb +6 -0
- data/vendor/plugins/acts_as_tree/README +26 -0
- data/vendor/plugins/acts_as_tree/Rakefile +22 -0
- data/vendor/plugins/acts_as_tree/init.rb +1 -0
- data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +141 -0
- data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
- data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
- data/vendor/plugins/attachment_fu/CHANGELOG +35 -0
- data/vendor/plugins/attachment_fu/LICENSE +20 -0
- data/vendor/plugins/attachment_fu/README +193 -0
- data/vendor/plugins/attachment_fu/Rakefile +22 -0
- data/vendor/plugins/attachment_fu/amazon_s3.yml.tpl +17 -0
- data/vendor/plugins/attachment_fu/init.rb +16 -0
- data/vendor/plugins/attachment_fu/install.rb +7 -0
- data/vendor/plugins/attachment_fu/lib/geometry.rb +93 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/cloud_file_backend.rb +211 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +39 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +126 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +394 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +59 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +54 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +61 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +132 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +57 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +514 -0
- data/vendor/plugins/attachment_fu/rackspace_cloudfiles.yml.tpl +14 -0
- data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +16 -0
- data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +143 -0
- data/vendor/plugins/attachment_fu/test/backends/remote/cloudfiles_test.rb +102 -0
- data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +119 -0
- data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +77 -0
- data/vendor/plugins/attachment_fu/test/basic_test.rb +70 -0
- data/vendor/plugins/attachment_fu/test/database.yml +18 -0
- data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +67 -0
- data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +226 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/foo.txt +1 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/rails.png +0 -0
- data/vendor/plugins/attachment_fu/test/geometry_test.rb +108 -0
- data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +37 -0
- data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +31 -0
- data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +31 -0
- data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +103 -0
- data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +255 -0
- data/vendor/plugins/attachment_fu/test/schema.rb +134 -0
- data/vendor/plugins/attachment_fu/test/test_helper.rb +150 -0
- data/vendor/plugins/attachment_fu/test/validation_test.rb +55 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +27 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +31 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +25 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +25 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +47 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +32 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +123 -0
- data/vendor/plugins/authentication/README +0 -0
- data/vendor/plugins/authentication/Rakefile +0 -0
- data/vendor/plugins/authentication/app/controllers/admin/users_controller.rb +67 -0
- data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +36 -0
- data/vendor/plugins/authentication/app/controllers/users_controller.rb +101 -0
- data/vendor/plugins/authentication/app/helpers/sessions_helper.rb +2 -0
- data/vendor/plugins/authentication/app/helpers/users_helper.rb +2 -0
- data/vendor/plugins/authentication/app/models/user.rb +154 -0
- data/vendor/plugins/authentication/app/models/user_mailer.rb +18 -0
- data/vendor/plugins/authentication/app/models/user_plugin.rb +5 -0
- data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +38 -0
- data/vendor/plugins/authentication/app/views/admin/users/edit.html.erb +1 -0
- data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +40 -0
- data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -0
- data/vendor/plugins/authentication/app/views/sessions/new.html.erb +24 -0
- data/vendor/plugins/authentication/app/views/user_mailer/reset_notification.html.erb +6 -0
- data/vendor/plugins/authentication/app/views/users/forgot.html.erb +13 -0
- data/vendor/plugins/authentication/app/views/users/new.html.erb +28 -0
- data/vendor/plugins/authentication/app/views/users/reset.html.erb +18 -0
- data/vendor/plugins/authentication/authentication.md +15 -0
- data/vendor/plugins/authentication/config/routes.rb +15 -0
- data/vendor/plugins/authentication/lib/authenticated_system.rb +115 -0
- data/vendor/plugins/authentication/lib/authenticated_test_helper.rb +10 -0
- data/vendor/plugins/authentication/rails/init.rb +13 -0
- data/vendor/plugins/authentication/test/fixtures/users.yml +19 -0
- data/vendor/plugins/authentication/test/functional/admin/base_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/admin/dashboard_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/admin/pages_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/sessions_controller_test.rb +85 -0
- data/vendor/plugins/authentication/test/functional/users_controller_test.rb +99 -0
- data/vendor/plugins/authentication/test/test_helper.rb +38 -0
- data/vendor/plugins/authentication/test/unit/user_mailer_test.rb +31 -0
- data/vendor/plugins/authentication/test/unit/user_test.rb +164 -0
- data/vendor/plugins/dashboard/app/controllers/admin/dashboard_controller.rb +28 -0
- data/vendor/plugins/dashboard/app/helpers/admin/dashboard_helper.rb +19 -0
- data/vendor/plugins/dashboard/app/views/admin/dashboard/_recent_activity.html.erb +14 -0
- data/vendor/plugins/dashboard/app/views/admin/dashboard/index.html.erb +31 -0
- data/vendor/plugins/dashboard/config/routes.rb +5 -0
- data/vendor/plugins/dashboard/dashboard.md +22 -0
- data/vendor/plugins/dashboard/rails/init.rb +6 -0
- data/vendor/plugins/images/app/controllers/admin/images_controller.rb +98 -0
- data/vendor/plugins/images/app/helpers/admin/images_helper.rb +23 -0
- data/vendor/plugins/images/app/models/image.rb +57 -0
- data/vendor/plugins/images/app/views/admin/images/_form.html.erb +31 -0
- data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +16 -0
- data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +12 -0
- data/vendor/plugins/images/app/views/admin/images/_list_view_image.html.erb +16 -0
- data/vendor/plugins/images/app/views/admin/images/edit.html.erb +1 -0
- data/vendor/plugins/images/app/views/admin/images/index.html.erb +42 -0
- data/vendor/plugins/images/app/views/admin/images/insert.html.erb +50 -0
- data/vendor/plugins/images/app/views/admin/images/new.html.erb +1 -0
- data/vendor/plugins/images/config/routes.rb +5 -0
- data/vendor/plugins/images/images.md +53 -0
- data/vendor/plugins/images/lib/tasks/images.rake +45 -0
- data/vendor/plugins/images/rails/init.rb +14 -0
- data/vendor/plugins/inquiries/app/controllers/admin/inquiries_controller.rb +29 -0
- data/vendor/plugins/inquiries/app/controllers/admin/inquiry_settings_controller.rb +16 -0
- data/vendor/plugins/inquiries/app/controllers/inquiries_controller.rb +41 -0
- data/vendor/plugins/inquiries/app/helpers/inquiries_helper.rb +13 -0
- data/vendor/plugins/inquiries/app/models/inquiry.rb +16 -0
- data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +20 -0
- data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +11 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +20 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +43 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/show.html.erb +62 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +46 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +18 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/edit.html.erb +5 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +31 -0
- data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +31 -0
- data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +1 -0
- data/vendor/plugins/inquiries/app/views/inquiry_mailer/confirmation.html.erb +1 -0
- data/vendor/plugins/inquiries/app/views/inquiry_mailer/notification.html.erb +18 -0
- data/vendor/plugins/inquiries/config/routes.rb +8 -0
- data/vendor/plugins/inquiries/inquiries.md +31 -0
- data/vendor/plugins/inquiries/rails/init.rb +13 -0
- data/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +5 -0
- data/vendor/plugins/news/app/controllers/news_items_controller.rb +20 -0
- data/vendor/plugins/news/app/models/news_item.rb +22 -0
- data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +19 -0
- data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +15 -0
- data/vendor/plugins/news/app/views/admin/news_items/edit.html.erb +1 -0
- data/vendor/plugins/news/app/views/admin/news_items/index.html.erb +31 -0
- data/vendor/plugins/news/app/views/admin/news_items/new.html.erb +1 -0
- data/vendor/plugins/news/app/views/news_items/_recent_posts.html.erb +8 -0
- data/vendor/plugins/news/app/views/news_items/index.html.erb +17 -0
- data/vendor/plugins/news/app/views/news_items/index.rss.builder +26 -0
- data/vendor/plugins/news/app/views/news_items/show.html.erb +13 -0
- data/vendor/plugins/news/config/routes.rb +7 -0
- data/vendor/plugins/news/news.md +20 -0
- data/vendor/plugins/news/rails/init.rb +11 -0
- data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +49 -0
- data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +20 -0
- data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +18 -0
- data/vendor/plugins/pages/app/controllers/pages_controller.rb +22 -0
- data/vendor/plugins/pages/app/helpers/pages_helper.rb +2 -0
- data/vendor/plugins/pages/app/models/page.rb +162 -0
- data/vendor/plugins/pages/app/models/page_part.rb +10 -0
- data/vendor/plugins/pages/app/presenters/page_presenter.rb +3 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +5 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +149 -0
- data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +140 -0
- data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +29 -0
- data/vendor/plugins/pages/app/views/admin/pages/_page_part_field.html.erb +4 -0
- data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +4 -0
- data/vendor/plugins/pages/app/views/admin/pages/edit.html.erb +1 -0
- data/vendor/plugins/pages/app/views/admin/pages/index.html.erb +41 -0
- data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -0
- data/vendor/plugins/pages/app/views/pages/home.html.erb +1 -0
- data/vendor/plugins/pages/app/views/pages/show.html.erb +1 -0
- data/vendor/plugins/pages/config/routes.rb +11 -0
- data/vendor/plugins/pages/pages.md +146 -0
- data/vendor/plugins/pages/rails/init.rb +13 -0
- data/vendor/plugins/rails_indexes/MIT-LICENSE +20 -0
- data/vendor/plugins/rails_indexes/README.textile +46 -0
- data/vendor/plugins/rails_indexes/Rakefile +23 -0
- data/vendor/plugins/rails_indexes/lib/indexer.rb +305 -0
- data/vendor/plugins/rails_indexes/tasks/indexer.rake +18 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/controllers/users_controller.rb +8 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/address.rb +5 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/company.rb +11 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/country.rb +4 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/freelancer.rb +3 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/gift.rb +10 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/god.rb +3 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/models/user.rb +17 -0
- data/vendor/plugins/rails_indexes/test/fixtures/app/sweepers/user_sweeper.rb +9 -0
- data/vendor/plugins/rails_indexes/test/fixtures/schema.rb +46 -0
- data/vendor/plugins/rails_indexes/test/rails_indexes_test.rb +83 -0
- data/vendor/plugins/rails_indexes/test/test_helper.rb +30 -0
- data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +14 -0
- data/vendor/plugins/refinery/app/views/admin/_head.html.erb +11 -0
- data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +23 -0
- data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +34 -0
- data/vendor/plugins/refinery/app/views/layouts/application.html.erb +20 -0
- data/vendor/plugins/refinery/app/views/shared/_content_page.html.erb +36 -0
- data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +5 -0
- data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +13 -0
- data/vendor/plugins/refinery/app/views/shared/_head.html.erb +16 -0
- data/vendor/plugins/refinery/app/views/shared/_header.html.erb +4 -0
- data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +11 -0
- data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +8 -0
- data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +23 -0
- data/vendor/plugins/refinery/app/views/shared/_message.html.erb +5 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +5 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_continue_editing.html.erb +4 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_error_messages_for.html.erb +2 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +13 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_head_before_javascript_libraries.html.erb +0 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_image_picker.html.erb +48 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_resource_picker.html.erb +57 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +5 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +9 -0
- data/vendor/plugins/refinery/app/views/welcome.html.erb +13 -0
- data/vendor/plugins/refinery/app/views/wymiframe.html.erb +8 -0
- data/vendor/plugins/refinery/config/routes.rb +10 -0
- data/vendor/plugins/refinery/crud.md +197 -0
- data/vendor/plugins/refinery/lib/crud.rb +222 -0
- data/vendor/plugins/refinery/lib/generators/refinery/README +29 -0
- data/vendor/plugins/refinery/lib/generators/refinery/Rakefile +12 -0
- data/vendor/plugins/refinery/lib/generators/refinery/USAGE +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/install.rb +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +65 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/config/routes.rb +7 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/controller.rb +5 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +44 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +9 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +30 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/rails/init.rb +10 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +14 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +15 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/edit.html.erb +1 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/index.html.erb +42 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/new.html.erb +1 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/index.html.erb +11 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +25 -0
- data/vendor/plugins/refinery/lib/refinery/activity.rb +37 -0
- data/vendor/plugins/refinery/lib/refinery/admin_base_controller.rb +56 -0
- data/vendor/plugins/refinery/lib/refinery/application_controller.rb +80 -0
- data/vendor/plugins/refinery/lib/refinery/application_helper.rb +112 -0
- data/vendor/plugins/refinery/lib/refinery/attachment_fu_patch.rb +16 -0
- data/vendor/plugins/refinery/lib/refinery/base_presenter.rb +27 -0
- data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +28 -0
- data/vendor/plugins/refinery/lib/refinery/html_truncation_helper.rb +110 -0
- data/vendor/plugins/refinery/lib/refinery/initializer.rb +80 -0
- data/vendor/plugins/refinery/lib/refinery/link_renderer.rb +45 -0
- data/vendor/plugins/refinery/lib/refinery/plugin.rb +47 -0
- data/vendor/plugins/refinery/lib/refinery/plugins.rb +53 -0
- data/vendor/plugins/refinery/lib/refinery.rb +11 -0
- data/vendor/plugins/refinery/lib/tasks/doc.rake +29 -0
- data/vendor/plugins/refinery/lib/tasks/refinery.rake +34 -0
- data/vendor/plugins/refinery/lib/tasks/yard.rake +32 -0
- data/vendor/plugins/refinery/plugins.md +205 -0
- data/vendor/plugins/refinery/rails/init.rb +14 -0
- data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +26 -0
- data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +20 -0
- data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +24 -0
- data/vendor/plugins/refinery_dialogs/config/routes.rb +5 -0
- data/vendor/plugins/refinery_dialogs/rails/init.rb +7 -0
- data/vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb +5 -0
- data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +88 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +17 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +12 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/edit.html.erb +4 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/index.html.erb +27 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/new.html.erb +1 -0
- data/vendor/plugins/refinery_settings/config/routes.rb +5 -0
- data/vendor/plugins/refinery_settings/rails/init.rb +13 -0
- data/vendor/plugins/refinery_settings/settings.md +55 -0
- data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +94 -0
- data/vendor/plugins/resources/app/models/resource.rb +55 -0
- data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +33 -0
- data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +14 -0
- data/vendor/plugins/resources/app/views/admin/resources/edit.html.erb +1 -0
- data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +41 -0
- data/vendor/plugins/resources/app/views/admin/resources/insert.html.erb +67 -0
- data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -0
- data/vendor/plugins/resources/config/routes.rb +9 -0
- data/vendor/plugins/resources/rails/init.rb +12 -0
- data/vendor/plugins/resources/resources.md +9 -0
- data/vendor/plugins/themes/app/helpers/themes_helper.rb +25 -0
- data/vendor/plugins/themes/lib/theme_server.rb +30 -0
- data/vendor/plugins/themes/rails/init.rb +24 -0
- data/vendor/plugins/themes/themes.md +113 -0
- metadata +625 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
begin
|
2
|
+
|
3
|
+
require 'yard'
|
4
|
+
|
5
|
+
YARD::Rake::YardocTask.new do |t|
|
6
|
+
t.files = ['lib/**/*.rb',
|
7
|
+
'lib/*',
|
8
|
+
'app/**/*.rb',
|
9
|
+
'db/seeds.rb',
|
10
|
+
'config/preinitializer.rb',
|
11
|
+
'vendor/plugins/images/**/*.rb',
|
12
|
+
'vendor/plugins/authentication/**/*.rb',
|
13
|
+
'vendor/plugins/dashboard/**/*.rb',
|
14
|
+
'vendor/plugins/inquiries/**/*.rb',
|
15
|
+
'vendor/plugins/news/**/*.rb',
|
16
|
+
'vendor/plugins/pages/**/*.rb',
|
17
|
+
'vendor/plugins/refinery/**/*.rb',
|
18
|
+
'vendor/plugins/refinery_dialogs/**/*.rb',
|
19
|
+
'vendor/plugins/refinery_settings/**/*.rb',
|
20
|
+
'vendor/plugins/resources/**/*.rb',
|
21
|
+
'vendor/plugins/themes/**/*.rb',
|
22
|
+
'-', 'License', 'Contributors',
|
23
|
+
'vendor/plugins/themes/Themes.rdoc']
|
24
|
+
end
|
25
|
+
|
26
|
+
rescue LoadError
|
27
|
+
|
28
|
+
task :yard do
|
29
|
+
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,205 @@
|
|
1
|
+
# Extending Refinery with Plugins
|
2
|
+
|
3
|
+
## Introduction
|
4
|
+
|
5
|
+
__Refinery is designed to be easily extended so you can quickly customise your Refinery site to manage new areas you want to add to your site. If you see something you want to customise, the chances are you can customise it.__
|
6
|
+
|
7
|
+
The main way of extending Refinery is through adding new plugins to your app. By default you can edit pages in Refinery's backend, but how do you add a new section to manage like products?
|
8
|
+
|
9
|
+
## The Refinery Generator
|
10
|
+
|
11
|
+
The Refinery generator is a standard Rails generator that functions just like the scaffold generator. It allows you to quickly add new managed sections to the Refinery backend and get the front end views for free.
|
12
|
+
|
13
|
+
To see how to use the generator run
|
14
|
+
|
15
|
+
ruby script/generate refinery
|
16
|
+
|
17
|
+
Usage instructions should appear.
|
18
|
+
|
19
|
+
## Example of Using the Generator
|
20
|
+
|
21
|
+
Let's say you have a client who has a range of products they want to show on their website. You've considered using a few pages to manage the products but you've decided it would be much nicer if there was a separate place that had forms dedicated to managing products.
|
22
|
+
|
23
|
+
First decide what fields they need to manage. In our case, the client is going to want to edit the title and description of each product. They would also like a little "facts panel" to show on the right of the page.
|
24
|
+
|
25
|
+
So go to the root of your project and run
|
26
|
+
|
27
|
+
ruby script/generate refinery
|
28
|
+
|
29
|
+
This will output the help on how to use the generator. To generate the new section we want to manage products we run:
|
30
|
+
|
31
|
+
ruby script/generate refinery product title:string description:text facts:text
|
32
|
+
|
33
|
+
The generator will output a list of files it generated. You'll notice there is a new plugin that has been added in ``vendor/plugins/products``. This is where both the backend and front end files are held for this new products area.
|
34
|
+
|
35
|
+
A new database migration has been added to add the products table in so run:
|
36
|
+
|
37
|
+
rake db:migrate
|
38
|
+
|
39
|
+
Start up your app by running ``ruby script/server`` go to [http://localhost:3000](http://localhost:3000) and you'll see instantly a new menu item called "products". Click on that and you'll see there are no products yet.
|
40
|
+
|
41
|
+
Now go to the backend of your site by visiting [http://localhost:3000/admin](http://localhost:3000/admin) and logging in. You'll see a new tab called "Products", click on that and then click "Add a new product", fill the form and add an example product. Now go back to the front end and you'll see your product is showing up in the products part of your site.
|
42
|
+
|
43
|
+
Now you have a fully managed products section in Refinery, nice.
|
44
|
+
|
45
|
+
If you want to modify your generated plugin you need to understand the basic structure of how they work.
|
46
|
+
|
47
|
+
## The Structure of a Plugin
|
48
|
+
|
49
|
+
Think of a plugin in Refinery as a small Rails app or an "engine". Plugins have a structure that is extremely similar to a Rails app. Here's an example of Refinery's pages plugin (located in Refinery's ``vendor/plugins/pages/`` folder)
|
50
|
+
|
51
|
+
pages
|
52
|
+
|- app
|
53
|
+
| |- controllers
|
54
|
+
| | |- admin
|
55
|
+
| | | |- pages_dialogs_controller.rb
|
56
|
+
| | | |- page_parts_controller.rb
|
57
|
+
| | | |- pages_controller.rb
|
58
|
+
| | |- pages_controller.rb
|
59
|
+
| |- helpers
|
60
|
+
| | |- pages_helper.rb
|
61
|
+
| |- models
|
62
|
+
| | |- page.rb
|
63
|
+
| |- views
|
64
|
+
| |- pages
|
65
|
+
| | |- home.html.erb
|
66
|
+
| | |- show.html.erb
|
67
|
+
| |- admin
|
68
|
+
| |- pages
|
69
|
+
| |- _form.html.erb
|
70
|
+
| |- edit.html.erb
|
71
|
+
| |- index.html.erb
|
72
|
+
| |- new.html.erb
|
73
|
+
|- config
|
74
|
+
| |- routes.rb
|
75
|
+
|- rails
|
76
|
+
|- init.rb
|
77
|
+
|
78
|
+
|
79
|
+
### app/controllers
|
80
|
+
|
81
|
+
In this example you see one "public" controller ``app/controllers/pages_controller`` that is responsible for managing the front end when I view a page.
|
82
|
+
|
83
|
+
### app/controllers/admin
|
84
|
+
|
85
|
+
This bit is important. It's where all the controllers are held to manage pages in the Refinery back end in this example. You can ignore the ``pages_dialogs_controller.rb`` and ``page_parts_controller.rb`` for now and let's just focus on the ``admin/pages_controller.rb`` file. Here's what that looks like inside at a basic level:
|
86
|
+
|
87
|
+
class Admin::PagesController < Admin::BaseController
|
88
|
+
|
89
|
+
crudify :page, :conditions => "parent_id IS NULL",
|
90
|
+
:order => "position ASC", :paging => false
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
This single controller allows us to create, read, update and delete pages in the backend. With a little bit of Refinery magic we utilise the [crudify mixin](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery/crud.md) which gives us all of these regular features out of the box.
|
95
|
+
|
96
|
+
How crudify works is an entire topic of it's own. Checkout the [crudify documentation](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery/crud.md) to get an insight into how that works.
|
97
|
+
|
98
|
+
### app/views and app/helpers
|
99
|
+
|
100
|
+
Works exactly the same as ``app/views`` and ``app/helpers`` in a normal Rails app. You just put the views and helpers related to this plugin in here instead of in your actual main app directory.
|
101
|
+
|
102
|
+
### config/routes.rb
|
103
|
+
|
104
|
+
Works exactly the same as ``config/routes.rb`` in your app except this routes file only loads the routes for this plugin.
|
105
|
+
|
106
|
+
### rails/init.rb
|
107
|
+
|
108
|
+
This file runs when your site is started up. All is does is registers this plugin with Refinery so it knows that it exists, how to handle it in the Refinery admin menu and how to render recent activity on the Dashboard (see "Getting your Plugin to Report Activity in the Dashboard")
|
109
|
+
|
110
|
+
Refinery::Plugin.register do |plugin|
|
111
|
+
plugin.title = "Pages"
|
112
|
+
plugin.description = "Manage content pages"
|
113
|
+
plugin.version = 1.0
|
114
|
+
plugin.menu_match = /admin\/page(_dialog|part)?s$/
|
115
|
+
plugin.activity = {
|
116
|
+
:class => Page,
|
117
|
+
:url_prefix => "edit_",
|
118
|
+
:title => "title",
|
119
|
+
:created_image => "page_add.png",
|
120
|
+
:updated_image => "page_edit.png"
|
121
|
+
}
|
122
|
+
end
|
123
|
+
|
124
|
+
## Getting your Plugin to Report Activity in the Dashboard
|
125
|
+
|
126
|
+
Recent activity reporting is built right in, so all you need to do is follow the convention below and your plugin will start showing up in the recent activity list of the Dashboard.
|
127
|
+
|
128
|
+
In our example above we showed the use of ``plugin.activity`` for the pages plugin.
|
129
|
+
|
130
|
+
Refinery::Plugin.register do |plugin|
|
131
|
+
plugin.title = "Pages"
|
132
|
+
plugin.description = "Manage content pages"
|
133
|
+
plugin.version = 1.0
|
134
|
+
plugin.menu_match = /admin\/page(_dialog|part)?s$/
|
135
|
+
plugin.activity = {
|
136
|
+
:class => Page,
|
137
|
+
:url_prefix => "edit_",
|
138
|
+
:title => "title",
|
139
|
+
:created_image => "page_add.png",
|
140
|
+
:updated_image => "page_edit.png"
|
141
|
+
}
|
142
|
+
end
|
143
|
+
|
144
|
+
Here's what the different activity options mean:
|
145
|
+
|
146
|
+
### Required
|
147
|
+
|
148
|
+
:class
|
149
|
+
# the name of the class we're watching.
|
150
|
+
|
151
|
+
:url_prefix
|
152
|
+
# Just use "_edit" if you're not sure how this works.
|
153
|
+
#
|
154
|
+
# When it says "'About Us' page was updated about 4 hours ago", the page title "About Us"
|
155
|
+
# is linked to that page in a way we specify. So by setting "_edit" as a :url_prefix what
|
156
|
+
# we're doing is making it link to the page that allows us to edit this page.
|
157
|
+
# So the next result is edit_admin_page_url(page)
|
158
|
+
|
159
|
+
:title
|
160
|
+
# which attribute on the :class should be in the activty message. In our case it's "title"
|
161
|
+
# because we want it to run something like this "#{page.title} was updated about ...."
|
162
|
+
|
163
|
+
### Optional
|
164
|
+
|
165
|
+
:created_image and :updated_image
|
166
|
+
# the activity monitor knows if something is created or updated and shows a different icon
|
167
|
+
# depending on how you want that to look. You can specify the filename to any image you
|
168
|
+
# want in the public/images/refinery/icons/ directory.
|
169
|
+
|
170
|
+
## Search Engine Optimisation: Improving the default URLs
|
171
|
+
|
172
|
+
In our example above we extended Refinery to manage a products area. The problem is when I look at a product on the front end I get a URL like [http://localhost:3000/products/1](http://localhost:3000/products/1) but I would really like it to be something like [http://localhost:3000/products/my-product](http://localhost:3000/products/my-product)
|
173
|
+
|
174
|
+
To achieve this all you need to do is open up the product model (found in ``/vendor/plugins/products/app/models/product.rb``) and add the following line inside your class:
|
175
|
+
|
176
|
+
has_friendly_id :title, :use_slug => true
|
177
|
+
|
178
|
+
Note you want to change ``:title`` to the field which you want to show up in the URL.
|
179
|
+
|
180
|
+
This will work just fine for new products added from this point, but you'll want to migrate any existing products you have to use this new URL format. All you have to do is save each product you have in the database to make it create a nice URL for you.
|
181
|
+
|
182
|
+
ruby script/console
|
183
|
+
>> Product.all.each {|p| p.save };nil
|
184
|
+
|
185
|
+
Now all the products in your database will have nice URLs.
|
186
|
+
|
187
|
+
## How to get a WYSIWYG editor to show on your form fields
|
188
|
+
|
189
|
+
Refinery uses a standards compliant visual editor called [WYMeditor](http://www.wymeditor.org/)
|
190
|
+
|
191
|
+
_Note: When using the Refinery generator, if you apply a field type of "text" to any of your fields, they automatically load as a WYMEditor._
|
192
|
+
|
193
|
+
The WYSIWYG editor can only be applied to a ``textarea``. All you need to do is add a class of "wymeditor" to a ``textarea`` in your form and a WYSIWYG WYMEditor will load right in place.
|
194
|
+
|
195
|
+
### Example
|
196
|
+
|
197
|
+
Again going back to our product plugin example if you had this in your ``vendor/plugins/products/app/views/admin/products/_form.html.erb`` file:
|
198
|
+
|
199
|
+
<%= f.text_area :description %>
|
200
|
+
|
201
|
+
Just change that to:
|
202
|
+
|
203
|
+
<%= f.text_area :description, :class => "wymeditor" %>
|
204
|
+
|
205
|
+
Refresh and you're done.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Refinery::Plugin.register do |plugin|
|
2
|
+
plugin.title = "Refinery"
|
3
|
+
plugin.description = "Core refinery plugin"
|
4
|
+
plugin.version = 1.0
|
5
|
+
plugin.hide_from_menu = true
|
6
|
+
plugin.always_allow_access = true
|
7
|
+
plugin.menu_match = /admin\/(refinery_core|base)$/
|
8
|
+
end
|
9
|
+
require_dependency 'refinery/form_helpers'
|
10
|
+
require_dependency 'refinery/base_presenter'
|
11
|
+
|
12
|
+
presenters_path = Rails.root.join("app", "presenters").to_s
|
13
|
+
$LOAD_PATH << presenters_path
|
14
|
+
::ActiveSupport::Dependencies.load_paths << presenters_path
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Admin::DialogsController < Admin::BaseController
|
2
|
+
|
3
|
+
layout 'admin_dialog'
|
4
|
+
|
5
|
+
def show
|
6
|
+
@dialog_type = params[:id].try(:downcase)
|
7
|
+
|
8
|
+
if @dialog_type
|
9
|
+
@submit_button_text = "Insert"
|
10
|
+
|
11
|
+
url_params = params.reject {|key, value| key =~ /(action)|(controller)/}
|
12
|
+
|
13
|
+
if @dialog_type == 'image'
|
14
|
+
@iframe_src = insert_admin_images_url(:dialog => true)
|
15
|
+
elsif @dialog_type == 'link'
|
16
|
+
@iframe_src = link_to_admin_pages_dialogs_url(url_params)
|
17
|
+
end
|
18
|
+
|
19
|
+
render :layout => false #"admin_dialog"
|
20
|
+
|
21
|
+
else
|
22
|
+
render :nothing => true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<form class='wym_dialog wym_dialog_<%= @dialog_type %>'>
|
2
|
+
<input type='hidden' id='wym_dialog_type' class='wym_dialog_type' value='<%= @dialog_type %>' />
|
3
|
+
<iframe src='<%= @iframe_src %>' id='dialog_frame' frameborder='0'></iframe>
|
4
|
+
<div class='wym_hideables'>
|
5
|
+
<% if @dialog_type == "image" %>
|
6
|
+
<input type='text' id='wym_src' class='wym_src' value='' size='40' />
|
7
|
+
<input type='text' id='wym_alt' class='wym_alt' value='' size='40' />
|
8
|
+
<input type='text' id='wym_title' class='wym_title' value='' size='40' />
|
9
|
+
<% elsif @dialog_type == "link" %>
|
10
|
+
<input type='text' id='wym_href' class='wym_href' value='' size='40' />
|
11
|
+
<input type='text' id='wym_title' class='wym_title' value='' size='40' />
|
12
|
+
<input type='text' id='wym_target' class='wym_target' value='' size='40' />
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
<div id='dialog-form-actions' class='form-actions'>
|
16
|
+
<input class='wym_submit submit_dialog' type='button' value='<%= @submit_button_text ||= 'Save' %>' />
|
17
|
+
or
|
18
|
+
<a href='' class='wym_cancel close_dialog'><%= @cancel_button_text ||= "Cancel" %></a>
|
19
|
+
</div>
|
20
|
+
</form>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% use_caching = RefinerySetting.find_or_set(:use_resource_caching, false) -%>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<%= stylesheet_link_tag 'refinery/refinery' %>
|
6
|
+
<% if (using_google_libs = RefinerySetting.find_or_set(:use_google_ajax_libraries, true)) and !local_request? -%>
|
7
|
+
<script type='text/javascript' src="http://www.google.com/jsapi"></script>
|
8
|
+
<script type='text/javascript'>
|
9
|
+
google.load("jquery", "1.4");
|
10
|
+
google.load("jqueryui", "1.8");
|
11
|
+
</script>
|
12
|
+
<% end %>
|
13
|
+
<%= javascript_include_tag('jquery.js', 'jquery-ui-1.8rc1.min.js', :cache => (use_caching ? "cache/libraries" : false)) if !using_google_libs or local_request? %>
|
14
|
+
<%= javascript_include_tag 'refinery/admin', :cache => (use_caching ? "cache/admin_dialog" : false) %>
|
15
|
+
<%= yield :head %>
|
16
|
+
<%= javascript_include_tag "http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js" if RefinerySetting.find_or_set(:show_firebug_lite, false) -%>
|
17
|
+
</head>
|
18
|
+
<body id='dialog_container' class='dialog'>
|
19
|
+
<div id="flash_container">
|
20
|
+
<%= render :partial => '/shared/message' %>
|
21
|
+
</div>
|
22
|
+
<%= yield %>
|
23
|
+
</body>
|
24
|
+
</html>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
class RefinerySetting < ActiveRecord::Base
|
2
|
+
|
3
|
+
validates_presence_of :name
|
4
|
+
validates_uniqueness_of :name
|
5
|
+
|
6
|
+
serialize :value # stores into YAML format
|
7
|
+
|
8
|
+
# Number of settings to show per page when using will_paginate
|
9
|
+
def self.per_page
|
10
|
+
10
|
11
|
+
end
|
12
|
+
|
13
|
+
# prettier version of the name.
|
14
|
+
# site_name becomes Site Name
|
15
|
+
def title
|
16
|
+
self.name.titleize
|
17
|
+
end
|
18
|
+
|
19
|
+
# Access method that allows dot notation to work.
|
20
|
+
# say you had a setting called "site_name". You could access that by going RefinerySetting[:site_name]
|
21
|
+
# but with this you can also access that by going RefinerySettting.site_name
|
22
|
+
def self.method_missing(method, *args)
|
23
|
+
method_name = method.to_s
|
24
|
+
super(method, *args)
|
25
|
+
|
26
|
+
rescue NoMethodError
|
27
|
+
if method_name =~ /=$/
|
28
|
+
self[method_name.gsub('=', '')] = args.first
|
29
|
+
else
|
30
|
+
self[method_name]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.find_or_set(name, the_value)
|
35
|
+
setting = find_or_create_by_name(:name => name.to_s, :value => the_value)
|
36
|
+
setting.value
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.[](name)
|
40
|
+
self.find_by_name(name.to_s).value rescue nil
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.[]=(name, value)
|
44
|
+
setting = find_or_create_by_name(name.to_s)
|
45
|
+
setting.value = value
|
46
|
+
setting.save!
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
# Below is not very nice, but seems to be required
|
52
|
+
# The problem is when Rails serialises a fields like booleans
|
53
|
+
# it doesn't retreieve it back out as a boolean
|
54
|
+
# it just returns a string. This code maps the two boolean
|
55
|
+
# values correctly so a boolean is returned
|
56
|
+
REPLACEMENTS = {"true" => true, "false" => false}
|
57
|
+
|
58
|
+
def value
|
59
|
+
current_value = self[:value]
|
60
|
+
|
61
|
+
unless current_value.nil?
|
62
|
+
# This bit handles true and false so that true and false are actually returned
|
63
|
+
# not "0" and "1"
|
64
|
+
REPLACEMENTS.each do |current, new_value|
|
65
|
+
current_value = new_value if current_value == current
|
66
|
+
end
|
67
|
+
|
68
|
+
# converts the serialised value back to an integer
|
69
|
+
# if the value is an integer
|
70
|
+
begin
|
71
|
+
if current_value.to_i.to_s == current_value
|
72
|
+
current_value = current_value.to_i
|
73
|
+
end
|
74
|
+
rescue
|
75
|
+
current_value
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
return current_value
|
80
|
+
end
|
81
|
+
|
82
|
+
def value=(new_value)
|
83
|
+
# must convert to string if true or false supplied otherwise it becomes 0 or 1, unfortunately.
|
84
|
+
new_value = new_value.to_s if ["trueclass","falseclass"].include?(new_value.class.to_s.downcase)
|
85
|
+
self[:value] = new_value
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= error_messages_for :refinery_setting %>
|
2
|
+
<% form_for [:admin, @refinery_setting] do |f| %>
|
3
|
+
<div class='field'>
|
4
|
+
<% if params[:action] =~ /(new)|(create)/ %>
|
5
|
+
<%= f.label :name %>
|
6
|
+
<%= f.text_field :name, :class => "larger", :size => 67 %>
|
7
|
+
<% else %>
|
8
|
+
<label>Name</label>
|
9
|
+
<%= @refinery_setting.name.titleize %> <span class="preview">- (<%= h @refinery_setting.name %>)</span>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
<div class='field'>
|
13
|
+
<%= f.label :value %>
|
14
|
+
<%= f.text_area :value, :rows => 5, :cols => 100 %>
|
15
|
+
</div>
|
16
|
+
<%= render :partial => "/shared/admin/form_actions", :locals => {:f => f, :continue_editing => false} %>
|
17
|
+
<% end -%>
|