Merge branch 'master' of github.com:diaspora/diaspora

Conflicts:
	config/locales/diaspora/en.yml
This commit is contained in:
maxwell 2010-11-22 16:40:01 -08:00
commit 1adf93ace1
41 changed files with 3752 additions and 146 deletions

View file

@ -3,6 +3,7 @@
# the COPYRIGHT file.
class CommentsController < ApplicationController
include ApplicationHelper
before_filter :authenticate_user!
respond_to :html
@ -15,7 +16,14 @@ class CommentsController < ApplicationController
@comment = current_user.comment(text, :on => target) if target
if @comment
Rails.logger.info("event=comment_create user=#{current_user.inspect} status=success comment=#{@comment.inspect}")
render :nothing => true, :status => 201
respond_to do |format|
format.js{ render :json => { :post_id => @comment.post_id,
:comment_id => @comment.id,
:html => render_to_string(:partial => type_partial(@comment), :locals => {:post => @comment, :current_user => current_user})},
:status => 201 }
format.html{ render :nothing => true, :status => 201 }
end
else
render :nothing => true, :status => 401
end

View file

@ -26,9 +26,18 @@ class StatusMessagesController < ApplicationController
for photo in photos
current_user.dispatch_post(photo, :to => params[:status_message][:to])
end
respond_to do |format|
format.js{ render :json => { :post_id => @status_message.id,
:html => render_to_string(:partial => 'shared/stream_element', :locals => {:post => @status_message, :current_user => current_user})},
:status => 201 }
format.html{ respond_with @status_message }
end
else
respond_to do |format|
format.js{ render :status => 401 }
end
end
render :nothing => true
end

View file

@ -4,6 +4,6 @@
module DashboardsHelper
def title_for_page
I18n.t('dashboards.helper.home')
I18n.t('_home')
end
end

View file

@ -23,13 +23,14 @@ module SocketsHelper
Rails.logger.error("web socket view rendering failed for object #{object.inspect}.")
raise e
end
action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}
action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}
action_hash.merge! opts
if object.is_a? Photo
action_hash[:photo_hash] = object.thumb_hash
end
if object.is_a? Comment
action_hash[:comment_id] = object.id
action_hash[:my_post?] = (object.post.person.owner.id == uid)
action_hash[:notification] = notification(object)
end

View file

@ -382,8 +382,8 @@ class User
def seed_aspects
self.aspects.create(:name => "Family")
self.aspects.create(:name => "Work")
self.aspects.create(:name => I18n.t('aspects.seed.family'))
self.aspects.create(:name => I18n.t('aspects.seed.work'))
end
def as_json(opts={})

View file

@ -4,11 +4,11 @@
.span-24.last
%h2{:style => "position:relative;"}
Home
= t('_home')
.right
%span.description
= current_user.diaspora_handle
= info_text("This is your diaspora handle. Like an email address, you can give this to people to reach you.")
= info_text(t('.handle_explanation'))
.span-15.last
= render 'aspects/no_contacts_message', :aspect => @aspect, :contact_count => @contacts.count

View file

@ -1,13 +1,9 @@
-# Copyright (c) 2010, Diaspora Inc. This file is
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
%div{:data => {:role => 'content'}}
%div{:data => {:role => 'fieldcontain'}}
=render 'shared/publisher', :aspect => @aspect
= render 'shared/stream', :posts => @posts
/%div{:data => {:role => 'footer', :id => 'footer-toolbar', :position => 'fixed'}}
/ %div{:data => {:role => 'navbar'}}
/ %ul
/ %li{:class => 'ui-btn-active'}
/ = link_to 'posts', '#'
/ %li
/ =link_to 'contacts', '#'

View file

@ -2,7 +2,7 @@
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
%li.comment
%li.comment{:data=>{:guid=>post.id}}
= person_image_link(post.person)
.content
.from

View file

@ -6,5 +6,5 @@
%br/
= f.text_field :email
%p
= f.submit "Resend confirmation instructions"
= f.submit t('.resend_confirmation')
= render :partial => "devise/shared/links"

