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
|
@@ -22,11 +22,12 @@ class SessionsController < BaseController
|
|
|
22
22
|
redirect_back_or_default(dashboard_user_path(current_user))
|
|
23
23
|
else
|
|
24
24
|
flash[:notice] = :uh_oh_we_couldnt_log_you_in_with_the_username_and_password_you_entered_try_again.l
|
|
25
|
-
render :action => :new
|
|
25
|
+
render :action => :new, :email => params[:email]
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def destroy
|
|
30
|
+
redirect_to new_session_path and return if current_user_session.nil?
|
|
30
31
|
current_user_session.destroy
|
|
31
32
|
reset_session
|
|
32
33
|
flash[:notice] = :youve_been_logged_out_hope_you_come_back_soon.l
|
|
@@ -3,19 +3,19 @@ class SitemapController < BaseController
|
|
|
3
3
|
caches_action :index
|
|
4
4
|
|
|
5
5
|
def index
|
|
6
|
-
@users = User.active.select('id, login, updated_at, login_slug')
|
|
7
|
-
@posts = Post.select('posts.id, posts.user_id, posts.published_as, posts.published_at, users.id, users.login_slug').joins(:user) #"LEFT JOIN users ON users.id = posts.user_id")
|
|
6
|
+
@users = User.active.select('id', 'login', 'updated_at', 'login_slug')
|
|
7
|
+
@posts = Post.select('posts.id', 'posts.user_id', 'posts.published_as', 'posts.published_at', 'users.id', 'users.login_slug').joins(:user) #"LEFT JOIN users ON users.id = posts.user_id")
|
|
8
|
+
|
|
9
|
+
@categories = Category.all
|
|
8
10
|
|
|
9
|
-
@categories = Category.find(:all)
|
|
10
|
-
|
|
11
11
|
respond_to do |format|
|
|
12
12
|
format.html {
|
|
13
13
|
render :layout => 'application'
|
|
14
14
|
}
|
|
15
|
-
format.xml
|
|
15
|
+
format.xml
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
21
|
end
|
|
@@ -3,25 +3,26 @@ class StatisticsController < BaseController
|
|
|
3
3
|
before_filter :admin_required
|
|
4
4
|
|
|
5
5
|
def index
|
|
6
|
-
@total_users = User.
|
|
7
|
-
@unactivated_users = User.
|
|
6
|
+
@total_users = User.where('activated_at IS NOT NULL').count
|
|
7
|
+
@unactivated_users = User.where('activated_at IS NULL').count
|
|
8
8
|
|
|
9
9
|
@yesterday_new_users = find_new_users(1.day.ago.midnight, Date.today.midnight)
|
|
10
10
|
@today_new_users = find_new_users(Date.today.midnight, Date.today.tomorrow.midnight)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
# Query returns a hash of user_id to number of activities for that user.
|
|
13
|
+
@active_users_count = Activity.group("user_id").having("count(created_at > ?) > 0", 1.month.ago).count.keys.size
|
|
13
14
|
|
|
14
15
|
@active_users = User.find_by_activity({:since => 1.month.ago})
|
|
15
16
|
|
|
16
|
-
@percent_reporting_zip = (User.
|
|
17
|
+
@percent_reporting_zip = (User.where("zip IS NOT NULL").count / @total_users.to_f)*100
|
|
17
18
|
|
|
18
|
-
users_reporting_gender = User.
|
|
19
|
-
@percent_male = (User.
|
|
20
|
-
@percent_female = (User.
|
|
19
|
+
users_reporting_gender = User.where("gender IS NOT NULL").count
|
|
20
|
+
@percent_male = (User.where('gender = ?', User::MALE).count / users_reporting_gender.to_f) * 100
|
|
21
|
+
@percent_female = (User.where('gender = ?', User::FEMALE).count / users_reporting_gender.to_f) * 100
|
|
21
22
|
|
|
22
23
|
@featured_writers = User.find_featured
|
|
23
24
|
|
|
24
|
-
@posts = Post.
|
|
25
|
+
@posts = Post.includes(:user).where('? <= posts.published_at AND posts.published_at <= ? AND users.featured_writer = ?', Time.now.beginning_of_month, (Time.now.end_of_month + 1.day), true).includes(:users)
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
|
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
class TagsController < BaseController
|
|
2
2
|
before_filter :login_required, :only => [:manage, :edit, :update, :destroy]
|
|
3
3
|
before_filter :admin_required, :only => [:manage, :edit, :update, :destroy]
|
|
4
|
-
skip_before_filter :verify_authenticity_token, :only =>
|
|
4
|
+
skip_before_filter :verify_authenticity_token, :only => [:auto_complete_for_tag_name]
|
|
5
5
|
|
|
6
6
|
caches_action :show, :cache_path => Proc.new { |controller| controller.send(:tag_url, controller.params[:id]) }, :if => Proc.new{|c| c.cache_action? }
|
|
7
7
|
def cache_action?
|
|
8
8
|
!logged_in? && params[:type].blank?
|
|
9
|
-
end
|
|
9
|
+
end
|
|
10
10
|
|
|
11
11
|
def auto_complete_for_tag_name
|
|
12
|
-
@
|
|
13
|
-
|
|
12
|
+
@tag_names = ActsAsTaggableOn::Tag.pluck(:name)
|
|
13
|
+
respond_to do |format|
|
|
14
|
+
format.json {render :inline => @tag_names.to_json}
|
|
15
|
+
end
|
|
14
16
|
end
|
|
15
|
-
|
|
16
|
-
def index
|
|
17
|
-
@tags = popular_tags(100)
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
def index
|
|
19
|
+
@tags = popular_tags(100).to_a
|
|
20
|
+
|
|
21
|
+
@user_tags = popular_tags(75, 'User').to_a
|
|
22
|
+
|
|
23
|
+
@post_tags = popular_tags(75, 'Post').to_a
|
|
22
24
|
|
|
23
|
-
@photo_tags = popular_tags(75, 'Photo')
|
|
25
|
+
@photo_tags = popular_tags(75, 'Photo').to_a
|
|
24
26
|
|
|
25
|
-
@clipping_tags = popular_tags(75, 'Clipping')
|
|
27
|
+
@clipping_tags = popular_tags(75, 'Clipping').to_a
|
|
26
28
|
end
|
|
27
|
-
|
|
28
|
-
def manage
|
|
29
|
-
@search = ActsAsTaggableOn::Tag.search(params[:
|
|
30
|
-
@
|
|
31
|
-
@tags = @
|
|
29
|
+
|
|
30
|
+
def manage
|
|
31
|
+
@search = ActsAsTaggableOn::Tag.search(params[:q])
|
|
32
|
+
@tags = @search.result
|
|
33
|
+
@tags = @tags.order('name ASC').distinct.page(params[:page]).per(100)
|
|
32
34
|
end
|
|
33
|
-
|
|
35
|
+
|
|
34
36
|
|
|
35
37
|
def edit
|
|
36
38
|
@tag = ActsAsTaggableOn::Tag.find_by_name(URI::decode(params[:id]))
|
|
@@ -38,7 +40,7 @@ class TagsController < BaseController
|
|
|
38
40
|
|
|
39
41
|
def update
|
|
40
42
|
@tag = ActsAsTaggableOn::Tag.find_by_name(URI::decode(params[:id]))
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
respond_to do |format|
|
|
43
45
|
if @tag.update_attributes(params[:tag])
|
|
44
46
|
flash[:notice] = :tag_was_successfully_updated.l
|
|
@@ -46,7 +48,7 @@ class TagsController < BaseController
|
|
|
46
48
|
format.xml { render :nothing => true }
|
|
47
49
|
else
|
|
48
50
|
format.html { render :action => "edit" }
|
|
49
|
-
format.xml { render :xml => @tag.errors.to_xml }
|
|
51
|
+
format.xml { render :xml => @tag.errors.to_xml }
|
|
50
52
|
end
|
|
51
53
|
end
|
|
52
54
|
end
|
|
@@ -54,9 +56,9 @@ class TagsController < BaseController
|
|
|
54
56
|
def destroy
|
|
55
57
|
@tag = ActsAsTaggableOn::Tag.find_by_name(URI::decode(params[:id]))
|
|
56
58
|
@tag.destroy
|
|
57
|
-
|
|
59
|
+
|
|
58
60
|
respond_to do |format|
|
|
59
|
-
format.html {
|
|
61
|
+
format.html {
|
|
60
62
|
flash[:notice] = :tag_was_successfully_deleted.l
|
|
61
63
|
redirect_to admin_tags_url
|
|
62
64
|
}
|
|
@@ -66,8 +68,8 @@ class TagsController < BaseController
|
|
|
66
68
|
|
|
67
69
|
def show
|
|
68
70
|
tag_array = ActsAsTaggableOn::TagList.from( URI::decode(params[:id]) )
|
|
69
|
-
|
|
70
|
-
@tags = ActsAsTaggableOn::Tag.
|
|
71
|
+
|
|
72
|
+
@tags = ActsAsTaggableOn::Tag.where('name IN (?)', tag_array)
|
|
71
73
|
if @tags.nil? || @tags.empty?
|
|
72
74
|
flash[:notice] = :tag_does_not_exists.l_with_args(:tag => tag_array)
|
|
73
75
|
redirect_to :action => :index and return
|
|
@@ -11,14 +11,14 @@ class TopicsController < BaseController
|
|
|
11
11
|
respond_to do |format|
|
|
12
12
|
format.html { redirect_to forum_path(params[:forum_id]) }
|
|
13
13
|
format.xml do
|
|
14
|
-
@topics = @forum.topics.
|
|
14
|
+
@topics = @forum.topics.order('sticky desc, replied_at desc').limit(25)
|
|
15
15
|
render :xml => @topics.to_xml
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def new
|
|
21
|
-
@topic = Topic.new
|
|
21
|
+
@topic = Topic.new
|
|
22
22
|
@topic.sb_posts.build
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -48,7 +48,7 @@ class TopicsController < BaseController
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def create
|
|
51
|
-
@topic = @forum.topics.new(
|
|
51
|
+
@topic = @forum.topics.new(topic_params)
|
|
52
52
|
assign_protected
|
|
53
53
|
|
|
54
54
|
@post = @topic.sb_posts.first
|
|
@@ -79,7 +79,7 @@ class TopicsController < BaseController
|
|
|
79
79
|
def update
|
|
80
80
|
assign_protected
|
|
81
81
|
@topic.tag_list = params[:tag_list] || ''
|
|
82
|
-
@topic.update_attributes!(
|
|
82
|
+
@topic.update_attributes!(topic_params)
|
|
83
83
|
respond_to do |format|
|
|
84
84
|
format.html { redirect_to forum_topic_path(@forum, @topic) }
|
|
85
85
|
format.xml { head 200 }
|
|
@@ -103,10 +103,10 @@ class TopicsController < BaseController
|
|
|
103
103
|
|
|
104
104
|
# admins and moderators can sticky and lock topics
|
|
105
105
|
return unless admin? or current_user.moderator_of?(@topic.forum)
|
|
106
|
-
@topic.sticky, @topic.locked =
|
|
106
|
+
@topic.sticky, @topic.locked = topic_params[:sticky], topic_params[:locked]
|
|
107
107
|
# only admins can move
|
|
108
108
|
return unless admin?
|
|
109
|
-
@topic.forum_id =
|
|
109
|
+
@topic.forum_id = topic_params[:forum_id] if topic_params[:forum_id]
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
def find_forum_and_topic
|
|
@@ -118,4 +118,8 @@ class TopicsController < BaseController
|
|
|
118
118
|
def authorized?
|
|
119
119
|
%w(new create).include?(action_name) || @topic.editable_by?(current_user)
|
|
120
120
|
end
|
|
121
|
+
|
|
122
|
+
def topic_params
|
|
123
|
+
params[:topic].permit(:title, :sticky, :locked, {:sb_posts_attributes => [:body]}, :forum_id)
|
|
124
|
+
end
|
|
121
125
|
end
|
|
@@ -65,31 +65,31 @@ class UsersController < BaseController
|
|
|
65
65
|
|
|
66
66
|
def show
|
|
67
67
|
@friend_count = @user.accepted_friendships.count
|
|
68
|
-
@accepted_friendships = @user.accepted_friendships.
|
|
68
|
+
@accepted_friendships = @user.accepted_friendships.limit(5).to_a.collect{|f| f.friend }
|
|
69
69
|
@pending_friendships_count = @user.pending_friendships.count()
|
|
70
70
|
|
|
71
|
-
@comments = @user.comments.
|
|
71
|
+
@comments = @user.comments.limit(10).order('created_at DESC')
|
|
72
72
|
@photo_comments = Comment.find_photo_comments_for(@user)
|
|
73
73
|
@users_comments = Comment.find_comments_by_user(@user).limit(5)
|
|
74
74
|
|
|
75
|
-
@recent_posts = @user.posts.recent.
|
|
76
|
-
@clippings = @user.clippings.
|
|
77
|
-
@photos = @user.photos.
|
|
78
|
-
@comment = Comment.new
|
|
75
|
+
@recent_posts = @user.posts.recent.limit(2)
|
|
76
|
+
@clippings = @user.clippings.limit(5)
|
|
77
|
+
@photos = @user.photos.limit(5)
|
|
78
|
+
@comment = Comment.new
|
|
79
79
|
|
|
80
|
-
@my_activity = Activity.recent.by_users([@user.id]).
|
|
80
|
+
@my_activity = Activity.recent.by_users([@user.id]).limit(10)
|
|
81
81
|
|
|
82
82
|
update_view_count(@user) unless current_user && current_user.eql?(@user)
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
def new
|
|
86
|
-
@user = User.new(
|
|
86
|
+
@user = User.new(:birthday => Date.parse((Time.now - 25.years).to_s))
|
|
87
87
|
@inviter_id = params[:id]
|
|
88
88
|
@inviter_code = params[:code]
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def create
|
|
92
|
-
@user = User.new(
|
|
92
|
+
@user = User.new(user_params)
|
|
93
93
|
@user.role = Role[:member]
|
|
94
94
|
|
|
95
95
|
if (!configatron.require_captcha_on_signup || verify_recaptcha(@user)) && @user.save
|
|
@@ -119,16 +119,20 @@ class UsersController < BaseController
|
|
|
119
119
|
|
|
120
120
|
@user.tag_list = params[:tag_list] || ''
|
|
121
121
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
@user.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
if user_params
|
|
123
|
+
attributes = user_params.permit!
|
|
124
|
+
attributes[:avatar_attributes][:user_id] = @user.id if attributes[:avatar_attributes]
|
|
125
|
+
if @user.update_attributes(attributes)
|
|
126
|
+
@user.track_activity(:updated_profile)
|
|
127
|
+
|
|
128
|
+
flash[:notice] = :your_changes_were_saved.l
|
|
129
|
+
unless params[:welcome]
|
|
130
|
+
redirect_to user_path(@user)
|
|
131
|
+
else
|
|
132
|
+
redirect_to :action => "welcome_#{params[:welcome]}", :id => @user
|
|
133
|
+
end
|
|
130
134
|
else
|
|
131
|
-
|
|
135
|
+
render :action => 'edit'
|
|
132
136
|
end
|
|
133
137
|
else
|
|
134
138
|
render :action => 'edit'
|
|
@@ -143,6 +147,10 @@ class UsersController < BaseController
|
|
|
143
147
|
flash[:error] = :you_cant_delete_that_user.l
|
|
144
148
|
end
|
|
145
149
|
respond_to do |format|
|
|
150
|
+
format.js {
|
|
151
|
+
render :inline => flash[:error], :status => 500 if flash[:error]
|
|
152
|
+
render :nothing => true if flash[:notice]
|
|
153
|
+
}
|
|
146
154
|
format.html { redirect_to users_url }
|
|
147
155
|
end
|
|
148
156
|
end
|
|
@@ -166,15 +174,15 @@ class UsersController < BaseController
|
|
|
166
174
|
flash[:notice] = :no_profile_photo.l
|
|
167
175
|
redirect_to upload_profile_photo_user_path(@user) and return
|
|
168
176
|
end
|
|
169
|
-
return unless request.put?
|
|
177
|
+
return unless request.put? || request.patch?
|
|
170
178
|
|
|
171
179
|
@photo.update_attributes(:crop_x => params[:crop_x], :crop_y => params[:crop_y], :crop_w => params[:crop_w], :crop_h => params[:crop_h])
|
|
172
180
|
redirect_to user_path(@user)
|
|
173
181
|
end
|
|
174
182
|
|
|
175
183
|
def upload_profile_photo
|
|
176
|
-
@avatar = Photo.new(
|
|
177
|
-
return unless request.put?
|
|
184
|
+
@avatar = Photo.new(avatar_params)
|
|
185
|
+
return unless request.put? || request.patch?
|
|
178
186
|
|
|
179
187
|
@avatar.user = @user
|
|
180
188
|
if @avatar.save
|
|
@@ -193,7 +201,7 @@ class UsersController < BaseController
|
|
|
193
201
|
def update_account
|
|
194
202
|
@user = current_user
|
|
195
203
|
|
|
196
|
-
if @user.update_attributes(
|
|
204
|
+
if @user.update_attributes(user_params)
|
|
197
205
|
flash[:notice] = :your_changes_were_saved.l
|
|
198
206
|
respond_to do |format|
|
|
199
207
|
format.html {redirect_to user_path(@user)}
|
|
@@ -214,7 +222,7 @@ class UsersController < BaseController
|
|
|
214
222
|
def update_pro_details
|
|
215
223
|
@user = User.find(params[:id])
|
|
216
224
|
|
|
217
|
-
if @user.update_attributes(
|
|
225
|
+
if @user.update_attributes(user_params)
|
|
218
226
|
respond_to do |format|
|
|
219
227
|
format.html {
|
|
220
228
|
flash[:notice] = :your_changes_were_saved.l
|
|
@@ -329,9 +337,9 @@ class UsersController < BaseController
|
|
|
329
337
|
states = country ? country.states : []
|
|
330
338
|
|
|
331
339
|
if states.any?
|
|
332
|
-
metro_areas = state ? state.metro_areas.order("name ASC")
|
|
340
|
+
metro_areas = state ? state.metro_areas.order("name ASC") : []
|
|
333
341
|
else
|
|
334
|
-
metro_areas = country ? country.metro_areas.order("name ASC")
|
|
342
|
+
metro_areas = country ? country.metro_areas.order("name ASC") : []
|
|
335
343
|
end
|
|
336
344
|
|
|
337
345
|
respond_to do |format|
|
|
@@ -355,8 +363,12 @@ class UsersController < BaseController
|
|
|
355
363
|
|
|
356
364
|
def toggle_moderator
|
|
357
365
|
@user = User.find(params[:id])
|
|
358
|
-
|
|
359
|
-
|
|
366
|
+
if not @user.admin?
|
|
367
|
+
@user.role = @user.moderator? ? Role[:member] : Role[:moderator]
|
|
368
|
+
@user.save!
|
|
369
|
+
else
|
|
370
|
+
flash[:error] = :you_cannot_make_an_administrator_a_moderator.l
|
|
371
|
+
end
|
|
360
372
|
redirect_to user_path(@user)
|
|
361
373
|
end
|
|
362
374
|
|
|
@@ -371,10 +383,9 @@ class UsersController < BaseController
|
|
|
371
383
|
start_date = @month.beginning_of_month
|
|
372
384
|
end_date = @month.end_of_month.end_of_day
|
|
373
385
|
|
|
374
|
-
@posts = @user.posts.
|
|
375
|
-
:conditions => ['? <= published_at AND published_at <= ?', start_date, end_date])
|
|
386
|
+
@posts = @user.posts.where('? <= published_at AND published_at <= ?', start_date, end_date)
|
|
376
387
|
|
|
377
|
-
@estimated_payment = @posts.sum do |p|
|
|
388
|
+
@estimated_payment = @posts.to_a.sum do |p|
|
|
378
389
|
7
|
|
379
390
|
end
|
|
380
391
|
|
|
@@ -391,18 +402,18 @@ class UsersController < BaseController
|
|
|
391
402
|
params[:delete].each { |id|
|
|
392
403
|
user = User.find(id)
|
|
393
404
|
unless user.admin? || user.featured_writer?
|
|
394
|
-
user.spam! if params[:spam] &&
|
|
405
|
+
user.spam! if params[:spam] && configatron.has_key?(:akismet_key)
|
|
395
406
|
user.destroy
|
|
396
407
|
end
|
|
397
408
|
}
|
|
398
409
|
end
|
|
399
|
-
flash[:notice] = :
|
|
410
|
+
flash[:notice] = :the_selected_users_were_deleted.l
|
|
400
411
|
redirect_to admin_users_path
|
|
401
412
|
end
|
|
402
413
|
|
|
403
414
|
protected
|
|
404
415
|
def setup_metro_areas_for_cloud
|
|
405
|
-
@metro_areas_for_cloud = MetroArea.
|
|
416
|
+
@metro_areas_for_cloud = MetroArea.where("users_count > 0", :order => "users_count DESC").limit(100)
|
|
406
417
|
@metro_areas_for_cloud = @metro_areas_for_cloud.sort_by{|m| m.name}
|
|
407
418
|
end
|
|
408
419
|
|
|
@@ -411,7 +422,7 @@ class UsersController < BaseController
|
|
|
411
422
|
|
|
412
423
|
states = user.country.states if user.country
|
|
413
424
|
|
|
414
|
-
metro_areas = user.state.metro_areas.
|
|
425
|
+
metro_areas = user.state.metro_areas.order("name") if user.state
|
|
415
426
|
|
|
416
427
|
return metro_areas, states
|
|
417
428
|
end
|
|
@@ -420,4 +431,22 @@ class UsersController < BaseController
|
|
|
420
431
|
current_user && (current_user.admin? || @is_current_user) ? true : access_denied
|
|
421
432
|
end
|
|
422
433
|
|
|
434
|
+
|
|
435
|
+
def avatar_params
|
|
436
|
+
params[:avatar] && params[:avatar].permit(:name, :description, :album_id, :photo)
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
def user_params
|
|
440
|
+
params[:user].permit(:avatar_id, :company_name, :country_id, :description, :email,
|
|
441
|
+
:firstname, :fullname, :gender, :lastname, :login, :metro_area_id,
|
|
442
|
+
:middlename, :notify_comments, :notify_community_news,
|
|
443
|
+
:notify_friend_requests, :password, :password_confirmation,
|
|
444
|
+
:profile_public, :state_id, :stylesheet, :time_zone, :vendor, :zip,
|
|
445
|
+
:tag_list,
|
|
446
|
+
{:avatar_attributes => [:id, :name, :description, :album_id, :user, :user_id, :photo, :photo_remote_url]}, :birthday) if params[:user]
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
def comment_params
|
|
450
|
+
params[:comment].permit(:author_name, :author_email, :notify_by_email, :author_url, :comment)
|
|
451
|
+
end
|
|
423
452
|
end
|
data/app/helpers/base_helper.rb
CHANGED
|
@@ -46,6 +46,31 @@ module BaseHelper
|
|
|
46
46
|
block_to_partial('shared/box', html_options, &block)
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def widget(html_options = {}, &block)
|
|
52
|
+
@widgets ||= ''
|
|
53
|
+
@widgets << render(:partial => 'shared/widget', :locals => {:body => capture(&block), :html_options => html_options})
|
|
54
|
+
return ''
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def render_widgets
|
|
58
|
+
if @widgets
|
|
59
|
+
@widgets.html_safe
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def jumbotron(html_options = {}, &block)
|
|
64
|
+
@jumbotron = render(:partial => 'shared/jumbotron', :locals => {:body => capture(&block), :html_options => html_options})
|
|
65
|
+
return ''
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def render_jumbotron
|
|
69
|
+
if @jumbotron
|
|
70
|
+
@jumbotron.html_safe
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
49
74
|
def city_cloud(cities, classes)
|
|
50
75
|
max, min = 0, 0
|
|
51
76
|
cities.each { |c|
|
|
@@ -152,19 +177,70 @@ module BaseHelper
|
|
|
152
177
|
title
|
|
153
178
|
end
|
|
154
179
|
|
|
180
|
+
def container_title
|
|
181
|
+
app_base = configatron.community_name
|
|
182
|
+
title = app_base
|
|
183
|
+
|
|
184
|
+
case controller.controller_name
|
|
185
|
+
when 'pages'
|
|
186
|
+
if @page and @page.title
|
|
187
|
+
title = @page.title
|
|
188
|
+
end
|
|
189
|
+
when 'posts'
|
|
190
|
+
if @post and @post.title
|
|
191
|
+
title = @post.title
|
|
192
|
+
@canonical_url = user_post_url(@post.user, @post)
|
|
193
|
+
end
|
|
194
|
+
when 'users'
|
|
195
|
+
if @user && !@user.new_record? && @user.login
|
|
196
|
+
title = @user.login
|
|
197
|
+
@canonical_url = user_url(@user)
|
|
198
|
+
else
|
|
199
|
+
title = :showing_users.l
|
|
200
|
+
end
|
|
201
|
+
when 'photos'
|
|
202
|
+
if @user and @user.login
|
|
203
|
+
title = :users_photos.l(:user => @user.login)
|
|
204
|
+
end
|
|
205
|
+
when 'clippings'
|
|
206
|
+
if @user and @user.login
|
|
207
|
+
title = :user_clippings.l(:user => @user.login)
|
|
208
|
+
end
|
|
209
|
+
when 'tags'
|
|
210
|
+
case controller.action_name
|
|
211
|
+
when 'show'
|
|
212
|
+
if params[:type]
|
|
213
|
+
title = I18n.translate('all_' + params[:type].downcase.pluralize + '_tagged', :tag_name => @tags.map(&:name).join(', '))
|
|
214
|
+
else
|
|
215
|
+
title = :posts_photos_and_bookmarks.l(:name => @tags.map(&:name).join(', '))
|
|
216
|
+
end
|
|
217
|
+
title += " (#{:related_tags.l}: #{@related_tags.join(', ')})" if @related_tags
|
|
218
|
+
@canonical_url = tag_url(URI.escape(URI.escape(@tags_raw), /[\/.?#]/)) if @tags_raw
|
|
219
|
+
else
|
|
220
|
+
title = "Showing tags"
|
|
221
|
+
end
|
|
222
|
+
when 'categories'
|
|
223
|
+
if @category and @category.name
|
|
224
|
+
title = :posts_photos_and_bookmarks.l(:name => @category.name)
|
|
225
|
+
else
|
|
226
|
+
title = :showing_categories.l
|
|
227
|
+
end
|
|
228
|
+
when 'sessions'
|
|
229
|
+
title = :login.l
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
if @page_title
|
|
233
|
+
title = @page_title
|
|
234
|
+
elsif title == app_base
|
|
235
|
+
title = :showing.l + ' ' + controller.controller_name
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
title
|
|
239
|
+
end
|
|
240
|
+
|
|
155
241
|
def add_friend_link(user = nil)
|
|
156
|
-
html = "
|
|
157
|
-
html
|
|
158
|
-
{ :update => "friend_request_#{user.id}",
|
|
159
|
-
:loading => "$$('span#friend_request_#{user.id} span.spinner')[0].show(); $$('span#friend_request_#{user.id} a.add_friend_btn')[0].hide()",
|
|
160
|
-
:complete => visual_effect(:highlight, "friend_request_#{user.id}", :duration => 1),
|
|
161
|
-
500 => "alert('#{escape_javascript(:sorry_there_was_an_error_requesting_friendship.l)}')",
|
|
162
|
-
:url => hash_for_user_friendships_url(:user_id => current_user.id, :friend_id => user.id),
|
|
163
|
-
:method => :post
|
|
164
|
-
}, {:class => "add_friend button"}
|
|
165
|
-
html += "<span style='display:none;' class='spinner'>"
|
|
166
|
-
html += image_tag('spinner.gif')
|
|
167
|
-
html += "#{:requesting_friendship.l} ...</span></span>"
|
|
242
|
+
html = ""
|
|
243
|
+
html << render(:partial => 'shared/add_friend_link', :locals => {:user => user})
|
|
168
244
|
html.html_safe
|
|
169
245
|
end
|
|
170
246
|
|
|
@@ -177,10 +253,10 @@ module BaseHelper
|
|
|
177
253
|
end
|
|
178
254
|
|
|
179
255
|
def more_comments_links(commentable)
|
|
180
|
-
html = link_to
|
|
256
|
+
html = link_to fa_icon('plus-circle', :text => :all_comments.l), commentable_comments_url(commentable.class.to_s.tableize, commentable.to_param)
|
|
181
257
|
html += "<br />".html_safe
|
|
182
|
-
|
|
183
|
-
|
|
258
|
+
html += link_to fa_icon('rss', :text => :comments_rss.l), commentable_comments_url(commentable.class.to_s.tableize, commentable.to_param, :format => :rss)
|
|
259
|
+
html.html_safe
|
|
184
260
|
end
|
|
185
261
|
|
|
186
262
|
def show_footer_content?
|
|
@@ -192,7 +268,7 @@ module BaseHelper
|
|
|
192
268
|
end
|
|
193
269
|
|
|
194
270
|
def paginating_links(paginator, options = {}, html_options = {})
|
|
195
|
-
paginate paginator
|
|
271
|
+
paginate paginator, :theme => 'bootstrap'
|
|
196
272
|
end
|
|
197
273
|
|
|
198
274
|
def last_active
|
|
@@ -200,16 +276,11 @@ module BaseHelper
|
|
|
200
276
|
end
|
|
201
277
|
|
|
202
278
|
def ajax_spinner_for(id, spinner="spinner.gif")
|
|
203
|
-
|
|
279
|
+
image_tag spinner, class: 'hide', id: "#{id.to_s}_spinner"
|
|
204
280
|
end
|
|
205
281
|
|
|
206
282
|
def avatar_for(user, size=32)
|
|
207
|
-
image_tag user.avatar_photo_url(:
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
def feed_icon_tag(title, url)
|
|
211
|
-
(@feed_icons ||= []) << { :url => url, :title => title }
|
|
212
|
-
link_to image_tag('feed.png', :size => '14x14', :alt => :subscribe_to.l+" #{title}", :plugin => 'community_engine'), url
|
|
283
|
+
image_tag user.avatar_photo_url(:thumb), :class => 'thumbnail'
|
|
213
284
|
end
|
|
214
285
|
|
|
215
286
|
def search_posts_title
|
|
@@ -236,9 +307,9 @@ module BaseHelper
|
|
|
236
307
|
case distance_in_minutes
|
|
237
308
|
when 0 then :a_few_seconds_ago.l
|
|
238
309
|
when 1..59 then :minutes_ago.l(:count => distance_in_minutes)
|
|
239
|
-
when 60..
|
|
240
|
-
when 1440..2880 then :days_ago.l(:count => (distance_in_minutes.to_f / 1440.0).round) # 1 days to 2 days
|
|
241
|
-
else I18n.l(from_time
|
|
310
|
+
when 60..1440 then :hours_ago.l(:count => (distance_in_minutes.to_f / 60.0).round)
|
|
311
|
+
when 1440..2880 then :days_ago.l(:count => (distance_in_minutes.to_f / 1440.0).round) # 1.5 days to 2 days
|
|
312
|
+
else I18n.l(from_time, :format => :short)
|
|
242
313
|
end
|
|
243
314
|
end
|
|
244
315
|
|
|
@@ -248,7 +319,7 @@ module BaseHelper
|
|
|
248
319
|
elsif date.to_date.eql?(Time.now.to_date - 1)
|
|
249
320
|
display = :yesterday.l
|
|
250
321
|
else
|
|
251
|
-
display = I18n.l(date.to_date, :format => :
|
|
322
|
+
display = I18n.l(date.to_date, :format => :short)
|
|
252
323
|
end
|
|
253
324
|
end
|
|
254
325
|
|
|
@@ -277,8 +348,27 @@ module BaseHelper
|
|
|
277
348
|
|
|
278
349
|
def tiny_mce_init_if_needed
|
|
279
350
|
if !@uses_tiny_mce.blank?
|
|
280
|
-
|
|
281
|
-
|
|
351
|
+
javascript_tag(tiny_mce_js)
|
|
352
|
+
end
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
def tiny_mce_js
|
|
356
|
+
selector = @tiny_mce_configuration['selector']
|
|
357
|
+
"jQuery(function(){jQuery('#{selector}').RichTextEditor(#{@tiny_mce_configuration.to_json})});".html_safe
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
def flash_class(level)
|
|
361
|
+
case level
|
|
362
|
+
when :notice then "alert-info"
|
|
363
|
+
when :error then "alert-danger"
|
|
364
|
+
when :alert then "alert-warning"
|
|
282
365
|
end
|
|
283
366
|
end
|
|
367
|
+
|
|
368
|
+
def tag_auto_complete_field(id, options = {})
|
|
369
|
+
options[:url][:format] = 'json'
|
|
370
|
+
html = ""
|
|
371
|
+
html << render(:partial => 'shared/tag_auto_complete', :locals => {:id => id, :options => options})
|
|
372
|
+
html.html_safe
|
|
373
|
+
end
|
|
284
374
|
end
|