refinerycms 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTORS +8 -0
- data/LICENSE +21 -0
- data/README +40 -0
- data/app/controllers/application.rb +3 -0
- data/app/controllers/application_controller.rb +8 -0
- data/config/amazon_s3.yml +17 -0
- data/config/boot.rb +110 -0
- data/config/database.yml.example +20 -0
- data/config/environment.rb +67 -0
- data/config/environments/development.rb +17 -0
- data/config/environments/production.rb +19 -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/rackspace_cloudfiles.yml +14 -0
- data/config/routes.rb +19 -0
- data/db/migrate/20090903030652_remove_title_from_resources.rb +9 -0
- data/db/migrate/20090914025122_change_default_image_thumbnails.rb +9 -0
- data/db/migrate/20090916025552_resave_refinery_settings_through_serializer.rb +13 -0
- data/db/migrate/20090916045536_create_user_plugins.rb +41 -0
- data/db/migrate/20090916055243_add_position_to_user_plugins.rb +9 -0
- data/db/schema.rb +141 -0
- data/db/seeds.rb +109 -0
- data/lib/refinery_initializer.rb +9 -0
- data/public/.htaccess +40 -0
- data/public/404.html +29 -0
- data/public/422.html +30 -0
- data/public/500.html +30 -0
- data/public/favicon.ico +0 -0
- data/public/images/lightbox/bullet.gif +0 -0
- data/public/images/lightbox/close.gif +0 -0
- data/public/images/lightbox/closelabel.gif +0 -0
- data/public/images/lightbox/donate-button.gif +0 -0
- data/public/images/lightbox/download-icon.gif +0 -0
- data/public/images/lightbox/loading.gif +0 -0
- data/public/images/lightbox/nextlabel.gif +0 -0
- data/public/images/lightbox/prevlabel.gif +0 -0
- data/public/images/refinery/add.gif +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/cross.gif +0 -0
- data/public/images/refinery/deactive-gradient.gif +0 -0
- data/public/images/refinery/delete.gif +0 -0
- data/public/images/refinery/drag.gif +0 -0
- data/public/images/refinery/edit.gif +0 -0
- data/public/images/refinery/header-background.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/bin_closed.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/help.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_link.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/reorder.png +0 -0
- data/public/images/refinery/icons/tick.png +0 -0
- data/public/images/refinery/icons/user.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/info.gif +0 -0
- data/public/images/refinery/logo.png +0 -0
- data/public/images/refinery/m-tools.gif +0 -0
- data/public/images/refinery/magnifier.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.gif +0 -0
- data/public/images/refinery/search.gif +0 -0
- data/public/images/refinery/shad_blcorner.png +0 -0
- data/public/images/refinery/shad_bottom.png +0 -0
- data/public/images/refinery/shad_brcorner.png +0 -0
- data/public/images/refinery/shad_tlcorner.png +0 -0
- data/public/images/refinery/shad_trcorner.png +0 -0
- data/public/images/refinery/tableft.gif +0 -0
- data/public/images/refinery/tabright.gif +0 -0
- data/public/images/refinery/tick.gif +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 +26 -0
- data/public/javascripts/application.js +2 -0
- data/public/javascripts/builder.js +136 -0
- data/public/javascripts/controls.js +963 -0
- data/public/javascripts/dialog.js +52 -0
- data/public/javascripts/dragdrop.js +973 -0
- data/public/javascripts/effects.js +1128 -0
- data/public/javascripts/fastinit.js +84 -0
- data/public/javascripts/jquery/GPL-LICENSE.txt +278 -0
- data/public/javascripts/jquery/MIT-LICENSE.txt +20 -0
- data/public/javascripts/jquery/README +67 -0
- data/public/javascripts/jquery/jquery.js +11 -0
- data/public/javascripts/jquery/jquery.ui.draggable.js +1 -0
- data/public/javascripts/jquery/jquery.ui.js +1 -0
- data/public/javascripts/jquery/jquery.ui.resizable.js +1 -0
- data/public/javascripts/jquery/jquery.ui.sortable.js +1 -0
- data/public/javascripts/lightbox.js +503 -0
- data/public/javascripts/livepipe.js +356 -0
- data/public/javascripts/overlabel.js +66 -0
- data/public/javascripts/parse_url.js +38 -0
- data/public/javascripts/prototype.enhancements.js +24 -0
- data/public/javascripts/prototype.js +4320 -0
- data/public/javascripts/scriptaculous.js +47 -0
- data/public/javascripts/slider.js +275 -0
- data/public/javascripts/tabs.js +147 -0
- data/public/javascripts/thickbox.js +363 -0
- data/public/javascripts/tooltips.js +173 -0
- data/public/javascripts/wymeditor/boot_wym.js +163 -0
- data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +4986 -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 +0 -0
- data/public/stylesheets/application.css.example +76 -0
- data/public/stylesheets/formatting.css +0 -0
- data/public/stylesheets/formatting.css.example +86 -0
- data/public/stylesheets/home.css +0 -0
- data/public/stylesheets/home.css.example +27 -0
- data/public/stylesheets/ie6.css +0 -0
- data/public/stylesheets/ie7.css +0 -0
- data/public/stylesheets/lightbox.css +27 -0
- data/public/stylesheets/overlabel.css +21 -0
- data/public/stylesheets/refinery.css +1036 -0
- data/public/stylesheets/theme.css +36 -0
- data/public/stylesheets/thickbox.css +165 -0
- data/public/stylesheets/tooltips.css +38 -0
- data/public/stylesheets/wymeditor/skins/refinery/skin.css +211 -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/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.rb +514 -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/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 +93 -0
- data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +30 -0
- data/vendor/plugins/authentication/app/controllers/users_controller.rb +86 -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 +146 -0
- data/vendor/plugins/authentication/app/models/user_mailer.rb +25 -0
- data/vendor/plugins/authentication/app/models/user_observer.rb +11 -0
- data/vendor/plugins/authentication/app/models/user_plugin.rb +5 -0
- data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +42 -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 +41 -0
- data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -0
- data/vendor/plugins/authentication/app/views/sessions/new.html.erb +21 -0
- data/vendor/plugins/authentication/app/views/user_mailer/activation.html.erb +3 -0
- data/vendor/plugins/authentication/app/views/user_mailer/signup_notification.html.erb +8 -0
- data/vendor/plugins/authentication/app/views/users/new.html.erb +28 -0
- data/vendor/plugins/authentication/config/routes.rb +10 -0
- data/vendor/plugins/authentication/init.rb +13 -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/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 +16 -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/init.rb +7 -0
- data/vendor/plugins/images/app/controllers/admin/images_controller.rb +72 -0
- data/vendor/plugins/images/app/helpers/admin/images_helper.rb +17 -0
- data/vendor/plugins/images/app/models/image.rb +51 -0
- data/vendor/plugins/images/app/views/admin/images/_form.html.erb +36 -0
- data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +17 -0
- data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +21 -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 +43 -0
- data/vendor/plugins/images/app/views/admin/images/insert.html.erb +115 -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/init.rb +8 -0
- data/vendor/plugins/images/lib/tasks/images.rake +28 -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 +18 -0
- data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +19 -0
- data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +11 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +27 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +44 -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 +50 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +22 -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 +32 -0
- data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +33 -0
- data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +9 -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/init.rb +11 -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 +26 -0
- data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +33 -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 +36 -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 +23 -0
- data/vendor/plugins/news/app/views/news_items/show.html.erb +18 -0
- data/vendor/plugins/news/config/routes.rb +7 -0
- data/vendor/plugins/news/init.rb +7 -0
- data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +48 -0
- data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +35 -0
- data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +12 -0
- data/vendor/plugins/pages/app/controllers/pages_controller.rb +20 -0
- data/vendor/plugins/pages/app/helpers/pages_helper.rb +2 -0
- data/vendor/plugins/pages/app/models/page.rb +97 -0
- data/vendor/plugins/pages/app/models/page_part.rb +17 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +6 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +253 -0
- data/vendor/plugins/pages/app/views/admin/page_parts/new.html.erb +11 -0
- data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +179 -0
- data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +29 -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 +42 -0
- data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -0
- data/vendor/plugins/pages/app/views/pages/home.html.erb +9 -0
- data/vendor/plugins/pages/app/views/pages/show.html.erb +10 -0
- data/vendor/plugins/pages/config/routes.rb +12 -0
- data/vendor/plugins/pages/init.rb +8 -0
- data/vendor/plugins/refinery/app/controllers/admin/base_controller.rb +37 -0
- data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +14 -0
- data/vendor/plugins/refinery/app/helpers/application_helper.rb +84 -0
- data/vendor/plugins/refinery/app/views/admin/_head.html.erb +27 -0
- data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +85 -0
- data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +25 -0
- data/vendor/plugins/refinery/app/views/layouts/application.html.erb +32 -0
- data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +3 -0
- data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +12 -0
- data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +11 -0
- data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +16 -0
- data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +28 -0
- data/vendor/plugins/refinery/app/views/shared/_message.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +4 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +71 -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 +10 -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/init.rb +9 -0
- data/vendor/plugins/refinery/lib/crud.rb +134 -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/init.rb +7 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +36 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +8 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +20 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +18 -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 +45 -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 +15 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +23 -0
- data/vendor/plugins/refinery/lib/refinery.rb +15 -0
- data/vendor/plugins/refinery/lib/refinery/activity.rb +16 -0
- data/vendor/plugins/refinery/lib/refinery/application_controller.rb +53 -0
- data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +28 -0
- data/vendor/plugins/refinery/lib/refinery/initializer.rb +28 -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/tasks/refinery.rake +28 -0
- data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +24 -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 +31 -0
- data/vendor/plugins/refinery_dialogs/config/routes.rb +5 -0
- data/vendor/plugins/refinery_dialogs/init.rb +8 -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 +62 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +21 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_make_sortable.html.erb +7 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +13 -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 +33 -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/init.rb +9 -0
- data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +25 -0
- data/vendor/plugins/resources/app/models/resource.rb +36 -0
- data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +18 -0
- data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +16 -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 +33 -0
- data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -0
- data/vendor/plugins/resources/config/routes.rb +7 -0
- data/vendor/plugins/resources/init.rb +7 -0
- metadata +567 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'user_mailer'
|
3
|
+
|
4
|
+
class UserMailerTest < Test::Unit::TestCase
|
5
|
+
FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures'
|
6
|
+
CHARSET = "utf-8"
|
7
|
+
|
8
|
+
include ActionMailer::Quoting
|
9
|
+
|
10
|
+
def setup
|
11
|
+
ActionMailer::Base.delivery_method = :test
|
12
|
+
ActionMailer::Base.perform_deliveries = true
|
13
|
+
ActionMailer::Base.deliveries = []
|
14
|
+
|
15
|
+
@expected = TMail::Mail.new
|
16
|
+
@expected.set_content_type "text", "plain", { "charset" => CHARSET }
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_dummy_test
|
20
|
+
#do nothing
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
def read_fixture(action)
|
25
|
+
IO.readlines("#{FIXTURES_PATH}/user_mailer/#{action}")
|
26
|
+
end
|
27
|
+
|
28
|
+
def encode(subject)
|
29
|
+
quoted_printable(subject, CHARSET)
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,164 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class UserTest < Test::Unit::TestCase
|
4
|
+
# Be sure to include AuthenticatedTestHelper in test/test_helper.rb instead.
|
5
|
+
# Then, you can remove it from this and the functional test.
|
6
|
+
include AuthenticatedTestHelper
|
7
|
+
fixtures :users
|
8
|
+
|
9
|
+
def test_should_create_user
|
10
|
+
assert_difference 'User.count' do
|
11
|
+
user = create_user
|
12
|
+
assert !user.new_record?, "#{user.errors.full_messages.to_sentence}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_should_initialize_activation_code_upon_creation
|
17
|
+
user = create_user
|
18
|
+
user.reload
|
19
|
+
assert_not_nil user.activation_code
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_create_and_start_in_pending_state
|
23
|
+
user = create_user
|
24
|
+
user.reload
|
25
|
+
assert user.pending?
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def test_should_require_login
|
30
|
+
assert_no_difference 'User.count' do
|
31
|
+
u = create_user(:login => nil)
|
32
|
+
assert u.errors.on(:login)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_should_require_password
|
37
|
+
assert_no_difference 'User.count' do
|
38
|
+
u = create_user(:password => nil)
|
39
|
+
assert u.errors.on(:password)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_should_require_password_confirmation
|
44
|
+
assert_no_difference 'User.count' do
|
45
|
+
u = create_user(:password_confirmation => nil)
|
46
|
+
assert u.errors.on(:password_confirmation)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_should_require_email
|
51
|
+
assert_no_difference 'User.count' do
|
52
|
+
u = create_user(:email => nil)
|
53
|
+
assert u.errors.on(:email)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_should_reset_password
|
58
|
+
users(:quentin).update_attributes(:password => 'new password', :password_confirmation => 'new password')
|
59
|
+
assert_equal users(:quentin), User.authenticate('quentin', 'new password')
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_should_not_rehash_password
|
63
|
+
users(:quentin).update_attributes(:login => 'quentin2')
|
64
|
+
assert_equal users(:quentin), User.authenticate('quentin2', 'test')
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_should_authenticate_user
|
68
|
+
assert_equal users(:quentin), User.authenticate('quentin', 'test')
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_should_set_remember_token
|
72
|
+
users(:quentin).remember_me
|
73
|
+
assert_not_nil users(:quentin).remember_token
|
74
|
+
assert_not_nil users(:quentin).remember_token_expires_at
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_should_unset_remember_token
|
78
|
+
users(:quentin).remember_me
|
79
|
+
assert_not_nil users(:quentin).remember_token
|
80
|
+
users(:quentin).forget_me
|
81
|
+
assert_nil users(:quentin).remember_token
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_should_remember_me_for_one_week
|
85
|
+
before = 1.week.from_now.utc
|
86
|
+
users(:quentin).remember_me_for 1.week
|
87
|
+
after = 1.week.from_now.utc
|
88
|
+
assert_not_nil users(:quentin).remember_token
|
89
|
+
assert_not_nil users(:quentin).remember_token_expires_at
|
90
|
+
assert users(:quentin).remember_token_expires_at.between?(before, after)
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_should_remember_me_until_one_week
|
94
|
+
time = 1.week.from_now.utc
|
95
|
+
users(:quentin).remember_me_until time
|
96
|
+
assert_not_nil users(:quentin).remember_token
|
97
|
+
assert_not_nil users(:quentin).remember_token_expires_at
|
98
|
+
assert_equal users(:quentin).remember_token_expires_at, time
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_should_remember_me_default_two_weeks
|
102
|
+
before = 2.weeks.from_now.utc
|
103
|
+
users(:quentin).remember_me
|
104
|
+
after = 2.weeks.from_now.utc
|
105
|
+
assert_not_nil users(:quentin).remember_token
|
106
|
+
assert_not_nil users(:quentin).remember_token_expires_at
|
107
|
+
assert users(:quentin).remember_token_expires_at.between?(before, after)
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_should_register_passive_user
|
111
|
+
user = create_user(:password => nil, :password_confirmation => nil)
|
112
|
+
assert user.passive?
|
113
|
+
user.update_attributes(:password => 'new password', :password_confirmation => 'new password')
|
114
|
+
user.register!
|
115
|
+
assert user.pending?
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_should_suspend_user
|
119
|
+
users(:quentin).suspend!
|
120
|
+
assert users(:quentin).suspended?
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_suspended_user_should_not_authenticate
|
124
|
+
users(:quentin).suspend!
|
125
|
+
assert_not_equal users(:quentin), User.authenticate('quentin', 'test')
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_should_unsuspend_user_to_active_state
|
129
|
+
users(:quentin).suspend!
|
130
|
+
assert users(:quentin).suspended?
|
131
|
+
users(:quentin).unsuspend!
|
132
|
+
assert users(:quentin).active?
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_should_unsuspend_user_with_nil_activation_code_and_activated_at_to_passive_state
|
136
|
+
users(:quentin).suspend!
|
137
|
+
User.update_all :activation_code => nil, :activated_at => nil
|
138
|
+
assert users(:quentin).suspended?
|
139
|
+
users(:quentin).reload.unsuspend!
|
140
|
+
assert users(:quentin).passive?
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_should_unsuspend_user_with_activation_code_and_nil_activated_at_to_pending_state
|
144
|
+
users(:quentin).suspend!
|
145
|
+
User.update_all :activation_code => 'foo-bar', :activated_at => nil
|
146
|
+
assert users(:quentin).suspended?
|
147
|
+
users(:quentin).reload.unsuspend!
|
148
|
+
assert users(:quentin).pending?
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_should_delete_user
|
152
|
+
assert_nil users(:quentin).deleted_at
|
153
|
+
users(:quentin).delete!
|
154
|
+
assert_not_nil users(:quentin).deleted_at
|
155
|
+
assert users(:quentin).deleted?
|
156
|
+
end
|
157
|
+
|
158
|
+
protected
|
159
|
+
def create_user(options = {})
|
160
|
+
record = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options))
|
161
|
+
record.register! if record.valid?
|
162
|
+
record
|
163
|
+
end
|
164
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Admin::DashboardController < Admin::BaseController
|
2
|
+
|
3
|
+
def index
|
4
|
+
@recent_activity = []
|
5
|
+
Refinery::Plugins.active.each do |plugin|
|
6
|
+
plugin.activity.each do |activity|
|
7
|
+
include_associations = []
|
8
|
+
include_associations.push(:slugs) if activity.class.methods.include? "find_one_with_friendly" # wee performance gain if slugs are used.
|
9
|
+
@recent_activity += activity.class.find(:all, :order => activity.order, :limit => activity.limit, :conditions => activity.conditions, :include => include_associations)
|
10
|
+
end rescue nil
|
11
|
+
end
|
12
|
+
|
13
|
+
@recent_activity = @recent_activity.sort{|x,y| y.updated_at <=> x.updated_at}[0..((RefinerySetting.activity_show_limit ||= 15)-1)]
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Admin::DashboardHelper
|
2
|
+
|
3
|
+
def activity_message_for(record)
|
4
|
+
unless (activity = Refinery::Plugins.active.find_activity_by_model(record.class)).nil? or activity.title.blank?
|
5
|
+
title = eval "record.#{activity.title}"
|
6
|
+
link = link_to truncate(title, :length => 60),
|
7
|
+
eval("#{activity.url_prefix}admin_#{record.class.name.underscore.downcase}_url(record)"),
|
8
|
+
:title => "See '#{title}'"
|
9
|
+
|
10
|
+
# next work out which action occured and how long ago it happened
|
11
|
+
action = record.updated_at.eql?(record.created_at) ? "created" : "updated"
|
12
|
+
|
13
|
+
message = "<td>#{refinery_icon_tag("#{eval("activity.#{action}_image")}")}</td>"
|
14
|
+
message << "<td>#{link} #{record.class.name.titleize.downcase} was #{action}</td>"
|
15
|
+
message << "<td align='right'>#{time_ago_in_words(eval("record.#{action}_at"))} ago</td>"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<h2>Latest Activity</h2>
|
2
|
+
<% if @recent_activity.size > 0 %>
|
3
|
+
<table id='recent_activity'>
|
4
|
+
<% @recent_activity.each do |change| %>
|
5
|
+
<tr class='<%= cycle("on", "") %>'>
|
6
|
+
<%= activity_message_for change %>
|
7
|
+
</tr>
|
8
|
+
<% end %>
|
9
|
+
</table>
|
10
|
+
<% else %>
|
11
|
+
<p>
|
12
|
+
Nothing has happened yet.
|
13
|
+
</p>
|
14
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class='clearfix'>
|
2
|
+
<div id='records'>
|
3
|
+
<%= render :partial => "recent_activity" %>
|
4
|
+
</div>
|
5
|
+
<div id='actions'>
|
6
|
+
<h2>Common Tasks</h2>
|
7
|
+
<ul>
|
8
|
+
<% if Refinery::Plugins.active.titles.include?("Pages") %>
|
9
|
+
<li>
|
10
|
+
<%= link_to "Add a new page", new_admin_page_url, :class => "add_icon" %>
|
11
|
+
</li>
|
12
|
+
<li>
|
13
|
+
<%= link_to "Update a page", admin_pages_url, :class => "edit_icon" %>
|
14
|
+
</li>
|
15
|
+
<% end %>
|
16
|
+
<% if Refinery::Plugins.active.titles.include?("Resources") %>
|
17
|
+
<li>
|
18
|
+
<%= link_to "Upload a file", new_admin_resource_url(:dialog => true, :width => 600, :height => 300), :class => "add_icon" %>
|
19
|
+
</li>
|
20
|
+
<% end %>
|
21
|
+
<% if Refinery::Plugins.active.titles.include?("Images") %>
|
22
|
+
<li>
|
23
|
+
<%= link_to "Upload an image", new_admin_image_url(:dialog => true, :width => 600, :height => 300), :class => "add_icon" %>
|
24
|
+
</li>
|
25
|
+
<% end %>
|
26
|
+
<li>
|
27
|
+
<%= link_to "See home page", root_url, :class => "go_icon", :target => "_blank" %>
|
28
|
+
</li>
|
29
|
+
</ul>
|
30
|
+
</div>
|
31
|
+
</div>
|
@@ -0,0 +1,72 @@
|
|
1
|
+
class Admin::ImagesController < Admin::BaseController
|
2
|
+
|
3
|
+
include Admin::ImagesHelper
|
4
|
+
|
5
|
+
crudify :image, :order => "created_at DESC", :conditions => "parent_id is NULL", :sortable => false
|
6
|
+
before_filter :change_list_mode_if_specified
|
7
|
+
|
8
|
+
def new
|
9
|
+
@image = Image.new
|
10
|
+
@url_override = admin_images_url(:dialog => from_dialog?)
|
11
|
+
end
|
12
|
+
|
13
|
+
def insert
|
14
|
+
self.new if @image.nil?
|
15
|
+
@dialog = from_dialog?
|
16
|
+
@thickbox = !params[:thickbox].blank?
|
17
|
+
@field = params[:field]
|
18
|
+
@update_image = params[:update_image]
|
19
|
+
@thumbnail = params[:thumbnail]
|
20
|
+
@callback = params[:callback]
|
21
|
+
@conditions = params[:conditions]
|
22
|
+
@url_override = admin_images_url(:dialog => @dialog, :insert => true)
|
23
|
+
|
24
|
+
unless params[:conditions].blank?
|
25
|
+
extra_condition = params[:conditions].split(',')
|
26
|
+
|
27
|
+
extra_condition[1] = true if extra_condition[1] == "true"
|
28
|
+
extra_condition[1] = false if extra_condition[1] == "false"
|
29
|
+
extra_condition[1] = nil if extra_condition[1] == "nil"
|
30
|
+
paginate_images({extra_condition[0].to_sym => extra_condition[1]})
|
31
|
+
else
|
32
|
+
paginate_images
|
33
|
+
end
|
34
|
+
render :action => "insert"
|
35
|
+
end
|
36
|
+
|
37
|
+
def create
|
38
|
+
@image = Image.create(params[:image])
|
39
|
+
saved = @image.valid?
|
40
|
+
flash.now[:notice] = "'#{@image.title}' was successfully created." if saved
|
41
|
+
|
42
|
+
unless params[:insert]
|
43
|
+
if saved
|
44
|
+
unless from_dialog?
|
45
|
+
redirect_to :action => 'index'
|
46
|
+
else
|
47
|
+
render :text => "<script type='text/javascript'>parent.window.location = '#{admin_images_url}';</script>"
|
48
|
+
end
|
49
|
+
else
|
50
|
+
render :action => 'new'
|
51
|
+
end
|
52
|
+
else
|
53
|
+
# set the last page as the current page for image grid.
|
54
|
+
#@paginate_page_number = Image.last_page(Image.find_all_by_parent_id(nil, :order => "created_at DESC"), params[:dialog])
|
55
|
+
# currently images are sorting by date desc so the first page is always the selected page now.
|
56
|
+
@image_id = @image.id
|
57
|
+
@image = nil
|
58
|
+
self.insert
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
protected
|
63
|
+
|
64
|
+
def paginate_images(conditions={})
|
65
|
+
@images = Image.paginate :page => (@paginate_page_number ||= params[:page]),
|
66
|
+
:conditions => {:parent_id => nil}.merge!(conditions),
|
67
|
+
:order => 'created_at DESC',
|
68
|
+
:per_page => Image.per_page(from_dialog?),
|
69
|
+
:include => :thumbnails
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Admin::ImagesHelper
|
2
|
+
|
3
|
+
def image_views
|
4
|
+
RefinerySetting.find_or_set(:image_views, [:grid, :list])
|
5
|
+
end
|
6
|
+
|
7
|
+
def current_image_view
|
8
|
+
RefinerySetting.find_or_set(:preferred_image_view, :list)
|
9
|
+
end
|
10
|
+
|
11
|
+
def change_list_mode_if_specified
|
12
|
+
unless params[:action] != "index" or params[:view].blank? or !image_views.include? params[:view].to_sym
|
13
|
+
RefinerySetting[:preferred_image_view] = params[:view]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
class Image < ActiveRecord::Base
|
2
|
+
|
3
|
+
has_many :pages
|
4
|
+
|
5
|
+
has_attachment :content_type => :image,
|
6
|
+
:storage => :file_system,
|
7
|
+
:path_prefix => 'public/system/images',
|
8
|
+
:processor => 'Rmagick',
|
9
|
+
:thumbnails => ((((thumbnails = RefinerySetting.find_or_set(:image_thumbnails, {})).is_a?(Hash) ? thumbnails : (RefinerySetting[:image_thumbnails] = {}))) rescue {}),
|
10
|
+
:max_size => 5.megabytes
|
11
|
+
|
12
|
+
acts_as_indexed :fields => [:title]
|
13
|
+
|
14
|
+
def validate
|
15
|
+
errors.add_to_base("You must choose a file to upload") unless self.filename
|
16
|
+
|
17
|
+
unless self.filename.nil?
|
18
|
+
[:size].each do |attr_name|
|
19
|
+
enum = attachment_options[attr_name]
|
20
|
+
|
21
|
+
errors.add_to_base("Files should be smaller than 50 MB in size") unless enum.nil? || enum.include?(send(attr_name))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def title
|
28
|
+
self.filename.gsub(/\.\w+$/, '').titleize
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.per_page(dialog = false)
|
32
|
+
size = (dialog ? 18 : 20)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.last_page(images, dialog=false)
|
36
|
+
page = unless images.size <= self.per_page(dialog)
|
37
|
+
(images.size / self.per_page(dialog).to_f).ceil
|
38
|
+
else
|
39
|
+
nil # this must be nil, it can't be 0 as there apparently isn't a 0th page.
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.thumbnails
|
44
|
+
find(:all, :conditions => "parent_id not null")
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.originals
|
48
|
+
find_all_by_parent_id(nil)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<%= error_messages_for :image %>
|
2
|
+
|
3
|
+
<% form_for [:admin, @image], :url => @url_override || @url,
|
4
|
+
:html => {:multipart => true, :style => 'float: left; width: 70%'} do |f| %>
|
5
|
+
<div class='field'>
|
6
|
+
<%= f.label :uploaded_data, 'Image' %>
|
7
|
+
<% if params[:action] =~ /(edit)|(update)/ %>
|
8
|
+
Use current image
|
9
|
+
<em>or</em>, replace it with this one...
|
10
|
+
<% end %>
|
11
|
+
<%= f.file_field :uploaded_data %>
|
12
|
+
</div>
|
13
|
+
<div class='form-actions'>
|
14
|
+
<%= f.submit (params[:dialog] ? 'Upload' : 'Save') %>
|
15
|
+
<% unless params[:dialog] %>
|
16
|
+
or
|
17
|
+
<%= link_to "Cancel", admin_images_url, :title => "Cancelling will lose all changes you've made to this image", :class => 'close_dialog' %>
|
18
|
+
<% end %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<% if @thickbox %>
|
22
|
+
<input type='hidden' name='thickbox' value='<%= @thickbox %>' />
|
23
|
+
<input type='hidden' name='field' value='<%= @field %>' />
|
24
|
+
<input type='hidden' name='update_image' value='<%= @update_image %>' />
|
25
|
+
<input type='hidden' name='thumbnail' value='<%= @thumbnail %>' />
|
26
|
+
<input type='hidden' name='callback' value='<%= @callback %>' />
|
27
|
+
<input type='hidden' name='conditions' value='<%= @conditions %>' >
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<% if params[:action] =~ /(edit)|(update)/ %>
|
32
|
+
<div style='float: right; width: 25%;'>
|
33
|
+
<label>Current Image</label>
|
34
|
+
<%= image_fu @image, :medium, { :class => "brown_border" } %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|