View file

@ -11,5 +11,5 @@
%br/
= f.password_field :password_confirmation
%p
= f.submit "Change my password"
= f.submit t('.change_password')
= render :partial => "devise/shared/links"

View file

@ -8,8 +8,8 @@
= link_to t('.forgot_your_password'), new_password_path(resource_name)
%br/
- if devise_mapping.confirmable? && controller_name != 'confirmations'
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
= link_to t('.receive_confirmation'), new_confirmation_path(resource_name)
%br/
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
= link_to t('.receive_unlock'), new_unlock_path(resource_name)
%br/

View file

@ -6,5 +6,5 @@
%br/
= f.text_field :email
%p
= f.submit "Resend unlock instructions"
= f.submit t('.resend_unlock')
= render :partial => "devise/shared/links"

View file

@ -13,27 +13,20 @@
#why.span-22.prepend-1.last
.span-7
%h2
Choice
= t('.choice')
%p
Diaspora allows you to sort your connections into groups called Aspects.
Unique to Diaspora, Aspects ensure your photos, stories and jokes are shared
with only the people you want them to be.
= t('.choice_explanation')
.span-7
%h2
Ownership
= t('.ownership')
%p
You own your pictures, and you shouldnt have to give that up just in order
to share them. You maintain ownership of everything you share on Diaspora,
giving you full control over how it is distributed.
= t('.ownership_explanation')
.span-7
%h2
Simplicity
= t('.simplicity')
%p
Diaspora makes sharing clean and easy this goes doubly so for privacy.
Innherently private, Diaspora doesnt have pages of settings and options to
wade through to keep your profile secure and to your liking.
= t('.simplicity_explanation')
.span-22.prepend-1.last
@ -47,12 +40,12 @@
#info_links.span-22.prepend-1.last
.span-10
%h3
Learn about how to host your own Diaspora server
= t('.learn_about_host')
.span-11
%h3
Learn more about Diaspora as an open source project.
= t('.learn_about_open_source')
.span-24.last{:style=>"text-align:center;"}

View file

@ -10,5 +10,5 @@
= f.password_field :password_confirmation
= f.hidden_field :invitation_token
= f.submit 'sign_up'
= f.submit t('.sign_up')
= render :partial => "devise/shared/links"

View file

@ -33,13 +33,13 @@
#aspect_nav
%ul
%li{:class => ("selected" if @aspect == :all)}
= link_to ((@request_count == 0)? "Home" : "Home (#{@request_count})"), root_path, :class => new_request(@request_count)
= link_to ((@request_count == 0)? t('_home') : "#{t('_home')} (#{@request_count})"), root_path, :class => new_request(@request_count)
- for aspect in @aspects
%li{:class => ("selected" if current_aspect?(aspect))}
= link_for_aspect aspect
%li
= link_to '+', '#add_aspect_pane', :class => "add_aspect_button", :title => t('.add_a_new_aspect')
= link_to '+', '#add_aspect_pane', :class => "add_aspect_button", :title => t('aspects.manage.add_a_new_aspect')
.fancybox_content
#add_aspect_pane

View file

@ -10,7 +10,7 @@
});
$('.delete').bind('ajax:failure', function() {
alert("Cannot remove #{person.real_name} from last aspect.");
alert("#{t('.cannot_remove', :name => person.real_name)}");
});
});
@ -30,7 +30,7 @@
- for aspect in @aspects_with_person
%li
= link_to aspect.name, aspect
= link_to "x", {:controller => "aspects", :action => "remove_from_aspect", :person_id => person.id, :aspect_id => aspect.id}, :confirm => "Remove #{person.real_name} from #{aspect}?", :remote => true, :class => "delete"
= link_to "x", {:controller => "aspects", :action => "remove_from_aspect", :person_id => person.id, :aspect_id => aspect.id}, :confirm => t('.remove_from', :name => person.real_name, :aspect => aspect), :remote => true, :class => "delete"
-if is_contact || person == current_user.person

View file

