community_engine 2.3.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +13 -5
- data/.travis.yml +5 -4
- data/CHANGELOG +43 -5
- data/Gemfile +1 -16
- data/README.markdown +22 -19
- data/UPGRADING.markdown +10 -0
- data/about.yml +1 -1
- data/app/assets/javascripts/community_engine.js +187 -18
- data/app/assets/javascripts/cropper.js +86 -565
- data/app/assets/javascripts/forum.js +26 -71
- data/app/assets/javascripts/jquery.migrate.js +521 -0
- data/app/assets/stylesheets/_colors.css.scss +100 -0
- data/app/assets/stylesheets/_font.css.scss +17 -0
- data/app/assets/stylesheets/_forms.css.scss +20 -0
- data/app/assets/stylesheets/_forum.css.scss +0 -0
- data/app/assets/stylesheets/_grid.css.scss +7 -0
- data/app/assets/stylesheets/_layers.css.scss +7 -0
- data/app/assets/stylesheets/_layout.css.scss +28 -0
- data/app/assets/stylesheets/community_engine.css.scss +18 -0
- data/app/assets/stylesheets/cropper.css +6 -182
- data/app/controllers/activities_controller.rb +10 -10
- data/app/controllers/admin_controller.rb +23 -23
- data/app/controllers/ads_controller.rb +16 -5
- data/app/controllers/albums_controller.rb +11 -5
- data/app/controllers/base_controller.rb +5 -8
- data/app/controllers/categories_controller.rb +31 -31
- data/app/controllers/clippings_controller.rb +18 -12
- data/app/controllers/comments_controller.rb +17 -8
- data/app/controllers/events_controller.rb +25 -21
- data/app/controllers/favorites_controller.rb +12 -12
- data/app/controllers/forums_controller.rb +20 -9
- data/app/controllers/friendships_controller.rb +41 -48
- data/app/controllers/homepage_features_controller.rb +11 -5
- data/app/controllers/invitations_controller.rb +15 -9
- data/app/controllers/messages_controller.rb +25 -19
- data/app/controllers/metro_areas_controller.rb +9 -3
- data/app/controllers/moderators_controller.rb +1 -1
- data/app/controllers/monitorships_controller.rb +2 -2
- data/app/controllers/pages_controller.rb +16 -4
- data/app/controllers/password_resets_controller.rb +0 -1
- data/app/controllers/photos_controller.rb +32 -30
- data/app/controllers/posts_controller.rb +33 -17
- data/app/controllers/rsvps_controller.rb +8 -4
- data/app/controllers/sb_posts_controller.rb +22 -18
- data/app/controllers/sessions_controller.rb +2 -1
- data/app/controllers/sitemap_controller.rb +8 -8
- data/app/controllers/statistics_controller.rb +9 -8
- data/app/controllers/tags_controller.rb +26 -24
- data/app/controllers/topics_controller.rb +10 -6
- data/app/controllers/users_controller.rb +63 -34
- data/app/helpers/base_helper.rb +119 -29
- data/app/helpers/friendships_helper.rb +3 -3
- data/app/helpers/posts_helper.rb +5 -7
- data/app/models/acts_as_taggable_on/tag.rb +12 -13
- data/app/models/ad.rb +2 -5
- data/app/models/album.rb +0 -2
- data/app/models/category.rb +6 -7
- data/app/models/clipping.rb +2 -5
- data/app/models/clipping_image.rb +5 -5
- data/app/models/comment.rb +4 -5
- data/app/models/country.rb +2 -4
- data/app/models/event.rb +1 -2
- data/app/models/favorite.rb +5 -10
- data/app/models/forum.rb +0 -2
- data/app/models/friendship.rb +3 -5
- data/app/models/friendship_status.rb +0 -2
- data/app/models/homepage_feature.rb +4 -6
- data/app/models/invitation.rb +6 -8
- data/app/models/message.rb +25 -26
- data/app/models/message_thread.rb +1 -1
- data/app/models/metro_area.rb +0 -2
- data/app/models/page.rb +0 -2
- data/app/models/photo.rb +8 -8
- data/app/models/poll.rb +7 -9
- data/app/models/post.rb +11 -15
- data/app/models/role.rb +1 -2
- data/app/models/rsvp.rb +0 -3
- data/app/models/sb_post.rb +14 -9
- data/app/models/state.rb +0 -2
- data/app/models/topic.rb +5 -6
- data/app/models/user.rb +50 -63
- data/app/models/vote.rb +1 -1
- data/app/views/activities/_activity.html.haml +9 -9
- data/app/views/activities/destroy.js.erb +1 -0
- data/app/views/activities/index.html.haml +13 -13
- data/app/views/activities/network.html.haml +10 -13
- data/app/views/admin/comments.html.haml +48 -70
- data/app/views/admin/events.html.haml +20 -27
- data/app/views/admin/messages.html.haml +2 -3
- data/app/views/admin/update.js.erb +1 -0
- data/app/views/admin/users.html.haml +51 -66
- data/app/views/ads/_form.html.haml +21 -0
- data/app/views/ads/edit.html.haml +6 -46
- data/app/views/ads/index.html.haml +25 -39
- data/app/views/ads/new.html.haml +4 -43
- data/app/views/ads/show.html.haml +18 -35
- data/app/views/albums/_form.html.haml +17 -12
- data/app/views/albums/edit.html.haml +12 -14
- data/app/views/albums/new.html.haml +8 -13
- data/app/views/albums/show.html.haml +25 -32
- data/app/views/base/_homepage_banner_message.html.haml +5 -19
- data/app/views/base/advertise.html.haml +5 -8
- data/app/views/base/site_index.html.haml +25 -27
- data/app/views/categories/_form.html.haml +8 -0
- data/app/views/categories/_menu_item.html.haml +13 -0
- data/app/views/categories/_tips.html.haml +2 -2
- data/app/views/categories/edit.html.haml +3 -33
- data/app/views/categories/index.html.haml +18 -28
- data/app/views/categories/new.html.haml +3 -8
- data/app/views/categories/show.html.haml +33 -36
- data/app/views/clippings/_clipping.html.haml +10 -17
- data/app/views/clippings/_favorite.html.haml +14 -0
- data/app/views/clippings/_form.html.haml +15 -0
- data/app/views/clippings/_images.html.haml +1 -1
- data/app/views/clippings/_menu_item.html.haml +6 -0
- data/app/views/clippings/edit.html.haml +12 -23
- data/app/views/clippings/index.html.haml +29 -30
- data/app/views/clippings/load_images_from_uri.js.erb +1 -0
- data/app/views/clippings/new.html.haml +9 -26
- data/app/views/clippings/new_clipping.html.haml +30 -77
- data/app/views/clippings/show.html.haml +48 -53
- data/app/views/clippings/site_index.html.haml +19 -32
- data/app/views/comments/_comment.html.haml +40 -40
- data/app/views/comments/_comment_form.html.haml +22 -46
- data/app/views/comments/_edit_form.html.haml +13 -28
- data/app/views/comments/create.js.erb +25 -0
- data/app/views/comments/destroy.js.erb +3 -0
- data/app/views/comments/edit.js.erb +11 -0
- data/app/views/comments/index.html.haml +12 -22
- data/app/views/comments/update.js.erb +14 -0
- data/app/views/events/_event.html.haml +26 -24
- data/app/views/events/_form.html.haml +18 -0
- data/app/views/events/_menu_item.html.haml +6 -0
- data/app/views/events/_subscribe.html.haml +1 -1
- data/app/views/events/edit.html.haml +7 -32
- data/app/views/events/index.html.haml +11 -19
- data/app/views/events/new.html.haml +2 -31
- data/app/views/events/show.html.haml +54 -24
- data/app/views/favorites/create.js.erb +10 -0
- data/app/views/favorites/destroy.js.erb +6 -0
- data/app/views/favorites/index.html.haml +6 -8
- data/app/views/forums/_form.html.haml +10 -20
- data/app/views/forums/_menu_item.html.haml +6 -0
- data/app/views/forums/edit.html.haml +8 -10
- data/app/views/forums/index.html.haml +56 -64
- data/app/views/forums/new.html.haml +5 -8
- data/app/views/forums/show.html.haml +65 -72
- data/app/views/friendships/_friendship.html.haml +14 -16
- data/app/views/friendships/accepted.html.haml +7 -11
- data/app/views/friendships/create.js.haml +1 -0
- data/app/views/friendships/denied.html.haml +4 -8
- data/app/views/friendships/pending.html.haml +4 -6
- data/app/views/friendships/show.html.haml +10 -11
- data/app/views/homepage_features/_form.html.haml +6 -0
- data/app/views/homepage_features/edit.html.haml +5 -30
- data/app/views/homepage_features/index.html.haml +22 -28
- data/app/views/homepage_features/new.html.haml +2 -30
- data/app/views/homepage_features/show.html.haml +27 -29
- data/app/views/invitations/index.html.haml +8 -0
- data/app/views/invitations/new.html.haml +21 -30
- data/app/views/kaminari/bootstrap/_first_page.html.erb +13 -0
- data/app/views/kaminari/bootstrap/_gap.html.erb +8 -0
- data/app/views/kaminari/bootstrap/_last_page.html.erb +13 -0
- data/app/views/kaminari/bootstrap/_next_page.html.erb +13 -0
- data/app/views/kaminari/bootstrap/_page.html.erb +12 -0
- data/app/views/kaminari/bootstrap/_paginator.html.erb +25 -0
- data/app/views/kaminari/bootstrap/_prev_page.html.erb +13 -0
- data/app/views/layouts/application.html.haml +26 -37
- data/app/views/messages/_form.html.haml +6 -12
- data/app/views/messages/_inbox.html.haml +34 -39
- data/app/views/messages/_menu_item.html.haml +11 -0
- data/app/views/messages/_sent.html.haml +22 -33
- data/app/views/messages/_sidebar_nav.html.haml +12 -9
- data/app/views/messages/index.html.haml +2 -2
- data/app/views/messages/new.html.haml +2 -9
- data/app/views/messages/show.html.haml +28 -36
- data/app/views/metro_areas/_form.html.haml +6 -0
- data/app/views/metro_areas/edit.html.haml +6 -14
- data/app/views/metro_areas/index.html.haml +19 -26
- data/app/views/metro_areas/new.html.haml +4 -14
- data/app/views/metro_areas/show.html.haml +13 -21
- data/app/views/moderators/_toggle.html.haml +6 -0
- data/app/views/moderators/create.js.erb +5 -0
- data/app/views/moderators/destroy.js.erb +1 -0
- data/app/views/monitorships/create.js.erb +1 -0
- data/app/views/monitorships/destroy.js.erb +1 -0
- data/app/views/pages/_form.html.haml +16 -23
- data/app/views/pages/edit.html.haml +2 -14
- data/app/views/pages/index.html.haml +32 -32
- data/app/views/pages/new.html.haml +5 -12
- data/app/views/pages/show.html.haml +4 -8
- data/app/views/password_resets/edit.html.haml +6 -14
- data/app/views/password_resets/new.html.haml +7 -11
- data/app/views/photo_manager/index.html.haml +45 -43
- data/app/views/photos/_form.html.haml +24 -0
- data/app/views/photos/_manage_photos.html.haml +14 -6
- data/app/views/photos/_show_image_list.html.haml +2 -2
- data/app/views/photos/create.js.erb +1 -0
- data/app/views/photos/edit.html.haml +10 -38
- data/app/views/photos/index.html.haml +20 -20
- data/app/views/photos/manage_photos.js.erb +5 -0
- data/app/views/photos/new.html.haml +11 -49
- data/app/views/photos/recent.html.haml +6 -6
- data/app/views/photos/show.html.haml +48 -52
- data/app/views/polls/_edit.html.haml +6 -10
- data/app/views/polls/_excerpt.html.haml +3 -4
- data/app/views/polls/_new.html.haml +10 -9
- data/app/views/polls/_poll_ui.html.haml +30 -34
- data/app/views/posts/_author_profile.html.haml +12 -11
- data/app/views/posts/_favorited_post.html.haml +8 -10
- data/app/views/posts/_form.html.haml +40 -0
- data/app/views/posts/_menu_item.html.haml +6 -0
- data/app/views/posts/_post.html.haml +27 -24
- data/app/views/posts/_send_to_friend.html.haml +26 -0
- data/app/views/posts/edit.html.haml +11 -48
- data/app/views/posts/featured.html.haml +7 -12
- data/app/views/posts/index.html.haml +14 -18
- data/app/views/posts/manage.html.haml +44 -59
- data/app/views/posts/new.html.haml +9 -64
- data/app/views/posts/popular.html.haml +25 -30
- data/app/views/posts/preview.html.haml +27 -26
- data/app/views/posts/recent.html.haml +20 -27
- data/app/views/posts/send_to_friend.js.erb +3 -0
- data/app/views/posts/show.html.haml +67 -76
- data/app/views/rsvps/_form.html.haml +3 -0
- data/app/views/rsvps/edit.html.haml +3 -9
- data/app/views/rsvps/new.html.haml +3 -9
- data/app/views/sb_posts/_dummy_forum_post.html.haml +13 -0
- data/app/views/sb_posts/_edit.html.haml +6 -0
- data/app/views/sb_posts/_edit_script.js.erb +14 -0
- data/app/views/sb_posts/_reply_form.html.haml +14 -35
- data/app/views/sb_posts/_reply_script.js.erb +13 -0
- data/app/views/sb_posts/_sb_post.html.haml +31 -33
- data/app/views/sb_posts/create.js.erb +30 -0
- data/app/views/sb_posts/destroy.js.erb +2 -0
- data/app/views/sb_posts/edit.html.erb +4 -4
- data/app/views/sb_posts/edit.js.erb +14 -0
- data/app/views/sb_posts/index.html.haml +3 -16
- data/app/views/sb_posts/monitored.html.erb +3 -9
- data/app/views/sb_posts/update.js.erb +11 -0
- data/app/views/sessions/_menu_item.html.haml +28 -0
- data/app/views/sessions/new.html.haml +19 -24
- data/app/views/shared/_add_friend_link.html.haml +9 -0
- data/app/views/shared/_admin_nav.html.haml +6 -8
- data/app/views/shared/_contact.html.haml +1 -1
- data/app/views/shared/_end_javascript.html.haml +4 -4
- data/app/views/shared/_explore.html.haml +7 -6
- data/app/views/shared/_footer_content.html.haml +12 -10
- data/app/views/shared/_footer_links.html.haml +18 -0
- data/app/views/shared/_friend_link.html.haml +25 -0
- data/app/views/shared/_header.html.haml +22 -42
- data/app/views/shared/_jumbotron.html.haml +3 -0
- data/app/views/shared/_load_tinymce.js.erb +15 -0
- data/app/views/shared/_location_chooser.html.haml +26 -17
- data/app/views/shared/_login_sidebar.html.haml +6 -5
- data/app/views/shared/_messages.html.haml +6 -8
- data/app/views/shared/_scripts_and_styles.html.haml +1 -2
- data/app/views/shared/_sidebar.html.haml +1 -0
- data/app/views/shared/_tag_auto_complete.html.haml +19 -0
- data/app/views/shared/_widget.html.haml +3 -0
- data/app/views/sitemap/index.html.haml +15 -20
- data/app/views/statistics/index.html.haml +32 -40
- data/app/views/tags/edit.html.haml +12 -19
- data/app/views/tags/index.html.haml +16 -25
- data/app/views/tags/manage.html.haml +24 -33
- data/app/views/tags/show.html.haml +52 -58
- data/app/views/topics/_form.html.haml +23 -25
- data/app/views/topics/_recent_topics_sidebar.haml +1 -1
- data/app/views/topics/edit.html.haml +7 -9
- data/app/views/topics/new.html.haml +6 -21
- data/app/views/topics/show.html.haml +48 -106
- data/app/views/user_notifier/follow_up_comment_notice.text.erb +1 -1
- data/app/views/user_notifier/message_notification.text.erb +1 -1
- data/app/views/user_notifier/new_forum_post_notice.text.erb +1 -1
- data/app/views/users/_dashboard_nav.html.haml +36 -39
- data/app/views/users/_menu_item.html.haml +6 -0
- data/app/views/users/_omniauth_connect.html.haml +4 -4
- data/app/views/users/_profile_completeness.html.haml +3 -3
- data/app/views/users/_profile_user_info_sidebar.html.haml +40 -43
- data/app/views/users/_search_options.html.haml +9 -7
- data/app/views/users/_sidebar_user.html.haml +1 -1
- data/app/views/users/_user.html.haml +27 -28
- data/app/views/users/crop_profile_photo.html.haml +30 -37
- data/app/views/users/dashboard.html.haml +37 -41
- data/app/views/users/edit.html.haml +53 -71
- data/app/views/users/edit_account.html.haml +44 -64
- data/app/views/users/forgot_username.html.haml +6 -12
- data/app/views/users/index.html.haml +4 -14
- data/app/views/users/invite.html.haml +14 -25
- data/app/views/users/new.html.haml +27 -48
- data/app/views/users/resend_activation.html.haml +7 -12
- data/app/views/users/show.html.haml +88 -90
- data/app/views/users/signup_completed.html.haml +7 -7
- data/app/views/users/statistics.html.haml +17 -18
- data/app/views/users/update.js.erb +1 -0
- data/app/views/users/upload_profile_photo.html.haml +10 -15
- data/app/views/users/welcome_about.html.haml +54 -61
- data/app/views/users/welcome_invite.html.haml +16 -25
- data/app/views/users/welcome_photo.html.haml +18 -27
- data/app/views/votes/create.js.erb +5 -0
- data/community_engine.gemspec +49 -41
- data/config/application_config.rb +13 -16
- data/config/initializers/mce_options.rb +9 -32
- data/config/initializers/recaptcha_constants.rb +2 -2
- data/config/locales/de-DE.yml +1 -17
- data/config/locales/en.yml +18 -32
- data/config/locales/es-AR.yml +2 -14
- data/config/locales/es-ES.yml +0 -6
- data/config/locales/es-MX.yml +1 -9
- data/config/locales/fr-FR.yml +3 -17
- data/config/locales/ja-JP.yml +2 -18
- data/config/locales/ru-RU.yml +3 -21
- data/config/locales/sr-CP.yml +0 -4
- data/config/locales/sv-SE.yml +3 -20
- data/config/routes.rb +37 -42
- data/db/migrate/016_add_metro_areas.rb +2 -2
- data/db/migrate/039_create_activities_table.rb +2 -2
- data/db/migrate/056_create_roles.rb +8 -6
- data/db/migrate/069_create_pages.rb +3 -3
- data/db/migrate/081_upgrade_to_friendly_id_5x.rb +25 -0
- data/db/migrate/082_upgrade_to_acts_as_commentable_4x.rb +29 -0
- data/lib/activity_tracker.rb +3 -0
- data/{vendor/plugins/activity_tracker/lib → lib/activity_tracker}/activity.rb +6 -6
- data/{vendor/plugins/activity_tracker/lib → lib/activity_tracker}/activity_tracker.rb +0 -0
- data/{vendor/plugins/acts_as_publishable/init.rb → lib/acts_as_publishable.rb} +1 -1
- data/{vendor/plugins/acts_as_publishable/lib → lib/acts_as_publishable}/acts_as_publishable.rb +3 -3
- data/lib/community_engine.rb +31 -9
- data/lib/community_engine/engine.rb +17 -1
- data/lib/community_engine/engines_extensions.rb +1 -3
- data/lib/community_engine/version.rb +3 -3
- data/{config/initializers → lib/paperclip_processors}/cropper.rb +3 -3
- data/lib/resource_feeder.rb +3 -0
- data/{vendor/plugins/resource_feeder/lib → lib}/resource_feeder/atom.rb +0 -0
- data/{vendor/plugins/resource_feeder/lib → lib}/resource_feeder/rss.rb +0 -0
- data/{vendor/plugins/white_list/init.rb → lib/white_list.rb} +1 -1
- data/{vendor/plugins/white_list/lib → lib/white_list}/white_list_helper.rb +0 -0
- data/test/fixtures/messages.yml +2 -2
- data/test/functional/admin_controller_test.rb +11 -11
- data/test/functional/ads_controller_test.rb +11 -11
- data/test/functional/albums_controller_test.rb +4 -4
- data/test/functional/categories_controller_test.rb +4 -4
- data/test/functional/clippings_controller_test.rb +4 -4
- data/test/functional/comments_controller_test.rb +20 -16
- data/test/functional/events_controller_test.rb +6 -6
- data/test/functional/forums_controller_test.rb +8 -8
- data/test/functional/friendships_controller_test.rb +13 -18
- data/test/functional/homepage_features_controller_test.rb +5 -5
- data/test/functional/messages_controller_test.rb +6 -2
- data/test/functional/metro_areas_controller_test.rb +7 -7
- data/test/functional/moderators_controller_test.rb +1 -1
- data/test/functional/pages_controller_test.rb +2 -2
- data/test/functional/password_reset_controller_test.rb +2 -2
- data/test/functional/photos_controller_test.rb +16 -15
- data/test/functional/posts_controller_test.rb +4 -4
- data/test/functional/rsvps_controller_test.rb +6 -6
- data/test/functional/sb_posts_controller_test.rb +53 -50
- data/test/functional/sessions_controller_test.rb +4 -1
- data/test/functional/tags_controller_test.rb +1 -1
- data/test/functional/topics_controller_test.rb +10 -10
- data/test/functional/users_controller_test.rb +32 -19
- data/test/functional/votes_controller_test.rb +1 -1
- data/test/test_helper.rb +3 -1
- data/test/testapp/config/application.rb +1 -9
- data/test/testapp/config/environments/development.rb +1 -2
- data/test/testapp/config/environments/production.rb +2 -0
- data/test/testapp/config/environments/test.rb +1 -2
- data/test/testapp/config/initializers/omniauth.rb +3 -3
- data/test/testapp/config/initializers/secret_token.rb +1 -0
- data/test/testapp/db/schema.rb +143 -152
- data/test/unit/category_test.rb +2 -2
- data/test/unit/comment_test.rb +64 -53
- data/test/unit/event_test.rb +4 -4
- data/test/unit/forum_test.rb +1 -1
- data/test/unit/message_test.rb +7 -1
- data/test/unit/page_test.rb +2 -2
- data/test/unit/post_test.rb +47 -47
- data/test/unit/sb_post_test.rb +24 -20
- data/test/unit/topic_test.rb +7 -6
- data/test/unit/user_test.rb +75 -52
- data/vendor/assets/javascripts/.gitkeep +0 -0
- data/vendor/assets/javascripts/jcrop/jquery.Jcrop.js +1699 -0
- data/vendor/assets/javascripts/jcrop/jquery.color.js +661 -0
- data/vendor/assets/javascripts/tag-it/tag-it.js +597 -0
- data/vendor/assets/stylesheets/.gitkeep +0 -0
- data/vendor/assets/stylesheets/jcrop/Jcrop.gif +0 -0
- data/vendor/assets/stylesheets/jcrop/jquery.Jcrop.min.css +28 -0
- data/vendor/assets/stylesheets/tag-it/tag-it.css +69 -0
- data/vendor/assets/stylesheets/tag-it/tagit.ui-zendesk.css +107 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/README +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/Rakefile +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/generators/publishing/publishing_generator.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/generators/publishing/templates/migration.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/install.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/acts_as_publishable/test/acts_as_publishable_test.rb +0 -0
- data/vendor/{plugins/activity_tracker → converted2.3plugins_to_lib_leftovers/acts_as_publishable}/uninstall.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/resource_feeder/README +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/resource_feeder/Rakefile +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/resource_feeder/test/atom_feed_test.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/resource_feeder/test/rss_feed_test.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/resource_feeder/test/test_helper.rb +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/white_list/README +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/white_list/Rakefile +0 -0
- data/vendor/{plugins → converted2.3plugins_to_lib_leftovers}/white_list/test/white_list_test.rb +0 -0
- metadata +348 -302
- data/app/assets/images/bg_h6btn.gif +0 -0
- data/app/assets/images/bg_navbar.gif +0 -0
- data/app/assets/images/clearbits/bg_rounded.gif +0 -0
- data/app/assets/images/clearbits/comment.gif +0 -0
- data/app/assets/images/clearbits/lock.gif +0 -0
- data/app/assets/images/clearbits/smile.gif +0 -0
- data/app/assets/images/close.gif +0 -0
- data/app/assets/images/cropper/marqueeHoriz.gif +0 -0
- data/app/assets/images/cropper/marqueeVert.gif +0 -0
- data/app/assets/images/feed.png +0 -0
- data/app/assets/images/icons/31.png +0 -0
- data/app/assets/images/icons/52.png +0 -0
- data/app/assets/images/icons/accept.png +0 -0
- data/app/assets/images/icons/activity_default.png +0 -0
- data/app/assets/images/icons/add.png +0 -0
- data/app/assets/images/icons/book.png +0 -0
- data/app/assets/images/icons/bullet_arrow_down.png +0 -0
- data/app/assets/images/icons/bullet_arrow_down_50.png +0 -0
- data/app/assets/images/icons/clipping.png +0 -0
- data/app/assets/images/icons/comment.png +0 -0
- data/app/assets/images/icons/comments.png +0 -0
- data/app/assets/images/icons/date.png +0 -0
- data/app/assets/images/icons/delete.png +0 -0
- data/app/assets/images/icons/email.png +0 -0
- data/app/assets/images/icons/email_edit.png +0 -0
- data/app/assets/images/icons/email_go.png +0 -0
- data/app/assets/images/icons/email_open.png +0 -0
- data/app/assets/images/icons/group_go.png +0 -0
- data/app/assets/images/icons/heart.png +0 -0
- data/app/assets/images/icons/heart_add.png +0 -0
- data/app/assets/images/icons/heart_off.png +0 -0
- data/app/assets/images/icons/page_white.png +0 -0
- data/app/assets/images/icons/page_white_magnify.png +0 -0
- data/app/assets/images/icons/picture.png +0 -0
- data/app/assets/images/icons/poll.png +0 -0
- data/app/assets/images/icons/post.png +0 -0
- data/app/assets/images/icons/printer.png +0 -0
- data/app/assets/images/icons/rss.png +0 -0
- data/app/assets/images/icons/slides.png +0 -0
- data/app/assets/images/icons/tag_blue.png +0 -0
- data/app/assets/images/icons/user.png +0 -0
- data/app/assets/images/icons/user_add.png +0 -0
- data/app/assets/images/icons/user_edit.png +0 -0
- data/app/assets/images/icons/user_go.png +0 -0
- data/app/assets/images/icons/vote.png +0 -0
- data/app/assets/images/icons/world.png +0 -0
- data/app/assets/images/icons/wrench.png +0 -0
- data/app/assets/images/logo.gif +0 -0
- data/app/assets/images/reply_background.png +0 -0
- data/app/assets/images/search.gif +0 -0
- data/app/assets/images/thumb.gif +0 -0
- data/app/assets/javascripts/builder.js +0 -136
- data/app/assets/javascripts/calendarview.js +0 -839
- data/app/assets/javascripts/lightbox.js +0 -151
- data/app/assets/javascripts/prototip-min.js +0 -27
- data/app/assets/javascripts/rails.js +0 -202
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/css/advimage.css +0 -84
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/editor_plugin.js +0 -52
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/editor_plugin_src.js +0 -45
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/image.htm +0 -180
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/img/sample.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/js/functions.js +0 -508
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/langs/en.js +0 -3
- data/app/assets/javascripts/tinymce/plugins/curblyadvimage/langs/en_dlg.js +0 -43
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/editor_plugin.js +0 -8
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/editor_plugin_src.js +0 -1001
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress10.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress11.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress12.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress2.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress3.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress4.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress5.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress6.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress7.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress8.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/progress9.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/restore.gif +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/images/restore.png +0 -0
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/langs/da.js +0 -5
- data/app/assets/javascripts/tinymce/plugins/tinyautosave/langs/en.js +0 -5
- data/app/assets/stylesheets/community_engine.css +0 -6
- data/app/assets/stylesheets/forum.css +0 -605
- data/app/assets/stylesheets/prototip.css +0 -73
- data/app/assets/stylesheets/reset-fonts-grids.css +0 -8
- data/app/assets/stylesheets/screen.css +0 -977
- data/app/helpers/monitorships_helper.rb +0 -2
- data/app/views/activities/_icon.html.haml +0 -14
- data/app/views/activities/destroy.js.rjs +0 -1
- data/app/views/clippings/_meta.html.haml +0 -26
- data/app/views/clippings/load_images_from_uri.js.rjs +0 -1
- data/app/views/comments/create.js.rjs +0 -20
- data/app/views/comments/edit.js.rjs +0 -7
- data/app/views/comments/update.js.rjs +0 -9
- data/app/views/favorites/create.js.rjs +0 -17
- data/app/views/favorites/destroy.js.rjs +0 -14
- data/app/views/favorites/show.html.haml +0 -13
- data/app/views/friendships/_friendships.html.erb +0 -14
- data/app/views/friendships/index.html.erb +0 -3
- data/app/views/friendships/index.xml.builder +0 -29
- data/app/views/invitations/index.html.erb +0 -16
- data/app/views/moderators/_toggle.html.erb +0 -14
- data/app/views/moderators/create.js.rjs +0 -5
- data/app/views/moderators/destroy.js.rjs +0 -1
- data/app/views/monitorships/create.js.rjs +0 -4
- data/app/views/monitorships/destroy.js.rjs +0 -4
- data/app/views/photos/manage_photos.js.rjs +0 -5
- data/app/views/polls/_polls_sidebar.html.haml +0 -8
- data/app/views/posts/_send_to_friend.html.erb +0 -29
- data/app/views/sb_posts/_dummy_forum_post.html.erb +0 -13
- data/app/views/sb_posts/_edit.html.erb +0 -31
- data/app/views/sb_posts/create.js.rjs +0 -16
- data/app/views/sb_posts/edit.js.rjs +0 -6
- data/app/views/sb_posts/update.js.rjs +0 -5
- data/app/views/shared/_user_menu.html.haml +0 -21
- data/app/views/votes/create.js.rjs +0 -6
- data/db/migrate/090_add_comment_role.rb +0 -15
- data/vendor/plugins/activity_tracker/README +0 -4
- data/vendor/plugins/activity_tracker/Rakefile +0 -22
- data/vendor/plugins/activity_tracker/generators/activity_migration/USAGE +0 -13
- data/vendor/plugins/activity_tracker/generators/activity_migration/activity_migration_generator.rb +0 -11
- data/vendor/plugins/activity_tracker/generators/activity_migration/templates/migration.rb +0 -17
- data/vendor/plugins/activity_tracker/init.rb +0 -1
- data/vendor/plugins/activity_tracker/install.rb +0 -1
- data/vendor/plugins/activity_tracker/tasks/activity_tracker_tasks.rake +0 -4
- data/vendor/plugins/activity_tracker/test/abstract_unit.rb +0 -47
- data/vendor/plugins/activity_tracker/test/activity_tracker_test.rb +0 -48
- data/vendor/plugins/activity_tracker/test/database.yml +0 -18
- data/vendor/plugins/activity_tracker/test/debug.log +0 -3329
- data/vendor/plugins/activity_tracker/test/fixtures/test_post.rb +0 -5
- data/vendor/plugins/activity_tracker/test/fixtures/test_posts.yml +0 -3
- data/vendor/plugins/activity_tracker/test/fixtures/test_user.rb +0 -4
- data/vendor/plugins/activity_tracker/test/fixtures/test_users.yml +0 -6
- data/vendor/plugins/activity_tracker/test/schema.rb +0 -21
- data/vendor/plugins/acts_as_list/README +0 -23
- data/vendor/plugins/acts_as_list/init.rb +0 -3
- data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -256
- data/vendor/plugins/acts_as_list/test/list_test.rb +0 -332
- data/vendor/plugins/acts_as_publishable/uninstall.rb +0 -1
- data/vendor/plugins/auto_complete/README +0 -23
- data/vendor/plugins/auto_complete/Rakefile +0 -22
- data/vendor/plugins/auto_complete/init.rb +0 -2
- data/vendor/plugins/auto_complete/lib/auto_complete.rb +0 -47
- data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +0 -143
- data/vendor/plugins/auto_complete/test/auto_complete_test.rb +0 -67
- data/vendor/plugins/enumerations_mixin/.gitignore +0 -1
- data/vendor/plugins/enumerations_mixin/Gemfile +0 -1
- data/vendor/plugins/enumerations_mixin/LICENSE +0 -20
- data/vendor/plugins/enumerations_mixin/README.md +0 -120
- data/vendor/plugins/enumerations_mixin/README_ENUMERATIONS +0 -163
- data/vendor/plugins/enumerations_mixin/Rakefile +0 -14
- data/vendor/plugins/enumerations_mixin/VERSION +0 -1
- data/vendor/plugins/enumerations_mixin/enumerations_mixin.gemspec +0 -44
- data/vendor/plugins/enumerations_mixin/examples/virtual_enumerations_sample.rb +0 -76
- data/vendor/plugins/enumerations_mixin/init.rb +0 -21
- data/vendor/plugins/enumerations_mixin/lib/active_record/acts/enumerated.rb +0 -180
- data/vendor/plugins/enumerations_mixin/lib/active_record/aggregations/has_enumerated.rb +0 -60
- data/vendor/plugins/enumerations_mixin/lib/active_record/virtual_enumerations.rb +0 -68
- data/vendor/plugins/enumerations_mixin/lib/enumerations_mixin.rb +0 -12
- data/vendor/plugins/enumerations_mixin/virtual_enumerations_sample.rb +0 -76
- data/vendor/plugins/prototype_legacy_helper/README.markdown +0 -13
- data/vendor/plugins/prototype_legacy_helper/init.rb +0 -1
- data/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +0 -432
- data/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +0 -297
- data/vendor/plugins/resource_feeder/init.rb +0 -2
- data/vendor/plugins/resource_feeder/lib/resource_feeder.rb +0 -2
- data/vendor/plugins/respond_to_parent/MIT-LICENSE +0 -20
- data/vendor/plugins/respond_to_parent/README +0 -47
- data/vendor/plugins/respond_to_parent/Rakefile +0 -22
- data/vendor/plugins/respond_to_parent/init.rb +0 -1
- data/vendor/plugins/respond_to_parent/install.rb +0 -1
- data/vendor/plugins/respond_to_parent/lib/responds_to_parent.rb +0 -70
- data/vendor/plugins/respond_to_parent/test/responds_to_parent_test.rb +0 -10
- data/vendor/plugins/respond_to_parent/test/test_helper.rb +0 -6
- data/vendor/plugins/respond_to_parent/uninstall.rb +0 -1
|
@@ -3,11 +3,11 @@ module FriendshipsHelper
|
|
|
3
3
|
def friendship_control_links(friendship)
|
|
4
4
|
html = case friendship.friendship_status_id
|
|
5
5
|
when FriendshipStatus[:pending].id
|
|
6
|
-
"#{(link_to(:accept.l, accept_user_friendship_path(friendship.user, friendship), :method => :
|
|
6
|
+
"#{(link_to(:accept.l, accept_user_friendship_path(friendship.user, friendship), :method => :patch, :class => 'button positive') unless friendship.initiator?)} #{link_to(:deny.l, deny_user_friendship_path(friendship.user, friendship), :method => :patch, :class => 'button negative')}"
|
|
7
7
|
when FriendshipStatus[:accepted].id
|
|
8
|
-
"#{link_to(:remove_this_friend.l, deny_user_friendship_path(friendship.user, friendship), :method => :
|
|
8
|
+
"#{link_to(:remove_this_friend.l, deny_user_friendship_path(friendship.user, friendship), :method => :patch, :class => 'button negative')}"
|
|
9
9
|
when FriendshipStatus[:denied].id
|
|
10
|
-
"#{link_to(:accept_this_request.l, accept_user_friendship_path(friendship.user, friendship), :method => :
|
|
10
|
+
"#{link_to(:accept_this_request.l, accept_user_friendship_path(friendship.user, friendship), :method => :patch, :class => 'button positive')}"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
html.html_safe
|
data/app/helpers/posts_helper.rb
CHANGED
|
@@ -4,13 +4,11 @@ module PostsHelper
|
|
|
4
4
|
# Facebook seems to ignore them (it uses title and description meta tags
|
|
5
5
|
# instead). MySpace, however, only works if you set these attributes.
|
|
6
6
|
def sharethis_options(post)
|
|
7
|
-
content_tag :script, :type=>"text/javascript" do
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}, {button:true});
|
|
13
|
-
eos
|
|
7
|
+
content_tag :script, :type=>"text/javascript" do
|
|
8
|
+
"SHARETHIS.addEntry({
|
|
9
|
+
title:'#{escape_javascript(post.title)}',
|
|
10
|
+
content:'#{escape_javascript(truncate_words(post.post, 75, '...' ))}'
|
|
11
|
+
}, {button:true});".html_safe
|
|
14
12
|
end
|
|
15
13
|
end
|
|
16
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require_dependency ActsAsTaggableOn::Engine.config.root.join('app', 'models', 'acts_as_taggable_on', 'tag.rb').to_s
|
|
1
|
+
#require_dependency ActsAsTaggableOn::Engine.config.root.join('app', 'models', 'acts_as_taggable_on', 'tag.rb').to_s
|
|
2
2
|
|
|
3
3
|
class ActsAsTaggableOn::Tag < ActiveRecord::Base
|
|
4
4
|
|
|
@@ -29,13 +29,12 @@ class ActsAsTaggableOn::Tag < ActiveRecord::Base
|
|
|
29
29
|
def counts(options = {})
|
|
30
30
|
options.assert_valid_keys :start_at, :end_at, :at_least, :at_most, :conditions, :limit, :order, :joins
|
|
31
31
|
|
|
32
|
-
tags =
|
|
32
|
+
tags = select("#{quoted_table_name}.id", "#{quoted_table_name}.name", "COUNT(#{quoted_table_name}.id) AS count")
|
|
33
|
+
tags = tags.joins(:taggings)
|
|
33
34
|
tags = tags.having(["COUNT(#{ActsAsTaggableOn::Tagging.quoted_table_name}.id) >= ?", options[:at_least]]) if options[:at_least]
|
|
34
35
|
tags = tags.having(["COUNT(#{ActsAsTaggableOn::Tagging.quoted_table_name}.id) <= ?", options[:at_most]]) if options[:at_most]
|
|
35
36
|
tags = tags.where("#{ActsAsTaggableOn::Tagging.quoted_table_name}.created_at >= ?", options[:start_at]) if options[:start_at]
|
|
36
37
|
tags = tags.where("#{ActsAsTaggableOn::Tagging.quoted_table_name}.created_at <= ?", options[:end_at]) if options[:end_at]
|
|
37
|
-
|
|
38
|
-
# TODO: deprecation warning
|
|
39
38
|
tags = tags.where(options[:conditions]) if options[:conditions]
|
|
40
39
|
tags = tags.limit(options[:limit]) if options[:limit]
|
|
41
40
|
tags = tags.order(options[:order]) if options[:order]
|
|
@@ -44,7 +43,7 @@ class ActsAsTaggableOn::Tag < ActiveRecord::Base
|
|
|
44
43
|
tags = tags.joins(joins)
|
|
45
44
|
end
|
|
46
45
|
|
|
47
|
-
tags.
|
|
46
|
+
tags.group("#{quoted_table_name}.id, #{quoted_table_name}.name")
|
|
48
47
|
end
|
|
49
48
|
|
|
50
49
|
|
|
@@ -55,18 +54,18 @@ class ActsAsTaggableOn::Tag < ActiveRecord::Base
|
|
|
55
54
|
end
|
|
56
55
|
|
|
57
56
|
def related_tags(limit = 10)
|
|
58
|
-
taggables = self.taggings.limit(10).
|
|
57
|
+
taggables = self.taggings.limit(10).to_a.collect{|t| t.taggable }.compact
|
|
59
58
|
|
|
60
59
|
tagging_ids = taggables.map{|t| t.taggings.limit(10).map(&:id) }.flatten.uniq
|
|
61
60
|
return [] if tagging_ids.blank?
|
|
62
61
|
|
|
63
|
-
ActsAsTaggableOn::Tag.where("tags.id != '#{self.id}'")
|
|
64
|
-
select("tags.id, tags.name, COUNT(tags.id) as count")
|
|
65
|
-
joins(:taggings)
|
|
66
|
-
where({:taggings => {:id => tagging_ids }})
|
|
67
|
-
group("tags.id, tags.name")
|
|
68
|
-
order("count DESC")
|
|
69
|
-
limit(limit)
|
|
62
|
+
ActsAsTaggableOn::Tag.where("tags.id != '#{self.id}'")
|
|
63
|
+
.select("tags.id, tags.name, COUNT(tags.id) as count")
|
|
64
|
+
.joins(:taggings)
|
|
65
|
+
.where({:taggings => {:id => tagging_ids }})
|
|
66
|
+
.group("tags.id, tags.name")
|
|
67
|
+
.order("count DESC")
|
|
68
|
+
.limit(limit)
|
|
70
69
|
end
|
|
71
70
|
|
|
72
71
|
end
|
data/app/models/ad.rb
CHANGED
|
@@ -6,17 +6,14 @@ class Ad < ActiveRecord::Base
|
|
|
6
6
|
validates_inclusion_of :audience, :in => AUDIENCES
|
|
7
7
|
validates_inclusion_of :frequency, :in => FREQUENCIES
|
|
8
8
|
|
|
9
|
-
attr_accessible :html, :name, :frequency, :audience, :published, :time_constrained, :start_date, :end_date, :location
|
|
10
|
-
|
|
11
9
|
|
|
12
10
|
def self.display(location, logged_in = false)
|
|
13
11
|
return nil if location.blank?
|
|
14
|
-
ads =
|
|
15
|
-
:conditions => ["location = ?
|
|
12
|
+
ads = where("location = ?
|
|
16
13
|
AND published = ?
|
|
17
14
|
AND (time_constrained = ? OR (start_date > ? AND end_date < ?))
|
|
18
15
|
AND (audience IN (?) )",
|
|
19
|
-
location.to_s, true, false, Time.now, Time.now, audiences_for(logged_in)
|
|
16
|
+
location.to_s, true, false, Time.now, Time.now, audiences_for(logged_in))
|
|
20
17
|
|
|
21
18
|
ad = random_weighted(ads.map{|a| [a, a.frequency] })
|
|
22
19
|
ad ? ad.html.html_safe : ''
|
data/app/models/album.rb
CHANGED
data/app/models/category.rb
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
class Category < ActiveRecord::Base
|
|
2
|
-
|
|
2
|
+
extend FriendlyId
|
|
3
|
+
has_many :posts, -> { order("published_at desc") }
|
|
3
4
|
validates_presence_of :name
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
has_friendly_id :name, :use_slug => true
|
|
8
|
-
|
|
5
|
+
|
|
6
|
+
friendly_id :name, :use => [:slugged, :finders]
|
|
7
|
+
|
|
9
8
|
def display_new_post_text
|
|
10
9
|
new_post_text
|
|
11
10
|
end
|
|
12
|
-
|
|
11
|
+
|
|
13
12
|
end
|
data/app/models/clipping.rb
CHANGED
|
@@ -17,10 +17,7 @@ class Clipping < ActiveRecord::Base
|
|
|
17
17
|
acts_as_taggable
|
|
18
18
|
acts_as_activity :user
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
scope :recent, :order => 'clippings.created_at DESC'
|
|
23
|
-
|
|
20
|
+
scope :recent, lambda { order('clippings.created_at DESC') }
|
|
24
21
|
|
|
25
22
|
def self.find_related_to(clipping, options = {})
|
|
26
23
|
options.reverse_merge!({:limit => 8,
|
|
@@ -35,7 +32,7 @@ class Clipping < ActiveRecord::Base
|
|
|
35
32
|
end
|
|
36
33
|
|
|
37
34
|
def self.find_recent(options = {:limit => 5})
|
|
38
|
-
|
|
35
|
+
where("created_at > '#{7.days.ago.iso8601}'").order("created_at DESC").limit(options[:limit])
|
|
39
36
|
end
|
|
40
37
|
|
|
41
38
|
def previous_clipping
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
class ClippingImage < Asset
|
|
2
2
|
include UrlUpload
|
|
3
|
-
|
|
4
|
-
has_attached_file :asset, configatron.clipping.paperclip_options
|
|
5
|
-
validates_attachment_presence :asset
|
|
6
|
-
validates_attachment_content_type :asset, :content_type => configatron.clipping.validation_options.content_type
|
|
7
|
-
validates_attachment_size :asset, :less_than => configatron.clipping.validation_options.max_size.to_i.megabytes
|
|
3
|
+
|
|
4
|
+
has_attached_file :asset, configatron.clipping.paperclip_options.to_hash
|
|
5
|
+
validates_attachment_presence :asset
|
|
6
|
+
validates_attachment_content_type :asset, :content_type => configatron.clipping.validation_options.content_type
|
|
7
|
+
validates_attachment_size :asset, :less_than => configatron.clipping.validation_options.max_size.to_i.megabytes
|
|
8
8
|
|
|
9
9
|
end
|
data/app/models/comment.rb
CHANGED
|
@@ -2,7 +2,6 @@ class Comment < ActiveRecord::Base
|
|
|
2
2
|
include ActsAsCommentable::Comment
|
|
3
3
|
include Rakismet::Model
|
|
4
4
|
rakismet_attrs :author => :author_name, :comment_type => 'comment', :content => :comment, :user_ip => :author_ip
|
|
5
|
-
attr_protected :akismet_attrs
|
|
6
5
|
|
|
7
6
|
belongs_to :commentable, :polymorphic => true
|
|
8
7
|
belongs_to :user, :inverse_of => :comments_as_author, :foreign_key => 'user_id', :class_name => "User"
|
|
@@ -25,7 +24,7 @@ class Comment < ActiveRecord::Base
|
|
|
25
24
|
acts_as_activity :user, :if => Proc.new{|record| record.user && !record.pending? } #don't record an activity if there's no user
|
|
26
25
|
|
|
27
26
|
def self.find_photo_comments_for(user)
|
|
28
|
-
Comment.
|
|
27
|
+
Comment.where("recipient_id = ? AND commentable_type = ?", user.id, 'Photo').order('created_at DESC')
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def previous_commenters_to_notify
|
|
@@ -66,7 +65,7 @@ class Comment < ActiveRecord::Base
|
|
|
66
65
|
end
|
|
67
66
|
|
|
68
67
|
def self.find_recent(options = {:limit => 5})
|
|
69
|
-
|
|
68
|
+
where("created_at > '#{14.days.ago.iso8601}'").order("created_at DESC").limit(options[:limit])
|
|
70
69
|
end
|
|
71
70
|
|
|
72
71
|
def can_be_deleted_by(person)
|
|
@@ -106,13 +105,13 @@ class Comment < ActiveRecord::Base
|
|
|
106
105
|
end
|
|
107
106
|
|
|
108
107
|
def unsubscribe_notifications(email)
|
|
109
|
-
commentable.comments.
|
|
108
|
+
commentable.comments.where(:author_email => email).each do |previous_comment|
|
|
110
109
|
previous_comment.update_attribute :notify_by_email, false
|
|
111
110
|
end
|
|
112
111
|
end
|
|
113
112
|
|
|
114
113
|
def check_spam
|
|
115
|
-
if
|
|
114
|
+
if configatron.has_key?(:akismet_key) && self.spam?
|
|
116
115
|
self.role = 'pending'
|
|
117
116
|
end
|
|
118
117
|
end
|
data/app/models/country.rb
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
class Country < ActiveRecord::Base
|
|
2
2
|
has_many :metro_areas
|
|
3
3
|
|
|
4
|
-
attr_accessible :name
|
|
5
|
-
|
|
6
4
|
def self.get(name)
|
|
7
5
|
case name
|
|
8
6
|
when :us
|
|
@@ -12,11 +10,11 @@ class Country < ActiveRecord::Base
|
|
|
12
10
|
end
|
|
13
11
|
|
|
14
12
|
def self.find_countries_with_metros
|
|
15
|
-
Country.joins(:metro_areas).where('metro_areas.id IS NOT NULL').order('countries.name ASC').
|
|
13
|
+
Country.joins(:metro_areas).where('metro_areas.id IS NOT NULL').order('countries.name ASC').to_a.uniq
|
|
16
14
|
end
|
|
17
15
|
|
|
18
16
|
def states
|
|
19
|
-
State.joins(:metro_areas).where("metro_areas.id in (?)", metro_area_ids ).order('states.name ASC').
|
|
17
|
+
State.joins(:metro_areas).where("metro_areas.id in (?)", metro_area_ids ).order('states.name ASC').to_a.uniq
|
|
20
18
|
end
|
|
21
19
|
|
|
22
20
|
def metro_area_ids
|
data/app/models/event.rb
CHANGED
|
@@ -11,8 +11,7 @@ class Event < ActiveRecord::Base
|
|
|
11
11
|
has_many :rsvps, :dependent=>:destroy
|
|
12
12
|
has_many :attendees, :source=>:user, :through=>:rsvps
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
|
|
16
15
|
#Procs used to make sure time is calculated at runtime
|
|
17
16
|
scope :upcoming, lambda {
|
|
18
17
|
where('end_time > ?' , Time.now).order('start_time ASC')
|
data/app/models/favorite.rb
CHANGED
|
@@ -14,10 +14,8 @@ class Favorite < ActiveRecord::Base
|
|
|
14
14
|
validates_uniqueness_of :ip_address, :scope => [:favoritable_type, :favoritable_id], :message => 'has already favorited this item.', :if => Proc.new{|f| f.user.nil? }
|
|
15
15
|
|
|
16
16
|
#named scopes
|
|
17
|
-
scope :recent,
|
|
18
|
-
scope :by_user, lambda { |user|
|
|
19
|
-
{:conditions => ["user_id = ?", user.id] }
|
|
20
|
-
}
|
|
17
|
+
scope :recent, -> { order("created_at DESC") }
|
|
18
|
+
scope :by_user, lambda { |user| where("user_id = ?", user.id) }
|
|
21
19
|
|
|
22
20
|
|
|
23
21
|
def update_counter_on_favoritable
|
|
@@ -27,19 +25,16 @@ class Favorite < ActiveRecord::Base
|
|
|
27
25
|
end
|
|
28
26
|
|
|
29
27
|
def self.find_favorites_by_user(user)
|
|
30
|
-
|
|
31
|
-
:conditions => ["user_id = ?", user.id],
|
|
32
|
-
:order => "created_at DESC"
|
|
33
|
-
)
|
|
28
|
+
where("user_id = ?", user.id).order("created_at DESC")
|
|
34
29
|
end
|
|
35
30
|
|
|
36
31
|
def self.find_by_user_or_ip_address(favoritable = nil, user = nil, remote_ip = nil)
|
|
37
32
|
return false unless favoritable && (user || remote_ip)
|
|
38
33
|
|
|
39
34
|
if user
|
|
40
|
-
favorite = self.
|
|
35
|
+
favorite = self.where("user_id = ? AND favoritable_type = ? AND favoritable_id = ?", user.id, favoritable.class.to_s, favoritable.id).first
|
|
41
36
|
else
|
|
42
|
-
favorite = self.
|
|
37
|
+
favorite = self.where("ip_address = ? AND favoritable_type = ? AND favoritable_id = ?", remote_ip, favoritable.class.to_s, favoritable.id).first
|
|
43
38
|
end
|
|
44
39
|
return favorite
|
|
45
40
|
end
|
data/app/models/forum.rb
CHANGED
data/app/models/friendship.rb
CHANGED
|
@@ -19,7 +19,7 @@ class Friendship < ActiveRecord::Base
|
|
|
19
19
|
# named scopes
|
|
20
20
|
scope :accepted, lambda {
|
|
21
21
|
#hack: prevents FriendshipStatus[:accepted] from getting called before the friendship_status records are in the db (only matters in testing ENV)
|
|
22
|
-
|
|
22
|
+
where("friendship_status_id = ?", FriendshipStatus[:accepted].id)
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
def cannot_request_if_daily_limit_reached
|
|
@@ -30,11 +30,9 @@ class Friendship < ActiveRecord::Base
|
|
|
30
30
|
|
|
31
31
|
before_validation(:on => :create){:set_pending}
|
|
32
32
|
after_save :notify_requester, :if => Proc.new{|fr| fr.accepted? && fr.initiator }
|
|
33
|
-
|
|
34
|
-
attr_protected :friendship_status_id
|
|
35
33
|
|
|
36
34
|
def reverse
|
|
37
|
-
Friendship.
|
|
35
|
+
Friendship.where('user_id = ? and friend_id = ?', self.friend_id, self.user_id).first
|
|
38
36
|
end
|
|
39
37
|
|
|
40
38
|
def denied?
|
|
@@ -50,7 +48,7 @@ class Friendship < ActiveRecord::Base
|
|
|
50
48
|
end
|
|
51
49
|
|
|
52
50
|
def self.friends?(user, friend)
|
|
53
|
-
|
|
51
|
+
where("user_id = ? AND friend_id = ? AND friendship_status_id = ?", user.id, friend.id, FriendshipStatus[:accepted].id).first
|
|
54
52
|
end
|
|
55
53
|
|
|
56
54
|
def notify_requester
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
class HomepageFeature < ActiveRecord::Base
|
|
2
2
|
has_attached_file :image, configatron.feature.paperclip_options.to_hash
|
|
3
|
-
validates_attachment_presence :image
|
|
4
|
-
validates_attachment_content_type :image, :content_type => configatron.feature.validation_options.content_type
|
|
5
|
-
validates_attachment_size :image, :less_than => configatron.feature.validation_options.max_size.to_i.megabytes
|
|
6
|
-
|
|
7
|
-
attr_accessible :url, :title, :description, :image
|
|
3
|
+
validates_attachment_presence :image
|
|
4
|
+
validates_attachment_content_type :image, :content_type => configatron.feature.validation_options.content_type
|
|
5
|
+
validates_attachment_size :image, :less_than => configatron.feature.validation_options.max_size.to_i.megabytes
|
|
8
6
|
|
|
9
7
|
validates_presence_of :url
|
|
10
8
|
|
|
11
9
|
def self.find_features
|
|
12
|
-
|
|
10
|
+
order("created_at DESC")
|
|
13
11
|
end
|
|
14
12
|
|
|
15
13
|
end
|
data/app/models/invitation.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
class Invitation < ActiveRecord::Base
|
|
2
2
|
acts_as_activity :user
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
belongs_to :user
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
after_save :send_invite
|
|
7
7
|
|
|
8
8
|
validates_presence_of :user
|
|
@@ -14,11 +14,11 @@ class Invitation < ActiveRecord::Base
|
|
|
14
14
|
invalid_emails = []
|
|
15
15
|
email_addresses = email_addresses || ''
|
|
16
16
|
emails = email_addresses.split(",").collect{|email| email.strip }.uniq
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
emails.each{ |email|
|
|
19
19
|
unless email =~ /[\w._%-]+@[\w.-]+.[a-zA-Z]{2,4}/
|
|
20
20
|
invalid_emails << email
|
|
21
|
-
end
|
|
21
|
+
end
|
|
22
22
|
}
|
|
23
23
|
unless invalid_emails.empty?
|
|
24
24
|
record.errors.add(:email_addresses, " included invalid addresses: <ul>"+invalid_emails.collect{|email| '<li>'+email+'</li>' }.join+"</ul>")
|
|
@@ -26,13 +26,11 @@ class Invitation < ActiveRecord::Base
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
attr_accessible :email_addresses, :message
|
|
30
|
-
|
|
31
29
|
def send_invite
|
|
32
|
-
emails = self.email_addresses.split(",").collect{|email| email.strip }.uniq
|
|
30
|
+
emails = self.email_addresses.split(",").collect{|email| email.strip }.uniq
|
|
33
31
|
emails.each{|email|
|
|
34
32
|
UserNotifier.signup_invitation(email, self.user, self.message).deliver
|
|
35
33
|
}
|
|
36
34
|
end
|
|
37
|
-
|
|
35
|
+
|
|
38
36
|
end
|
data/app/models/message.rb
CHANGED
|
@@ -1,44 +1,43 @@
|
|
|
1
|
-
class Message < ActiveRecord::Base
|
|
1
|
+
class Message < ActiveRecord::Base
|
|
2
2
|
attr_accessor :to
|
|
3
3
|
attr_accessor :reply_to
|
|
4
4
|
|
|
5
|
-
attr_accessible :to, :subject, :body, :recipient, :sender, :recipient_id, :sender_id, :parent_id
|
|
6
|
-
|
|
7
5
|
belongs_to :sender, :class_name => 'User', :foreign_key => 'sender_id', :inverse_of => :sent_messages
|
|
8
6
|
belongs_to :recipient, :class_name => 'User', :foreign_key => 'recipient_id', :inverse_of => :received_messages
|
|
9
7
|
|
|
10
8
|
belongs_to :parent, :class_name => "Message", :foreign_key => "parent_id", :inverse_of => :children
|
|
11
9
|
has_many :children, :class_name => "Message", :foreign_key => "parent_id", :inverse_of => :parent
|
|
12
10
|
has_many :message_threads
|
|
13
|
-
|
|
14
|
-
scope :parent_messages, where("parent_id IS NULL")
|
|
15
|
-
scope :already_read, where("read_at IS NOT NULL")
|
|
16
|
-
scope :unread, where("read_at IS NULL")
|
|
17
|
-
|
|
11
|
+
|
|
12
|
+
scope :parent_messages, -> { where("parent_id IS NULL") }
|
|
13
|
+
scope :already_read, -> { where("read_at IS NOT NULL") }
|
|
14
|
+
scope :unread, -> { where("read_at IS NULL") }
|
|
15
|
+
scope :reader, lambda { |reader| where("sender_id = ? OR recipient_id = ?", reader, reader)}
|
|
16
|
+
|
|
18
17
|
validates_presence_of :body, :subject, :sender
|
|
19
18
|
validates_presence_of :recipient, :message => "is invalid"
|
|
20
19
|
validate :ensure_not_sending_to_self
|
|
21
|
-
|
|
20
|
+
|
|
22
21
|
after_create :notify_recipient
|
|
23
22
|
after_create :update_message_threads
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
|
|
24
|
+
|
|
26
25
|
# Ensures the passed user is either the sender or the recipient then returns the message.
|
|
27
26
|
# If the reader is the recipient and the message has yet not been read, it marks the read_at timestamp.
|
|
28
27
|
def self.read(id, reader)
|
|
29
|
-
message = find(id
|
|
28
|
+
message = self.reader(reader).find(id)
|
|
30
29
|
if message.read_at.nil? && reader == message.recipient
|
|
31
30
|
message.read_at = Time.now
|
|
32
31
|
message.save!
|
|
33
32
|
end
|
|
34
33
|
message
|
|
35
34
|
end
|
|
36
|
-
|
|
35
|
+
|
|
37
36
|
# Returns true or false value based on whether the a message has been read by its recipient.
|
|
38
37
|
def read?
|
|
39
38
|
self.read_at.nil? ? false : true
|
|
40
39
|
end
|
|
41
|
-
|
|
40
|
+
|
|
42
41
|
# Marks a message as deleted by either the sender or the recipient, which ever the user that was passed is.
|
|
43
42
|
# Once both have marked it deleted, it is destroyed.
|
|
44
43
|
def mark_deleted(user)
|
|
@@ -46,35 +45,35 @@ class Message < ActiveRecord::Base
|
|
|
46
45
|
self.recipient_deleted = true if self.recipient == user
|
|
47
46
|
self.sender_deleted && self.recipient_deleted ? self.destroy : save!
|
|
48
47
|
end
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
|
|
49
|
+
|
|
51
50
|
def ensure_not_sending_to_self
|
|
52
|
-
errors.add(:base, "You may not send a message to yourself.") if self.recipient && self.recipient.eql?(self.sender)
|
|
51
|
+
errors.add(:base, "You may not send a message to yourself.") if self.recipient && self.recipient.eql?(self.sender)
|
|
53
52
|
end
|
|
54
|
-
|
|
53
|
+
|
|
55
54
|
def notify_recipient
|
|
56
55
|
UserNotifier.message_notification(self).deliver
|
|
57
56
|
end
|
|
58
|
-
|
|
57
|
+
|
|
59
58
|
def update_message_threads
|
|
60
|
-
recipients_thread = MessageThread.
|
|
59
|
+
recipients_thread = MessageThread.find_or_create_by(:recipient_id => self.recipient_id, :parent_message_id => (self.parent_id || self.id))
|
|
61
60
|
recipients_thread.sender = sender
|
|
62
61
|
recipients_thread.recipient = recipient
|
|
63
62
|
recipients_thread.message = self
|
|
64
63
|
recipients_thread.parent_message = (self.parent || self)
|
|
65
64
|
recipients_thread.save
|
|
66
|
-
|
|
65
|
+
|
|
67
66
|
if parent
|
|
68
|
-
senders_thread = MessageThread.
|
|
67
|
+
senders_thread = MessageThread.find_or_create_by(:recipient_id => self.sender_id, :parent_message_id => self.parent_id)
|
|
69
68
|
senders_thread.message = self
|
|
70
69
|
senders_thread.save
|
|
71
70
|
end
|
|
72
71
|
end
|
|
73
|
-
|
|
72
|
+
|
|
74
73
|
def self.new_reply(sender, message_thread = nil, params = {})
|
|
75
74
|
message = new(params[:message])
|
|
76
75
|
message.to ||= params[:to] if params[:to]
|
|
77
|
-
|
|
76
|
+
|
|
78
77
|
if message_thread
|
|
79
78
|
message.parent = message_thread.parent_message
|
|
80
79
|
message.reply_to = message_thread.message
|
|
@@ -82,8 +81,8 @@ class Message < ActiveRecord::Base
|
|
|
82
81
|
message.subject = message_thread.parent_message.subject
|
|
83
82
|
message.sender = sender
|
|
84
83
|
end
|
|
85
|
-
|
|
84
|
+
|
|
86
85
|
message
|
|
87
86
|
end
|
|
88
|
-
|
|
87
|
+
|
|
89
88
|
end
|