├── 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 |
    3 | 4 |
    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 |
    2 |
    3 |
    4 |
    5 |
    6 |
    7 |
    8 |
    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 |
    3 | 9 |
    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 --------------------------------------------------------------------------------