@ -18,6 +18,12 @@
var progress = Math.round(loaded / total * 100 );
$('#fileInfo').text(fileName + ' ' + progress + '%');
},
messages: {
typeError: "#{t('.invalid_ext')}",
sizeError: "#{t('.size_error')}",
emptyError: "#{t('.empty')}"
},
onSubmit: function(id, fileName){
$('#file-upload').addClass("loading");

View file

@ -43,7 +43,7 @@
.photo_options{:data=>{:actor=>"#{@photo.person.owner.id}",:actor_person=>"#{@photo.person.id}",:image_url=>"#{@photo.url(:thumb_large)}"}}
= link_to t('.make_profile_photo'), '#', :class => 'make_profile_photo'
|
= link_to 'edit', '#', :id => "edit_photo_toggle"
= link_to t('.edit'), '#', :id => "edit_photo_toggle"
-else
= image_tag @photo.url(:scaled_full)
@ -55,7 +55,7 @@
-if @ownership
#photo_edit_options
%h4 Edit photo description / delete photo
%h4= t('.edit_delete_photo')
%p
= form_for @photo, :remote => true do |p|
= p.text_field :caption, :value => @photo.caption
@ -67,8 +67,8 @@
- if @photo.status_message_id
#original_post_info
%h4{:style=>"position:relative;"}
Original Post
= link_to 'view', @photo.status_message
= t('.original_post')
= link_to t('.view'), @photo.status_message
%p
= @photo.status_message.message
@ -77,7 +77,7 @@
- for photo in @photo.status_message.photos
= link_to (image_tag photo.url(:thumb_small)), object_path(photo)
%h4 Comments
%h4= t('_comments')
- if @photo.status_message_id
%div{:id => 'status_message_stream', :class => 'stream show'}

View file

@ -8,4 +8,4 @@
= request.hidden_field :to, :value => destination_handle
= request.submit t('people.person.add_contact'), :disable_with => t('requests.create.sending')
.message.hidden
%i sent!
%i= t('.sent')

View file

@ -3,14 +3,14 @@
-# the COPYRIGHT file.
%h3 Add a new contact
%h3= t('aspects.manage.add_a_new_contact')
= form_tag(person_by_handle_path, :id => "new_request_to_#{aspect.id}", :class => "webfinger_form", :remote => true) do
=t('.enter_a_diaspora_username')
%br
%i= t '.your_diaspora_username_is', :diaspora_handle => current_user.diaspora_handle
= search_field_tag :diaspora_handle,'', :id => "request_d_handle_to_#{aspect.id}", :results => 5, :placeholder => "Diaspora handle"
= search_field_tag :diaspora_handle,'', :id => "request_d_handle_to_#{aspect.id}", :results => 5, :placeholder => t('.diaspora_handle')
= hidden_field_tag :aspect_id, aspect.id
- if defined?(getting_started)
@ -18,13 +18,13 @@
- if defined?(manage)
= hidden_field_tag :manage, true
= submit_tag t('.create_request')
= submit_tag t('requests.manage_aspect_contacts.create_request')
%br
#loader.hidden= image_tag 'ajax-loader.gif'
%ul#request_result{:aspect_id => aspect.id}
%li.error.hidden
#message
= link_to "Know their email address? You should invite them", "#invite_user_pane", :class => "invite_user_button"
= link_to t('requests.manage_aspect_contacts.know_email'), "#invite_user_pane", :class => "invite_user_button"
%br
.yo{ :style => "display:none;"}
#invite_user_pane

View file

@ -25,13 +25,13 @@
$("#edit_aspect_pane").addClass("active");
$(".contact_pictures").fadeOut(200, function(){
$("#edit_aspect_pane").fadeIn(200);
trigger.html("done editing");
trigger.html("#{t('.done_editing')}");
});
},
fadeOut: function(){
var trigger = $("#edit_aspect_trigger");
trigger.html("edit aspect");
trigger.html("#{t('.edit_aspect')}");
$("#edit_aspect_pane").removeClass("active");
$("#edit_aspect_pane").fadeOut(200, function(){
@ -51,9 +51,9 @@
#new_request_pane{:class => "everyone"}
%h1.new_request
- if @request_count > 1
= link_to "#{@request_count} new requests!", aspects_manage_path
= link_to t('.new_requests', :count => @request_count), aspects_manage_path
- else
= link_to "#{@request_count} new request!", aspects_manage_path
= link_to t('.new_request', :count => @request_count), aspects_manage_path
#left_pane{:class => ("everyone" if aspect == :all)}
- if aspect == :all
@ -62,26 +62,26 @@
%h2{:style=>"position:relative;margin-bottom:0;"}
= aspect
.right
= link_to "edit aspect", "#", :id => "edit_aspect_trigger", :class => "button"
= link_to t('.edit_aspect'), "#", :id => "edit_aspect_trigger", :class => "button"
%span.aspect_contact_count{:style=>"color:#999;font-size:14px;"}
= aspect.contacts.count
- if aspect.contacts.count == 1
contact
= t('.contact')
- else
contacts
= t('.contacts')
- unless aspect == :all
#edit_aspect_pane
- if @contacts.count > 0
%h3 Add an existing contact
%h3= t('.add_existing')
= render 'shared/contact_list', :aspect => aspect, :contacts => @contacts, :manage => defined?(manage)
= render 'shared/add_contact', :aspect => aspect
%h3 Aspect settings
%h3= t('.aspect_settings')
.big_buttons
= button_to "Remove Aspect", aspect, :method => "delete", :confirm => "Remove aspect?"
= button_to t('.remove_aspect'), aspect, :method => "delete", :confirm => t('.confirm_remove_aspect')
.contact_pictures
- for contact in contacts
@ -89,7 +89,7 @@
- if aspect == :all && @contacts.count == 0
%h4
You currently have no contacts. Find your contacts here.
= t('.no_contacts')
= form_tag(people_path, :method => 'get') do
= text_field_tag 'q', nil, :placeholder => t('search'), :type => 'search', :results => 5
@ -101,9 +101,9 @@
%br
%h3{:style=>"position:relative;"}
Aspects
= t('.aspects')
.right{:style=>"font-size:12px;top:7px;"}
= link_to 'add aspect', '#add_aspect_pane', :class => "add_aspect_button"
= link_to t('.add_aspect'), '#add_aspect_pane', :class => "add_aspect_button"
- for user_aspect in current_user.aspects
@ -111,7 +111,7 @@
%h4.aspect_title_right{:style => "margin-bottom:0;"}
= link_to user_aspect, user_aspect
%span{:style=>"font-size:12px;color:#888;"}
= "#{user_aspect.contacts.count} contacts"
= "#{user_aspect.contacts.count} #{t('.contacts')}"
- if user_aspect.contacts.count > 0
- for aspect_contact in user_aspect.contacts[0..8]
@ -124,7 +124,7 @@
%br
%br
%h3 Invites
%p invite people to join Diaspora.
%h3= t('.invites')
%p= t('.invite_people')
= render "shared/invitations", :invites => @invites

View file

@ -13,5 +13,5 @@
- for aspect in current_user.aspects_with_post( post.id )
%li= link_to aspect.name, aspect
#person_nav_links
= link_to t('.view_profile'), person_path(person)
= link_to t('layouts.header.view_profile'), person_path(person)
= link_to t('_photos'), person_photos_path(person)

View file

@ -45,7 +45,7 @@
});
$('.remove').live('ajax:failure', function(data, html, xhr) {
alert("Cannot remove person from last aspect.");
alert("#{t('.cannot_remove')}");
});
$('.add').live('ajax:success', function(data, html, xhr) {

View file

@ -27,11 +27,11 @@
%ul#photodropzone
= status.error_messages
#file-upload.button
add photos
= t('.add_photos')
%p
%params
= status.label :message, t('.post_a_message_to', :aspect => (aspect == :all ? "all contacts" : aspect))
= status.label :message, t('.post_a_message_to', :aspect => (aspect == :all ? t('.all_contacts') : aspect))
= status.text_area :message, :rows => 2, :value => params[:prefill]
= status.hidden_field :to, :value => (aspect == :all ? aspect : aspect.id)

View file

@ -19,7 +19,7 @@
= link_to t('.destroy'), @status_message, :confirm => t('are_you_sure'), :method => :delete
.span-9.last
%h4{:style=>"margin-bottom:5px;"} Comments
%h4{:style=>"margin-bottom:5px;"}= t('_comments')
%div{:class => 'stream show', :id => 'status_message_stream'}
%li.message{:data=>{:guid=>@status_message.id}}
= render "comments/comments", :post => @status_message

View file

@ -12,7 +12,7 @@
$(".aspects li").find(".delete").live("click", function(){
var aspectElement = $(this).parent("li");
if (confirm("are you sure?")){
if (confirm(#{t('are_you_sure')})){
aspectElement.fadeOut(300, function(){aspectElement.remove();});
}
});

View file

@ -5,7 +5,7 @@
= form_for @person, :html => { :multipart => true } do |person|
%h3
= t('.your_profile')
= t('people.edit.your_profile')
.description
= t('people.edit.info_available_to')

View file

@ -31,7 +31,7 @@
= t('.user_menu')
%p
= t('.manage_aspects')
%b #{t('shared.aspect_nav.manage')}
%b #{t('.manage')}
= t('.tab_also_added')
.submit_block

View file

@ -28,4 +28,4 @@ def harden_ruby(ruby_string)
end
harden_ruby("ree")
harden_ruby("ruby-1.8.7-p302")

View file

@ -12,7 +12,7 @@ def harden_ruby(ruby_string)
end
harden_ruby("ree")
harden_ruby("ruby-1.8.7-p302")
include_recipe "centos::image_magick"
include_recipe "centos::mongo_db"

View file

@ -17,7 +17,6 @@ javascripts:
mobile:
- public/javascripts/vendor/jquery144.min.js
- public/javascripts/custom-mobile-scripting.js
- public/javascripts/rails.js
- public/javascripts/vendor/jquery-ui-1.8.6.custom.min.js
- public/javascripts/vendor/jquery_mobile_a2.min.js
- public/javascripts/mobile.js

View file

@ -6,7 +6,7 @@ cross_server:
deploy_to: '/usr/local/app/diaspora'
user: 'root'
repo: 'git://github.com/diaspora/diaspora.git'
branch: 'homepage'
branch: 'master'
default_env: 'development'
servers:
tom:

View file

@ -27,12 +27,16 @@ en:
passwords:
send_instructions: 'You will receive an email with instructions about how to reset your password in a few minutes.'
updated: 'Your password was changed successfully. You are now signed in.'
edit:
change_password: "Change my password"
new:
forgot_password: "Forgot your password?"
send_password_instructions: "Send me reset password instructions"
confirmations:
send_instructions: 'You will receive an email with instructions about how to confirm your account in a few minutes.'
confirmed: 'Your account was successfully confirmed. You are now signed in.'
new:
resend_confirmation: "Resend confirmation instructions"
registrations:
signed_up: 'You have signed up successfully. If enabled, a confirmation was sent to your e-mail.'
updated: 'You updated your account successfully.'
@ -40,6 +44,8 @@ en:
unlocks:
send_instructions: 'You will receive an email with instructions about how to unlock your account in a few minutes.'
unlocked: 'Your account was successfully unlocked. You are now signed in.'
new:
resend_unlock: "Resend unlock instructions"
invitations:
send_instructions: 'Your invitation has been sent.'
invitation_token_invalid: 'The invitation token provided is not valid!'
@ -76,4 +82,5 @@ en:
sign_in: 'Sign in'
sign_up: 'Sign up'
forgot_your_password: 'Forgot your password?'
receive_confirmation: "Didn't receive confirmation instructions?"
receive_unlock: "Didn't receive unlock instructions?"

View file

@ -26,6 +26,8 @@ en:
back: "Back"
the_world: "the world"
search: "Search"
_home: "Home"
_comments: "Comments"
activemodel:
errors:
@ -60,10 +62,6 @@ en:
blog: "blog"
developers: "developers"
login: "login"
add_a_new_aspect: "add a new aspect"
manage: "Manage"
manage_your_aspects: "Manage your Aspects"
everyone: "Everyone"
application:
powered_by: "POWERED BY DIASPORA*"
shared:
@ -77,27 +75,35 @@ en:
share_with_all: "Share with all aspects"
share_with: "Share with %{aspect}"
all: "all"
add_photos: "add photos"
all_contacts: "all contacts"
aspect_contacts:
add_contacts: "add contacts"
everyone: "Everyone"
add_to: "add to %{aspect}"
add_a_new_contact_to: "Add a new contact to"
done_editing: "done editing"
new_requests: "%{count} new requests!"
new_request: "%{count} new request!"
edit_aspect: "edit aspect"
contact: "contact"
contacts: "contacts"
add_existing: "Add an existing contact"
aspect_settings: "Aspect settings"
remove_aspect: "Remove Aspect"
confirm_remove_aspect: "Remove aspect?"
no_contacts: "You currently have no contacts. Find your contacts here."
aspects: "Aspects"
add_aspect: "add aspect"
invites: "Invites"
invite_people: "invite people to join Diaspora."
add_contact:
enter_a_diaspora_username: "Enter a Diaspora username:"
your_diaspora_username_is: "Your Diaspora username is: %{diaspora_handle}"
contact_username: "Contact's username"
create_request: "Find by Diaspora handle"
invitations:
invites: "Invites"
invite_someone: "Invite someone"
invitations_left: "(%{count} left)"
reshare:
reshare: "Reshare"
author_info:
view_profile: "View profile"
status_messages: "status messages"
viewing: "viewing"
all: "all"
public_explain:
title: "You are about to post a public message!"
outside: "Public messages will be available for others outside of Diaspora to see."
@ -107,8 +113,7 @@ en:
new: "New %{type} from %{from}"
contact_list:
search_contacts: "Search contacts"
add_to: "Add %{name} to %{aspect}"
remove_from: "Remove %{name} from %{aspect}"
cannot_remove: "Cannot remove person from last aspect. (If you want to disconnect from this person you must remove contact.)"
aspects:
no_contacts_message:
nobody: "We know you know people — bring them to Diaspora!"
@ -149,6 +154,11 @@ en:
remove_from_aspect:
success: "Successfully removed person from aspect"
failure: "Failed to remove person from aspect"
seed:
family: "Family"
work: "Work"
index:
handle_explanation: "This is your diaspora handle. Like an email address, you can give this to people to reach you."
users:
edit:
invite_contacts: "Invite contacts"
@ -169,8 +179,6 @@ en:
finished: "Finished!"
skip: "skip getting started"
save_and_continue: "Save and continue"
step_1:
your_profile: "Your Profile"
step_2:
your_aspects: "Your aspects"
description: "Tell Diaspora what different aspects of you are seen by different contacts. You can manage these later by clicking the manage tab on the top right. Your aspects are unique to you, and not visible by others."
@ -189,6 +197,7 @@ en:
manage_aspects: "You can manage your aspects any time by clicking the"
tab_also_added: "tab. Your contacts can also be added while on a particular aspect page, as well."
finish: "Finish"
manage: "Manage"
update:
password_changed: "Password Changed"
password_not_changed: "Password Change Failed"
@ -203,13 +212,12 @@ en:
photos:
show:
delete_photo: "Delete Photo"
prev: "prev"
full_size: "full size"
next: "next"
edit_photo: "Edit Photo"
add_a_description: "Add a description"
make_profile_photo: "make profile photo"
update_photo: "Update Photo"
view: "view"
edit: "edit"
edit_delete_photo: "Edit photo description / delete photo"
original_post: "Original Post"
edit:
editing: "Editing"
photo:
@ -228,9 +236,6 @@ en:
destroy:
notice: "Photo deleted."
new_photo:
drop: "Drop photos here to upload"
upload: "Upload a photo"
failed: "Failed"
invalid_ext: "{file} has invalid extension. Only {extensions} are allowed."
size_error: "{file} is too large, maximum file size is {sizeLimit}."
empty: "{file} is empty, please select files again without it."
@ -263,6 +268,8 @@ en:
send_invitation: "Send invitation"
check_token:
not_found: "Invitation token not found"
edit:
sign_up: "sign_up"
status_messages:
new_status_message:
tell_me_something_good: "tell me something good"
@ -305,11 +312,12 @@ en:
profile_sidebar:
remove_contact: "remove contact"
edit_my_profile: "Edit my profile"
last_seen: "last seen: %{how_long_ago}"
bio: "bio"
gender: "gender"
born: "born"
in_aspects: "in aspects"
cannot_remove: "Cannot remove %{name} from last aspect. (If you want to disconnect from this person you must remove contact.)"
remove_from: "Remove %{name} from %{aspect}?"
helper:
results_for: " results for %{params}"
people_on_pod_are_aware_of: " people on pod are aware of"
@ -329,7 +337,8 @@ en:
create:
sending: "Sending..."
sent: "You've asked to share with %{name}. They should see it next time they log in to Diaspora."
tried: "we tried our best to send a message to %{account}"
new_request_to_person:
sent: "sent!"
services:
index:
logged_in_as: "logged in as"
@ -341,9 +350,6 @@ en:
success: "Authentication successful."
destroy:
success: "Successfully destroyed authentication."
dashboards:
helper:
home: "Home"
notifier:
hello: "Hello %{name}!"
love: "love,"
@ -362,3 +368,11 @@ en:
share_what_you_want: "Share what you want, with who you want."
already_account: "already have an account?"
login_here: "log in here"
choice: "Choice"
choice_explanation: "Diaspora lets you sort your connections into groups called aspects. Unique to Diaspora, aspects ensure that your photos, stories and jokes are shared only with the people you intend."
ownership: "Ownership"
ownership_explanation: "You own your pictures, and you shouldnt have to give that up just to share them. You maintain ownership of everything you share on Diaspora, giving you full control over how it's distributed."
simplicity: "Simplicity"
simplicity_explanation: "Diaspora makes sharing clean and easy and this goes for privacy too. Inherently private, Diaspora doesnt make you wade through pages of settings and options just to keep your profile secure."
learn_about_host: "Learn about how to host your own Diaspora server"
learn_about_open_source: "Learn more about Diaspora as an open source project."

View file

@ -1,7 +1,7 @@
$(document).bind("mobileinit", function(){
$.extend( $.mobile , {
ajaxLinksEnabled : false
ajaxFormsEnabled : false
});
});
// $(document).bind("mobileinit", function(){
// $.extend( $.mobile , {
//
// ajaxLinksEnabled : false
// ajaxFormsEnabled : false
// });
// });

View file

@ -6,6 +6,7 @@
$(document).ready(function(){
var $stream = $(".stream");
var $publisher = $("#publisher");
// expand all comments on page load
$(".stream:not('.show')").find('.comments').each(function(index) {
var comments = $(this);
@ -51,6 +52,22 @@ $(document).ready(function(){
}
});
$(".new_status_message").bind('ajax:success', function(data, json, xhr){
json = $.parseJSON(json);
WebSocketReceiver.addPostToStream(json['post_id'],json['html']);
});
$(".new_status_message").bind('ajax:failure', function(data, html, xhr){
alert('failed to post message!');
});
$(".new_comment").live('ajax:success', function(data, json, xhr){
json = $.parseJSON(json);
WebSocketReceiver.processComment(json['post_id'],json['comment_id'],json['html'],false);
});
$(".new_comment").live('ajax:failure', function(data, html, xhr){
alert('failed to post message!');
});
});//end document ready

File diff suppressed because it is too large Load diff

View file

@ -121,6 +121,7 @@ $.fn.clearForm = function() {
var video_active_container = null;
function openVideo(type, videoid, link) {
var container = document.createElement('div'),
$container = $(container);

View file

@ -27,10 +27,10 @@ var WebSocketReceiver = {
WebSocketReceiver.processRetraction(obj['post_id']);
}else if (obj['class']=="comments"){
WebSocketReceiver.processComment(obj['post_id'], obj['html'], {'notification':obj['notification'], 'mine?':obj['mine?'], 'my_post?':obj['my_post?']})
WebSocketReceiver.processComment(obj['post_id'], obj['comment_id'], obj['html'], {'notification':obj['notification'], 'mine?':obj['mine?'], 'my_post?':obj['my_post?']})
}else{
WebSocketReceiver.processPost(obj['class'], obj['html'], obj['aspect_ids'])
WebSocketReceiver.processPost(obj['class'], obj['post_id'], obj['html'], obj['aspect_ids'])
}
}
},
@ -63,44 +63,50 @@ var WebSocketReceiver = {
}
},
processComment: function(post_id, html, opts){
post = $("*[data-guid='"+post_id+"']'");
$('.comments li:last', post ).before(
$(html).fadeIn("fast", function(){})
);
toggler = $('.show_post_comments', post);
processComment: function(postId, commentId, html, opts){
if(toggler.length > 0){
toggler.html(
toggler.html().replace(/\d+/,$('.comments', post)[0].childElementCount -1)
if( $(".comment[data-guid='"+commentId+"']").length == 0 ){
post = $("*[data-guid='"+postId+"']'");
$('.comments li:last', post ).before(
$(html).fadeIn("fast", function(){})
);
toggler = $('.show_post_comments', post);
if( !$(".comments", post).is(':visible') ){
toggler.click();
if(toggler.length > 0){
toggler.html(
toggler.html().replace(/\d+/,$('.comments', post)[0].childElementCount -1)
);
if( !$(".comments", post).is(':visible') ){
toggler.click();
}
}
}
if( !opts['mine?'] && opts['my_post?']) {
WebSocketReceiver.processNotification(opts['notification']);
if( !opts['mine?'] && opts['my_post?']) {
WebSocketReceiver.processNotification(opts['notification']);
}
}
},
processPost: function(className, html, aspectIds){
processPost: function(className, postId, html, aspectIds){
if(WebSocketReceiver.onPageForAspects(aspectIds)){
if( $("#no_posts").is(":visible") ){
$("#no_posts").fadeOut(400, WebSocketReceiver.addPostToStream(html)).hide();
$("#no_posts").fadeOut(400, WebSocketReceiver.addPostToStream(postId, html)).hide();
} else {
WebSocketReceiver.addPostToStream(html);
WebSocketReceiver.addPostToStream(postId, html);
}
}
},
addPostToStream: function(html){
$("#main_stream:not('.show')").prepend(
$(html).fadeIn("fast", function(){
$("#main_stream").find("label").first().inFieldLabels();
})
);
addPostToStream: function(postId, html){
if( $(".message[data-guid='"+postId+"']").length == 0 ){
$("#main_stream:not('.show')").prepend(
$(html).fadeIn("fast", function(){
$("#main_stream").find("label").first().inFieldLabels();
})
);
}
},
onPageForClass: function(className){

View file

@ -159,8 +159,9 @@ header
:background
:color #000
:border
:radius 5px
:-webkit-border-radius 5px
:-moz-border-radius 5px
:border-radius 5px
:position absolute
:display inline
@ -688,6 +689,8 @@ li.message .from .right
:-moz-border-radius 3px
:border-radius 3px
:max-width 100%
img
:z-index 2
:position relative
@ -1261,7 +1264,10 @@ ul#settings_nav
:color rgb(250,250,250)
:border 1px solid #ddd
:padding 11px
:-webkit-border-radius 4px
:-moz-border-radius 4px
:border-radius 4px
h2,h3
:border
@ -1954,6 +1960,8 @@ h3,h4
:color #ccc
:-webkit-border-radius 10px
:-moz-border-radius 10px
:border-radius 10px
:width 15px
:max-width 12px