├── lib
├── tasks
│ ├── .gitkeep
│ └── default.rake
├── diaspora
│ ├── fetcher.rb
│ ├── markdownify.rb
│ ├── markdownify
│ │ └── html.rb
│ ├── federated.rb
│ └── guid.rb
├── development_mail_interceptor.rb
├── postzord.rb
├── stream.rb
├── diaspora.rb
├── stream
│ └── activity.rb
└── sidekiq_middlewares.rb
├── app
├── assets
│ ├── stylesheets
│ │ ├── .gitkeep
│ │ ├── blueprint.css
│ │ ├── vendor
│ │ │ ├── blank.gif
│ │ │ ├── jquery.mentionsInput.css
│ │ │ ├── blueprint
│ │ │ │ ├── src
│ │ │ │ │ └── grid.png
│ │ │ │ └── plugins
│ │ │ │ │ ├── buttons
│ │ │ │ │ └── icons
│ │ │ │ │ │ ├── key.png
│ │ │ │ │ │ ├── cross.png
│ │ │ │ │ │ └── tick.png
│ │ │ │ │ ├── link-icons
│ │ │ │ │ └── icons
│ │ │ │ │ │ ├── im.png
│ │ │ │ │ │ ├── doc.png
│ │ │ │ │ │ ├── email.png
│ │ │ │ │ │ ├── feed.png
│ │ │ │ │ │ ├── pdf.png
│ │ │ │ │ │ ├── xls.png
│ │ │ │ │ │ ├── visited.png
│ │ │ │ │ │ └── external.png
│ │ │ │ │ ├── rtl
│ │ │ │ │ └── readme.txt
│ │ │ │ │ └── fancy-type
│ │ │ │ │ └── readme.txt
│ │ │ ├── images
│ │ │ │ ├── ajax-loader.png
│ │ │ │ ├── icons-18-black.png
│ │ │ │ ├── icons-18-white.png
│ │ │ │ ├── icons-36-black.png
│ │ │ │ ├── icons-36-white.png
│ │ │ │ └── icon-search-black.png
│ │ │ └── interim-bootstrap.css.scss
│ │ ├── bootstrap-complete.css.scss
│ │ ├── sprites.css.scss
│ │ ├── post_report.css.scss
│ │ ├── new_styles
│ │ │ ├── _flash_messages.scss
│ │ │ ├── _viewer_nav.scss
│ │ │ └── _variables.scss
│ │ ├── media-box.css.scss
│ │ └── default.css
│ ├── templates
│ │ ├── static-text_tpl.jst.hbs
│ │ ├── stream-faces_tpl.jst.hbs
│ │ ├── status-message-location_tpl.jst.hbs
│ │ ├── photo_tpl.jst.hbs
│ │ ├── photo-viewer_tpl.jst.hbs
│ │ ├── activity-streams-photo_tpl.jst.hbs
│ │ ├── tag_following_tpl.jst.hbs
│ │ ├── tag_following_list_tpl.jst.hbs
│ │ ├── single-post-viewer_tpl.jst.hbs
│ │ ├── aspect_tpl.jst.hbs
│ │ ├── aspects-list_tpl.jst.hbs
│ │ ├── tag_following_action_tpl.jst.hbs
│ │ └── opengraph_tpl.jst.hbs
│ ├── javascripts
│ │ ├── app
│ │ │ ├── models
│ │ │ │ ├── like.js
│ │ │ │ ├── block.js
│ │ │ │ ├── comment.js
│ │ │ │ ├── post_report.js
│ │ │ │ ├── tag_following.js
│ │ │ │ ├── aspect.js
│ │ │ │ ├── photo.js
│ │ │ │ ├── aspect_membership.js
│ │ │ │ └── reshare.js
│ │ │ ├── collections
│ │ │ │ ├── posts.js
│ │ │ │ ├── reshares.js
│ │ │ │ ├── likes.js
│ │ │ │ └── photos.js
│ │ │ ├── views
│ │ │ │ ├── location_stream.js
│ │ │ │ ├── feedback_actions.js
│ │ │ │ ├── photo_viewer.js
│ │ │ │ ├── sidebar.js
│ │ │ │ └── photo_view.js
│ │ │ ├── helpers
│ │ │ │ ├── handlebars-partials.js
│ │ │ │ ├── open_graph.js
│ │ │ │ └── o_embed.js
│ │ │ └── models.js
│ │ ├── ie.js
│ │ ├── mailchimp.js
│ │ ├── photos.js
│ │ ├── finder.js
│ │ ├── templates.js
│ │ ├── profile.js
│ │ ├── pages
│ │ │ ├── services-finder.js
│ │ │ ├── featured-users-index.js
│ │ │ ├── invitations-edit.js
│ │ │ ├── notifications-index.js
│ │ │ ├── contacts-index.js
│ │ │ └── invitations-new.js
│ │ ├── home.js
│ │ └── jasmine-load-all.js
│ └── images
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ ├── sadcat.jpg
│ │ ├── tipsy.gif
│ │ ├── asterisk.png
│ │ ├── header-bg.png
│ │ ├── icons
│ │ ├── cog.png
│ │ ├── camera.png
│ │ ├── circle.png
│ │ ├── coffee.png
│ │ ├── globe.png
│ │ ├── heart.png
│ │ ├── mail.png
│ │ ├── marker.png
│ │ ├── pencil.png
│ │ ├── photo.png
│ │ ├── plus.png
│ │ ├── users.png
│ │ ├── bookmark.png
│ │ ├── mail_big.png
│ │ ├── mention.png
│ │ ├── message.png
│ │ ├── question.png
│ │ ├── arrow_down.png
│ │ ├── back_white.png
│ │ ├── deletelabel.png
│ │ ├── home_grey.png
│ │ ├── ignoreuser.png
│ │ ├── list_white.png
│ │ ├── mail_grey.png
│ │ ├── my_activity.png
│ │ ├── pen_write.png
│ │ ├── postreport.png
│ │ ├── search_grey.png
│ │ ├── user_grey.png
│ │ ├── check_yes_ok.png
│ │ ├── padlock-open.png
│ │ ├── search_white.png
│ │ ├── arrow_down_small.png
│ │ ├── arrow_up_small.png
│ │ ├── compose_mobile.png
│ │ ├── compose_mobile2.png
│ │ ├── heart_mobile_red.png
│ │ ├── mail_grey_hover.png
│ │ ├── padlock-closed.png
│ │ ├── reshare_mobile.png
│ │ ├── smiley_laughing.png
│ │ ├── check_yes_ok_white.png
│ │ ├── heart_mobile_grey.png
│ │ ├── monotone_add_plus.png
│ │ ├── monotone_check_yes.png
│ │ ├── monotone_pen_write.png
│ │ ├── monotone_question.png
│ │ ├── notifications_grey.png
│ │ ├── pencil_mobile_grey.png
│ │ ├── check_yes_ok_lighter.png
│ │ ├── comment_mobile_grey.png
│ │ ├── reshare_mobile_active.png
│ │ ├── monotone_plus_add_round.png
│ │ ├── monotone_close_exit_delete.png
│ │ ├── monotone_wrench_settings.png
│ │ ├── notifications_grey_hover.png
│ │ ├── pencil_mobile_grey_active.png
│ │ ├── pencil_mobile_grey_mobile.png
│ │ └── monotone_email_letter_round.png
│ │ ├── mocks
│ │ ├── bp.jpeg
│ │ └── user_pic.jpeg
│ │ ├── pen_white.png
│ │ ├── user
│ │ ├── uma.jpg
│ │ ├── wolf.jpg
│ │ ├── angela.jpg
│ │ └── default.png
│ │ ├── ajax-loader.gif
│ │ ├── ajax-loader2.gif
│ │ ├── arrow-left.png
│ │ ├── arrow-right.png
│ │ ├── close_label.png
│ │ ├── deletelabel.png
│ │ ├── landing
│ │ ├── lock.png
│ │ ├── github.png
│ │ ├── title.png
│ │ └── world.png
│ │ ├── asterisk_white.png
│ │ ├── branding
│ │ ├── ball.png
│ │ ├── white.png
│ │ ├── asterisk.png
│ │ ├── white2x.png
│ │ ├── ball_small.png
│ │ ├── logo_caps.png
│ │ ├── apple-splash.png
│ │ ├── header-logo.png
│ │ ├── header-logo2x.png
│ │ ├── white_on_grey.png
│ │ ├── asterisk_white.png
│ │ └── powered_by_diaspora.png
│ │ ├── buttons
│ │ ├── delete.png
│ │ ├── bday@2x.png
│ │ ├── close@2x.png
│ │ ├── edit2@2x.png
│ │ ├── playbtn.png
│ │ ├── back_hov@2x.png
│ │ ├── done_hov@2x.png
│ │ ├── next_hov@2x.png
│ │ ├── bday@2x-white.png
│ │ ├── delete_hover.png
│ │ ├── tumblr_hov@2x.png
│ │ ├── twitter_hov@2x.png
│ │ ├── facebook_hov@2x.png
│ │ ├── service-icons
│ │ │ ├── fb@2x.png
│ │ │ ├── tumblr@2x.png
│ │ │ ├── twitter@2x.png
│ │ │ ├── fb@2x-white.png
│ │ │ ├── tumblr@2x-white.png
│ │ │ └── twitter@2x-white.png
│ │ └── templates
│ │ │ ├── Fridge@2x.png
│ │ │ ├── Typist@2x.png
│ │ │ ├── Vanilla@2x.png
│ │ │ └── Wallpaper@2x.png
│ │ ├── header-bg-long.jpg
│ │ ├── invalid_fat@2x.png
│ │ ├── mobile-spinner.gif
│ │ ├── static-loader.png
│ │ ├── texture
│ │ ├── paper.jpg
│ │ ├── typist.png
│ │ ├── light-bg.png
│ │ ├── vanilla.jpg
│ │ ├── hatched-dark.png
│ │ └── hatched-light.jpg
│ │ ├── up-tick-inset.png
│ │ ├── apple-touch-icon.png
│ │ ├── down-tick-inset.png
│ │ ├── facebox
│ │ ├── loading.gif
│ │ └── closelabel.png
│ │ ├── fonts
│ │ ├── Roboto-Bold.ttf
│ │ ├── Roboto-Light.ttf
│ │ └── Roboto-Regular.ttf
│ │ ├── add_contact_button.png
│ │ ├── ajax-loader_inverted.gif
│ │ ├── signupimages@2x_mini.jpg
│ │ ├── services
│ │ ├── twitter_sign_in.png
│ │ └── facebook_sign_in.png
│ │ ├── img
│ │ ├── glyphicons-halflings-blue.png
│ │ └── glyphicons-halflings-red.png
│ │ └── social_media_logos
│ │ ├── feed-16x16.png
│ │ ├── feed-24x24.png
│ │ ├── feed-32x32.png
│ │ ├── feed-48x48.png
│ │ ├── email-16x16.png
│ │ ├── email-24x24.png
│ │ ├── email-32x32.png
│ │ ├── email-48x48.png
│ │ ├── tumblr-16x16.png
│ │ ├── tumblr-24x24.png
│ │ ├── tumblr-32x32.png
│ │ ├── tumblr-48x48.png
│ │ ├── twitter-16x16.png
│ │ ├── twitter-24x24.png
│ │ ├── twitter-32x32.png
│ │ ├── twitter-48x48.png
│ │ ├── website-16x16.png
│ │ ├── website-24x24.png
│ │ ├── website-32x32.png
│ │ ├── website-48x48.png
│ │ ├── facebook-16x16.png
│ │ ├── facebook-24x24.png
│ │ ├── facebook-32x32.png
│ │ ├── facebook-48x48.png
│ │ ├── wordpress-16x16.png
│ │ ├── wordpress-24x24.png
│ │ ├── wordpress-32x32.png
│ │ └── wordpress-48x48.png
├── views
│ ├── likes
│ │ ├── index.html.haml
│ │ └── _likes.haml
│ ├── post_report
│ │ └── post_report_email.markerb
│ ├── notifier
│ │ ├── invite.markerb
│ │ ├── single_admin.markerb
│ │ ├── private_message.markerb
│ │ ├── mentioned.markerb
│ │ ├── started_sharing.markerb
│ │ ├── liked.markerb
│ │ ├── reshared.markerb
│ │ ├── also_commented.markerb
│ │ ├── comment_on_post.markerb
│ │ ├── confirm_email.markerb
│ │ └── _notifier_css.haml
│ ├── help
│ │ └── _help_nav.haml
│ ├── people
│ │ ├── _aspect_membership_dropdown.haml
│ │ ├── tag_index.js.erb
│ │ ├── _add_contact.html.haml
│ │ ├── _relationship_action.haml
│ │ ├── _index.html.haml
│ │ └── _person.mobile.haml
│ ├── comments
│ │ └── new.mobile.haml
│ ├── devise
│ │ ├── mailer
│ │ │ ├── invitation_instructions.markerb
│ │ │ ├── confirmation_instructions.markerb
│ │ │ ├── unlock_instructions.markerb
│ │ │ └── reset_password_instructions.markerb
│ │ ├── unlocks
│ │ │ └── new.html.haml
│ │ ├── confirmations
│ │ │ └── new.html.haml
│ │ └── passwords
│ │ │ └── new.haml
│ ├── simple_captcha
│ │ ├── _simple_captcha.haml
│ │ └── _simple_captcha.mobile.haml
│ ├── layouts
│ │ ├── with_header.html.haml
│ │ ├── _footer.html.haml
│ │ ├── with_header_with_footer.html.haml
│ │ ├── notifier.text.haml
│ │ └── centered_with_header_with_footer.html.haml
│ ├── posts
│ │ ├── destroy.js.erb
│ │ ├── show.html.haml
│ │ └── show.mobile.haml
│ ├── shared
│ │ ├── _invitations.haml
│ │ ├── _settings_nav.mobile.haml
│ │ ├── _settings_nav.haml
│ │ ├── _stream.haml
│ │ ├── _footer.mobile.haml
│ │ └── _links.haml
│ ├── conversations
│ │ ├── show.haml
│ │ └── _conversation_subject.haml
│ ├── aspects
│ │ ├── _no_posts_message.haml
│ │ ├── _aspect_listings.haml
│ │ └── _no_contacts_message.haml
│ ├── aspect_memberships
│ │ ├── _add_to_aspect.haml
│ │ ├── _remove_from_aspect.haml
│ │ ├── add_to_aspect.js.haml
│ │ └── remove_from_aspect.js.haml
│ ├── tags
│ │ ├── update.js.erb
│ │ ├── _followed_tags_listings.haml
│ │ └── show.mobile.haml
│ ├── home
│ │ ├── show.mobile.haml
│ │ └── show.html.haml
│ ├── admins
│ │ ├── correlations.haml
│ │ └── _admin_bar.haml
│ ├── publics
│ │ └── host_meta.erb
│ ├── notifications
│ │ └── _notify_popup_item.haml
│ ├── contacts
│ │ └── _contact.html.haml
│ ├── status_messages
│ │ └── new.mobile.haml
│ ├── photos
│ │ ├── _index.html.haml
│ │ ├── edit.html.haml
│ │ └── _photo.haml
│ ├── community_spotlight
│ │ └── _user.html.haml
│ ├── services
│ │ └── index.html.haml
│ └── errors
│ │ └── not_public.haml
├── controllers
│ ├── help_controller.rb
│ ├── sessions_controller.rb
│ └── statistics_controller.rb
├── models
│ ├── conversation_visibility.rb
│ ├── notifications
│ │ ├── request_accepted.rb
│ │ ├── reshared.rb
│ │ ├── mentioned.rb
│ │ ├── also_commented.rb
│ │ ├── comment_on_post.rb
│ │ └── liked.rb
│ ├── pod.rb
│ ├── notification_actor.rb
│ ├── post_report.rb
│ ├── tag_following.rb
│ ├── aspect_visibility.rb
│ ├── location.rb
│ ├── participation.rb
│ └── block.rb
├── presenters
│ ├── base_presenter.rb
│ ├── service_presenter.rb
│ ├── aspect_presenter.rb
│ ├── last_three_comments_decorator.rb
│ └── comment_presenter.rb
├── mailers
│ ├── diaspora_devise_mailer.rb
│ └── notification_mailers
│ │ ├── started_sharing.rb
│ │ ├── confirm_email.rb
│ │ ├── liked.rb
│ │ ├── mentioned.rb
│ │ └── reshared.rb
├── helpers
│ ├── services_helper.rb
│ ├── users_helper.rb
│ └── publisher_helper.rb
└── workers
│ ├── reset_password.rb
│ ├── mail
│ ├── post_report_worker.rb
│ ├── confirm_email.rb
│ ├── liked.rb
│ ├── reshared.rb
│ ├── comment_on_post.rb
│ ├── also_commented.rb
│ ├── invite_email.rb
│ ├── mentioned.rb
│ ├── private_message.rb
│ └── started_sharing.rb
│ ├── fetch_public_posts.rb
│ ├── resend_invitation.rb
│ ├── delete_account.rb
│ ├── post_to_service.rb
│ ├── publish_to_hub.rb
│ └── delete_post_from_service.rb
├── .powenv
├── config
├── environments
│ ├── integration1.rb
│ ├── integration2.rb
│ └── integration.rb
├── locales
│ ├── cldr
│ │ └── README.md
│ ├── README.md
│ ├── inflections
│ │ └── README.md
│ ├── devise
│ │ ├── devise.af.yml
│ │ ├── devise.en_pirate.yml
│ │ ├── devise.ga.yml
│ │ └── devise.fil.yml
│ ├── javascript
│ │ └── javascript.yi.yml
│ └── diaspora
│ │ └── af.yml
├── initializers
│ ├── markerb.rb
│ ├── set_session_secret.rb
│ ├── haml.rb
│ ├── acts_as_taggable_on.rb
│ ├── strong_parameters.rb
│ ├── cors.rb
│ ├── version_header.rb
│ ├── enforce_ssl.rb
│ ├── setup_simple_captcha.rb
│ ├── rspec_generator.rb
│ ├── json_escape.rb
│ ├── set_up_image_redirects.rb
│ ├── assets.rb
│ ├── ignore_ssl_in_development.rb
│ ├── faraday.rb
│ └── silence_assets.rb
├── environment.rb
├── asset_sync.rb
└── boot.rb
├── .foreman
├── vendor
└── assets
│ └── javascripts
│ └── markdown.js
├── graphics
├── arrow.ai
└── README.md
├── public
├── favicon.ico
├── icon_128.gif
├── bgpattern.png
├── peeping-tom.png
├── Roboto-Regular.ttf
├── apple-touch-icon.png
├── Roboto-BoldCondensed.ttf
├── crossdomain.xml
└── robots.txt
├── script
├── env
│ ├── ruby_env
│ └── ensure_right_rubygems
├── ci
│ ├── before_install.sh
│ └── build.sh
├── rails
├── cucumber
└── install
│ └── remote_var_reader
├── spec
├── fixtures
│ ├── button.gif
│ ├── button.png
│ ├── test.csv
│ ├── data_conversion
│ │ ├── invitations.csv
│ │ ├── requests.csv
│ │ ├── services.csv
│ │ ├── comments.csv
│ │ ├── notifications.csv
│ │ ├── aspect_memberships.csv
│ │ ├── aspects.csv
│ │ └── post_visibilities.csv
│ ├── msg.xml.detached.asc
│ ├── host_xrd
│ └── msg.xml
├── javascripts
│ ├── app
│ │ ├── views
│ │ │ └── post_view_spec.js
│ │ ├── collections
│ │ │ ├── likes_collections_spec.js
│ │ │ └── comments_collection_spec.js
│ │ ├── models
│ │ │ └── status_message_spec.js
│ │ └── app_spec.js
│ └── widgets
│ │ └── aspect-nav.js
├── lib
│ ├── salmon
│ │ └── magic_sig_envelope_spec.rb
│ ├── postzord
│ │ └── dispatcher
│ │ │ ├── public_spec.rb
│ │ │ └── private_spec.rb
│ ├── stream
│ │ ├── public_spec.rb
│ │ ├── mention_spec.rb
│ │ ├── activity_spec.rb
│ │ ├── comments_spec.rb
│ │ ├── likes_spec.rb
│ │ └── followed_tag_spec.rb
│ └── csv_generator_spec.rb
├── models
│ ├── role_spec.rb
│ ├── user_preference_spec.rb
│ ├── block_spec.rb
│ ├── location_spec.rb
│ └── pod_spec.rb
├── presenters
│ ├── aspect_presenter_spec.rb
│ └── service_presenter_spec.rb
└── support
│ └── inlined_jobs.rb
├── .rspec
├── Procfile
├── features
├── support
│ └── integration_sessions_form.haml
├── step_definitions
│ ├── profile_steps.rb
│ ├── tag_steps.rb
│ ├── post_preview_steps.rb
│ ├── hovercard_steps.rb
│ └── stream_steps.rb
└── desktop
│ ├── download_photos.feature
│ ├── invitations.feature
│ ├── tags.feature
│ └── logs_in_and_out.feature
├── .powrc
├── db
└── migrate
│ ├── 20120330144057_indexes_on_posts.rb
│ ├── 20130207231310_add_facebook_id_to_post.rb
│ ├── 20120506053156_add_wallpaper_to_profile.rb
│ ├── 20130801063213_add_tumblr_post_ids_to_posts.rb
│ ├── 20120422072257_add_favorite_to_post.rb
│ ├── 20120322223517_add_template_name_to_posts.rb
│ ├── 20120803143552_add_fetch_status_to_people.rb
│ ├── 20130429073928_add_tweet_id_to_post.rb
│ ├── 20110707221112_index_taggings_created_at.rb
│ ├── 20120420185823_add_width_and_height_to_photos.rb
│ ├── 20120521191429_remove_rich_media_type.rb
│ ├── 20110301202619_drop_statistics.rb
│ ├── 20120330103021_indexes_on_participation.rb
│ ├── 20110603181015_lockable_users.rb
│ ├── 20120427152648_create_roles.rb
│ ├── 20120519015723_remove_multi_photo_frame_reference.rb
│ ├── 20110323213655_add_location_to_profile.rb
│ ├── 20110710102747_add_order_id_to_aspects.rb
│ ├── 20110202015222_add_open_to_aspects.rb
│ ├── 20110525213325_add_root_id_to_posts.rb
│ ├── 20110930182048_add_root_guid_index_to_posts.rb
│ ├── 20120127235102_add_nsfw_to_profiles.rb
│ ├── 20120909053122_remove_wallpaper_from_profile.rb
│ ├── 20120203220932_add_interacted_at_to_posts.rb
│ ├── 20110319005509_add_processed_to_post.rb
│ ├── 20111011193702_add_oembed_cache_to_posts.rb
│ ├── 20110604204533_index_on_remember_token.rb
│ ├── 20110815210933_remove_invite_counter_from_user.rb
│ ├── 20111101202137_create_blocks.rb
│ ├── 20110127000931_drop_extra_columns.rb
│ ├── 20110812175614_add_username_to_service_users.rb
│ ├── 20111016145626_add_language_to_invitations.rb
│ ├── 20130613203350_remove_limit_from_root_guid_in_posts.rb
│ ├── 20110603233202_drop_aspects_open.rb
│ ├── 20110730173137_create_pods.rb
│ ├── 20111003232053_add_index_for_reshares.rb
│ ├── 20110119060243_add_index_to_post_visibilities.rb
│ ├── 20110217044519_undo_adding_indicies.rb
│ ├── 20110314043119_drop_import_tables.rb
│ ├── 20110601091059_add_confirm_email_token_to_users.rb
│ ├── 20111103184050_add_closed_account_flag_to_person.rb
│ ├── 20110601083310_add_unconfirmed_email_to_users.rb
│ ├── 20111207230506_add_oauth_redirect_uri_to_oauth_clients.rb
│ ├── 20120405170105_create_locations.rb
│ ├── 20110507212759_remove_type_null_notifications.rb
│ ├── 20111109023618_create_account_deletions.rb
│ ├── 20111002013921_fix_data_type_for_activity_streams_object_id.rb
│ ├── 20110126225202_remove_unique_index_on_email_on_users.rb
│ ├── 20110405170101_fix_stream_queries.rb
│ ├── 20110120181553_create_statistics.rb
│ ├── 20120906162503_update_devise.rb
│ ├── 20110311183826_create_user_preferences.rb
│ ├── 20120301143226_remove_youtube_titles.rb
│ ├── 20110313015438_rename_text_fields.rb
│ ├── 20111019013244_postgresql_photos_id_seq_init.rb
│ ├── 20110701215925_create_tag_followings.rb
│ ├── 20111211213438_create_invitation_codes.rb
│ ├── 20110524184202_add_object_id_to_post.rb
│ ├── 20110730173443_create_pod_stats.rb
│ ├── 20110907205720_add_indexes_to_serivces.rb
│ ├── 20131017093025_create_post_reports.rb
│ ├── 20110228233419_add_signatures_to_message.rb
│ ├── 20110830170929_remove_pod_stats_table.rb
│ ├── 20110328175936_add_hidden_to_post_visibilities.rb
│ ├── 20110518184453_add_token_auth_to_user.rb
│ ├── 20111114173111_add_auto_follow_back_to_users.rb
│ ├── 20110331004720_add_hidden_indicies.rb
│ ├── 20110421120744_downcase_usernames.rb
│ ├── 20131213171804_create_simple_captcha_data.rb
│ ├── 20110120182100_create_data_points.rb
│ ├── 20120114191018_remove_photos_count_from_post.rb
│ ├── 20110209204702_create_mentions.rb
│ ├── 20110514182918_update_devise_invitable.rb
│ ├── 20111018010003_add_back_indexes.rb
│ ├── 20110705003445_counter_cache_on_post_likes.rb
│ ├── 20110924112840_create_o_embed_caches.rb
│ ├── 20110228220810_rename_post_to_parent_and_creator_to_author.rb
│ ├── 20111021184041_add_community_spotlight_in_stream.rb
│ └── 20110911213207_counter_cache_on_post_comments.rb
├── .slugignore
├── AUTHORS
├── .pairs
└── FederationProcfile
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.powenv:
--------------------------------------------------------------------------------
1 | export NEW_HOTNESS=yessir
2 |
--------------------------------------------------------------------------------
/config/environments/integration1.rb:
--------------------------------------------------------------------------------
1 | integration.rb
--------------------------------------------------------------------------------
/config/environments/integration2.rb:
--------------------------------------------------------------------------------
1 | integration.rb
--------------------------------------------------------------------------------
/.foreman:
--------------------------------------------------------------------------------
1 | port: 3000
2 | formation: web=1,sidekiq=0
3 |
--------------------------------------------------------------------------------
/config/locales/cldr/README.md:
--------------------------------------------------------------------------------
1 | DO NOT EDIT THIS FILES. Thanks!
2 |
--------------------------------------------------------------------------------
/vendor/assets/javascripts/markdown.js:
--------------------------------------------------------------------------------
1 | //= require_tree ./markdown
--------------------------------------------------------------------------------
/app/views/likes/index.html.haml:
--------------------------------------------------------------------------------
1 | = render 'likes', :likes => @likes
2 |
--------------------------------------------------------------------------------
/lib/tasks/default.rake:
--------------------------------------------------------------------------------
1 | task :default => [:spec, :cucumber, :'jasmine:ci']
2 |
--------------------------------------------------------------------------------
/app/assets/templates/static-text_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 | {{ text }}
2 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/blueprint.css:
--------------------------------------------------------------------------------
1 | /*
2 | //= require vendor/blueprint/screen
3 | */
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/like.js:
--------------------------------------------------------------------------------
1 | app.models.Like = Backbone.Model.extend({ });
2 |
--------------------------------------------------------------------------------
/app/controllers/help_controller.rb:
--------------------------------------------------------------------------------
1 | class HelpController < ApplicationController
2 | end
3 |
--------------------------------------------------------------------------------
/graphics/arrow.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/graphics/arrow.ai
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/favicon.ico
--------------------------------------------------------------------------------
/public/icon_128.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/icon_128.gif
--------------------------------------------------------------------------------
/public/bgpattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/bgpattern.png
--------------------------------------------------------------------------------
/app/views/post_report/post_report_email.markerb:
--------------------------------------------------------------------------------
1 | <%= t('notifier.post_report_email.body') %>
2 |
3 |
--------------------------------------------------------------------------------
/public/peeping-tom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/peeping-tom.png
--------------------------------------------------------------------------------
/script/env/ruby_env:
--------------------------------------------------------------------------------
1 | rubygems_version="2.2.1"
2 | ruby_version="2.0.0-p353"
3 | gemset="diaspora"
4 |
--------------------------------------------------------------------------------
/spec/fixtures/button.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/spec/fixtures/button.gif
--------------------------------------------------------------------------------
/spec/fixtures/button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/spec/fixtures/button.png
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --format Fuubar
2 | --profile
3 | --color
4 | --tag ~performance
5 | --order random
6 | --drb
7 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: bundle exec unicorn_rails -c config/unicorn.rb -p $PORT
2 | sidekiq: bundle exec sidekiq
3 |
--------------------------------------------------------------------------------
/app/assets/javascripts/ie.js:
--------------------------------------------------------------------------------
1 | document.createElement('header');
2 | document.createElement('footer');
3 |
--------------------------------------------------------------------------------
/app/views/notifier/invite.markerb:
--------------------------------------------------------------------------------
1 | <%= t('.message', :invite_url => invite_code_url(@invitation_code)) %>
2 |
--------------------------------------------------------------------------------
/config/initializers/markerb.rb:
--------------------------------------------------------------------------------
1 | Rails.application.config.markerb.renderer = Diaspora::Markdownify::Email
2 |
--------------------------------------------------------------------------------
/config/initializers/set_session_secret.rb:
--------------------------------------------------------------------------------
1 | Rails.application.config.secret_token = AppConfig.secret_token
2 |
--------------------------------------------------------------------------------
/public/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/app/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/favicon.ico
--------------------------------------------------------------------------------
/app/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/favicon.png
--------------------------------------------------------------------------------
/app/assets/images/sadcat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/sadcat.jpg
--------------------------------------------------------------------------------
/app/assets/images/tipsy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/tipsy.gif
--------------------------------------------------------------------------------
/app/views/help/_help_nav.haml:
--------------------------------------------------------------------------------
1 | %ul#help_nav
2 | %li= link_to_unless_current t('help.faq.title'), faq_path
3 |
--------------------------------------------------------------------------------
/app/views/people/_aspect_membership_dropdown.haml:
--------------------------------------------------------------------------------
1 | = aspect_membership_dropdown(@contact, @person, 'left')
2 |
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/spec/fixtures/test.csv:
--------------------------------------------------------------------------------
1 | email, name
2 | mbs348@foo.com, Max
3 | billy@foo.com, Billy
4 | bar@moms.com, Big Foo
5 |
--------------------------------------------------------------------------------
/app/assets/images/asterisk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/asterisk.png
--------------------------------------------------------------------------------
/app/assets/images/header-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/header-bg.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/cog.png
--------------------------------------------------------------------------------
/app/assets/images/mocks/bp.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/mocks/bp.jpeg
--------------------------------------------------------------------------------
/app/assets/images/pen_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/pen_white.png
--------------------------------------------------------------------------------
/app/assets/images/user/uma.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/user/uma.jpg
--------------------------------------------------------------------------------
/app/assets/images/user/wolf.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/user/wolf.jpg
--------------------------------------------------------------------------------
/app/views/comments/new.mobile.haml:
--------------------------------------------------------------------------------
1 | = render :partial => 'new_comment', :locals =>{:post_id => params[:post_id]}
2 |
--------------------------------------------------------------------------------
/public/Roboto-BoldCondensed.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/public/Roboto-BoldCondensed.ttf
--------------------------------------------------------------------------------
/app/assets/images/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/ajax-loader.gif
--------------------------------------------------------------------------------
/app/assets/images/ajax-loader2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/ajax-loader2.gif
--------------------------------------------------------------------------------
/app/assets/images/arrow-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/arrow-left.png
--------------------------------------------------------------------------------
/app/assets/images/arrow-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/arrow-right.png
--------------------------------------------------------------------------------
/app/assets/images/close_label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/close_label.png
--------------------------------------------------------------------------------
/app/assets/images/deletelabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/deletelabel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/camera.png
--------------------------------------------------------------------------------
/app/assets/images/icons/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/circle.png
--------------------------------------------------------------------------------
/app/assets/images/icons/coffee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/coffee.png
--------------------------------------------------------------------------------
/app/assets/images/icons/globe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/globe.png
--------------------------------------------------------------------------------
/app/assets/images/icons/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/heart.png
--------------------------------------------------------------------------------
/app/assets/images/icons/mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/mail.png
--------------------------------------------------------------------------------
/app/assets/images/icons/marker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/marker.png
--------------------------------------------------------------------------------
/app/assets/images/icons/pencil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/pencil.png
--------------------------------------------------------------------------------
/app/assets/images/icons/photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/photo.png
--------------------------------------------------------------------------------
/app/assets/images/icons/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/plus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/users.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/users.png
--------------------------------------------------------------------------------
/app/assets/images/landing/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/landing/lock.png
--------------------------------------------------------------------------------
/app/assets/images/user/angela.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/user/angela.jpg
--------------------------------------------------------------------------------
/app/assets/images/user/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/user/default.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/block.js:
--------------------------------------------------------------------------------
1 | app.models.Block = Backbone.Model.extend({
2 | urlRoot : "/blocks"
3 | });
4 |
--------------------------------------------------------------------------------
/config/initializers/haml.rb:
--------------------------------------------------------------------------------
1 | Haml::Template.options[:format] = :html5
2 | Haml::Template.options[:escape_html] = true
3 |
--------------------------------------------------------------------------------
/features/support/integration_sessions_form.haml:
--------------------------------------------------------------------------------
1 | = button_to "Login", integration_sessions_path(:user_id => @user_id)
2 |
--------------------------------------------------------------------------------
/spec/javascripts/app/views/post_view_spec.js:
--------------------------------------------------------------------------------
1 | describe("app.views.Post", function(){
2 | // see: StreamPost
3 | });
4 |
--------------------------------------------------------------------------------
/app/assets/images/asterisk_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/asterisk_white.png
--------------------------------------------------------------------------------
/app/assets/images/branding/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/ball.png
--------------------------------------------------------------------------------
/app/assets/images/branding/white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/white.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/delete.png
--------------------------------------------------------------------------------
/app/assets/images/header-bg-long.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/header-bg-long.jpg
--------------------------------------------------------------------------------
/app/assets/images/icons/bookmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/bookmark.png
--------------------------------------------------------------------------------
/app/assets/images/icons/mail_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/mail_big.png
--------------------------------------------------------------------------------
/app/assets/images/icons/mention.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/mention.png
--------------------------------------------------------------------------------
/app/assets/images/icons/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/message.png
--------------------------------------------------------------------------------
/app/assets/images/icons/question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/question.png
--------------------------------------------------------------------------------
/app/assets/images/invalid_fat@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/invalid_fat@2x.png
--------------------------------------------------------------------------------
/app/assets/images/landing/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/landing/github.png
--------------------------------------------------------------------------------
/app/assets/images/landing/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/landing/title.png
--------------------------------------------------------------------------------
/app/assets/images/landing/world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/landing/world.png
--------------------------------------------------------------------------------
/app/assets/images/mobile-spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/mobile-spinner.gif
--------------------------------------------------------------------------------
/app/assets/images/static-loader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/static-loader.png
--------------------------------------------------------------------------------
/app/assets/images/texture/paper.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/paper.jpg
--------------------------------------------------------------------------------
/app/assets/images/texture/typist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/typist.png
--------------------------------------------------------------------------------
/app/assets/images/up-tick-inset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/up-tick-inset.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/comment.js:
--------------------------------------------------------------------------------
1 | app.models.Comment = Backbone.Model.extend({
2 | urlRoot: "/comments"
3 | });
4 |
--------------------------------------------------------------------------------
/app/views/people/tag_index.js.erb:
--------------------------------------------------------------------------------
1 | $(".people_stream").html("<%= escape_javascript(render("index", :people => @people)) %>");
2 |
--------------------------------------------------------------------------------
/lib/diaspora/fetcher.rb:
--------------------------------------------------------------------------------
1 | module Diaspora
2 | module Fetcher
3 | require 'diaspora/fetcher/public'
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/spec/lib/salmon/magic_sig_envelope_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Salmon::MagicSigEnvelope do
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/images/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/apple-touch-icon.png
--------------------------------------------------------------------------------
/app/assets/images/branding/asterisk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/asterisk.png
--------------------------------------------------------------------------------
/app/assets/images/branding/white2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/white2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/bday@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/bday@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/close@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/edit2@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/edit2@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/playbtn.png
--------------------------------------------------------------------------------
/app/assets/images/down-tick-inset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/down-tick-inset.png
--------------------------------------------------------------------------------
/app/assets/images/facebox/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/facebox/loading.gif
--------------------------------------------------------------------------------
/app/assets/images/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/app/assets/images/icons/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/arrow_down.png
--------------------------------------------------------------------------------
/app/assets/images/icons/back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/back_white.png
--------------------------------------------------------------------------------
/app/assets/images/icons/deletelabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/deletelabel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/home_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/home_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/ignoreuser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/ignoreuser.png
--------------------------------------------------------------------------------
/app/assets/images/icons/list_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/list_white.png
--------------------------------------------------------------------------------
/app/assets/images/icons/mail_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/mail_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/my_activity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/my_activity.png
--------------------------------------------------------------------------------
/app/assets/images/icons/pen_write.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/pen_write.png
--------------------------------------------------------------------------------
/app/assets/images/icons/postreport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/postreport.png
--------------------------------------------------------------------------------
/app/assets/images/icons/search_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/search_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/user_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/user_grey.png
--------------------------------------------------------------------------------
/app/assets/images/mocks/user_pic.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/mocks/user_pic.jpeg
--------------------------------------------------------------------------------
/app/assets/images/texture/light-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/light-bg.png
--------------------------------------------------------------------------------
/app/assets/images/texture/vanilla.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/vanilla.jpg
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blank.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blank.gif
--------------------------------------------------------------------------------
/app/views/devise/mailer/invitation_instructions.markerb:
--------------------------------------------------------------------------------
1 | <%= t('.message', :invite_url => invite_code_url(@invitation_code)) %>
2 |
--------------------------------------------------------------------------------
/config/initializers/acts_as_taggable_on.rb:
--------------------------------------------------------------------------------
1 | require 'models/acts_as_taggable_on/tag'
2 | ActsAsTaggableOn.force_lowercase = true
3 |
--------------------------------------------------------------------------------
/public/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.powrc:
--------------------------------------------------------------------------------
1 | if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".rvmrc" ]; then
2 | source "$rvm_path/scripts/rvm"
3 | source ".rvmrc"
4 | fi
5 |
--------------------------------------------------------------------------------
/app/assets/images/add_contact_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/add_contact_button.png
--------------------------------------------------------------------------------
/app/assets/images/branding/ball_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/ball_small.png
--------------------------------------------------------------------------------
/app/assets/images/branding/logo_caps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/logo_caps.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/back_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/back_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/done_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/done_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/next_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/next_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/facebox/closelabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/facebox/closelabel.png
--------------------------------------------------------------------------------
/app/assets/images/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/app/assets/images/icons/check_yes_ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/check_yes_ok.png
--------------------------------------------------------------------------------
/app/assets/images/icons/padlock-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/padlock-open.png
--------------------------------------------------------------------------------
/app/assets/images/icons/search_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/search_white.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/post_report.js:
--------------------------------------------------------------------------------
1 | app.models.PostReport = Backbone.Model.extend({
2 | urlRoot: '/post_report'
3 | });
4 |
--------------------------------------------------------------------------------
/script/env/ensure_right_rubygems:
--------------------------------------------------------------------------------
1 | if [ "$(gem --version)" != "$rubygems_version" ]; then
2 | rvm rubygems "$rubygems_version"
3 | fi
4 |
--------------------------------------------------------------------------------
/app/assets/images/ajax-loader_inverted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/ajax-loader_inverted.gif
--------------------------------------------------------------------------------
/app/assets/images/branding/apple-splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/apple-splash.png
--------------------------------------------------------------------------------
/app/assets/images/branding/header-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/header-logo.png
--------------------------------------------------------------------------------
/app/assets/images/branding/header-logo2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/header-logo2x.png
--------------------------------------------------------------------------------
/app/assets/images/branding/white_on_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/white_on_grey.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/bday@2x-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/bday@2x-white.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/delete_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/delete_hover.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/tumblr_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/tumblr_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/twitter_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/twitter_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/app/assets/images/icons/arrow_down_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/arrow_down_small.png
--------------------------------------------------------------------------------
/app/assets/images/icons/arrow_up_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/arrow_up_small.png
--------------------------------------------------------------------------------
/app/assets/images/icons/compose_mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/compose_mobile.png
--------------------------------------------------------------------------------
/app/assets/images/icons/compose_mobile2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/compose_mobile2.png
--------------------------------------------------------------------------------
/app/assets/images/icons/heart_mobile_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/heart_mobile_red.png
--------------------------------------------------------------------------------
/app/assets/images/icons/mail_grey_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/mail_grey_hover.png
--------------------------------------------------------------------------------
/app/assets/images/icons/padlock-closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/padlock-closed.png
--------------------------------------------------------------------------------
/app/assets/images/icons/reshare_mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/reshare_mobile.png
--------------------------------------------------------------------------------
/app/assets/images/icons/smiley_laughing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/smiley_laughing.png
--------------------------------------------------------------------------------
/app/assets/images/signupimages@2x_mini.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/signupimages@2x_mini.jpg
--------------------------------------------------------------------------------
/app/assets/images/texture/hatched-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/hatched-dark.png
--------------------------------------------------------------------------------
/app/assets/images/texture/hatched-light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/texture/hatched-light.jpg
--------------------------------------------------------------------------------
/app/assets/images/branding/asterisk_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/asterisk_white.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/facebook_hov@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/facebook_hov@2x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/check_yes_ok_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/check_yes_ok_white.png
--------------------------------------------------------------------------------
/app/assets/images/icons/heart_mobile_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/heart_mobile_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_add_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_add_plus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_check_yes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_check_yes.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_pen_write.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_pen_write.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_question.png
--------------------------------------------------------------------------------
/app/assets/images/icons/notifications_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/notifications_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/pencil_mobile_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/pencil_mobile_grey.png
--------------------------------------------------------------------------------
/app/assets/images/services/twitter_sign_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/services/twitter_sign_in.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/tag_following.js:
--------------------------------------------------------------------------------
1 | app.models.TagFollowing = Backbone.Model.extend({
2 | urlRoot: "/tag_followings"
3 | });
4 |
--------------------------------------------------------------------------------
/config/locales/README.md:
--------------------------------------------------------------------------------
1 | # Please read the [translation guide](http://wiki.diasporafoundation.org/Contribute_translations) before contributing!
2 |
--------------------------------------------------------------------------------
/spec/models/role_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Role do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/fb@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/fb@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/templates/Fridge@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/templates/Fridge@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/templates/Typist@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/templates/Typist@2x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/check_yes_ok_lighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/check_yes_ok_lighter.png
--------------------------------------------------------------------------------
/app/assets/images/icons/comment_mobile_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/comment_mobile_grey.png
--------------------------------------------------------------------------------
/app/assets/images/icons/reshare_mobile_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/reshare_mobile_active.png
--------------------------------------------------------------------------------
/app/assets/images/services/facebook_sign_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/services/facebook_sign_in.png
--------------------------------------------------------------------------------
/app/assets/javascripts/mailchimp.js:
--------------------------------------------------------------------------------
1 | //= require mailchimp/jquery.form
2 | //= require mailchimp/jquery.validate
3 | //= require mailchimp/jquery126.min
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/jquery.mentionsInput.css:
--------------------------------------------------------------------------------
1 |
2 | #publisher .mentions-input-box .mentions-autocomplete-list {
3 | width: 483px;
4 | }
5 |
--------------------------------------------------------------------------------
/app/views/simple_captcha/_simple_captcha.haml:
--------------------------------------------------------------------------------
1 | .control-label
2 | = simple_captcha_options[:image]
3 | .controls
4 | = simple_captcha_options[:field]
--------------------------------------------------------------------------------
/app/assets/images/branding/powered_by_diaspora.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/branding/powered_by_diaspora.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/templates/Vanilla@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/templates/Vanilla@2x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_plus_add_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_plus_add_round.png
--------------------------------------------------------------------------------
/app/assets/images/img/glyphicons-halflings-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/img/glyphicons-halflings-blue.png
--------------------------------------------------------------------------------
/app/assets/images/img/glyphicons-halflings-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/img/glyphicons-halflings-red.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/feed-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/feed-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/feed-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/feed-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/feed-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/feed-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/feed-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/feed-48x48.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/tumblr@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/tumblr@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/twitter@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/twitter@2x.png
--------------------------------------------------------------------------------
/app/assets/images/buttons/templates/Wallpaper@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/templates/Wallpaper@2x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_close_exit_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_close_exit_delete.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_wrench_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_wrench_settings.png
--------------------------------------------------------------------------------
/app/assets/images/icons/notifications_grey_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/notifications_grey_hover.png
--------------------------------------------------------------------------------
/app/assets/images/icons/pencil_mobile_grey_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/pencil_mobile_grey_active.png
--------------------------------------------------------------------------------
/app/assets/images/icons/pencil_mobile_grey_mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/pencil_mobile_grey_mobile.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/email-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/email-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/email-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/email-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/email-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/email-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/email-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/email-48x48.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/tumblr-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/tumblr-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/tumblr-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/tumblr-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/tumblr-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/tumblr-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/tumblr-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/tumblr-48x48.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/twitter-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/twitter-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/twitter-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/twitter-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/twitter-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/twitter-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/twitter-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/twitter-48x48.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/website-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/website-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/website-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/website-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/website-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/website-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/website-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/website-48x48.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/collections/posts.js:
--------------------------------------------------------------------------------
1 | app.collections.Posts = Backbone.Collection.extend({
2 | model: app.models.Post,
3 | url : "/posts"
4 | });
5 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/views/location_stream.js:
--------------------------------------------------------------------------------
1 | app.views.LocationStream = app.views.Content.extend({
2 | templateName: "status-message-location"
3 | });
4 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/src/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/src/grid.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/ajax-loader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/ajax-loader.png
--------------------------------------------------------------------------------
/app/views/layouts/with_header.html.haml:
--------------------------------------------------------------------------------
1 | - content_for :before_content do
2 | = render 'layouts/header'
3 |
4 | = render template: "layouts/application"
5 |
--------------------------------------------------------------------------------
/app/views/posts/destroy.js.erb:
--------------------------------------------------------------------------------
1 | var target = $("#<%= @post.guid %>")
2 | target.hide('blind', { direction: 'vertical' }, 300, function(){ target.remove() });
3 |
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/fb@2x-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/fb@2x-white.png
--------------------------------------------------------------------------------
/app/assets/images/icons/monotone_email_letter_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/icons/monotone_email_letter_round.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/facebook-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/facebook-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/facebook-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/facebook-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/facebook-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/facebook-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/facebook-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/facebook-48x48.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/wordpress-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/wordpress-16x16.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/wordpress-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/wordpress-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/wordpress-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/wordpress-32x32.png
--------------------------------------------------------------------------------
/app/assets/images/social_media_logos/wordpress-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/social_media_logos/wordpress-48x48.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/icons-18-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/icons-18-black.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/icons-18-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/icons-18-white.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/icons-36-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/icons-36-black.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/icons-36-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/icons-36-white.png
--------------------------------------------------------------------------------
/app/models/conversation_visibility.rb:
--------------------------------------------------------------------------------
1 | class ConversationVisibility < ActiveRecord::Base
2 |
3 | belongs_to :conversation
4 | belongs_to :person
5 |
6 | end
7 |
--------------------------------------------------------------------------------
/config/initializers/strong_parameters.rb:
--------------------------------------------------------------------------------
1 | # Please remove when migrating to Rails 4
2 | ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
3 |
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/tumblr@2x-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/tumblr@2x-white.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/images/icon-search-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/images/icon-search-black.png
--------------------------------------------------------------------------------
/app/assets/templates/stream-faces_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 | {{#people}}
2 | {{#linkToPerson this}}
3 | {{{personImage this "small"}}}
4 | {{/linkToPerson}}
5 | {{/people}}
6 |
--------------------------------------------------------------------------------
/app/presenters/base_presenter.rb:
--------------------------------------------------------------------------------
1 | class BasePresenter
2 | def self.as_collection(collection)
3 | collection.map{|object| self.new(object).as_json}
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/views/layouts/_footer.html.haml:
--------------------------------------------------------------------------------
1 | %footer
2 | .container
3 | .branding-powered_by_diaspora
4 | %ul#footer_nav
5 | = render :partial =>'shared/links'
6 |
--------------------------------------------------------------------------------
/app/views/layouts/with_header_with_footer.html.haml:
--------------------------------------------------------------------------------
1 | - content_for :after_content do
2 | = render 'layouts/footer'
3 |
4 | = render template: "layouts/with_header"
5 |
--------------------------------------------------------------------------------
/app/views/simple_captcha/_simple_captcha.mobile.haml:
--------------------------------------------------------------------------------
1 | .control-group#captcha
2 | = simple_captcha_options[:image]
3 | .controls
4 | = simple_captcha_options[:field]
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the rails application
2 | require_relative 'application'
3 |
4 | # Initialize the rails application
5 | Diaspora::Application.initialize!
6 |
--------------------------------------------------------------------------------
/app/assets/images/buttons/service-icons/twitter@2x-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/images/buttons/service-icons/twitter@2x-white.png
--------------------------------------------------------------------------------
/app/assets/javascripts/app/collections/reshares.js:
--------------------------------------------------------------------------------
1 | app.collections.Reshares = Backbone.Collection.extend({
2 | model: app.models.Reshare,
3 | url : "/reshares"
4 | });
5 |
--------------------------------------------------------------------------------
/lib/diaspora/markdownify.rb:
--------------------------------------------------------------------------------
1 | module Diaspora
2 | module Markdownify
3 | require 'diaspora/markdownify/html'
4 | require 'diaspora/markdownify/email'
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/assets/templates/status-message-location_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 | {{#if location}}
2 |
3 | {{ t "publisher.near_from" location=location}}
4 |
5 | {{/if}}
6 |
--------------------------------------------------------------------------------
/db/migrate/20120330144057_indexes_on_posts.rb:
--------------------------------------------------------------------------------
1 | class IndexesOnPosts < ActiveRecord::Migration
2 | def change
3 | add_index(:posts, [:id, :type, :created_at])
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/key.png
--------------------------------------------------------------------------------
/db/migrate/20130207231310_add_facebook_id_to_post.rb:
--------------------------------------------------------------------------------
1 | class AddFacebookIdToPost < ActiveRecord::Migration
2 | def change
3 | add_column :posts, :facebook_id, :string
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/cross.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/tick.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/im.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/im.png
--------------------------------------------------------------------------------
/app/views/layouts/notifier.text.haml:
--------------------------------------------------------------------------------
1 | != yield
2 | != t('notifier.email_sent_by_diaspora', :pod_name => pod_name)
3 | != t('notifier.to_change_your_notification_settings')
4 | != edit_user_url
5 |
--------------------------------------------------------------------------------
/db/migrate/20120506053156_add_wallpaper_to_profile.rb:
--------------------------------------------------------------------------------
1 | class AddWallpaperToProfile < ActiveRecord::Migration
2 | def change
3 | add_column :profiles, :wallpaper, :string
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20130801063213_add_tumblr_post_ids_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddTumblrPostIdsToPosts < ActiveRecord::Migration
2 | def change
3 | add_column :posts, :tumblr_ids, :text
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/bootstrap-complete.css.scss:
--------------------------------------------------------------------------------
1 | // Calling this file bootstrap would cause an infinite recursion during asset compilation.
2 | @import 'bootstrap';
3 | @import 'bootstrap-responsive';
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/doc.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/email.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/feed.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/pdf.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/xls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/xls.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/visited.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/visited.png
--------------------------------------------------------------------------------
/app/views/layouts/centered_with_header_with_footer.html.haml:
--------------------------------------------------------------------------------
1 | - content_for :container_content do
2 | .span-24.last
3 | = yield
4 |
5 | = render template: "layouts/with_header_with_footer"
6 |
--------------------------------------------------------------------------------
/config/environments/integration.rb:
--------------------------------------------------------------------------------
1 | require Rails.root.join('config', 'environment', 'development')
2 |
3 | Diaspora::Application.configure do
4 | # Enable threaded mode
5 | config.threadsafe!
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20120422072257_add_favorite_to_post.rb:
--------------------------------------------------------------------------------
1 | class AddFavoriteToPost < ActiveRecord::Migration
2 | def change
3 | add_column :posts, :favorite, :boolean, :default => false
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/aspect.js:
--------------------------------------------------------------------------------
1 | app.models.Aspect = Backbone.Model.extend({
2 | toggleSelected: function(){
3 | this.set({'selected' : !this.get('selected')}, {async: false});
4 | }
5 | });
6 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/photo.js:
--------------------------------------------------------------------------------
1 | app.models.Photo = Backbone.Model.extend(_.extend({}, app.models.formatDateMixin, {
2 | urlRoot : "/photos",
3 |
4 | initialize : function() {},
5 |
6 | }));
7 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/external.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/diaspora/develop/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/external.png
--------------------------------------------------------------------------------
/app/mailers/diaspora_devise_mailer.rb:
--------------------------------------------------------------------------------
1 | class DiasporaDeviseMailer < Devise::Mailer
2 | default :from => AppConfig.mail.sender_address
3 |
4 | def self.mailer_name
5 | "devise/mailer"
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/app/views/notifier/single_admin.markerb:
--------------------------------------------------------------------------------
1 | <%= t('notifier.hello', :name => @receiver.username) %>
2 |
3 | <%= @string %>
4 |
5 | <%= t('notifier.thanks') %>
6 |
7 | <%= t('notifier.single_admin.admin') %>
8 |
--------------------------------------------------------------------------------
/app/views/shared/_invitations.haml:
--------------------------------------------------------------------------------
1 | = t('.share_this')
2 | = invite_link(current_user.invitation_code)
3 | = link_to t('.by_email'), new_user_invitation_path, :title => t('.invite_someone'), :rel => 'facebox'
4 |
--------------------------------------------------------------------------------
/.slugignore:
--------------------------------------------------------------------------------
1 | features
2 | spec
3 | tmp
4 | log
5 | public/uploads
6 | graphics
7 | Capfile
8 | multi-server-spec-Procfile
9 | ci-*
10 | config/deploy
11 | config/ci
12 | config/environments/integration*
13 |
--------------------------------------------------------------------------------
/config/initializers/cors.rb:
--------------------------------------------------------------------------------
1 | Rails.application.config.middleware.insert 0, Rack::Cors do
2 | allow do
3 | origins '*'
4 | resource '/.well-known/host-meta'
5 | resource '/webfinger'
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/db/migrate/20120322223517_add_template_name_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddTemplateNameToPosts < ActiveRecord::Migration
2 | def change # thanks josh susser
3 | add_column :posts, :frame_name, :string
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20120803143552_add_fetch_status_to_people.rb:
--------------------------------------------------------------------------------
1 | class AddFetchStatusToPeople < ActiveRecord::Migration
2 | def change
3 | add_column :people, :fetch_status, :integer, :default => 0
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20130429073928_add_tweet_id_to_post.rb:
--------------------------------------------------------------------------------
1 | class AddTweetIdToPost < ActiveRecord::Migration
2 | def change
3 | add_column :posts, :tweet_id, :string
4 | add_index :posts, :tweet_id
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/assets/templates/photo_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/db/migrate/20110707221112_index_taggings_created_at.rb:
--------------------------------------------------------------------------------
1 | class IndexTaggingsCreatedAt < ActiveRecord::Migration
2 | def self.up
3 | add_index :taggings, :created_at
4 | end
5 |
6 | def self.down
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/features/step_definitions/profile_steps.rb:
--------------------------------------------------------------------------------
1 | And /^I mark myself as not safe for work$/ do
2 | check('profile[nsfw]')
3 | end
4 |
5 | And /^I mark myself as safe for work$/ do
6 | uncheck('profile[nsfw]')
7 | end
8 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/invitations.csv:
--------------------------------------------------------------------------------
1 | mongo_id,recipient_mongo_id,sender_mongo_id,aspect_mongo_id,message
2 | 4d2b6ebecc8cb43cc2000026,4d2b6ebccc8cb43cc2000025,4d2b6eb6cc8cb43cc2000007,4d2b6eb6cc8cb43cc2000008,Hello!
3 |
--------------------------------------------------------------------------------
/app/assets/templates/photo-viewer_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{#each photos}}
3 |
4 |

5 |
6 | {{/each}}
7 |
--------------------------------------------------------------------------------
/app/assets/javascripts/photos.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | * licensed under the Affero General Public License version 3 or later. See
3 | * the COPYRIGHT file.
4 | */
5 | //= require photo-show
--------------------------------------------------------------------------------
/app/helpers/services_helper.rb:
--------------------------------------------------------------------------------
1 | module ServicesHelper
2 | @@contact_proxy = Contact.new(:aspects => [])
3 | def contact_proxy(friend)
4 | friend.contact || @@contact_proxy.dup.tap{|c| c.person = friend.person}
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/helpers/handlebars-partials.js:
--------------------------------------------------------------------------------
1 | /* we need to wrap this in a document ready to ensure JST is accessible */
2 | $(function(){
3 | Handlebars.registerPartial('status-message', JST['status-message_tpl'])
4 | });
5 |
--------------------------------------------------------------------------------
/app/assets/javascripts/finder.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | * licensed under the Affero General Public License version 3 or later. See
3 | * the COPYRIGHT file.
4 | */
5 | //= require friend-finder
--------------------------------------------------------------------------------
/app/assets/templates/activity-streams-photo_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/assets/templates/tag_following_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 | #{{ name }}
4 |
5 |
--------------------------------------------------------------------------------
/features/step_definitions/tag_steps.rb:
--------------------------------------------------------------------------------
1 | When(/^I unfollow the "(.*?)" tag$/) do |tag|
2 | page.execute_script("$('#unfollow_#{tag}').css('display', 'block')")
3 | find("#unfollow_#{tag}").click
4 | step 'I confirm the alert'
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20120420185823_add_width_and_height_to_photos.rb:
--------------------------------------------------------------------------------
1 | class AddWidthAndHeightToPhotos < ActiveRecord::Migration
2 | def change
3 | add_column :photos, :height, :integer
4 | add_column :photos, :width, :integer
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/assets/javascripts/templates.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | * licensed under the Affero General Public License version 3 or later. See
3 | * the COPYRIGHT file.
4 | */
5 | //= require_tree ../templates
6 |
--------------------------------------------------------------------------------
/db/migrate/20120521191429_remove_rich_media_type.rb:
--------------------------------------------------------------------------------
1 | class RemoveRichMediaType < ActiveRecord::Migration
2 | def up
3 | execute("UPDATE posts SET frame_name='Night' WHERE frame_name='rich-media'")
4 | end
5 |
6 | def down
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/app/views/shared/_settings_nav.mobile.haml:
--------------------------------------------------------------------------------
1 | #span-24
2 | %h3
3 | #settings_nav
4 | %ul
5 | %li= link_to_unless_current t('profile'), edit_profile_path
6 | |
7 | %li= link_to_unless_current t('account'), edit_user_path
8 |
--------------------------------------------------------------------------------
/app/workers/reset_password.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | class ResetPassword < Base
3 | sidekiq_options queue: :mail
4 |
5 | def perform(user_id)
6 | User.find(user_id).send_reset_password_instructions!
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110301202619_drop_statistics.rb:
--------------------------------------------------------------------------------
1 | class DropStatistics < ActiveRecord::Migration
2 | def self.up
3 | execute 'DROP TABLE statistics'
4 | execute 'DROP TABLE data_points'
5 | end
6 |
7 | def self.down
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20120330103021_indexes_on_participation.rb:
--------------------------------------------------------------------------------
1 | class IndexesOnParticipation < ActiveRecord::Migration
2 | def change
3 | add_index(:participations, [:target_id, :target_type, :author_id])
4 | add_index(:participations, :guid)
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/lib/development_mail_interceptor.rb:
--------------------------------------------------------------------------------
1 | class DevelopmentMailInterceptor
2 | def self.delivering_email(message)
3 | message.subject = "[#{message.to}] #{message.subject}"
4 | message.to = "email@joindiaspora.com"
5 | end
6 | end
7 |
8 |
--------------------------------------------------------------------------------
/spec/javascripts/widgets/aspect-nav.js:
--------------------------------------------------------------------------------
1 | describe("Diaspora", function() {
2 | describe("widgets", function() {
3 | describe("aspectNav", function() {
4 | describe("start", function() {
5 |
6 | });
7 | });
8 | });
9 | });
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/profile.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | * licensed under the Affero General Public License version 3 or later. See
3 | * the COPYRIGHT file.
4 | */
5 | //= require jquery.autoSuggest.custom
6 |
7 |
--------------------------------------------------------------------------------
/app/models/notifications/request_accepted.rb:
--------------------------------------------------------------------------------
1 | class Notifications::RequestAccepted < Notification
2 | def mail_job
3 | Workers::Mail::RequestAcceptance
4 | end
5 | def popup_translation_key
6 | 'notifications.request_accepted'
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/spec/fixtures/msg.xml.detached.asc:
--------------------------------------------------------------------------------
1 | -----BEGIN PGP SIGNATURE-----
2 | Version: GnuPG v1.4.10 (GNU/Linux)
3 |
4 | iEYEABECAAYFAkw72oUACgkQ5hWCpTN+yRLSuwCgwphc3LWMM0LOZ5wreKjNeaja
5 | BCsAoIzYO9AG3fgV0KbtIFAtuwlNiFxt
6 | =W2K4
7 | -----END PGP SIGNATURE-----
8 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/views/feedback_actions.js:
--------------------------------------------------------------------------------
1 | //=require "./feedback_view"
2 | app.views.FeedbackActions = app.views.Feedback.extend({
3 | id : "user-controls",
4 | templateName : "feedback-actions",
5 | events: {},
6 | initialize: function(){}
7 | });
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/services-finder.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.ServicesFinder = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, document) {
5 | self.infiniteScroll = self.instantiate("InfiniteScroll");
6 | });
7 | };
8 |
--------------------------------------------------------------------------------
/app/views/notifier/private_message.markerb:
--------------------------------------------------------------------------------
1 | <%= post_message(@notification.message, :process_newlines => true, :length => 2000) %>
2 |
3 | [<%= t('.reply_to_or_view') %>][1]
4 |
5 | [1]: <%= conversations_url(:conversation_id => @notification.conversation) %>
6 |
--------------------------------------------------------------------------------
/db/migrate/20110603181015_lockable_users.rb:
--------------------------------------------------------------------------------
1 | class LockableUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :locked_at, :datetime
4 | end
5 |
6 | def self.down
7 | remove_column :users, :locked_at
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20120427152648_create_roles.rb:
--------------------------------------------------------------------------------
1 | class CreateRoles < ActiveRecord::Migration
2 | def change
3 | create_table :roles do |t|
4 | t.integer :person_id
5 | t.string :name
6 |
7 | t.timestamps
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/requests.csv:
--------------------------------------------------------------------------------
1 | mongo_id,recipient_mongo_id,sender_mongo_id,aspect_mongo_id
2 | 4d2b6eb8cc8cb43cc200001e,4d2b6eb7cc8cb43cc200001b,4d2b6eb7cc8cb43cc2000017,
3 | 4d2b6ec4cc8cb43cc200003a,4d2b6eb7cc8cb43cc200000e,4d2b6ec2cc8cb43cc2000034,
4 |
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | Diaspora is written by:
2 | Daniel Grippi
3 | Ilya Zhitomirskiy
4 | Maxwell Salzberg
5 | Raphael Sofaer
6 |
7 | With help from many libraries and frameworks including:
8 | JQuery
9 | Ruby on Rails
10 | Blueprint-CSS
11 | and others
12 |
--------------------------------------------------------------------------------
/app/views/conversations/show.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | = render 'show', :conversation => @conversation
7 |
--------------------------------------------------------------------------------
/app/views/notifier/mentioned.markerb:
--------------------------------------------------------------------------------
1 | <%= post_message(@notification.post, :process_newlines => true, :length => 600) %>
2 |
3 | [<%= t('notifier.comment_on_post.reply', :name => @notification.post_author_name) %>][1]
4 |
5 | [1]: <%= post_url(@notification.post) %>
6 |
--------------------------------------------------------------------------------
/app/views/notifier/started_sharing.markerb:
--------------------------------------------------------------------------------
1 | <%= @notification.sender_name %> <%= t('.sharing') %>
2 |
3 | [<%= t('.view_profile', :name => @notification.sender_first_name) %>][1]
4 |
5 | [1]: <%= local_or_remote_person_path(@notification.sender, :absolute => true) %>
6 |
--------------------------------------------------------------------------------
/app/views/people/_add_contact.html.haml:
--------------------------------------------------------------------------------
1 | .well
2 | = t('.invited_by')
3 | .media
4 | .float-right
5 | = aspect_membership_dropdown(contact, inviter, false)
6 | = person_image_link(inviter, :class => 'img')
7 | .bd
8 | = person_link(inviter)
9 |
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/featured-users-index.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.FeaturedUsersIndex = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, document) {
5 | self.infiniteScroll = self.instantiate("InfiniteScroll");
6 | });
7 | };
8 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/sprites.css.scss:
--------------------------------------------------------------------------------
1 | /* ===== sprites ===== */
2 | @import 'icons/*.png';
3 | @import 'branding/*.png';
4 | @import 'social_media_logos/*.png';
5 | @include all-icons-sprites;
6 | @include all-branding-sprites;
7 | @include all-social_media_logos-sprites;
8 |
--------------------------------------------------------------------------------
/app/helpers/users_helper.rb:
--------------------------------------------------------------------------------
1 | module UsersHelper
2 | def owner_image_tag(size=nil)
3 | person_image_tag(current_user.person, size)
4 | end
5 |
6 | def owner_image_link
7 | person_image_link(current_user.person, :size => :thumb_small)
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/views/devise/mailer/confirmation_instructions.markerb:
--------------------------------------------------------------------------------
1 | <%= t('devise.mailer.welcome', :email => @resource.email) %>
2 |
3 | <%= t('.you_can_confirm') %>
4 |
5 | [<%= t('.confirm') %>][1]
6 |
7 | [1]: <%= confirmation_url(@resource, :confirmation_token => @token) %>
8 |
--------------------------------------------------------------------------------
/db/migrate/20120519015723_remove_multi_photo_frame_reference.rb:
--------------------------------------------------------------------------------
1 | class RemoveMultiPhotoFrameReference < ActiveRecord::Migration
2 | def up
3 | execute("UPDATE posts SET frame_name='Day' WHERE frame_name='multi-photo'")
4 | end
5 |
6 | def down
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/helpers/open_graph.js:
--------------------------------------------------------------------------------
1 | (function(){
2 | app.helpers.openGraph = {
3 | html : function (open_graph_cache) {
4 | if (!open_graph_cache) { return "" }
5 | return '
'
6 | }
7 | }
8 | })();
9 |
--------------------------------------------------------------------------------
/app/views/aspects/_no_posts_message.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | #no_posts.hidden.empty_message
6 | = t('.start_talking')
7 |
--------------------------------------------------------------------------------
/app/views/likes/_likes.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | - @people[0..17].each do |person|
6 | = person_image_link(person)
7 |
8 |
--------------------------------------------------------------------------------
/app/views/notifier/liked.markerb:
--------------------------------------------------------------------------------
1 | <%= "#{t('.liked', :name => "#{@notification.sender_name}")}:" %>
2 |
3 | <%= post_message(@notification.like_target, :process_newlines => true) %>
4 |
5 | [<%= t('.view_post') %>][1]
6 |
7 | [1]: <%= post_url(@notification.like_target) %>
8 |
--------------------------------------------------------------------------------
/app/views/notifier/reshared.markerb:
--------------------------------------------------------------------------------
1 | <%= "#{t('.reshared', :name => "#{@notification.sender_name}")}:" %>
2 |
3 | <%= post_message(@notification.reshare_root, :process_newlines => true) %>
4 |
5 | [<%= t('.view_post') %>][1]
6 |
7 | [1]: <%= post_url(@notification.reshare) %>
8 |
--------------------------------------------------------------------------------
/app/workers/mail/post_report_worker.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class PostReportWorker < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform
7 | PostReportMailer.new_report
8 | end
9 | end
10 | end
11 | end
12 |
13 |
--------------------------------------------------------------------------------
/db/migrate/20110323213655_add_location_to_profile.rb:
--------------------------------------------------------------------------------
1 | class AddLocationToProfile < ActiveRecord::Migration
2 | def self.up
3 | add_column :profiles, :location, :string
4 | end
5 |
6 | def self.down
7 | remove_column :profiles, :location
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110710102747_add_order_id_to_aspects.rb:
--------------------------------------------------------------------------------
1 | class AddOrderIdToAspects < ActiveRecord::Migration
2 | def self.up
3 | add_column :aspects, :order_id, :integer
4 | end
5 |
6 | def self.down
7 | remove_column :aspects, :order_id
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/home.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | * licensed under the Affero General Public License version 3 or later. See
3 | * the COPYRIGHT file.
4 | */
5 |
6 | //= require aspect-edit-pane
7 | //= require fileuploader-custom
8 |
--------------------------------------------------------------------------------
/app/mailers/notification_mailers/started_sharing.rb:
--------------------------------------------------------------------------------
1 | module NotificationMailers
2 | class StartedSharing < NotificationMailers::Base
3 | def set_headers
4 | @headers[:subject] = I18n.t('notifier.started_sharing.subject', :name => @sender.name)
5 | end
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/app/views/notifier/also_commented.markerb:
--------------------------------------------------------------------------------
1 | <%= comment_message(@notification.comment, :process_newlines => true) %>
2 |
3 | [<%= t('notifier.comment_on_post.reply', :name => @notification.comment_post.author_first_name) %>][1]
4 |
5 | [1]: <%= post_url(@notification.comment_post) %>
6 |
--------------------------------------------------------------------------------
/app/views/notifier/comment_on_post.markerb:
--------------------------------------------------------------------------------
1 | <%= comment_message(@notification.comment, :process_newlines => true) %>
2 |
3 | [<%= t('notifier.comment_on_post.reply', :name => @notification.comment.parent_author_name) %>][1]
4 |
5 | [1]: <%= post_url(@notification.comment.post) %>
6 |
--------------------------------------------------------------------------------
/db/migrate/20110202015222_add_open_to_aspects.rb:
--------------------------------------------------------------------------------
1 | class AddOpenToAspects < ActiveRecord::Migration
2 | def self.up
3 | add_column(:aspects, :open, :boolean, :default => false)
4 | end
5 |
6 | def self.down
7 | remove_column(:aspects, :open)
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110525213325_add_root_id_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddRootIdToPosts < ActiveRecord::Migration
2 | def self.up
3 | add_column :posts, :root_guid, :string, :limit => 30
4 | end
5 |
6 | def self.down
7 | remove_column :posts, :root_guid
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110930182048_add_root_guid_index_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddRootGuidIndexToPosts < ActiveRecord::Migration
2 | def self.up
3 | add_index :posts, :root_guid
4 | end
5 |
6 | def self.down
7 | remove_index :posts, :column => :root_guid
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20120127235102_add_nsfw_to_profiles.rb:
--------------------------------------------------------------------------------
1 | class AddNsfwToProfiles < ActiveRecord::Migration
2 | def self.up
3 | add_column :profiles, :nsfw, :boolean, :default => false
4 | end
5 |
6 | def self.down
7 | remove_column :profiles, :nsfw
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20120909053122_remove_wallpaper_from_profile.rb:
--------------------------------------------------------------------------------
1 | class RemoveWallpaperFromProfile < ActiveRecord::Migration
2 | def up
3 | remove_column :profiles, :wallpaper
4 | end
5 |
6 | def down
7 | add_column :profiles, :wallpaper, :string
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/views/photo_viewer.js:
--------------------------------------------------------------------------------
1 | app.views.PhotoViewer = app.views.Base.extend({
2 | templateName : "photo-viewer",
3 |
4 | presenter : function(){
5 | return { photos : this.model.get("photos") } //json array of attributes, not backbone models, yet.
6 | }
7 | });
--------------------------------------------------------------------------------
/app/views/aspect_memberships/_add_to_aspect.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | = remove_from_aspect_button(aspect_id,person_id)
7 |
8 |
--------------------------------------------------------------------------------
/app/workers/mail/confirm_email.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class ConfirmEmail < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform(user_id)
7 | Notifier.confirm_email(user_id).deliver
8 | end
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20120203220932_add_interacted_at_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddInteractedAtToPosts < ActiveRecord::Migration
2 | def self.up
3 | add_column :posts, :interacted_at, :datetime
4 | end
5 |
6 | def self.down
7 | remove_column :posts, :interacted_at
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/lib/postzord.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Postzord
6 | require 'postzord/receiver'
7 | require 'postzord/dispatcher'
8 | end
9 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/services.csv:
--------------------------------------------------------------------------------
1 | mongo_id,type,user_mongo_id,provider,uid,access_token,access_secret,nickname
2 | 4d2b6ec4cc8cb43cc200003e,Services::Facebook,4d2b6eb7cc8cb43cc2000014,,,yeah,,
3 | 4d2b6ec4cc8cb43cc200003f,Services::Twitter,4d2b6eb6cc8cb43cc200000b,,,yeah,foobar,
4 |
--------------------------------------------------------------------------------
/spec/models/user_preference_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe UserPreference do
4 |
5 | it 'should only allow valid email types to exist' do
6 | pref = alice.user_preferences.new(:email_type => 'not_valid')
7 | pref.should_not be_valid
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/aspect_membership.js:
--------------------------------------------------------------------------------
1 | /**
2 | * this model represents the assignment of an aspect to a person.
3 | * (only valid for the context of the current user)
4 | */
5 | app.models.AspectMembership = Backbone.Model.extend({
6 | urlRoot: "/aspect_memberships"
7 | });
--------------------------------------------------------------------------------
/app/assets/templates/tag_following_list_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/views/aspect_memberships/_remove_from_aspect.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | = aspect_membership_button(aspect, contact, person)
7 |
8 |
--------------------------------------------------------------------------------
/app/views/aspect_memberships/add_to_aspect.js.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | = remove_from_aspect_button(@aspect_id,@person_id)
7 |
8 |
--------------------------------------------------------------------------------
/app/views/tags/update.js.erb:
--------------------------------------------------------------------------------
1 | var tagName = "<%= escape_javascript(@tag.name) %>"
2 | $("#followed_tags_listing").find("#tag-following-"+tagName).slideUp(100);
3 | Diaspora.page.flashMessages.render({success: true, notice: Diaspora.I18n.t("tags.wasnt_that_interesting", {tagName: tagName})});
4 |
--------------------------------------------------------------------------------
/db/migrate/20110319005509_add_processed_to_post.rb:
--------------------------------------------------------------------------------
1 | class AddProcessedToPost < ActiveRecord::Migration
2 | def self.up
3 | add_column(:posts, :processed, :boolean, :default => true)
4 | end
5 |
6 | def self.down
7 | remove_column(:posts, :processed)
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20111011193702_add_oembed_cache_to_posts.rb:
--------------------------------------------------------------------------------
1 | class AddOembedCacheToPosts < ActiveRecord::Migration
2 | def self.up
3 | add_column :posts, :o_embed_cache_id, :integer
4 | end
5 |
6 | def self.down
7 | remove_column :posts, :o_embed_cache_id
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/views/sidebar.js:
--------------------------------------------------------------------------------
1 | app.views.Sidebar = app.views.Base.extend({
2 | el: '.rightBar',
3 |
4 | events: {
5 | 'click input#invite_code': 'selectInputText'
6 | },
7 |
8 | selectInputText: function(event) {
9 | event.target.select();
10 | }
11 | });
12 |
--------------------------------------------------------------------------------
/app/views/aspect_memberships/remove_from_aspect.js.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | = aspect_membership_button(aspect, person, contact)
7 |
8 |
--------------------------------------------------------------------------------
/app/views/devise/mailer/unlock_instructions.markerb:
--------------------------------------------------------------------------------
1 | <%= t('devise.mailer.hello', :email => @resource.email) %>
2 |
3 | <%= t('.account_locked') %>
4 |
5 | <%= t('.click_to_unlock') %>
6 |
7 | [<%= t('.unlock') %>][1]
8 |
9 | [1]: <%= unlock_url(@resource, :unlock_token => @token) %>
10 |
--------------------------------------------------------------------------------
/config/locales/inflections/README.md:
--------------------------------------------------------------------------------
1 | This directory contains the definitions for the [i18n-inflector gem](https://github.com/siefca/i18n-inflector).
2 | Also, look up for our wiki on [How to contribute translations](http://wiki.diasporafoundation.org/Contribute_translations) for more information.
3 |
--------------------------------------------------------------------------------
/script/ci/before_install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Travis CI still includes 1.2.x by default
4 | gem install bundler --version '>= 1.3.4'
5 |
6 | # Ensure known RubyGems version
7 | envdir="$(readlink -e $(dirname $0))/../env"
8 | . "$envdir/ruby_env"
9 | . "$envdir/ensure_right_rubygems"
10 |
--------------------------------------------------------------------------------
/spec/fixtures/host_xrd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 | Resource Descriptor
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/assets/templates/single-post-viewer_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/app/views/home/show.mobile.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | =render :partial => 'home/show' rescue "put something in app/views/home/_show.html"
7 |
--------------------------------------------------------------------------------
/config/locales/devise/devise.af.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | af:
8 | errors:
9 | messages:
10 | not_found: "nie gevind nie"
--------------------------------------------------------------------------------
/db/migrate/20110604204533_index_on_remember_token.rb:
--------------------------------------------------------------------------------
1 | class IndexOnRememberToken < ActiveRecord::Migration
2 | def self.up
3 | add_index :users, :remember_token, :unique => true
4 | end
5 |
6 | def self.down
7 | remove_index :users, :column => :remember_token
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110815210933_remove_invite_counter_from_user.rb:
--------------------------------------------------------------------------------
1 | class RemoveInviteCounterFromUser < ActiveRecord::Migration
2 | def self.up
3 | remove_column :users, :invites
4 | end
5 |
6 | def self.down
7 | add_column :users, :invites, :integer, :default => 0
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/views/admins/correlations.haml:
--------------------------------------------------------------------------------
1 | .span-24
2 | = render :partial => 'admins/admin_bar'
3 | %br
4 | %br
5 |
6 | .span-24.last
7 | %h1
8 | = t('.correlations_count')
9 | %ul
10 | - @correlations_hash.keys.each do |k|
11 | %li
12 | = "#{k.to_s}, #{@correlations_hash[k]}"
13 |
--------------------------------------------------------------------------------
/app/views/people/_relationship_action.haml:
--------------------------------------------------------------------------------
1 | - unless person == current_user.person
2 | - contact = current_user.contacts.find_by_person_id(person.id)
3 | - contact ||= Contact.new(:person => person)
4 | = aspect_membership_dropdown(contact, person, 'left')
5 | -else
6 | = t('people.person.thats_you')
7 |
--------------------------------------------------------------------------------
/db/migrate/20111101202137_create_blocks.rb:
--------------------------------------------------------------------------------
1 | class CreateBlocks < ActiveRecord::Migration
2 | def self.up
3 | create_table :blocks do |t|
4 | t.integer :user_id
5 | t.integer :person_id
6 | end
7 | end
8 |
9 | def self.down
10 | drop_table :blocks
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/spec/lib/postzord/dispatcher/public_spec.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | require 'spec_helper'
6 |
7 | describe Postzord::Dispatcher::Public do
8 |
9 | end
10 |
--------------------------------------------------------------------------------
/app/views/home/show.html.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | - content_for :page_title do
7 | = pod_name
8 |
9 | = render :partial => 'home/show'
10 |
--------------------------------------------------------------------------------
/config/initializers/version_header.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | ENV["RAILS_ASSET_ID"] = AppConfig.rails_asset_id if Rails.env.production? && ! AppConfig.heroku?
6 |
--------------------------------------------------------------------------------
/db/migrate/20110127000931_drop_extra_columns.rb:
--------------------------------------------------------------------------------
1 | class DropExtraColumns < ActiveRecord::Migration
2 | def self.up
3 | remove_column :services, :provider
4 | remove_column :statistics, :type
5 | end
6 |
7 | def self.down
8 | raise ActiveRecord::IrreversibleMigration
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/db/migrate/20110812175614_add_username_to_service_users.rb:
--------------------------------------------------------------------------------
1 | class AddUsernameToServiceUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :service_users, :username, :string, :limit => 127
4 | end
5 |
6 | def self.down
7 | remove_column :service_users, :username
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20111016145626_add_language_to_invitations.rb:
--------------------------------------------------------------------------------
1 | class AddLanguageToInvitations < ActiveRecord::Migration
2 | def self.up
3 | add_column :invitations, :language, :string, :default => "en"
4 | end
5 |
6 | def self.down
7 | remove_column :invitations, :language
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20130613203350_remove_limit_from_root_guid_in_posts.rb:
--------------------------------------------------------------------------------
1 | class RemoveLimitFromRootGuidInPosts < ActiveRecord::Migration
2 | def up
3 | change_column :posts, :root_guid, :string
4 | end
5 |
6 | def down
7 | change_column :posts, :root_guid, :string, limit: 30
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/spec/models/block_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Block do
4 | describe 'validations' do
5 | it 'doesnt allow you to block yourself' do
6 | block = alice.blocks.create(:person => alice.person)
7 |
8 | block.should have(1).error_on(:person_id)
9 | end
10 | end
11 | end
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/invitations-edit.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.InvitationsEdit = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, body) {
5 | jQuery.ajaxSetup({'cache': true});
6 | $('#user_username').tooltip({trigger: 'focus', placement: 'right'});
7 | });
8 | };
9 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/post_report.css.scss:
--------------------------------------------------------------------------------
1 | #post_report {
2 | padding-top: 2em;
3 | span {
4 | display: block;
5 | }
6 | .content {
7 | float: left;
8 | }
9 | .options {
10 | float: right;
11 | }
12 | .clear {
13 | clear: both;
14 | padding-bottom: 1em;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/views/shared/_settings_nav.haml:
--------------------------------------------------------------------------------
1 | %ul#settings_nav
2 | %li= link_to_unless_current t('profile'), edit_profile_path
3 | %li= link_to_unless_current t('account'), edit_user_path
4 | %li= link_to_unless_current t('privacy'), privacy_settings_path
5 | %li= link_to_unless_current t('_services'), services_path
6 |
--------------------------------------------------------------------------------
/app/views/shared/_stream.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | = render :partial => 'shared/stream_element',
6 | :collection => posts,
7 | :as => :post
8 |
--------------------------------------------------------------------------------
/db/migrate/20110603233202_drop_aspects_open.rb:
--------------------------------------------------------------------------------
1 | class DropAspectsOpen < ActiveRecord::Migration
2 | require Rails.root.join("db", "migrate", "20110202015222_add_open_to_aspects")
3 | def self.up
4 | AddOpenToAspects.down
5 | end
6 |
7 | def self.down
8 | AddOpenToAspects.up
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/db/migrate/20110730173137_create_pods.rb:
--------------------------------------------------------------------------------
1 | class CreatePods < ActiveRecord::Migration
2 | def self.up
3 | create_table :pods do |t|
4 | t.string :host
5 | t.boolean :ssl
6 |
7 | t.timestamps
8 | end
9 | end
10 |
11 | def self.down
12 | drop_table :pods
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/db/migrate/20111003232053_add_index_for_reshares.rb:
--------------------------------------------------------------------------------
1 | class AddIndexForReshares < ActiveRecord::Migration
2 | def self.up
3 | add_index :posts, [:author_id, :root_guid], :unique => true
4 | end
5 |
6 | def self.down
7 | remove_index :posts, :column => [:author_id, :root_guid]
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/views/notifier/confirm_email.markerb:
--------------------------------------------------------------------------------
1 | <%= t('notifier.hello', :name => @notification.recipient_first_name) %>
2 |
3 | <%= t('notifier.confirm_email.click_link', :unconfirmed_email => @notification.recipient_unconfirmed_email) %>
4 |
5 | <<%= confirm_email_url(:token => @notification.recipient_confirm_email_token) %>>
6 |
--------------------------------------------------------------------------------
/app/workers/mail/liked.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class Liked < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform(recipient_id, sender_id, like_id)
7 | Notifier.liked(recipient_id, sender_id, like_id).deliver
8 | end
9 | end
10 | end
11 | end
12 |
13 |
--------------------------------------------------------------------------------
/db/migrate/20110119060243_add_index_to_post_visibilities.rb:
--------------------------------------------------------------------------------
1 | class AddIndexToPostVisibilities < ActiveRecord::Migration
2 | def self.up
3 | add_index :post_visibilities, [:aspect_id, :post_id]
4 | end
5 |
6 | def self.down
7 | remove_index :post_visibilities, [:aspect_id, :post_id]
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20110217044519_undo_adding_indicies.rb:
--------------------------------------------------------------------------------
1 | class UndoAddingIndicies < ActiveRecord::Migration
2 | require Rails.root.join('db', 'migrate', '20110213052742_add_more_indicies')
3 | def self.up
4 | AddMoreIndicies.down
5 | end
6 |
7 | def self.down
8 | AddMoreIndicies.up
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/db/migrate/20110314043119_drop_import_tables.rb:
--------------------------------------------------------------------------------
1 | require Rails.root.join('db', 'migrate', '20110105051803_create_import_tables')
2 | class DropImportTables < ActiveRecord::Migration
3 | def self.up
4 | CreateImportTables.down
5 | end
6 |
7 | def self.down
8 | CreateImportTables.up
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/db/migrate/20110601091059_add_confirm_email_token_to_users.rb:
--------------------------------------------------------------------------------
1 | class AddConfirmEmailTokenToUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :confirm_email_token, :string, :limit => 30
4 | end
5 |
6 | def self.down
7 | remove_column :users, :confirm_email_token
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20111103184050_add_closed_account_flag_to_person.rb:
--------------------------------------------------------------------------------
1 | class AddClosedAccountFlagToPerson < ActiveRecord::Migration
2 | def self.up
3 | add_column :people, :closed_account, :boolean, :default => false
4 | end
5 |
6 | def self.down
7 | remove_column :people, :closed_account
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/script/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3 |
4 | APP_PATH = File.expand_path('../../config/application', __FILE__)
5 | require File.expand_path('../../config/boot', __FILE__)
6 | require 'rails/commands'
7 |
--------------------------------------------------------------------------------
/spec/presenters/aspect_presenter_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe AspectPresenter do
4 | before do
5 | @presenter = AspectPresenter.new(bob.aspects.first)
6 | end
7 |
8 | describe '#to_json' do
9 | it 'works' do
10 | @presenter.to_json.should be_present
11 | end
12 | end
13 | end
--------------------------------------------------------------------------------
/spec/support/inlined_jobs.rb:
--------------------------------------------------------------------------------
1 | module HelperMethods
2 | def inlined_jobs
3 | Sidekiq::Worker.clear_all
4 | result = yield Sidekiq::Worker
5 | Sidekiq::Worker.drain_all
6 | result
7 | rescue NoMethodError
8 | yield Sidekiq::Worker if block_given? # Never error out on our own
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/app/assets/templates/aspect_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{#if selected}}
3 |
4 | {{else}}
5 |
6 | {{/if}}
7 | {{name}}
8 |
--------------------------------------------------------------------------------
/app/models/pod.rb:
--------------------------------------------------------------------------------
1 | class Pod < ActiveRecord::Base
2 | def self.find_or_create_by_url(url)
3 | u = URI.parse(url)
4 | pod = self.find_or_initialize_by_host(u.host)
5 | unless pod.persisted?
6 | pod.ssl = (u.scheme == 'https')? true : false
7 | pod.save
8 | end
9 | pod
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/app/presenters/service_presenter.rb:
--------------------------------------------------------------------------------
1 | class ServicePresenter < BasePresenter
2 | def initialize(service)
3 | @service = service
4 | end
5 |
6 | def as_json
7 | {
8 | :provider => @service.provider
9 | }
10 | end
11 |
12 | def to_json(options = {})
13 | as_json.to_json(options)
14 | end
15 | end
--------------------------------------------------------------------------------
/app/views/posts/show.html.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | - content_for :page_title do
6 | = post_page_title @post
7 |
8 | - content_for :content do
9 | #container
10 |
--------------------------------------------------------------------------------
/app/views/shared/_footer.mobile.haml:
--------------------------------------------------------------------------------
1 | %footer
2 | %strong
3 | = link_to current_user.name, current_user.person
4 | = link_to t('layouts.header.settings'), users_edit_path
5 | = link_to t('layouts.application.toggle'), toggle_mobile_path
6 | = link_to t('layouts.header.logout'), destroy_user_session_path, method: :delete
7 |
--------------------------------------------------------------------------------
/app/models/notification_actor.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | class NotificationActor < ActiveRecord::Base
6 |
7 | belongs_to :notification
8 | belongs_to :person
9 |
10 | end
11 |
--------------------------------------------------------------------------------
/app/presenters/aspect_presenter.rb:
--------------------------------------------------------------------------------
1 | class AspectPresenter < BasePresenter
2 | def initialize(aspect)
3 | @aspect = aspect
4 | end
5 |
6 | def as_json
7 | { :id => @aspect.id,
8 | :name => @aspect.name,
9 | }
10 | end
11 |
12 | def to_json(options = {})
13 | as_json.to_json(options)
14 | end
15 | end
--------------------------------------------------------------------------------
/app/workers/mail/reshared.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class Reshared < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform(recipient_id, sender_id, reshare_id)
7 | Notifier.reshared(recipient_id, sender_id, reshare_id).deliver
8 | end
9 | end
10 | end
11 | end
12 |
13 |
--------------------------------------------------------------------------------
/db/migrate/20110601083310_add_unconfirmed_email_to_users.rb:
--------------------------------------------------------------------------------
1 | class AddUnconfirmedEmailToUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :unconfirmed_email, :string, :default => nil, :null => true
4 | end
5 |
6 | def self.down
7 | remove_column :users, :unconfirmed_email
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20111207230506_add_oauth_redirect_uri_to_oauth_clients.rb:
--------------------------------------------------------------------------------
1 | class AddOauthRedirectUriToOauthClients < ActiveRecord::Migration
2 | def self.up
3 | add_column :oauth_clients, :oauth_redirect_uri, :string
4 | end
5 |
6 | def self.down
7 | remove_column :oauth_clients, :oauth_redirect_uri
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20120405170105_create_locations.rb:
--------------------------------------------------------------------------------
1 | class CreateLocations < ActiveRecord::Migration
2 | def change
3 | create_table :locations do |t|
4 | t.string :address
5 | t.string :lat
6 | t.string :lng
7 | t.integer :status_message_id
8 |
9 | t.timestamps
10 | end
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/notifications-index.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.NotificationsIndex = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, document) {
5 | self.infiniteScroll = self.instantiate("InfiniteScroll");
6 | self.instantiate("TimeAgo", document.find("time.timeago"));
7 | });
8 | };
9 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/new_styles/_flash_messages.scss:
--------------------------------------------------------------------------------
1 |
2 | @import '../_flash_messages';
3 |
4 | #flash_notice,
5 | #flash_alert,
6 | #flash_error {
7 | .message {
8 | margin-top : 10px;
9 | padding : 10px 20px 8px;
10 | background-color : rgba(0,0,0,0.8);
11 | border : 1px solid rgba(255,255,255,0.7);
12 | }
13 | }
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/comments.csv:
--------------------------------------------------------------------------------
1 | mongo_id,post_mongo_id,person_mongo_id,diaspora_handle,text,youtube_titles
2 | 4d2b6ebfcc8cb43cc200002b,4d2b6ebecc8cb43cc2000029,4d2b6eb7cc8cb43cc2000017,bob3c6c46f@localhost,Hey me!,""
3 | 4d2b6ebfcc8cb43cc200002c,4d2b6ebecc8cb43cc2000027,4d2b6eb7cc8cb43cc200000e,bob2f66ee4@localhost,Hey you!,""
4 |
--------------------------------------------------------------------------------
/spec/lib/stream/public_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::Public do
5 | before do
6 | @stream = Stream::Public.new(alice)
7 | end
8 |
9 | describe 'shared behaviors' do
10 | it_should_behave_like 'it is a stream'
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/new_styles/_viewer_nav.scss:
--------------------------------------------------------------------------------
1 | @import '../mixins';
2 |
3 | body.idle {
4 | #post-nav {
5 | @include opacity(0);
6 |
7 | .nav-arrow{
8 | &.right {
9 | margin-right: -40px;
10 | }
11 |
12 | &.left {
13 | margin-left: -40px;
14 | }
15 | }
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/assets/templates/aspects-list_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ t "aspect_navigation.select_all" }}
4 |
5 |
6 |
7 | {{ t "aspect_navigation.add_an_aspect" }}
8 |
9 |
--------------------------------------------------------------------------------
/app/views/publics/host_meta.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/collections/likes.js:
--------------------------------------------------------------------------------
1 | app.collections.Likes = Backbone.Collection.extend({
2 | model: app.models.Like,
3 |
4 | initialize : function(models, options) {
5 | this.url = "/posts/" + options.post.id + "/likes" //not delegating to post.url() because when it is in a stream collection it delegates to that url
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/app/views/devise/mailer/reset_password_instructions.markerb:
--------------------------------------------------------------------------------
1 | <%= t('devise.mailer.hello', :email => @resource.email) %>
2 |
3 | <%= t('.someone_requested') %>
4 |
5 | [<%= t('.change') %>][1]
6 |
7 | [1]: <%= edit_password_url(@resource, :reset_password_token => @token) %>
8 |
9 | <%= t('.wont_change') %>
10 |
11 | <%= t('.ignore') %>
12 |
--------------------------------------------------------------------------------
/app/workers/mail/comment_on_post.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class CommentOnPost < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform(recipient_id, sender_id, comment_id)
7 | Notifier.comment_on_post(recipient_id, sender_id, comment_id).deliver
8 | end
9 | end
10 | end
11 | end
12 |
13 |
--------------------------------------------------------------------------------
/config/initializers/enforce_ssl.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | if AppConfig.environment.require_ssl?
6 | Rails.application.config.middleware.insert_before 0, Rack::SSL
7 | puts "Rack::SSL is enabled"
8 | end
9 |
--------------------------------------------------------------------------------
/lib/stream.rb:
--------------------------------------------------------------------------------
1 | module Stream
2 | require 'stream/activity'
3 | require 'stream/aspect'
4 | require 'stream/comments'
5 | require 'stream/followed_tag'
6 | require 'stream/likes'
7 | require 'stream/mention'
8 | require 'stream/multi'
9 | require 'stream/person'
10 | require 'stream/public'
11 | require 'stream/tag'
12 | end
13 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/collections/photos.js:
--------------------------------------------------------------------------------
1 | app.collections.Photos = Backbone.Collection.extend({
2 | url : "/photos",
3 |
4 | model: function(attrs, options) {
5 | var modelClass = app.models.Photo
6 | return new modelClass(attrs, options);
7 | },
8 |
9 | parse: function(resp){
10 | return resp.photos;
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/views/photo_view.js:
--------------------------------------------------------------------------------
1 | app.views.Photo = app.views.Base.extend({
2 |
3 | templateName: "photo",
4 |
5 | className : "photo loaded",
6 |
7 | initialize : function() {
8 | $(this.el).attr("id", this.model.get("guid"));
9 | this.model.bind('remove', this.remove, this);
10 | return this;
11 | }
12 |
13 | });
--------------------------------------------------------------------------------
/app/views/conversations/_conversation_subject.haml:
--------------------------------------------------------------------------------
1 | .subject
2 | .badge.badge-dafault.message_count
3 | = conversation.messages.size
4 | - if unread_count > 0
5 | .badge.badge-important.unread_message_count
6 | = unread_count
7 |
8 | %div{ :class => direction_for(conversation.subject) }
9 | = conversation.subject[0..30]
10 |
--------------------------------------------------------------------------------
/app/views/notifications/_notify_popup_item.haml:
--------------------------------------------------------------------------------
1 | .notification_element{:data=>{:guid => n.id}, :class => (n.unread ? "unread" : "read")}
2 | = person_image_tag n.actors.first, :thumb_small
3 | = notification_message_for(n)
4 | %div
5 | = timeago(n.created_at)
6 | = link_to t('notifications.index.mark_unread'), "#", :class => "unread-setter"
7 |
--------------------------------------------------------------------------------
/config/asset_sync.rb:
--------------------------------------------------------------------------------
1 | if AppConfig.environment.assets.upload? && AppConfig.environment.s3.enable?
2 | # Monkey patch to make Rails.root available early
3 | require 'pathname'
4 | module Rails
5 | def self.root
6 | @@root ||= Pathname.new(__FILE__).dirname.join('..')
7 | end
8 | end
9 |
10 | require 'asset_sync'
11 | end
12 |
--------------------------------------------------------------------------------
/config/initializers/setup_simple_captcha.rb:
--------------------------------------------------------------------------------
1 | SimpleCaptcha.setup do |sc|
2 | sc.image_size = AppConfig.settings.captcha.image_size
3 | sc.length = AppConfig.settings.captcha.captcha_length.to_i
4 | sc.image_style = AppConfig.settings.captcha.image_style
5 | sc.distortion = AppConfig.settings.captcha.distortion
6 | p AppConfig.settings.captcha
7 | end
--------------------------------------------------------------------------------
/db/migrate/20110507212759_remove_type_null_notifications.rb:
--------------------------------------------------------------------------------
1 | class RemoveTypeNullNotifications < ActiveRecord::Migration
2 | def self.up
3 | execute < "fakebook"))
7 | presenter.as_json[:provider].should == 'fakebook'
8 | end
9 | end
10 | end
--------------------------------------------------------------------------------
/app/assets/stylesheets/media-box.css.scss:
--------------------------------------------------------------------------------
1 | .media { margin: 10px; }
2 |
3 | .media,
4 | .bd {
5 | overflow: hidden;
6 | _overflow: visible;
7 | zoom: 1;
8 | }
9 |
10 | .media .img {
11 | float: left;
12 | margin-right: 10px;
13 | }
14 |
15 | .media .img img { display: block }
16 | .media .imgEt { float: right; margin-left: 10px; }
17 |
18 |
--------------------------------------------------------------------------------
/app/views/contacts/_contact.html.haml:
--------------------------------------------------------------------------------
1 | .stream_element{:id => contact.person_id}
2 | .media
3 | .float-right
4 | = contact_aspect_dropdown(contact)
5 | .img
6 | = person_image_link(contact.person, :size => :thumb_small)
7 | .bd
8 | = person_link(contact.person)
9 | .info
10 | = contact.person_diaspora_handle
11 |
--------------------------------------------------------------------------------
/config/locales/devise/devise.en_pirate.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | en_pirate:
8 | devise:
9 | invitations:
10 | invitation_token_invalid: "The invitation token provided is not valid!"
--------------------------------------------------------------------------------
/db/migrate/20111002013921_fix_data_type_for_activity_streams_object_id.rb:
--------------------------------------------------------------------------------
1 | class FixDataTypeForActivityStreamsObjectId < ActiveRecord::Migration
2 | def self.up
3 | change_table :posts do |t|
4 | t.change :objectId, :string
5 | end
6 | end
7 |
8 | def self.down
9 | raise ActiveRecord::IrreversibleMigration
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/app/assets/javascripts/jasmine-load-all.js:
--------------------------------------------------------------------------------
1 | //= require jquery
2 | //= require handlebars-1.0.0.beta.6
3 | //= require templates
4 | //= require main
5 | //= require home
6 | //= require finder
7 | //= require inbox
8 | //= require login
9 | //= require mobile
10 | //= require profile
11 | //= require people
12 | //= require photos
13 | //= require sinon
14 |
--------------------------------------------------------------------------------
/app/views/aspects/_aspect_listings.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | = link_to t('streams.aspects.title'), aspects_path, :class => 'hoverable', :rel => 'backbone', :data => {:stream => 'aspects'}
6 | %ul#aspects_list
7 |
--------------------------------------------------------------------------------
/app/views/people/_index.html.haml:
--------------------------------------------------------------------------------
1 | .people_stream
2 | - people.each do |person|
3 | .stream_element{:id => person.id}
4 | .media
5 | .img
6 | = person_image_tag(person)
7 | .bg
8 | %span.from
9 | = person_link(person, :class => "hovercardable")
10 |
11 | = will_paginate people, :inner_window => 3
12 |
--------------------------------------------------------------------------------
/db/migrate/20110126225202_remove_unique_index_on_email_on_users.rb:
--------------------------------------------------------------------------------
1 | class RemoveUniqueIndexOnEmailOnUsers < ActiveRecord::Migration
2 | def self.up
3 | remove_index :users, :email
4 | add_index :users, :email
5 | end
6 |
7 | def self.down
8 | remove_index :users, :email
9 | add_index :users, :email, :unique => true
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20110405170101_fix_stream_queries.rb:
--------------------------------------------------------------------------------
1 | class FixStreamQueries < ActiveRecord::Migration
2 | def self.up
3 | change_column :posts, :type, :string, :limit => 40
4 | remove_index :posts, :type
5 | end
6 |
7 | def self.down
8 | add_index :posts, :type
9 | change_column :posts, :type, :string, :limit => 127
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/script/cucumber:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | vendored_cucumber_bin = Dir["#{File.dirname(__FILE__)}/../vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
4 | if vendored_cucumber_bin
5 | load File.expand_path(vendored_cucumber_bin)
6 | else
7 | require 'rubygems' unless ENV['NO_RUBYGEMS']
8 | require 'cucumber'
9 | load Cucumber::BINARY
10 | end
11 |
--------------------------------------------------------------------------------
/spec/lib/csv_generator_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | #
3 | #describe CsvGenerator do
4 | # describe '.all_active_users' do
5 | #
6 | # end
7 | #
8 | # describe '.all_inactive_invited_users' do
9 | #
10 | # end
11 | #
12 | # describe '.waitlist_sent' do
13 | #
14 | # end
15 | #
16 | # describe '.waitlist_pending' do
17 | #
18 | # end
19 | #end
20 |
--------------------------------------------------------------------------------
/app/views/devise/unlocks/new.html.haml:
--------------------------------------------------------------------------------
1 | %h2 Resend unlock instructions
2 | = form_for(resource, :as => resource_name, :url => unlock_path(resource_name)) do |f|
3 | = devise_error_messages!
4 | %p
5 | = f.label :email
6 | %br/
7 | = f.text_field :email
8 | %p
9 | = f.submit t('.resend_unlock')
10 | = render :partial => "devise/shared/links"
11 |
--------------------------------------------------------------------------------
/app/views/tags/_followed_tags_listings.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | = link_to t('streams.followed_tag.title'), followed_tags_stream_path, :class => 'hoverable', :data => {:stream => 'followed_tags'}
6 | %ul#tags_list
7 |
--------------------------------------------------------------------------------
/db/migrate/20110120181553_create_statistics.rb:
--------------------------------------------------------------------------------
1 | class CreateStatistics < ActiveRecord::Migration
2 | def self.up
3 | create_table :statistics do |t|
4 | t.integer :average
5 | t.string :type
6 | t.datetime :time
7 |
8 | t.timestamps
9 | end
10 | end
11 |
12 | def self.down
13 | drop_table :statistcs
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20120906162503_update_devise.rb:
--------------------------------------------------------------------------------
1 | class UpdateDevise < ActiveRecord::Migration
2 | def up
3 | remove_column :users, :remember_token
4 | add_column :users, :reset_password_sent_at, :datetime
5 | end
6 |
7 | def down
8 | add_column :users, :remember_token, :string
9 | remove_column :users, :reset_password_sent_at
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/config/initializers/rspec_generator.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | Diaspora::Application.configure do
6 | config.generators do |g|
7 | g.integration_tool :rspec
8 | g.test_framework :rspec
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/db/migrate/20110311183826_create_user_preferences.rb:
--------------------------------------------------------------------------------
1 | class CreateUserPreferences < ActiveRecord::Migration
2 | def self.up
3 | create_table :user_preferences do |t|
4 | t.string :email_type
5 | t.integer :user_id
6 |
7 | t.timestamps
8 | end
9 | end
10 |
11 | def self.down
12 | drop_table :user_preferences
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/db/migrate/20120301143226_remove_youtube_titles.rb:
--------------------------------------------------------------------------------
1 | class RemoveYoutubeTitles < ActiveRecord::Migration
2 | def self.up
3 | remove_column :comments, :youtube_titles
4 | remove_column :posts, :youtube_titles
5 | end
6 |
7 | def self.down
8 | add_column :comments, :youtube_titles, :text
9 | add_column :posts, :youtube_titles, :text
10 | end
11 | end
--------------------------------------------------------------------------------
/features/desktop/download_photos.feature:
--------------------------------------------------------------------------------
1 | @wip
2 | @javascript
3 | Feature: Download Photos
4 |
5 | Scenario: Download my photos
6 | Given I am signed in
7 | And I click on my name in the header
8 | And I follow "settings"
9 | Then I should be on my account settings page
10 | And I follow "download my photos"
11 | Then I confirm the alert
12 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/notifications.csv:
--------------------------------------------------------------------------------
1 | mongo_id,target_mongo_id,recipient_mongo_id,actor_mongo_id,action,target_type,unread
2 | 4d2b6eb8cc8cb43cc200001f,4d2b6eb8cc8cb43cc200001e,4d2b6eb7cc8cb43cc2000018,4d2b6eb7cc8cb43cc2000017,,new_request,true
3 | 4d2b6ec4cc8cb43cc200003b,4d2b6ec4cc8cb43cc200003a,4d2b6eb6cc8cb43cc200000b,4d2b6ec2cc8cb43cc2000034,,new_request,true
4 |
--------------------------------------------------------------------------------
/app/presenters/last_three_comments_decorator.rb:
--------------------------------------------------------------------------------
1 | class LastThreeCommentsDecorator
2 | def initialize(presenter)
3 | @presenter = presenter
4 | end
5 |
6 | def as_json(options={})
7 | @presenter.as_json.tap do |post|
8 | post[:interactions].merge!(:comments => CommentPresenter.as_collection(@presenter.post.last_three_comments))
9 | end
10 | end
11 | end
--------------------------------------------------------------------------------
/features/step_definitions/post_preview_steps.rb:
--------------------------------------------------------------------------------
1 | Then /^the first post should be a preview$/ do
2 | find(".post_preview .post-content").text.should == first_post_text
3 | end
4 |
5 | Then /^the preview should not be collapsed$/ do
6 | find(".post_preview").should_not have_selector('.collapsed')
7 | find(".post_preview").should have_selector('.opened')
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/app/views/posts/show.mobile.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | .stream
6 | = render :partial => 'shared/stream_element',
7 | :locals => {:post => @post, :commenting_disabled => commenting_disabled?(@post), :expanded_info => true}
8 |
9 |
--------------------------------------------------------------------------------
/app/views/status_messages/new.mobile.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | = render :partial => 'shared/publisher', :locals => {:aspect => @aspects.first, :for_all_aspects => true, :aspect_ids => @aspect_ids, :selected_aspects => @aspects}
6 |
--------------------------------------------------------------------------------
/config/initializers/json_escape.rb:
--------------------------------------------------------------------------------
1 | # From http://jfire.io/blog/2012/04/30/how-to-securely-bootstrap-json-in-a-rails-view/
2 | # Review on Rails 4 update, might be built in by then!
3 |
4 | class ActionView::Base
5 | def json_escape(s)
6 | result = s.to_s.gsub('/', '\/')
7 | s.html_safe? ? result.html_safe : result
8 | end
9 |
10 | alias j json_escape
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20110313015438_rename_text_fields.rb:
--------------------------------------------------------------------------------
1 | class RenameTextFields < ActiveRecord::Migration
2 | def self.up
3 | rename_column :posts, :message, :text
4 | execute("UPDATE posts
5 | SET text = posts.caption
6 | WHERE posts.caption IS NOT NULL;")
7 | remove_column :posts, :caption
8 | end
9 |
10 | def self.down
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/graphics/README.md:
--------------------------------------------------------------------------------
1 | The files in this directory are "source" files for the graphics used in
2 | the Diaspora frontend. This includes GIMP files, Photoshop files, SVG
3 | files, and all other image files of this sort. They are not shown directly
4 | to end users, but are used to generate the actual graphics used in the
5 | frontend (PNGs, etc.). They can be scaled, tinted, shaded, etc.
6 |
--------------------------------------------------------------------------------
/app/assets/templates/tag_following_action_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/db/migrate/20111019013244_postgresql_photos_id_seq_init.rb:
--------------------------------------------------------------------------------
1 | class PostgresqlPhotosIdSeqInit < ActiveRecord::Migration
2 | def self.up
3 | if AppConfig.postgres?
4 | execute "SELECT setval('photos_id_seq', COALESCE( ( SELECT MAX(id)+1 FROM photos ), 1 ) )"
5 | end
6 | end
7 |
8 | def self.down
9 | # No reason or need to migrate this down.
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/spec/lib/stream/mention_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::Mention do
5 | before do
6 | @stream = Stream::Mention.new(alice, :max_time => Time.now, :order => 'updated_at')
7 | end
8 |
9 | describe 'shared behaviors' do
10 | it_should_behave_like 'it is a stream'
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/views/devise/confirmations/new.html.haml:
--------------------------------------------------------------------------------
1 | %h2 Resend confirmation instructions
2 | = form_for(resource, :as => resource_name, :url => confirmation_path(resource_name)) do |f|
3 | = devise_error_messages!
4 | %p
5 | = f.label :email
6 | %br/
7 | = f.text_field :email
8 | %p
9 | = f.submit t('.resend_confirmation')
10 | = render :partial => "devise/shared/links"
11 |
--------------------------------------------------------------------------------
/app/workers/mail/also_commented.rb:
--------------------------------------------------------------------------------
1 | module Workers
2 | module Mail
3 | class AlsoCommented < Base
4 | sidekiq_options queue: :mail
5 |
6 | def perform(recipient_id, sender_id, comment_id)
7 | if email = Notifier.also_commented(recipient_id, sender_id, comment_id)
8 | email.deliver
9 | end
10 | end
11 | end
12 | end
13 | end
14 |
15 |
--------------------------------------------------------------------------------
/db/migrate/20110701215925_create_tag_followings.rb:
--------------------------------------------------------------------------------
1 | class CreateTagFollowings < ActiveRecord::Migration
2 | def self.up
3 | create_table :tag_followings do |t|
4 | t.integer :tag_id, :null => false
5 | t.integer :user_id, :null => false
6 |
7 | t.timestamps
8 | end
9 | end
10 |
11 | def self.down
12 | drop_table :tag_followings
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/db/migrate/20111211213438_create_invitation_codes.rb:
--------------------------------------------------------------------------------
1 | class CreateInvitationCodes < ActiveRecord::Migration
2 | def self.up
3 | create_table :invitation_codes do |t|
4 | t.string :token
5 | t.integer :user_id
6 | t.integer :count
7 |
8 | t.timestamps
9 | end
10 | end
11 |
12 | def self.down
13 | drop_table :invitation_codes
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/diaspora/markdownify/html.rb:
--------------------------------------------------------------------------------
1 | module Diaspora
2 | module Markdownify
3 | class HTML < Redcarpet::Render::HTML
4 | include ActionView::Helpers::TextHelper
5 | include ActionView::Helpers::TagHelper
6 |
7 | def autolink(link, type)
8 | auto_link(link, :link => :urls, :html => { :target => "_blank" })
9 | end
10 |
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/orig.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-Agent: *
5 | # Disallow: /
6 |
7 | # To ban all spiders from only specific directories such as /people /u or /tag etc.
8 | User-Agent: *
9 | Disallow: /people/
10 | Disallow: /u/
11 |
--------------------------------------------------------------------------------
/spec/lib/stream/activity_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::Activity do
5 | before do
6 | @stream = Stream::Activity.new(alice, :max_time => Time.now, :order => 'updated_at')
7 | end
8 |
9 | describe 'shared behaviors' do
10 | it_should_behave_like 'it is a stream'
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/spec/lib/stream/comments_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::Comments do
5 | before do
6 | @stream = Stream::Comments.new(alice, :max_time => Time.now, :order => 'updated_at')
7 | end
8 |
9 | describe 'shared behaviors' do
10 | it_should_behave_like 'it is a stream'
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/default.css:
--------------------------------------------------------------------------------
1 | /*
2 | *= require media-box
3 | *= require lightbox
4 | *= require autocomplete
5 | *= require mentions
6 | *= require tags
7 | *= require hovercard
8 |
9 | *= require vendor/interim-bootstrap
10 | *= require vendor/facebox
11 | *= require vendor/fileuploader
12 | *= require vendor/autoSuggest
13 | *= require entypo-fonts
14 | *= require entypo
15 | */
16 |
--------------------------------------------------------------------------------
/app/mailers/notification_mailers/confirm_email.rb:
--------------------------------------------------------------------------------
1 | module NotificationMailers
2 | class ConfirmEmail < NotificationMailers::Base
3 | def set_headers
4 | @headers[:to] = name_and_address(@recipient.first_name, @recipient.unconfirmed_email)
5 | @headers[:subject] = I18n.t('notifier.confirm_email.subject', :unconfirmed_email => @recipient.unconfirmed_email)
6 | end
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/app/mailers/notification_mailers/liked.rb:
--------------------------------------------------------------------------------
1 | module NotificationMailers
2 | class Liked < NotificationMailers::Base
3 | attr_accessor :like
4 | delegate :target, to: :like, prefix: true
5 |
6 | def set_headers(like_id)
7 | @like = Like.find(like_id)
8 |
9 | @headers[:subject] = I18n.t('notifier.liked.liked', :name => @sender.name)
10 | end
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/models/notifications/reshared.rb:
--------------------------------------------------------------------------------
1 | class Notifications::Reshared < Notification
2 | def mail_job
3 | Workers::Mail::Reshared
4 | end
5 |
6 | def popup_translation_key
7 | 'notifications.reshared'
8 | end
9 |
10 | def deleted_translation_key
11 | 'notifications.reshared_post_deleted'
12 | end
13 |
14 | def linked_object
15 | self.target
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 |
3 | # Set up gems listed in the Gemfile.
4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
6 |
7 | # Ensure Builder is loaded
8 | require 'active_support/builder' unless defined?(Builder)
9 |
10 | # Load configuration early
11 | require_relative 'load_config'
12 |
--------------------------------------------------------------------------------
/db/migrate/20110524184202_add_object_id_to_post.rb:
--------------------------------------------------------------------------------
1 | class AddObjectIdToPost < ActiveRecord::Migration
2 | class Post < ActiveRecord::Base; end
3 | def self.up
4 | add_column(:posts, :objectId, :integer)
5 | execute("UPDATE posts SET objectId = object_url") if Post.count > 0
6 | end
7 |
8 | def self.down
9 | remove_column(:posts, :objectId, :integer)
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/spec/lib/stream/likes_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::Likes do
5 | before do
6 | @stream = Stream::Likes.new(alice, :max_time => Time.now, :order => 'updated_at')
7 | end
8 |
9 | describe 'shared behaviors' do
10 | it_should_behave_like 'it is a stream'
11 | end
12 | end
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/assets/templates/opengraph_tpl.jst.hbs:
--------------------------------------------------------------------------------
1 | {{#unless o_embed_cache}}
2 | {{#if open_graph_cache}}
3 |
4 |
5 |

6 |
{{open_graph_cache.title}}
7 |
{{open_graph_cache.description}}
8 |
9 |
10 | {{/if}}
11 | {{/unless}}
12 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/aspect_memberships.csv:
--------------------------------------------------------------------------------
1 | contact_mongo_id,aspect_mongo_id
2 | 4d2b6eb7cc8cb43cc200000f,4d2b6eb6cc8cb43cc2000008
3 | 4d2b6eb7cc8cb43cc2000010,4d2b6eb7cc8cb43cc200000c
4 | 4d2b6eb7cc8cb43cc2000013,4d2b6eb7cc8cb43cc200000c
5 | 4d2b6eb7cc8cb43cc200001c,4d2b6eb7cc8cb43cc2000015
6 | 4d2b6eb8cc8cb43cc2000022,4d2b6eb7cc8cb43cc2000015
7 | 4d2b6ec2cc8cb43cc2000035,4d2b6eb7cc8cb43cc2000019
8 |
--------------------------------------------------------------------------------
/spec/javascripts/app/collections/likes_collections_spec.js:
--------------------------------------------------------------------------------
1 | describe("app.collections.Likes", function(){
2 | describe("url", function(){
3 | it("should user the post id", function(){
4 | var post =new app.models.Post({id : 5})
5 | var collection = new app.collections.Likes([], {post : post})
6 | expect(collection.url).toBe("/posts/5/likes")
7 | })
8 | })
9 | })
10 |
11 |
--------------------------------------------------------------------------------
/app/controllers/sessions_controller.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | class SessionsController < Devise::SessionsController
6 |
7 | layout "application", :only => [:new]
8 | before_filter -> { @css_framework = :bootstrap }, only: [:new]
9 |
10 | end
11 |
--------------------------------------------------------------------------------
/app/models/post_report.rb:
--------------------------------------------------------------------------------
1 | class PostReport < ActiveRecord::Base
2 | validates :user_id, presence: true
3 | validates :post_id, presence: true
4 |
5 | belongs_to :user
6 | belongs_to :post
7 |
8 | has_many :post_reports
9 |
10 | after_create :send_report_notification
11 |
12 | def send_report_notification
13 | Workers::Mail::PostReportWorker.perform_async
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/config/initializers/set_up_image_redirects.rb:
--------------------------------------------------------------------------------
1 | if AppConfig.environment.image_redirect_url.present?
2 | require 'rack-rewrite'
3 |
4 | Rails.application.config.middleware.insert(0, Rack::Rewrite) do
5 | r301 %r{/uploads/images/(.*)}, "#{AppConfig.environment.image_redirect_url}/uploads/images/$1"
6 | r301 %r{/landing/(.*)}, "#{AppConfig.environment.image_redirect_url}/landing/$1"
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/config/locales/javascript/javascript.yi.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | yi:
8 | javascripts:
9 | timeago:
10 | day: "אַ טעג"
11 | prefixAgo: ""
12 | prefixFromNow: ""
13 | suffixAgo: "צוריק"
14 | suffixFromNow: ""
--------------------------------------------------------------------------------
/db/migrate/20110730173443_create_pod_stats.rb:
--------------------------------------------------------------------------------
1 | class CreatePodStats < ActiveRecord::Migration
2 | def self.up
3 | create_table :pod_stats do |t|
4 | t.integer :error_code
5 | t.integer :person_id
6 | t.text :error_message
7 | t.integer :pod_id
8 |
9 | t.timestamps
10 | end
11 | end
12 |
13 | def self.down
14 | drop_table :pod_stats
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/features/desktop/invitations.feature:
--------------------------------------------------------------------------------
1 | @javascript
2 | Feature: Invitations
3 |
4 | Scenario: Accepting an invitation
5 | When I visit alice's invitation code url
6 | # Then I should see the "alice is excited" message
7 | When I fill in the new user form
8 | And I press "Continue"
9 | Then I should see the "welcome to diaspora" message
10 | And I should be able to friend Alice
11 |
--------------------------------------------------------------------------------
/app/views/photos/_index.html.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 |
6 | #thumbnails.span-15.last
7 | - for photo in photos
8 | = link_to (image_tag photo.url(:thumb_large), "data-message-guid" => photo.status_message_guid ), person_photo_path(photo.author, photo)
9 |
--------------------------------------------------------------------------------
/db/migrate/20110907205720_add_indexes_to_serivces.rb:
--------------------------------------------------------------------------------
1 | class AddIndexesToSerivces < ActiveRecord::Migration
2 | def self.up
3 | change_column(:services, :type, :string, :limit => 127)
4 | change_column(:services, :uid, :string, :limit => 127)
5 | add_index :services, [:type, :uid]
6 | end
7 |
8 | def self.down
9 | remove_index :services, :column => [:type, :uid]
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20131017093025_create_post_reports.rb:
--------------------------------------------------------------------------------
1 | class CreatePostReports < ActiveRecord::Migration
2 | def change
3 | create_table :post_reports do |t|
4 | t.integer :post_id, :null => false
5 | t.string :user_id
6 | t.boolean :reviewed, :default => false
7 | t.text :text
8 |
9 | t.timestamps
10 | end
11 | add_index :post_reports, :post_id
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/contacts-index.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.ContactsIndex = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, document) {
5 | self.infiniteScroll = self.instantiate("InfiniteScroll",
6 | {donetext: Diaspora.I18n.t("infinite_scroll.no_more_contacts"),});
7 | $('.conversation_button').tooltip({placement: 'bottom'});
8 | });
9 |
10 | };
11 |
--------------------------------------------------------------------------------
/db/migrate/20110228233419_add_signatures_to_message.rb:
--------------------------------------------------------------------------------
1 | class AddSignaturesToMessage < ActiveRecord::Migration
2 | def self.up
3 | add_column(:messages, :author_signature, :text)
4 | add_column(:messages, :parent_author_signature, :text)
5 | end
6 |
7 | def self.down
8 | remove_column(:messages, :author_signature)
9 | remove_column(:messages, :parent_author_signature)
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/spec/javascripts/app/collections/comments_collection_spec.js:
--------------------------------------------------------------------------------
1 | describe("app.collections.comments", function(){
2 | describe("url", function(){
3 | it("should user the post id", function(){
4 | var post =new app.models.Post({id : 5})
5 | var collection = new app.collections.Comments([], {post : post})
6 | expect(collection.url()).toBe("/posts/5/comments")
7 | })
8 | })
9 | })
10 |
11 |
--------------------------------------------------------------------------------
/.pairs:
--------------------------------------------------------------------------------
1 | pairs:
2 | dg: Daniel Grippi; daniel
3 | rs: Raphael Sofaer; raphael
4 | iz: Ilya Zhitomirskiy; ilya
5 | ms: Maxwell Salzberg; maxwell
6 | dh: Dan Hansen; ohaibbq
7 | sm: Sarah Mei; sarah
8 | mjs: Michael Sofaer; michael
9 | jd: Jeff Dickey; dickeytk
10 | dc: Dennis Collinson
11 | tf: Tim Frazer
12 | kf: Kevin Fitzpatrick
13 | email:
14 | prefix: pair
15 | domain: joindiaspora.com
16 |
--------------------------------------------------------------------------------
/app/models/notifications/mentioned.rb:
--------------------------------------------------------------------------------
1 | class Notifications::Mentioned < Notification
2 | def mail_job
3 | Workers::Mail::Mentioned
4 | end
5 |
6 | def popup_translation_key
7 | 'notifications.mentioned'
8 | end
9 |
10 | def deleted_translation_key
11 | 'notifications.mentioned_deleted'
12 | end
13 |
14 | def linked_object
15 | Mention.find(self.target_id).post
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/models/tag_following.rb:
--------------------------------------------------------------------------------
1 | class TagFollowing < ActiveRecord::Base
2 | belongs_to :user
3 | belongs_to :tag, :class_name => "ActsAsTaggableOn::Tag"
4 |
5 | validates_uniqueness_of :tag_id, :scope => :user_id
6 |
7 | def self.user_is_following?(user, tagname)
8 | tagname.nil? ? false : joins(:tag).where(:tags => {:name => tagname.downcase}).where(:user_id => user.id).exists?
9 | end
10 |
11 | end
12 |
--------------------------------------------------------------------------------
/features/desktop/tags.feature:
--------------------------------------------------------------------------------
1 | @javascript
2 | Feature: Interacting with tags
3 |
4 | Background:
5 | Given there is a user "Samuel Beckett" who's tagged "#rockstar"
6 | And I am signed in
7 | And I am on the homepage
8 |
9 | Scenario: Searching for a tag
10 | When I search for "#rockstar"
11 | Then I should be on the tag page for "rockstar"
12 | And I should see "Samuel Beckett"
13 |
14 |
--------------------------------------------------------------------------------
/app/assets/javascripts/pages/invitations-new.js:
--------------------------------------------------------------------------------
1 | Diaspora.Pages.InvitationsNew = function() {
2 | var self = this;
3 |
4 | this.subscribe("page/ready", function(evt, document) {
5 | var rtl = $('html').attr('dir') == 'rtl',
6 | position = rtl ? 'left' : 'right';
7 |
8 | $('#new_user [title]').tooltip({trigger: 'focus', placement: position});
9 | $('#user_email').focus();
10 | });
11 | };
12 |
13 |
--------------------------------------------------------------------------------
/app/presenters/comment_presenter.rb:
--------------------------------------------------------------------------------
1 | class CommentPresenter < BasePresenter
2 | def initialize(comment)
3 | @comment = comment
4 | end
5 |
6 | def as_json(opts={})
7 | {
8 | :id => @comment.id,
9 | :guid => @comment.guid,
10 | :text => @comment.text,
11 | :author => @comment.author.as_api_response(:backbone),
12 | :created_at => @comment.created_at
13 | }
14 | end
15 | end
--------------------------------------------------------------------------------
/config/initializers/assets.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | Diaspora::Application.configure do
6 | config.serve_static_assets = AppConfig.environment.assets.serve?
7 | # config.static_cache_control = "public, max-age=3600" if AppConfig[:serve_static_assets].to_s == 'true'
8 | end
9 |
--------------------------------------------------------------------------------
/db/migrate/20110830170929_remove_pod_stats_table.rb:
--------------------------------------------------------------------------------
1 | class RemovePodStatsTable < ActiveRecord::Migration
2 | def self.up
3 | execute 'DROP TABLE pod_stats'
4 | end
5 |
6 | def self.down
7 | create_table :pod_stats do |t|
8 | t.integer :error_code
9 | t.integer :person_id
10 | t.text :error_message
11 | t.integer :pod_id
12 |
13 | t.timestamps
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/rtl/readme.txt:
--------------------------------------------------------------------------------
1 | RTL
2 | * Mirrors Blueprint, so it can be used with Right-to-Left languages.
3 |
4 | By Ran Yaniv Hartstein, ranh.co.il
5 |
6 | Usage
7 | ----------------------------------------------------------------
8 |
9 | 1) Add this line to your HTML:
10 |
11 |
--------------------------------------------------------------------------------
/app/mailers/notification_mailers/mentioned.rb:
--------------------------------------------------------------------------------
1 | module NotificationMailers
2 | class Mentioned < NotificationMailers::Base
3 | attr_accessor :post
4 | delegate :author_name, to: :post, prefix: true
5 |
6 | def set_headers(target_id)
7 | @post = Mention.find_by_id(target_id).post
8 |
9 | @headers[:subject] = I18n.t('notifier.mentioned.subject', :name => @sender.name)
10 | end
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/mailers/notification_mailers/reshared.rb:
--------------------------------------------------------------------------------
1 | module NotificationMailers
2 | class Reshared < NotificationMailers::Base
3 | attr_accessor :reshare
4 |
5 | delegate :root, to: :reshare, prefix: true
6 |
7 | def set_headers(reshare_id)
8 | @reshare = Reshare.find(reshare_id)
9 |
10 | @headers[:subject] = I18n.t('notifier.reshared.reshared', :name => @sender.name)
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/config/locales/devise/devise.ga.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | ga:
8 | devise:
9 | mailer:
10 | hello: "Haileo %{email}!"
11 | welcome: "Fáilte %{email}!"
12 | sessions:
13 | new:
14 | login: "Logáil isteach"
15 | password: "Pasfhocal"
--------------------------------------------------------------------------------
/db/migrate/20110328175936_add_hidden_to_post_visibilities.rb:
--------------------------------------------------------------------------------
1 | class AddHiddenToPostVisibilities < ActiveRecord::Migration
2 | def self.up
3 | add_column :post_visibilities, :hidden, :boolean, :default => false, :null => false
4 | add_index :post_visibilities, :hidden
5 | end
6 |
7 | def self.down
8 | remove_index :post_visibilities, :hidden
9 | remove_column :post_visibilities, :hidden
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20110518184453_add_token_auth_to_user.rb:
--------------------------------------------------------------------------------
1 | class AddTokenAuthToUser < ActiveRecord::Migration
2 | def self.up
3 | add_column(:users, :authentication_token, :string, :limit => 30)
4 | add_index(:users, :authentication_token, :unique => true)
5 | end
6 |
7 | def self.down
8 | remove_index(:users, :column => :authentication_token)
9 | remove_column(:users, :authentication_token)
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20111114173111_add_auto_follow_back_to_users.rb:
--------------------------------------------------------------------------------
1 | class AddAutoFollowBackToUsers < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :auto_follow_back, :boolean, :default => false
4 | add_column :users, :auto_follow_back_aspect_id, :integer
5 | end
6 |
7 | def self.down
8 | remove_column :users, :auto_follow_back
9 | remove_column :users, :auto_follow_back_aspect
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/app/workers/fetch_public_posts.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2012, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Workers
6 | class FetchPublicPosts < Base
7 | sidekiq_options queue: :http_service
8 |
9 | def perform(diaspora_id)
10 | Diaspora::Fetcher::Public.new.fetch!(diaspora_id)
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/config/locales/devise/devise.fil.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | fil:
8 | devise:
9 | mailer:
10 | hello: "Kumusta %{email}!"
11 | sessions:
12 | new:
13 | remember_me: "Tandaan Ako"
14 | errors:
15 | messages:
16 | not_found: "Walang Mahanap"
--------------------------------------------------------------------------------
/app/models/aspect_visibility.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | class AspectVisibility < ActiveRecord::Base
6 |
7 | belongs_to :aspect
8 | validates :aspect, :presence => true
9 |
10 | belongs_to :shareable, :polymorphic => true
11 | validates :shareable, :presence => true
12 |
13 | end
14 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/aspects.csv:
--------------------------------------------------------------------------------
1 | mongo_id,name,user_mongo_id,created_at,updated_at
2 | 4d2b6eb6cc8cb43cc2000008,generic,4d2b6eb6cc8cb43cc2000007,1294692022000,1294692033000
3 | 4d2b6eb7cc8cb43cc200000c,generic,4d2b6eb6cc8cb43cc200000b,1294692023000,1294692033000
4 | 4d2b6eb7cc8cb43cc2000015,generic,4d2b6eb7cc8cb43cc2000014,1294692023000,1294692034000
5 | 4d2b6eb7cc8cb43cc2000019,generic,4d2b6eb7cc8cb43cc2000018,1294692023000,1294692036000
6 |
--------------------------------------------------------------------------------
/app/helpers/publisher_helper.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module PublisherHelper
6 | def remote?
7 | params[:controller] != "tags"
8 | end
9 |
10 | def all_aspects_selected?(selected_aspects)
11 | @all_aspects_selected ||= all_aspects.size == selected_aspects.size
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/app/models/notifications/also_commented.rb:
--------------------------------------------------------------------------------
1 | class Notifications::AlsoCommented < Notification
2 | def mail_job
3 | Workers::Mail::AlsoCommented
4 | end
5 |
6 | def popup_translation_key
7 | 'notifications.also_commented'
8 | end
9 |
10 | def deleted_translation_key
11 | 'notifications.also_commented_deleted'
12 | end
13 |
14 | def linked_object
15 | Post.where(:id => self.target_id).first
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/models/notifications/comment_on_post.rb:
--------------------------------------------------------------------------------
1 | class Notifications::CommentOnPost < Notification
2 | def mail_job
3 | Workers::Mail::CommentOnPost
4 | end
5 |
6 | def popup_translation_key
7 | 'notifications.comment_on_post'
8 | end
9 |
10 | def deleted_translation_key
11 | 'notifications.also_commented_deleted'
12 | end
13 |
14 | def linked_object
15 | Post.where(:id => self.target_id).first
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/models/notifications/liked.rb:
--------------------------------------------------------------------------------
1 | class Notifications::Liked < Notification
2 | def mail_job
3 | Workers::Mail::Liked
4 | end
5 |
6 | def popup_translation_key
7 | 'notifications.liked'
8 | end
9 |
10 | def deleted_translation_key
11 | 'notifications.liked_post_deleted'
12 | end
13 |
14 | def linked_object
15 | post = self.target
16 | post = post.target if post.is_a? Like
17 | post
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/app/workers/resend_invitation.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 | module Workers
7 | class ResendInvitation < Base
8 | sidekiq_options queue: :mail
9 |
10 | def perform(invitation_id)
11 | inv = Invitation.find(invitation_id)
12 | inv.resend
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20110331004720_add_hidden_indicies.rb:
--------------------------------------------------------------------------------
1 | class AddHiddenIndicies < ActiveRecord::Migration
2 | def self.up
3 | remove_index :post_visibilities, :hidden
4 | add_index :post_visibilities, [:post_id, :hidden, :contact_id], :unique => true
5 | end
6 |
7 |
8 | def self.down
9 | remove_index :post_visibilities, :column => [:post_id, :hidden, :contact_id]
10 | add_index :post_visibilities, :hidden
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/spec/lib/stream/followed_tag_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 | require Rails.root.join('spec', 'shared_behaviors', 'stream')
3 |
4 | describe Stream::FollowedTag do
5 | before do
6 | @stream = Stream::FollowedTag.new(alice, :max_time => Time.now, :order => 'updated_at')
7 | @stream.stub(:tag_string).and_return("foo")
8 | end
9 |
10 | describe 'shared behaviors' do
11 | it_should_behave_like 'it is a stream'
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/helpers/o_embed.js:
--------------------------------------------------------------------------------
1 | (function(){
2 | app.helpers.oEmbed = {
3 | html : function (o_embed_cache) {
4 | if (!o_embed_cache) { return "" }
5 |
6 | var data = o_embed_cache.data;
7 | if (data.type == "photo") {
8 | return '
'
9 | } else {
10 | return data.html || ""
11 | }
12 | }
13 | }
14 | })();
--------------------------------------------------------------------------------
/db/migrate/20110421120744_downcase_usernames.rb:
--------------------------------------------------------------------------------
1 | class DowncaseUsernames < ActiveRecord::Migration
2 | class User < ActiveRecord::Base; end
3 |
4 | def self.up
5 | execute < 0
6 | UPDATE users
7 | SET users.username = LOWER(users.username)
8 | WHERE users.username != LOWER(users.username)
9 | SQL
10 | end
11 |
12 | def self.down
13 | raise ActiveRecord::IrreversibleMigration.new
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/FederationProcfile:
--------------------------------------------------------------------------------
1 | web1: env RAILS_ENV=integration1 bundle exec rails s -p 3001
2 | worker1: env RAILS_ENV=integration1 VVERBOSE=1 QUEUE=* bundle exec rake resque:work
3 | redis1: env RAILS_ENV=integration1 redis-server ./redis-integration1.conf
4 | web2: env RAILS_ENV=integration2 bundle exec rails s -p 3002
5 | worker2: env RAILS_ENV=integration2 VVERBOSE=1 QUEUE=* bundle exec rake resque:work
6 | redis2: env RAILS_ENV=integration2 redis-server ./redis-integration2.conf
--------------------------------------------------------------------------------
/app/controllers/statistics_controller.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | class StatisticsController < ApplicationController
6 |
7 | respond_to :json
8 |
9 | def statistics
10 | respond_to do |format|
11 | format.json { render :json => StatisticsPresenter.new }
12 | end
13 | end
14 |
15 | end
16 |
--------------------------------------------------------------------------------
/app/models/location.rb:
--------------------------------------------------------------------------------
1 | class Location < ActiveRecord::Base
2 | before_validation :split_coords, on: :create
3 | validates_presence_of :lat, :lng
4 |
5 | attr_accessor :coordinates
6 |
7 | include Diaspora::Federated::Base
8 | xml_attr :address
9 | xml_attr :lat
10 | xml_attr :lng
11 |
12 | belongs_to :status_message
13 |
14 | def split_coords
15 | self.lat, self.lng = coordinates.split(',') if coordinates.present?
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/db/migrate/20131213171804_create_simple_captcha_data.rb:
--------------------------------------------------------------------------------
1 | class CreateSimpleCaptchaData < ActiveRecord::Migration
2 | def self.up
3 | create_table :simple_captcha_data do |t|
4 | t.string :key, :limit => 40
5 | t.string :value, :limit => 6
6 | t.timestamps
7 | end
8 |
9 | add_index :simple_captcha_data, :key, :name => "idx_key"
10 | end
11 |
12 | def self.down
13 | drop_table :simple_captcha_data
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/diaspora.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Diaspora
6 | require 'diaspora/exceptions'
7 | require 'diaspora/parser'
8 | require 'diaspora/fetcher'
9 | require 'diaspora/markdownify'
10 | require 'diaspora/mentionable'
11 | require 'diaspora/exporter'
12 | require 'diaspora/federated'
13 | end
14 |
--------------------------------------------------------------------------------
/lib/diaspora/federated.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Diaspora
6 | module Federated
7 | require 'diaspora/federated/request'
8 | require 'diaspora/federated/retraction'
9 | require 'diaspora/federated/signed_retraction'
10 | require 'diaspora/federated/relayable_retraction'
11 | end
12 | end
--------------------------------------------------------------------------------
/script/install/remote_var_reader:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # to be included by install.sh
3 |
4 | # read a variable defined in the remote repository
5 | # usage:
6 | # read_remote_var "name_in_remote_script" "name_we_want_locally"
7 | read_var_remote() {
8 | _remote_name=$1
9 | _local_name=$2
10 | _remote_source="$D_REMOTE_BASE_URL$D_REMOTE_ENV_PATH"
11 |
12 | eval "$_local_name=\"$(include_remote $_remote_source; echo ${!_remote_name})\""
13 | }
14 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models/reshare.js:
--------------------------------------------------------------------------------
1 | app.models.Reshare = app.models.Post.extend({
2 | urlRoot : "/reshares",
3 |
4 | rootPost : function(){
5 | this._rootPost = this._rootPost || new app.models.Post(this.get("root"));
6 | return this._rootPost
7 | },
8 |
9 | reshare : function(){
10 | return this.rootPost().reshare()
11 | },
12 |
13 | reshareAuthor : function(){
14 | return this.rootPost().reshareAuthor()
15 | }
16 | });
17 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/new_styles/_variables.scss:
--------------------------------------------------------------------------------
1 | $container-width : 1170;
2 |
3 | $margin-between-columns : 30;
4 | $column-width : 295 - $margin-between-columns;
5 | $raw-two-column-width : ($column-width * 2) + ($margin-between-columns * 2) ;
6 | $two-column-width : $raw-two-column-width - 30; //simply subtract an arbitrary ammount :)
7 |
8 | $margin-between-rows : 20;
9 |
10 | $row-height : $column-width;
11 | $two-row-height : $raw-two-column-width - 20;
12 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/readme.txt:
--------------------------------------------------------------------------------
1 | Fancy Type
2 |
3 | * Gives you classes to use if you'd like some
4 | extra fancy typography.
5 |
6 | Credits and instructions are specified above each class
7 | in the fancy-type.css file in this directory.
8 |
9 |
10 | Usage
11 | ----------------------------------------------------------------
12 |
13 | 1) Add this plugin to lib/settings.yml.
14 | See compress.rb for instructions.
15 |
--------------------------------------------------------------------------------
/app/views/admins/_admin_bar.haml:
--------------------------------------------------------------------------------
1 | #admin_nav
2 | %h2
3 | = t('.pages')
4 | %ul
5 | %li= link_to t('.user_search'), user_search_path
6 | %li= link_to t('.weekly_user_stats'), weekly_user_stats_path
7 | %li= link_to t('.pod_stats'), pod_stats_path
8 | %li= link_to t('.post_report'), post_report_index_path
9 | %li= link_to t('.correlations'), correlations_path
10 | %li= link_to t('.sidekiq_monitor'), sidekiq_path
11 |
12 |
--------------------------------------------------------------------------------
/app/views/aspects/_no_contacts_message.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | #no_contacts.empty_message
6 | = t('.you_should_add_some_more_contacts')
7 | %br
8 | %br
9 | = t('.try_adding_some_more_contacts')
10 | != t('.or_spotlight', :link => link_to(t(".community_spotlight") , community_spotlight_path))
11 |
12 |
--------------------------------------------------------------------------------
/db/migrate/20110120182100_create_data_points.rb:
--------------------------------------------------------------------------------
1 | class CreateDataPoints < ActiveRecord::Migration
2 | def self.up
3 | create_table :data_points do |t|
4 | t.string :key
5 | t.integer :value
6 | t.integer :statistic_id
7 |
8 | t.timestamps
9 | end
10 | add_index :data_points, :statistic_id
11 | end
12 |
13 | def self.down
14 | remove_index :data_points, :statistic_id
15 | drop_table :data_points
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/script/ci/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 |
4 | # Create a database.yml for the right database
5 | echo "Setting up database.yml for $DB"
6 | cp config/database.yml.example config/database.yml
7 | if [ "$DB" = "postgres" ]; then
8 | sed -i 's/*common/*postgres_travis/' config/database.yml
9 | fi
10 |
11 | command="bundle exec rake --trace ci:travis:${BUILD_TYPE}"
12 |
13 | exec xvfb-run --auto-servernum --server-num=1 --server-args="-screen 0 1280x1024x8" $command
14 |
--------------------------------------------------------------------------------
/spec/lib/postzord/dispatcher/private_spec.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | require 'spec_helper'
6 |
7 | describe Postzord::Dispatcher::Private do
8 |
9 | describe '#salmon' do
10 | end
11 |
12 | describe '#receive_url_for' do
13 | end
14 |
15 | describe '#queue_remote_delivery_job' do
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/vendor/interim-bootstrap.css.scss:
--------------------------------------------------------------------------------
1 | // Load the necessary styles from the bootstrap-sass partials to keep this file
2 | // up to date with the version of Bootstrap we're using.
3 | @import "bootstrap/mixins";
4 | @import "bootstrap/variables";
5 | @import "bootstrap/tooltip";
6 | @import "bootstrap/popovers";
7 | @import "bootstrap/component-animations";
8 |
9 | /* hacks */
10 | .popover h3 {
11 | margin-bottom: 0;
12 | font-weight: bold;
13 | }
14 |
--------------------------------------------------------------------------------
/app/views/people/_person.mobile.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | .stream_element{:id => person.id}
6 |
7 | .content
8 | =person_image_link(person)
9 | %span.from
10 | =person_link(person)
11 |
12 | .info
13 | = link_to person.diaspora_handle, local_or_remote_person_path(person), :class => 'black'
14 |
--------------------------------------------------------------------------------
/db/migrate/20120114191018_remove_photos_count_from_post.rb:
--------------------------------------------------------------------------------
1 | class RemovePhotosCountFromPost < ActiveRecord::Migration
2 | def self.up
3 | remove_column :posts, :photos_count
4 | end
5 |
6 | def self.down
7 | add_column :posts, :photos_count, :integer, :default => 0
8 | execute < 0
9 | UPDATE posts
10 | SET photos_count = (SELECT COUNT(*) FROM photos WHERE photos.status_message_guid = posts.guid)
11 | SQL
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/lib/stream/activity.rb:
--------------------------------------------------------------------------------
1 | class Stream::Activity < Stream::Base
2 | def link(opts={})
3 | Rails.application.routes.url_helpers.activity_streams_path(opts)
4 | end
5 |
6 | def order
7 | "interacted_at"
8 | end
9 |
10 | def title
11 | I18n.translate("streams.activity.title")
12 | end
13 |
14 | # @return [ActiveRecord::Association] AR association of posts
15 | def posts
16 | @posts ||= EvilQuery::Participation.new(user).posts
17 | end
18 | end
--------------------------------------------------------------------------------
/spec/javascripts/app/models/status_message_spec.js:
--------------------------------------------------------------------------------
1 | describe("app.models.StatusMessage", function(){
2 | describe("#url", function(){
3 | it("is /status_messages when its new", function(){
4 | var post = new app.models.StatusMessage()
5 | expect(post.url()).toBe("/status_messages")
6 | })
7 |
8 | it("is /posts/id when it has an id", function(){
9 | expect(new app.models.StatusMessage({id : 5}).url()).toBe("/posts/5")
10 | })
11 | })
12 | })
--------------------------------------------------------------------------------
/app/models/participation.rb:
--------------------------------------------------------------------------------
1 | class Participation < Federated::Relayable
2 | class Generator < Federated::Generator
3 | def self.federated_class
4 | Participation
5 | end
6 |
7 | def relayable_options
8 | {:target => @target}
9 | end
10 | end
11 |
12 | # NOTE API V1 to be extracted
13 | acts_as_api
14 | api_accessible :backbone do |t|
15 | t.add :id
16 | t.add :guid
17 | t.add :author
18 | t.add :created_at
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/config/initializers/ignore_ssl_in_development.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | if AppConfig.environment.certificate_authorities.blank? && (Rails.env == "development")
6 | module OpenSSL
7 | module SSL
8 | remove_const :VERIFY_PEER
9 | end
10 | end
11 | OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
12 | end
13 |
14 |
15 |
--------------------------------------------------------------------------------
/db/migrate/20110209204702_create_mentions.rb:
--------------------------------------------------------------------------------
1 | class CreateMentions < ActiveRecord::Migration
2 | def self.up
3 | create_table :mentions do |t|
4 | t.integer :post_id, :null => false
5 | t.integer :person_id, :null => false
6 | end
7 | add_index :mentions, :post_id
8 | add_index :mentions, :person_id
9 | add_index :mentions, [:person_id, :post_id], :unique => true
10 | end
11 |
12 | def self.down
13 | drop_table :mentions
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20110514182918_update_devise_invitable.rb:
--------------------------------------------------------------------------------
1 | class UpdateDeviseInvitable < ActiveRecord::Migration
2 | def self.up
3 | add_column(:users, :invitation_limit, :integer)
4 | add_column(:users, :invited_by_id, :integer)
5 | add_column(:users, :invited_by_type, :string)
6 | end
7 |
8 | def self.down
9 | remove_column(:users, :invited_by_type)
10 | remove_column(:users, :invited_by_id)
11 | remove_column(:users, :invitation_limit)
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/spec/models/location_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Location do
4 | describe 'before validation' do
5 | it 'should create new location when it has coordinates' do
6 | location = Location.new(coordinates:'1,2')
7 | location.save.should be true
8 | end
9 |
10 | it 'should not create new location when it does not have coordinates' do
11 | location = Location.new()
12 | location.save.should be false
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/app/views/shared/_links.haml:
--------------------------------------------------------------------------------
1 | %li= link_to 'diasporafoundation.org', "https://diasporafoundation.org"
2 | %li= link_to 'wiki', "https://wiki.diasporafoundation.org"
3 | %li= link_to t('layouts.application.whats_new'), changelog_url
4 | %li= link_to(t('layouts.header.code') + " " + pod_version, "#{root_path.chomp('/')}/source.tar.gz", {:title => t('layouts.application.source_package')}) unless request.url.match(/joindiaspora.com/)
5 | %li= link_to(t('layouts.application.toggle'), toggle_mobile_path)
6 |
--------------------------------------------------------------------------------
/db/migrate/20111018010003_add_back_indexes.rb:
--------------------------------------------------------------------------------
1 | class AddBackIndexes < ActiveRecord::Migration
2 | def self.up
3 | # reduce index size
4 |
5 | add_index :photos, :status_message_guid
6 | add_index :comments, [:commentable_id, :commentable_type]
7 | end
8 |
9 | def self.down
10 | remove_index :comments, :column => [:commentable_id, :commentable_type]
11 | remove_index :photos, :column => :status_message_guid
12 |
13 | # reduce index size
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/features/desktop/logs_in_and_out.feature:
--------------------------------------------------------------------------------
1 | @javascript
2 | Feature: user authentication
3 |
4 | Scenario: user logs in
5 | Given a user with username "ohai" and password "secret"
6 | When I sign in manually as "ohai" with password "secret"
7 | Then I should be on the stream page
8 |
9 | Scenario: user logs out
10 | Given I am signed in
11 | And I click on my name in the header
12 | And I follow "Log out"
13 | Then I should be on the new user session page
14 |
--------------------------------------------------------------------------------
/app/workers/delete_account.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 | module Workers
7 | class DeleteAccount < Base
8 | sidekiq_options queue: :delete_account
9 |
10 | def perform(account_deletion_id)
11 | account_deletion = AccountDeletion.find(account_deletion_id)
12 | account_deletion.perform!
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/app/workers/mail/invite_email.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Workers
6 | module Mail
7 | class InviteEmail < Base
8 | sidekiq_options queue: :mail
9 |
10 | def perform(emails, inviter_id, options={})
11 | EmailInviter.new(emails, User.find(inviter_id), options).send!
12 | end
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/sidekiq_middlewares.rb:
--------------------------------------------------------------------------------
1 | module SidekiqMiddlewares
2 | class CleanAndShortBacktraces
3 | def call(worker, item, queue)
4 | yield
5 | rescue Exception
6 | backtrace = Rails.backtrace_cleaner.clean($!.backtrace)
7 | backtrace.reject! { |line| line =~ /lib\/sidekiq_middlewares.rb/ }
8 | limit = AppConfig.environment.sidekiq.backtrace.to_i
9 | backtrace = [] if limit == 0
10 | raise $!, $!.message, backtrace[0..limit]
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/spec/fixtures/msg.xml:
--------------------------------------------------------------------------------
1 |
2 | jimmy's 1 whales
3 | <_id>4c3b7cf9312f91367f000004
4 |
5 | bob1@aol.com
6 | http://www.example.com/
7 | <_id>4c3b7c64312f913664000005
8 | 0264242496D4B585297BF236BEEFE6DEBE3407AA
9 |
10 | Bob
11 | Smith
12 |
13 |
14 |
--------------------------------------------------------------------------------
/config/initializers/faraday.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 | options = {
5 | timeout: 25,
6 | ssl: {
7 | ca_file: AppConfig.environment.certificate_authorities.get
8 | }
9 | }
10 |
11 | Faraday.default_connection = Faraday::Connection.new(options) do |b|
12 | b.use FaradayMiddleware::FollowRedirects
13 | b.adapter Faraday.default_adapter
14 | end
15 |
--------------------------------------------------------------------------------
/config/locales/diaspora/af.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2013, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 |
7 | af:
8 | _help: "Hulp"
9 | admins:
10 | stats:
11 | daily: "Daglike"
12 | month: "Maand"
13 | week: "Week"
14 | aspects:
15 | index:
16 | help:
17 | tutorial_link_text: "Tutoriale"
18 | people:
19 | profile_sidebar:
20 | photos: "Fotos"
--------------------------------------------------------------------------------
/db/migrate/20110705003445_counter_cache_on_post_likes.rb:
--------------------------------------------------------------------------------
1 | class CounterCacheOnPostLikes < ActiveRecord::Migration
2 | class Post < ActiveRecord::Base; end
3 | def self.up
4 | add_column :posts, :likes_count, :integer, :default => 0
5 | execute < 0
6 | UPDATE posts
7 | SET posts.likes_count = (SELECT COUNT(*) FROM likes WHERE likes.post_id = posts.id)
8 | SQL
9 | end
10 |
11 | def self.down
12 | remove_column :posts, :likes_count
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/db/migrate/20110924112840_create_o_embed_caches.rb:
--------------------------------------------------------------------------------
1 | class CreateOEmbedCaches < ActiveRecord::Migration
2 | def self.up
3 | create_table :o_embed_caches do |t|
4 | t.string :url, :limit => 1024, :null => false, :unique => true
5 | t.text :data, :null => false
6 | end
7 | add_index :o_embed_caches, :url, :length => { :url => 255 }
8 | end
9 |
10 | def self.down
11 | remove_index :o_embed_caches, :column => :url
12 | drop_table :o_embed_caches
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/spec/models/pod_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Pod do
4 | describe '.find_or_create_by_url' do
5 | it 'takes a url, and makes one by host' do
6 | pod = Pod.find_or_create_by_url('https://joindiaspora.com/maxwell')
7 | pod.host.should == 'joindiaspora.com'
8 | end
9 |
10 | it 'sets ssl boolean(side-effect)' do
11 | pod = Pod.find_or_create_by_url('https://joindiaspora.com/maxwell')
12 | pod.ssl.should be_true
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/models.js:
--------------------------------------------------------------------------------
1 |
2 | // Mixin to provide date formatting and "createdAt" method
3 | // other attributes can be accessed by calling this.timeOf("timestamp-field")
4 | // Requires:
5 | // this = model with "created_at" attribute
6 | app.models.formatDateMixin = {
7 |
8 | timeOf: function(field) {
9 | return app.helpers.dateFormatter.parse(this.get(field)) / 1000;
10 | },
11 |
12 | createdAt: function() {
13 | return this.timeOf("created_at");
14 | }
15 |
16 | };
17 |
--------------------------------------------------------------------------------
/app/views/community_spotlight/_user.html.haml:
--------------------------------------------------------------------------------
1 | .user_card
2 | = person_image_link(person, :size => :thumb_large)
3 | %h4
4 | = person.name
5 |
6 | .tags
7 | - person.tags.each do |tag|
8 | = link_to "##{tag}", tag_path(:name => tag.name)
9 |
10 | .add_user_to_aspect
11 | = render :partial => 'people/relationship_action',
12 | :locals => { :person => person, :contact => current_user.contact_for(person),
13 | :current_user => current_user }
14 |
--------------------------------------------------------------------------------
/app/workers/mail/mentioned.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 | module Workers
7 | module Mail
8 | class Mentioned < Base
9 | sidekiq_options queue: :mail
10 |
11 | def perform(recipient_id, actor_id, target_id)
12 | Notifier.mentioned( recipient_id, actor_id, target_id).deliver
13 | end
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/app/models/block.rb:
--------------------------------------------------------------------------------
1 | class Block < ActiveRecord::Base
2 | belongs_to :person
3 | belongs_to :user
4 |
5 | delegate :name, to: :person, prefix: true
6 |
7 | validates :user_id, :presence => true
8 | validates :person_id, :presence => true, :uniqueness => { :scope => :user_id }
9 |
10 | validate :not_blocking_yourself
11 |
12 | def not_blocking_yourself
13 | if self.user.person.id == self.person_id
14 | errors[:person_id] << "stop blocking yourself!"
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/views/devise/passwords/new.haml:
--------------------------------------------------------------------------------
1 | .span-12.prepend-6.last
2 | .floating
3 | %h2
4 | = t('.forgot_password')
5 | - unless devise_error_messages!.empty?
6 | %i= t('.no_account')
7 |
8 | = form_for(resource, :as => resource_name, :url => password_path(resource_name)) do |f|
9 | %p
10 | = f.label :email, t('email')
11 | = f.text_field :email
12 | %p
13 | = f.submit t('.send_password_instructions')
14 | = render :partial => "devise/shared/links"
15 |
--------------------------------------------------------------------------------
/app/views/photos/edit.html.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | %h2= "#{t('.editing')} #{@photo.processed_image}"
6 |
7 | %div{:id => @photo.id}
8 | #show_photo
9 | = image_tag @photo.url(:scaled_full)
10 |
11 | = form_for @photo do |photo|
12 | = photo.label :text
13 | = photo.text_field :text, :value => @photo.text
14 | = photo.submit
15 |
16 |
--------------------------------------------------------------------------------
/app/views/tags/show.mobile.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | %h1
6 | = @stream.display_tag_name
7 |
8 | #main_stream.stream
9 | = render 'shared/stream', :posts => @stream.stream_posts
10 | -if @stream.stream_posts.length > 0
11 | #pagination
12 | %a.more-link.paginate{:href => next_page_path}
13 | %h1
14 | = t("more")
15 |
16 |
--------------------------------------------------------------------------------
/app/workers/post_to_service.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 | #
5 | module Workers
6 | class PostToService < Base
7 | sidekiq_options queue: :http_service
8 |
9 | def perform(service_id, post_id, url)
10 | service = Service.find_by_id(service_id)
11 | post = Post.find_by_id(post_id)
12 | service.post(post, url)
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/app/workers/publish_to_hub.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 | module Workers
6 | class PublishToHub < Base
7 | sidekiq_options queue: :http_service
8 |
9 | def perform(sender_public_url)
10 | atom_url = sender_public_url + '.atom'
11 | Pubsubhubbub.new(AppConfig.environment.pubsub_server.get).publish(atom_url)
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/spec/fixtures/data_conversion/post_visibilities.csv:
--------------------------------------------------------------------------------
1 | aspect_mongo_id,post_mongo_id
2 | 4d2b6eb6cc8cb43cc2000008,4d2b6ebecc8cb43cc2000027
3 | 4d2b6eb6cc8cb43cc2000008,4d2b6ebfcc8cb43cc200002d
4 | 4d2b6eb7cc8cb43cc200000c,4d2b6ebecc8cb43cc2000027
5 | 4d2b6eb7cc8cb43cc200000c,4d2b6ebfcc8cb43cc200002d
6 | 4d2b6eb7cc8cb43cc2000015,4d2b6ebecc8cb43cc2000029
7 | 4d2b6eb7cc8cb43cc2000015,4d2b6ec1cc8cb43cc200002f
8 | 4d2b6eb7cc8cb43cc2000019,4d2b6ec2cc8cb43cc2000036
9 | 4d2b6eb7cc8cb43cc2000019,4d2b6ec4cc8cb43cc2000037
10 |
--------------------------------------------------------------------------------
/app/views/services/index.html.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | - content_for :page_title do
6 | = t('.edit_services')
7 |
8 | #section_header
9 | %h2
10 | = t('settings')
11 | = render 'shared/settings_nav'
12 |
13 | .span-14.prepend-5.last
14 | = render 'shared/add_remove_services'
15 |
16 | .span-5
17 | %p
18 | = t('.services_explanation')
19 |
--------------------------------------------------------------------------------
/spec/javascripts/app/app_spec.js:
--------------------------------------------------------------------------------
1 | describe("app", function() {
2 | describe("user", function() {
3 | it("returns false if the current_user isn't set", function() {
4 | app._user = undefined;
5 | expect(app.user()).toEqual(false);
6 | });
7 |
8 | it("sets the user if given one and returns the current user", function() {
9 | expect(app.user()).toBeFalsy()
10 | app.user({name: "alice"});
11 | expect(app.user().get("name")).toEqual("alice");
12 | });
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/app/views/errors/not_public.haml:
--------------------------------------------------------------------------------
1 | -# Copyright (c) 2010-2012, Diaspora Inc. This file is
2 | -# licensed under the Affero General Public License version 3 or later. See
3 | -# the COPYRIGHT file.
4 |
5 | - content_for :head do
6 | = stylesheet_link_tag :error_pages, :media => 'all'
7 |
8 | #big-number.transparent
9 | 404
10 |
11 | #content
12 | = t('error_messages.post_not_public_or_not_exist')
13 | %br
14 | = t('error_messages.login_try_again', :login_link => new_user_session_path).html_safe
15 |
--------------------------------------------------------------------------------
/app/views/notifier/_notifier_css.haml:
--------------------------------------------------------------------------------
1 | :css
2 | body{
3 | width:600px;
4 | font-family: 'Helvetica',sans-serif;
5 | }
6 | #container{
7 | }
8 | header{
9 | margin-bottom: 25px;
10 | }
11 | p{
12 | padding:5px;
13 | }
14 | p.small{
15 | font-size:smaller;
16 | color:#999;
17 | font-style:italic;
18 | }
19 | a{
20 | color:#107FC9;
21 | font-weight:bold;
22 | }
23 | a:hover{
24 | color: #22AAE0;
25 | }
26 | a:active{
27 | color: #005D9C;
28 | }
29 |
--------------------------------------------------------------------------------
/app/workers/mail/private_message.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 | module Workers
7 | module Mail
8 | class PrivateMessage < Base
9 | sidekiq_options queue: :mail
10 |
11 | def perform(recipient_id, actor_id, target_id)
12 | Notifier.private_message( recipient_id, actor_id, target_id).deliver
13 | end
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/app/workers/mail/started_sharing.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 |
5 |
6 | module Workers
7 | module Mail
8 | class StartedSharing < Base
9 | sidekiq_options queue: :mail
10 |
11 | def perform(recipient_id, sender_id, target_id)
12 | Notifier.started_sharing(recipient_id, sender_id).deliver
13 | end
14 | end
15 | end
16 | end
17 |
18 |
--------------------------------------------------------------------------------
/db/migrate/20110228220810_rename_post_to_parent_and_creator_to_author.rb:
--------------------------------------------------------------------------------
1 | class RenamePostToParentAndCreatorToAuthor < ActiveRecord::Migration
2 | def self.up
3 | rename_column :comments, :creator_signature, :author_signature
4 | rename_column :comments, :post_creator_signature, :parent_author_signature
5 | end
6 |
7 | def self.down
8 | rename_column :comments, :author_signature, :creator_signature
9 | rename_column :comments, :parent_author_signature, :post_creator_signature
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20111021184041_add_community_spotlight_in_stream.rb:
--------------------------------------------------------------------------------
1 | class AddCommunitySpotlightInStream < ActiveRecord::Migration
2 | def self.up
3 | add_column :users, :show_community_spotlight_in_stream, :boolean, :null => false, :default => true
4 |
5 | ActiveRecord::Base.connection.execute < 'stream_photo'
6 |
7 | %h1
8 | = post.pending
9 |
10 | %p.photo_description
11 | = post.text
12 |
13 | = link_to t('.view_all', :name => post.author_name), person_photos_path(post.author), :class => "small_text"
14 |
15 |
--------------------------------------------------------------------------------
/app/workers/delete_post_from_service.rb:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2010-2011, Diaspora Inc. This file is
2 | # licensed under the Affero General Public License version 3 or later. See
3 | # the COPYRIGHT file.
4 | #
5 | module Workers
6 | class DeletePostFromService < Base
7 | sidekiq_options queue: :http_service
8 |
9 | def perform(service_id, post_id)
10 | service = Service.find_by_id(service_id)
11 | post = Post.find_by_id(post_id)
12 | service.delete_post(post)
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20110911213207_counter_cache_on_post_comments.rb:
--------------------------------------------------------------------------------
1 | class CounterCacheOnPostComments < ActiveRecord::Migration
2 | class Post < ActiveRecord::Base; end
3 |
4 | def self.up
5 | add_column :posts, :comments_count, :integer, :default => 0
6 | execute < 0
7 | UPDATE posts
8 | SET comments_count = (SELECT COUNT(*) FROM comments WHERE comments.post_id = posts.id)
9 | SQL
10 | end
11 |
12 | def self.down
13 | remove_column :posts, :comments_count
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/features/step_definitions/stream_steps.rb:
--------------------------------------------------------------------------------
1 | Then /^I like the post "([^"]*)"$/ do |post_text|
2 | like_post(post_text)
3 | end
4 |
5 | Then /^"([^"]*)" should be post (\d+)$/ do |post_text, position|
6 | stream_element_numbers_content(position).text.should == post_text
7 | end
8 |
9 | When /^I toggle nsfw posts$/ do
10 | find(".toggle_nsfw_state", match: :first).click
11 | end
12 |
13 | Then /^I should have (\d+) nsfw posts$/ do |num_posts|
14 | page.should have_css(".nsfw-shield", count: num_posts.to_i)
15 | end
16 |
--------------------------------------------------------------------------------
/lib/diaspora/guid.rb:
--------------------------------------------------------------------------------
1 | #implicitly requires roxml
2 |
3 | module Diaspora::Guid
4 | # Creates a before_create callback which calls #set_guid and makes the guid serialize in to_xml
5 | def self.included(model)
6 | model.class_eval do
7 | before_create :set_guid
8 | xml_attr :guid
9 | validates :guid, :uniqueness => true
10 |
11 | end
12 | end
13 |
14 | # @return [String] The model's guid.
15 | def set_guid
16 | self.guid = SecureRandom.hex(8) if self.guid.blank?
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/config/initializers/silence_assets.rb:
--------------------------------------------------------------------------------
1 | if Rails.env.development?
2 |
3 | Rails.application.assets.logger = Logger.new('/dev/null')
4 |
5 | Rails::Rack::Logger.class_eval do
6 | def call_with_quiet_assets(env)
7 | previous_level = Rails.logger.level
8 | Rails.logger.level = Logger::ERROR if env['PATH_INFO'] =~ %r{^/assets/}
9 | call_without_quiet_assets(env)
10 | ensure
11 | Rails.logger.level = previous_level
12 | end
13 | alias_method_chain :call, :quiet_assets
14 | end
15 |
16 | end
--------------------------------------------------------------------------------