Merge branch 'master' of github.com:diaspora/diaspora
This commit is contained in:
commit
5ffb5adb65
75 changed files with 1317 additions and 279 deletions
15
COPYRIGHT
15
COPYRIGHT
|
|
@ -1 +1,14 @@
|
|||
Diaspora is copyright Diaspora Inc., 2010, and files herein are licensed under the Affero General Public License version 3, the text of which can be found in GNU-AGPL-3.0, unless otherwise noted. Components of Diaspora, including Rails, JQuery, and Devise, are licensed under the MIT/X11 license. Blueprint-CSS is licensed under a modified version of the MIT/X11 license. All unmodified files from these and other sources retain their original copyright and license notices: see the relevant individual files. Attribution information for Diaspora is contained in the AUTHORS file.
|
||||
Diaspora is copyright Diaspora Inc., 2010, and files herein are licensed under the Affero General Public License version 3, the text of which can be found in GNU-AGPL-3.0, or any later version of the AGPL, unless otherwise noted. Components of Diaspora, including Rails, JQuery, and Devise, are licensed under the MIT/X11 license. Blueprint-CSS is licensed under a modified version of the MIT/X11 license. All unmodified files from these and other sources retain their original copyright and license notices: see the relevant individual files. Attribution information for Diaspora is contained in the AUTHORS file.
|
||||
|
||||
* In addition, as a special exception, the copyright holders give
|
||||
* permission to link the code of portions of this program with the
|
||||
* OpenSSL library under certain conditions as described in each
|
||||
* individual source file, and distribute linked combinations
|
||||
* including the two.
|
||||
* You must obey the GNU General Public License in all respects
|
||||
* for all of the code used other than OpenSSL. If you modify
|
||||
* file(s) with this exception, you may extend this exception to your
|
||||
* version of the file(s), but you are not obligated to do so. If you
|
||||
* do not wish to do so, delete this exception statement from your
|
||||
* version. If you delete this exception statement from all source
|
||||
* files in the program, then also delete it here.
|
||||
|
|
|
|||
48
README.md
48
README.md
|
|
@ -5,7 +5,7 @@ We need you to fill out a [contributor agreement form](https://spreadsheets.goog
|
|||
|
||||
All commits must be tested, and after each commit, all tests should be green before a pull request is sent. Please write your tests in Rspec.
|
||||
|
||||
GEMS: We would like to keep external dependencies unduplicated. We're using Nokogiri, and Mongomapper, and EM::HttpRequest as much as possible. We have a few gems in the project we'd rather not use, but if you can, use dependencies we already have.
|
||||
GEMS: We would like to keep external dependencies unduplicated. We're using Nokogiri, Mongomapper, and EM::HttpRequest as much as possible. We have a few gems in the project we'd rather not use, but if you can, use dependencies we already have.
|
||||
|
||||
# Diaspora
|
||||
|
||||
|
|
@ -17,6 +17,14 @@ The privacy aware, personally controlled, do-it-all, open source social network.
|
|||
Also, we really want to continue to focus on features and improving the code base. When we think it is
|
||||
ready for general use, we will post more detailed instructions.
|
||||
|
||||
## Notice
|
||||
|
||||
We currently run Diaspora with the [thin](http://code.macournoyer.com/thin/) as our webserver, behind [nginx](http://wiki.nginx.org/Main). Diaspora uses the asynchronous feature of [EventMachine](http://rubyeventmachine.com/) to send messages between seeds,
|
||||
|
||||
using the power of the [Reactor](http://en.wikipedia.org/wiki/Reactor_pattern) pattern. If you use mod_rails, mongrel, or another non-eventmachine based application server, federation and/or websockets may not work.
|
||||
|
||||
If you don't like thin, you can always try [Rainbows!](http://rainbows.rubyforge.org/)
|
||||
We will try and fully support more webservers later, but that is what works for now.
|
||||
|
||||
|
||||
These instructions are for machines running [Ubuntu](http://www.ubuntu.com/), [Fedora](http://www.fedoraproject.org) or Mac OS X. We are developing Diaspora for the latest and greatest browsers, so please update your Firefox, Chrome or Safari to the latest and greatest.
|
||||
|
|
@ -69,22 +77,28 @@ If you're on **Mac OS X**, you already have Ruby on your system. Yay!
|
|||
|
||||
### MongoDB
|
||||
|
||||
To install MongoDB on **Ubuntu**, add the official MongoDB repository from this link:
|
||||
|
||||
http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages
|
||||
To install MongoDB on **Ubuntu**, add the official MongoDB repository [here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages).
|
||||
|
||||
For Lucid, add the following line to your /etc/apt/sources.list (for other distros, see http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages):
|
||||
|
||||
deb http://downloads.mongodb.org/distros/ubuntu 10.4 10gen
|
||||
|
||||
And then run:
|
||||
Then run:
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
|
||||
sudo apt-get update
|
||||
sudo apt-get install mongodb-stable
|
||||
|
||||
You can also run the binary directly by doing the following:
|
||||
|
||||
If you're running a 32-bit system, run `wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.6.2.tgz`. If you're running a 64-bit system, run `wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.2.tgz`.
|
||||
If you're running a 32-bit system, run:
|
||||
|
||||
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.6.2.tgz
|
||||
|
||||
If you're running a 64-bit system, run:
|
||||
|
||||
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.2.tgz
|
||||
|
||||
Then run:
|
||||
|
||||
# extract
|
||||
tar xzf mongodb-linux-i686-1.4.0.tgz
|
||||
|
|
@ -193,11 +207,11 @@ To start the app server for the first time, you need to use Bundler to install D
|
|||
### Start Mongo
|
||||
If you installed the Ubuntu package, MongoDB should already be running (if not, run `service mongodb start`). If you installed the binary manually, run `sudo mongod` from where mongo is installed to start mongo.
|
||||
|
||||
If you installed the Fedora package, MongoDB will need to be started via `service mongodb start`. If you installed the binary manually, run `sudo mongod` from where mongo is installed to start mongo.
|
||||
If you installed the Fedora package, MongoDB will need to be started via `service mongodb start`. If you installed the binary manually, run `sudo mongod` from where Mongo is installed to start Mongo.
|
||||
|
||||
If you installed the OsX package through "brew", MongoDB will need to be started via `sudo launchctl load /Library/LaunchDaemons/org.mongodb.mongod.plist`. (before you have to go to /Library/LaunchDaemons and add a symlink to /usr/local/Cellar/mongodb/1.6.2-x86_64/org.mongodb.mongod.plist)
|
||||
|
||||
Diaspora will not run unless mongo is running. Mongo will not run by default, and will need to be started every time you wish to use or run the test suite for Diaspora.
|
||||
Diaspora will not run unless Mongo is running. Mongo will not run by default, and will need to be started every time you wish to use or run the test suite for Diaspora.
|
||||
|
||||
### Run the server
|
||||
`./script/server` will start both thin and the websocket server. If you want to run a different app server, you will have to run them separately. See below for instructions.
|
||||
|
|
@ -208,7 +222,7 @@ Once mongo is running and bundler has finished, run `bundle exec thin start` fro
|
|||
### Run the websocket server
|
||||
run `bundle exec ruby ./script/websocket_server` to start the websocket server on port 8080. Change the port in config/app_config.yml.
|
||||
|
||||
### Logging in
|
||||
### Logging in with a sample user
|
||||
Run `rake db:seed:tom`, then login with user `tom` and password `evankorth`. More details in db/seeds/tom.rb.
|
||||
|
||||
|
||||
|
|
@ -223,19 +237,9 @@ Ongoing discussion:
|
|||
- [Diaspora Developer Google Group](http://groups.google.com/group/diaspora-dev)
|
||||
- [Diaspora Discussion Google Group](http://groups.google.com/group/diaspora-discuss)
|
||||
- [Diaspora Q&A site](http://diaspora.shapado.com/)
|
||||
- [#diaspora-dev](irc://irc.freenode.net/#diaspora-dev)
|
||||
- [#diaspora-dev IRC channel](irc://irc.freenode.net/#diaspora-dev)
|
||||
([join via the web client](http://webchat.freenode.net?channels=diaspora-dev))
|
||||
|
||||
More general info and updates about the project can be found on our [blog](http://joindiaspora.com), [twitter](http://twitter.com/joindiaspora). Also, be sure to join the official [mailing list](http://http://eepurl.com/Vebk).
|
||||
More general info and updates about the project can be found on our [blog](http://joindiaspora.com), [and on Twitter](http://twitter.com/joindiaspora). Also, be sure to join the official [mailing list](http://http://eepurl.com/Vebk).
|
||||
|
||||
If you wish to contact us privately about any exploits in Diaspora you may find, you can email [exploits@joindiaspora.com](mailto:exploits@joindiaspora.com).
|
||||
|
||||
|
||||
## License
|
||||
Copyright 2010 Diaspora Inc.
|
||||
|
||||
Diaspora is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
|
||||
Diaspora is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License along with Diaspora. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,11 @@ class AlbumsController < ApplicationController
|
|||
end
|
||||
|
||||
def create
|
||||
aspect = params[:album][:to]
|
||||
@album = current_user.post(:album, params[:album])
|
||||
aspect = params[:album][:to]
|
||||
|
||||
data = clean_hash(params[:album])
|
||||
|
||||
@album = current_user.post(:album, data)
|
||||
flash[:notice] = "You've created an album called #{@album.name}."
|
||||
redirect_to :action => :show, :id => @album.id, :aspect => aspect
|
||||
end
|
||||
|
|
@ -26,7 +29,7 @@ class AlbumsController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@album = current_user.album_by_id params[:id]
|
||||
@album = current_user.find_visible_post_by_id params[:id]
|
||||
@album.destroy
|
||||
flash[:notice] = "Album #{@album.name} deleted."
|
||||
respond_with :location => albums_url
|
||||
|
|
@ -34,20 +37,22 @@ class AlbumsController < ApplicationController
|
|||
|
||||
def show
|
||||
@photo = Photo.new
|
||||
@album = Album.find_by_id params[:id]
|
||||
@album = current_user.find_visible_post_by_id( params[:id] )
|
||||
@album_photos = @album.photos
|
||||
|
||||
respond_with @album
|
||||
end
|
||||
|
||||
def edit
|
||||
@album = current_user.album_by_id params[:id]
|
||||
@album = current_user.find_visible_post_by_id params[:id]
|
||||
redirect_to @album unless current_user.owns? @album
|
||||
end
|
||||
|
||||
def update
|
||||
@album = current_user.album_by_id params[:id]
|
||||
if @album.update_attributes params[:album]
|
||||
@album = current_user.find_visible_post_by_id params[:id]
|
||||
|
||||
data = clean_hash(params[:album])
|
||||
|
||||
if @album.update_attributes data
|
||||
flash[:notice] = "Album #{@album.name} successfully edited."
|
||||
respond_with @album
|
||||
else
|
||||
|
|
@ -56,4 +61,11 @@ class AlbumsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
private
|
||||
def clean_hash(params)
|
||||
return {
|
||||
:name => params[:name],
|
||||
:to => params[:to]
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ class AspectsController < ApplicationController
|
|||
|
||||
def create
|
||||
@aspect = current_user.aspect params[:aspect]
|
||||
flash[:notice] = "Click on the plus on the left side to tell Diaspora who can see your new aspect."
|
||||
flash[:notice] = I18n.t('aspects.create.success')
|
||||
respond_with :location => aspects_manage_path
|
||||
end
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ class AspectsController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@aspect = Aspect.find_by_id params[:id]
|
||||
@aspect = current_user.aspect_by_id params[:id]
|
||||
|
||||
begin
|
||||
current_user.drop_aspect @aspect
|
||||
|
|
@ -38,7 +38,7 @@ class AspectsController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
@aspect = Aspect.find_by_id params[:id]
|
||||
@aspect = current_user.aspect_by_id params[:id]
|
||||
@friends = @aspect.people
|
||||
@posts = current_user.visible_posts( :by_members_of => @aspect ).paginate :per_page => 15, :order => 'created_at DESC'
|
||||
|
||||
|
|
@ -51,8 +51,10 @@ class AspectsController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
@aspect = Aspect.find_by_id(params[:id])
|
||||
@aspect.update_attributes(params[:aspect])
|
||||
@aspect = current_user.aspect_by_id(params[:id])
|
||||
|
||||
data = clean_hash(params[:aspect])
|
||||
@aspect.update_attributes( data )
|
||||
flash[:notice] = "Your aspect, #{@aspect.name}, has been successfully edited."
|
||||
respond_with @aspect
|
||||
end
|
||||
|
|
@ -61,26 +63,34 @@ class AspectsController < ApplicationController
|
|||
params[:moves].each{ |move|
|
||||
move = move[1]
|
||||
unless current_user.move_friend(move)
|
||||
flash[:error] = "Aspect editing failed for friend #{Person.find_by_id( move[:friend_id] ).real_name}."
|
||||
redirect_to Aspect.first, :action => "edit"
|
||||
flash[:error] = "Aspect editing failed for friend #{current_user.visible_person_by_id( move[:friend_id] ).real_name}."
|
||||
redirect_to aspects_manage_path
|
||||
return
|
||||
end
|
||||
}
|
||||
|
||||
flash[:notice] = "Aspects edited successfully."
|
||||
redirect_to Aspect.first, :action => "edit"
|
||||
redirect_to aspects_manage_path
|
||||
end
|
||||
|
||||
def move_friend
|
||||
unless current_user.move_friend( :friend_id => params[:friend_id], :from => params[:from], :to => params[:to][:to])
|
||||
flash[:error] = "didn't work #{params.inspect}"
|
||||
end
|
||||
if aspect = Aspect.first(:id => params[:to][:to])
|
||||
if aspect = current_user.aspect_by_id(params[:to][:to])
|
||||
flash[:notice] = "You are now showing your friend a different aspect of yourself."
|
||||
respond_with aspect
|
||||
render :nothing => true
|
||||
else
|
||||
flash[:notice] = "You are now showing your friend a different aspect of yourself."
|
||||
respond_with Person.first(:id => params[:friend_id])
|
||||
flash[:error] = "Invalid aspect id!"
|
||||
render aspects_manage_path
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def clean_hash(params)
|
||||
return {
|
||||
:name => params[:name]
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,9 +17,4 @@ class CommentsController < ApplicationController
|
|||
render :nothing => true
|
||||
end
|
||||
|
||||
def show
|
||||
@comment = Comment.find_by_id params[:id]
|
||||
respond_with @comment
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,24 +7,6 @@ class DevUtilitiesController < ApplicationController
|
|||
before_filter :authenticate_user!, :except => [:set_backer_number]
|
||||
include ApplicationHelper
|
||||
include RequestsHelper
|
||||
def warzombie
|
||||
render :nothing => true
|
||||
if current_user.email == "tom@tom.joindiaspora.com" && StatusMessage.where(:message => "There's a bomb in the lasagna!?").first == nil
|
||||
current_user.post(:status_message, :message => "There's a bomb in the lasagna!?")
|
||||
current_user.post(:status_message, :message => "xkcd \nhttp://xkcd.com/743/" )
|
||||
current_user.post(:status_message, :message => "I switched to Motoroi today, a Motorola Android-based phone, in Korea. Now, I am using Android phones in both the U.S. and Korea", :created_at => Time.now-930)
|
||||
current_user.post(:status_message, :message => "I had 5 hours to study for it :-( GREs on Thursday. Wunderbar.", :created_at => Time.now-43990)
|
||||
current_user.post(:status_message, :message => "Spotted in toy story 3: google maps, OSX, and windows XP. Two out of three isn't bad.", :created_at => Time.now-4390)
|
||||
current_user.post(:status_message, :message => "Reddit\nhttp://reddit.com", :created_at => Time.now-54390)
|
||||
current_user.post(:status_message, :message => "Commercials for IE make me SO MAD and my friends just don't get why.", :created_at => Time.now-30900)
|
||||
current_user.post(:status_message, :message => "Zombo.com\nhttp://zombo.com", :created_at => Time.now-9090)
|
||||
current_user.post(:status_message, :message => "Why do I have \"No More Heroes\" by Westlife on repeat all day?", :created_at => Time.now-590000)
|
||||
current_user.post(:status_message, :message => "Mmm. Friday night. Acknowledged.", :created_at => Time.now-503900)
|
||||
current_user.post(:status_message, :message => "Getting a universal remote is the epitome of laziness, I do declare.", :created_at => Time.now-4400)
|
||||
current_user.post(:status_message, :message => "Does anyone know how to merge two Skype contact entries of the same person? (i.e. one Skype ID and one mobile number)", :created_at => Time.now-400239)
|
||||
current_user.post(:status_message, :message => "A cool, cool morning for once.", :created_at => Time.now-150000)
|
||||
end
|
||||
end
|
||||
|
||||
def zombiefriends
|
||||
render :nothing => true
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class PeopleController < ApplicationController
|
|||
@profile = @person.profile
|
||||
@aspects_with_person = current_user.aspects_with_person(@person)
|
||||
@aspects_dropdown_array = current_user.aspects.collect{|x| [x.to_s, x.id]}
|
||||
@posts = current_user.visible_posts_from_others(:from => @person).paginate :page => params[:page], :order => 'created_at DESC'
|
||||
@posts = current_user.visible_posts(:from => @person).paginate :page => params[:page], :order => 'created_at DESC'
|
||||
@latest_status_message = current_user.raw_visible_posts.find_all_by__type_and_person_id("StatusMessage", params[:id]).last
|
||||
@post_count = @posts.count
|
||||
respond_with @person
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ class PhotosController < ApplicationController
|
|||
def create
|
||||
|
||||
album = Album.find_by_id params[:album_id]
|
||||
puts params
|
||||
|
||||
begin
|
||||
|
||||
|
|
@ -33,7 +34,11 @@ class PhotosController < ApplicationController
|
|||
|
||||
|
||||
params[:user_file] = file
|
||||
@photo = current_user.post(:photo, params)
|
||||
|
||||
data = clean_hash(params)
|
||||
|
||||
|
||||
@photo = current_user.post(:photo, data)
|
||||
|
||||
respond_to do |format|
|
||||
format.json{render(:layout => false , :json => {"success" => true, "data" => @photo}.to_json )}
|
||||
|
|
@ -61,29 +66,32 @@ class PhotosController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@photo = Photo.find_by_id params[:id]
|
||||
@photo = current_user.find_visible_post_by_id params[:id]
|
||||
|
||||
@photo.destroy
|
||||
flash[:notice] = "Photo deleted."
|
||||
respond_with :location => @photo.album
|
||||
end
|
||||
|
||||
def show
|
||||
@photo = Photo.find_by_id params[:id]
|
||||
@photo = current_user.find_visible_post_by_id params[:id]
|
||||
@album = @photo.album
|
||||
|
||||
respond_with @photo, @album
|
||||
end
|
||||
|
||||
def edit
|
||||
@photo = Photo.find_by_id params[:id]
|
||||
@photo = current_user.find_visible_post_by_id params[:id]
|
||||
@album = @photo.album
|
||||
|
||||
redirect_to @photo unless current_user.owns? @album
|
||||
end
|
||||
|
||||
def update
|
||||
@photo = Photo.find_by_id params[:id]
|
||||
if @photo.update_attributes params[:photo]
|
||||
@photo = current_user.find_visible_post_by_id params[:id]
|
||||
|
||||
data = clean_hash(params)
|
||||
|
||||
if @photo.update_attributes data[:photo]
|
||||
flash[:notice] = "Photo successfully updated."
|
||||
respond_with @photo
|
||||
else
|
||||
|
|
@ -91,4 +99,22 @@ class PhotosController < ApplicationController
|
|||
render :action => :edit
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
def clean_hash(params)
|
||||
if params[:photo]
|
||||
return {
|
||||
:photo => {
|
||||
:caption => params[:photo][:caption],
|
||||
}
|
||||
}
|
||||
else
|
||||
return{
|
||||
:album_id => params[:album_id],
|
||||
:user_file => params[:user_file]
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ class PublicsController < ApplicationController
|
|||
|
||||
def hcard
|
||||
@person = Person.find_by_id params[:id]
|
||||
puts @person
|
||||
unless @person.nil? || @person.owner.nil?
|
||||
render 'hcard'
|
||||
end
|
||||
|
|
@ -33,9 +32,10 @@ class PublicsController < ApplicationController
|
|||
render :nothing => true
|
||||
return unless params[:xml]
|
||||
begin
|
||||
@user = Person.first(:id => params[:id]).owner
|
||||
person = Person.first(:id => params[:id])
|
||||
@user = person.owner
|
||||
rescue NoMethodError => e
|
||||
Rails.logger.error("Received post #{params[:xml]} for nonexistent person #{params[:id]}")
|
||||
Rails.logger.error("Received post for nonexistent person #{params[:id]}")
|
||||
return
|
||||
end
|
||||
@user.receive_salmon params[:xml]
|
||||
|
|
|
|||
|
|
@ -15,9 +15,7 @@ class RegistrationsController < Devise::RegistrationsController
|
|||
flash[:error] = e.message
|
||||
end
|
||||
if user
|
||||
#set_flash_message :notice, :signed_up
|
||||
flash[:notice] = "You've joined Diaspora!"
|
||||
#redirect_to root_url
|
||||
sign_in_and_redirect(:user, user)
|
||||
else
|
||||
redirect_to new_user_registration_path
|
||||
|
|
|
|||
|
|
@ -11,18 +11,29 @@ class StatusMessagesController < ApplicationController
|
|||
|
||||
def create
|
||||
params[:status_message][:to] = params[:aspect_ids]
|
||||
@status_message = current_user.post(:status_message, params[:status_message])
|
||||
|
||||
data = clean_hash params[:status_message]
|
||||
|
||||
@status_message = current_user.post(:status_message, data)
|
||||
respond_with @status_message
|
||||
end
|
||||
|
||||
def destroy
|
||||
@status_message = StatusMessage.find_by_id params[:id]
|
||||
@status_message = current_user.find_visible_post_by_id params[:id]
|
||||
@status_message.destroy
|
||||
respond_with :location => root_url
|
||||
end
|
||||
|
||||
def show
|
||||
@status_message = StatusMessage.find_by_id params[:id]
|
||||
@status_message = current_user.find_visible_post_by_id params[:id]
|
||||
respond_with @status_message
|
||||
end
|
||||
|
||||
private
|
||||
def clean_hash(params)
|
||||
return {
|
||||
:message => params[:message],
|
||||
:to => params[:to]
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,14 +17,15 @@ class UsersController < ApplicationController
|
|||
|
||||
def update
|
||||
@user = current_user
|
||||
prep_image_url(params[:user])
|
||||
|
||||
@user.update_profile params[:user]
|
||||
data = clean_hash params[:user]
|
||||
prep_image_url(data)
|
||||
|
||||
@user.update_profile data
|
||||
respond_with(@user, :location => root_url)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def prep_image_url(params)
|
||||
if params[:profile][:image_url].empty?
|
||||
params[:profile].delete(:image_url)
|
||||
|
|
@ -32,4 +33,16 @@ class UsersController < ApplicationController
|
|||
params[:profile][:image_url] = "http://" + request.host + ":" + request.port.to_s + params[:profile][:image_url]
|
||||
end
|
||||
end
|
||||
|
||||
def clean_hash(params)
|
||||
return {
|
||||
:profile =>
|
||||
{
|
||||
:first_name => params[:profile][:first_name],
|
||||
:last_name => params[:profile][:last_name],
|
||||
:image_url => params[:profile][:image_url]
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def how_long_ago(obj)
|
||||
"#{time_ago_in_words(obj.created_at)} ago."
|
||||
"#{time_ago_in_words(obj.created_at)} ago"
|
||||
end
|
||||
|
||||
def person_url(person)
|
||||
|
|
@ -43,11 +43,11 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def owner_image_tag
|
||||
person_image_tag(current_user)
|
||||
person_image_tag(current_user.person)
|
||||
end
|
||||
|
||||
def owner_image_link
|
||||
person_image_link(current_user)
|
||||
person_image_link(current_user.person)
|
||||
end
|
||||
|
||||
def person_image_tag(person)
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ module RequestsHelper
|
|||
def relationship_flow(identifier)
|
||||
action = :none
|
||||
person = nil
|
||||
puts identifier
|
||||
person = Person.by_webfinger identifier
|
||||
if person
|
||||
action = (person == current_user.person ? :none : :friend)
|
||||
|
|
|
|||
|
|
@ -39,5 +39,6 @@ class Aspect
|
|||
}
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -34,11 +34,9 @@ class Person
|
|||
validates_format_of :url, :with =>
|
||||
/^(https?):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*(\.[a-z]{2,5})?(:[0-9]{1,5})?(\/.*)?$/ix
|
||||
|
||||
|
||||
def self.search(query)
|
||||
Person.all('$where' => "function() { return this.diaspora_handle.match(/^#{query}/i) ||
|
||||
this.profile.first_name.match(/^#{query}/i) ||
|
||||
this.profile.last_name.match(/^#{query}/i); }")
|
||||
query = Regexp.escape( query.to_s.strip )
|
||||
Person.all('profile.first_name' => /^#{query}/i) | Person.all('profile.last_name' => /^#{query}/i)
|
||||
end
|
||||
|
||||
def real_name
|
||||
|
|
@ -79,9 +77,11 @@ class Person
|
|||
end
|
||||
|
||||
def self.by_webfinger( identifier, opts = {})
|
||||
local_person = Person.first(:diaspora_handle => identifier.gsub('acct:', ''))
|
||||
|
||||
#need to check if this is a valid email structure, maybe should do in JS
|
||||
local_person = Person.first(:diaspora_handle => identifier.gsub('acct:', '').to_s.downcase)
|
||||
|
||||
if local_person
|
||||
Rails.logger.info("Do not need to webfinger, found a local person #{local_person.real_name}")
|
||||
local_person
|
||||
elsif !identifier.include?("localhost") && !opts[:local]
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ class Request
|
|||
validates_presence_of :destination_url, :callback_url
|
||||
before_validation :clean_link
|
||||
|
||||
scope :for_user, lambda{ |user| where(:destination_url => user.receive_url) }
|
||||
scope :from_user, lambda{ |user| where(:destination_url.ne => user.receive_url) }
|
||||
scope :for_user, lambda{ |user| where(:destination_url => user.person.receive_url) }
|
||||
scope :from_user, lambda{ |user| where(:destination_url.ne => user.person.receive_url) }
|
||||
|
||||
def self.instantiate(options = {})
|
||||
person = options[:from]
|
||||
|
|
|
|||
|
|
@ -105,7 +105,10 @@ class User
|
|||
end
|
||||
|
||||
aspect_ids = [aspect_ids.to_s] if aspect_ids.is_a? BSON::ObjectId
|
||||
|
||||
raise ArgumentError.new("You must post to someone.") if aspect_ids.nil? || aspect_ids.empty?
|
||||
aspect_ids.each{ |aspect_id|
|
||||
raise ArgumentError.new("Cannot post to an aspect you do not own.") unless self.aspects.find(aspect_id) }
|
||||
|
||||
post = build_post(class_name, options)
|
||||
|
||||
|
|
@ -220,7 +223,6 @@ class User
|
|||
###### Receiving #######
|
||||
def receive_salmon ciphertext
|
||||
cleartext = decrypt( ciphertext)
|
||||
Rails.logger.info("Received a salmon: #{cleartext}")
|
||||
salmon = Salmon::SalmonSlap.parse cleartext
|
||||
if salmon.verified_for_key?(salmon.author.public_key)
|
||||
Rails.logger.info("data in salmon: #{salmon.data}")
|
||||
|
|
|
|||
|
|
@ -17,11 +17,16 @@
|
|||
= render "shared/aspect_friends"
|
||||
|
||||
- content_for :publish do
|
||||
-if current_user.owns? @album
|
||||
.right
|
||||
=render 'photos/new_photo'
|
||||
= link_to 'Edit Album', edit_album_path(@album), :class => 'button'
|
||||
%h1
|
||||
= @album.name
|
||||
="updated #{how_long_ago(@album)}"
|
||||
|
||||
|
||||
|
||||
.album_id{:id => @album.id, :style => "display:hidden;"}
|
||||
|
||||
-unless current_user.owns? @album
|
||||
|
|
@ -31,13 +36,8 @@
|
|||
- for photo in @album_photos
|
||||
.image_thumb
|
||||
= link_to (image_tag photo.url(:thumb_medium)), object_path(photo)
|
||||
-if current_user.owns? @album
|
||||
=render 'photos/new_photo'
|
||||
|
||||
#content_bottom
|
||||
.back
|
||||
= link_to "⇧ albums", albums_path
|
||||
|
||||
-if current_user.owns? @album
|
||||
.right
|
||||
= link_to 'Edit Album', edit_album_path(@album), :class => 'button'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
-# the COPYRIGHT file.
|
||||
|
||||
|
||||
%h1 Add a new aspect
|
||||
%h1=t('.add_a_new_aspect')
|
||||
= form_for Aspect.new do |f|
|
||||
= f.error_messages
|
||||
%p
|
||||
|
|
|
|||
|
|
@ -13,16 +13,20 @@
|
|||
|
||||
.requests
|
||||
%ul.dropzone
|
||||
- for request in @remote_requests
|
||||
%li.requested_person{:id => request.person.id, :request_id => request.id}
|
||||
= person_image_tag(request.person)
|
||||
.name
|
||||
= request.person.real_name
|
||||
- if @remote_requests.size < 1
|
||||
%li.grey No new requests
|
||||
- else
|
||||
- for request in @remote_requests
|
||||
%li.requested_person{:id => request.person.id, :request_id => request.id}
|
||||
= person_image_tag(request.person)
|
||||
.name
|
||||
= request.person.real_name
|
||||
%h1
|
||||
Ignore/Remove
|
||||
|
||||
%li.remove
|
||||
%ul.dropzone
|
||||
%li.grey Drag to ignore/remove
|
||||
|
||||
- content_for :publish do
|
||||
= link_to("add a new aspect", "#add_aspect_pane", :id => "add_aspect_button", :class => "new_aspect button", :title => "Add a new aspect")
|
||||
|
|
@ -34,7 +38,9 @@
|
|||
%li.aspect
|
||||
|
||||
.aspect_name
|
||||
%h1{:contenteditable => true}= aspect.name
|
||||
%span.edit_name_field
|
||||
%h1{:contenteditable => true}= aspect.name
|
||||
%span.tip click to edit
|
||||
|
||||
%ul.tools
|
||||
%li= link_to "add a new friend", "#add_request_pane_#{aspect.id}", :class => 'add_request_button'
|
||||
|
|
@ -52,13 +58,9 @@
|
|||
%li.person{:id => person.id, :from_aspect_id => aspect.id}
|
||||
= person_image_tag(person)
|
||||
.name
|
||||
= person.real_name
|
||||
= link_to person.real_name, person
|
||||
.yo{:style => 'display:none'}
|
||||
%div{:id => "add_request_pane_#{aspect.id}"}
|
||||
= render "requests/new_request", :aspect => aspect
|
||||
|
||||
%p
|
||||
%br
|
||||
= link_to 'Update Aspects', '#', :class => 'button', :id => "move_friends_link"
|
||||
|
||||
#content_bottom
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@
|
|||
= link_to post.person.real_name, post.person
|
||||
= auto_link sanitize post.text
|
||||
%div.time
|
||||
= "#{time_ago_in_words(post.updated_at)} ago"
|
||||
= "#{time_ago_in_words(post.updated_at)} #{t('.ago')}"
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@
|
|||
= f.text_area :text, :rows => 1, :id => "comment_text_on_#{post.id}", :class => "comment_box"
|
||||
= f.hidden_field :post_id, :value => post.id
|
||||
%p{:style => "text-align:right;"}
|
||||
= f.submit "Comment", :class => "comment_submit button"
|
||||
= f.submit t('.comment'), :class => "comment_submit button"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
%h1
|
||||
This is a technology preview, do not provide any private information.
|
||||
%h3
|
||||
your account may be deleted until we move into a more stable development period.
|
||||
%h3
|
||||
USE AT YOUR OWN RISK!!
|
||||
= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
|
||||
#user
|
||||
%p.username
|
||||
|
|
@ -14,6 +20,7 @@
|
|||
/ = f.check_box :remember_me
|
||||
/ = f.label :remember_me
|
||||
= f.submit "Sign in"
|
||||
= link_to "Have a problem? Find an answer here", 'http://diaspora.shapado.com/'
|
||||
%p
|
||||
= render :partial => "devise/shared/links"
|
||||
|
||||
|
|
|
|||
27
app/views/people/_person.html.haml
Normal file
27
app/views/people/_person.html.haml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
-# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
-# licensed under the Affero General Public License version 3. See
|
||||
-# the COPYRIGHT file.
|
||||
|
||||
%li.message{:id => person.id}
|
||||
|
||||
= person_image_link(person)
|
||||
|
||||
.content
|
||||
%span.from
|
||||
= link_to person.real_name, person_path(person)
|
||||
|
||||
.info
|
||||
= person.diaspora_handle
|
||||
|
||||
.right{ :style => "display:inline;top:0;" }
|
||||
- if person.id == current_user.person.id
|
||||
thats you!
|
||||
- elsif current_user.friends.include?(person)
|
||||
Already friends
|
||||
- elsif current_user.pending_requests.find_by_person_id(person.id)
|
||||
= link_to "pending request", aspects_manage_path
|
||||
- else
|
||||
= form_for Request.new do |f|
|
||||
= f.select(:aspect_id, @aspects_dropdown_array)
|
||||
= f.hidden_field :destination_url, :value => person.diaspora_handle
|
||||
= f.submit "add friend"
|
||||
|
|
@ -8,44 +8,18 @@
|
|||
Search
|
||||
|
||||
=form_tag '/people', :method => "get" do
|
||||
= text_field_tag :q
|
||||
= text_field_tag :q, params[:q]
|
||||
= submit_tag "search"
|
||||
|
||||
- content_for :left_pane do
|
||||
\.
|
||||
|
||||
= (@people.count).to_s + search_or_index
|
||||
%table
|
||||
%tr
|
||||
%th real name
|
||||
%th diaspora handle
|
||||
%th url
|
||||
- for person in @people
|
||||
%tr
|
||||
- if current_user.friends.include? person
|
||||
%td= link_to person.real_name, person
|
||||
- else
|
||||
%td= person.real_name
|
||||
%h1
|
||||
search results for
|
||||
%u= params[:q]
|
||||
|
||||
%td= person.diaspora_handle
|
||||
%td= person.url
|
||||
|
||||
-if current_user.friends.include? person
|
||||
|
||||
- elsif person.id == current_user.person.id
|
||||
%td
|
||||
%td that's you!
|
||||
-elsif current_user.pending_requests.find_by_person_id(person.id)
|
||||
%td
|
||||
%td ^-you have a friend request from this person
|
||||
-elsif current_user.pending_requests.find_by_url(person.receive_url)
|
||||
%td
|
||||
%td friend request pending
|
||||
-else
|
||||
%td
|
||||
%td
|
||||
= form_for Request.new do |f|
|
||||
= f.select(:aspect_id, @aspects_dropdown_array)
|
||||
= f.hidden_field :destination_url, :value => person.diaspora_handle
|
||||
= f.submit "add friend"
|
||||
= will_paginate @people
|
||||
%ul#stream
|
||||
- for person in @people
|
||||
= render 'people/person', :person => person
|
||||
|
||||
= will_paginate @people
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
|
||||
- content_for :page_title do
|
||||
= @person.real_name
|
||||
profile
|
||||
|
||||
- content_for :left_pane do
|
||||
#profile
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#aspect_nav
|
||||
%ul
|
||||
- for aspect in @aspects
|
||||
%li{:id => aspect.id, :class => ("selected" if current_aspect?(aspect))}
|
||||
%li{:class => ("selected" if current_aspect?(aspect))}
|
||||
= link_for_aspect aspect
|
||||
|
||||
%ul{ :style => "position:absolute;right:0;bottom:0.01em;"}
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
= link_to "All Aspects", root_url
|
||||
|
||||
%li{ :style => "margin-right:0;", :class => ("selected" if @aspect == :manage)}
|
||||
= link_to ( (@request_count == 0)? "manage" : "manage (#{@request_count})"), {:controller => :aspects, :action => :manage}, :class => "edit_aspect_button", :class => new_request(@request_count), :title => "Manage your Aspects"
|
||||
= link_to ( (@request_count == 0)? "Manage Aspects" : "Manage Aspects (#{@request_count})"), {:controller => :aspects, :action => :manage}, :class => "edit_aspect_button", :class => new_request(@request_count), :title => "Manage your Aspects"
|
||||
|
||||
.yo{ :style => "display:none;"}
|
||||
#add_aspect_pane
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
- if @aspect == :all
|
||||
= link_to "All Aspects", root_path
|
||||
- elsif @aspect == :manage
|
||||
= link_to "Manage Aspects", root_path
|
||||
= "Manage Aspects"
|
||||
- else
|
||||
= link_to @aspect.name, @aspect
|
||||
|
||||
|
|
|
|||
|
|
@ -13,13 +13,12 @@
|
|||
= auto_link sanitize post.message
|
||||
|
||||
.info
|
||||
= link_to(how_long_ago(post), object_path(post))
|
||||
%span.time= link_to(how_long_ago(post), object_path(post))
|
||||
\--
|
||||
= link_to "show comments (#{post.comments.count})", '#', :class => "show_post_comments"
|
||||
|
||||
= render "comments/comments", :post => post
|
||||
|
||||
|
||||
- if current_user.owns?(post)
|
||||
.destroy_link
|
||||
= link_to 'Delete', status_message_path(post), :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "delete"
|
||||
|
|
|
|||
|
|
@ -3,20 +3,14 @@
|
|||
-# the COPYRIGHT file.
|
||||
|
||||
|
||||
- title "Status Message"
|
||||
|
||||
%p
|
||||
%strong Message:
|
||||
= @status_message.message
|
||||
%h1
|
||||
= link_to @status_message.person.real_name, @status_message.person
|
||||
= auto_link sanitize @status_message.message
|
||||
|
||||
%p
|
||||
%strong Owner:
|
||||
= @status_message.person.real_name
|
||||
|
||||
%h4= "comments (#{@status_message.comments.count})"
|
||||
= render "comments/comments", :post => @status_message
|
||||
|
||||
%p
|
||||
= link_to "Destroy", @status_message, :confirm => 'Are you sure?', :method => :delete
|
||||
|
|
||||
= link_to "View All", status_messages_path
|
||||
- if current_user.owns? @status_message
|
||||
= link_to "Destroy", @status_message, :confirm => 'Are you sure?', :method => :delete
|
||||
|
|
|
|||
|
|
@ -53,10 +53,6 @@
|
|||
= p.label :last_name
|
||||
= p.text_field :last_name, :value => @profile.last_name
|
||||
|
||||
%p
|
||||
= f.label :email
|
||||
= f.text_field :email
|
||||
|
||||
#submit_block
|
||||
= link_to "Cancel", root_path
|
||||
or
|
||||
|
|
|
|||
|
|
@ -7,18 +7,27 @@
|
|||
development:
|
||||
debug: false
|
||||
socket_debug : false
|
||||
socket_host: 0.0.0.0
|
||||
socket_port: 8080
|
||||
socket_collection_name: 'websocket'
|
||||
pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
mongo_host: 'localhost'
|
||||
mongo_post: 27017
|
||||
|
||||
test:
|
||||
debug: false
|
||||
socket_debug : false
|
||||
socket_host: 0.0.0.0
|
||||
socket_port: 8081
|
||||
pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
mongo_host: 'localhost'
|
||||
mongo_post: 27017
|
||||
|
||||
production:
|
||||
debug: false
|
||||
socket_debug : false
|
||||
socket_host: 0.0.0.0
|
||||
socket_port: 8080
|
||||
pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
mongo_host: 'localhost'
|
||||
mongo_post: 27017
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
if ENV['MONGOHQ_URL']
|
||||
MongoMapper.config = {RAILS_ENV => {'uri' => ENV['MONGOHQ_URL']}}
|
||||
else
|
||||
MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
|
||||
MongoMapper.connection = Mongo::Connection.new(APP_CONFIG['mongo_host'], APP_CONFIG['mongo_port'])
|
||||
end
|
||||
|
||||
MongoMapper.database = "diaspora-#{Rails.env}"
|
||||
|
|
@ -16,3 +16,4 @@ if defined?(PhusionPassenger)
|
|||
end
|
||||
end
|
||||
|
||||
Magent.connection = Mongo::Connection.new(APP_CONFIG['mongo_host'], APP_CONFIG['mongo_port'])
|
||||
|
|
|
|||
10
config/locales/cs.yml
Normal file
10
config/locales/cs.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for Lithuanian. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
cs:
|
||||
hello: "Dobrý Den"
|
||||
116
config/locales/de.yml
Normal file
116
config/locales/de.yml
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Localization file for German. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
de:
|
||||
hello: "Hallo Welt"
|
||||
layouts:
|
||||
application:
|
||||
edit_profile: "Profil bearbeiten"
|
||||
logout: "Abmelden"
|
||||
shared:
|
||||
aspect_nav:
|
||||
all_aspects: "Alle Aspekte"
|
||||
manage: "Verwalten"
|
||||
manage_your_aspects: "Aspekte verwalten"
|
||||
sub_header:
|
||||
all_aspects: "Alle Aspekte"
|
||||
manage_aspects: "Aspekte verwalten"
|
||||
publisher:
|
||||
share: "Teilen"
|
||||
aspect_friends:
|
||||
add_friends: "Freunde hinzufügen"
|
||||
albums:
|
||||
album:
|
||||
you: "dir"
|
||||
new_album:
|
||||
create: "erstellen"
|
||||
add_a_new_album: "Album hinzufügen"
|
||||
show:
|
||||
edit_album: "Album bearbeiten"
|
||||
albums: "Alben"
|
||||
updated: "aktualisiert"
|
||||
by: "von"
|
||||
edit:
|
||||
editing: "Bearbeite"
|
||||
updated: "geändert"
|
||||
are_you_sure: "Bist du sicher?"
|
||||
delete_album: "Album löschen"
|
||||
cancel: "Abbrechen"
|
||||
index:
|
||||
home: "Startseite"
|
||||
new_album: "Neues Album"
|
||||
aspects:
|
||||
index:
|
||||
photos: "Fotos"
|
||||
show:
|
||||
photos: "Fotos"
|
||||
manage:
|
||||
add_a_new_aspect: "Neuen Aspekt erstellen"
|
||||
add_a_new_friend: "Freund hinzufügen"
|
||||
show: "Anzeigen"
|
||||
update_aspects: "Aspekte aktualisieren"
|
||||
requests: "Anfragen"
|
||||
ignore_remove: "Ignorieren/Entfernen"
|
||||
new_aspect:
|
||||
create: "Erstellen"
|
||||
users:
|
||||
edit:
|
||||
cancel: "Abbrechen"
|
||||
update_profile: "Profil aktualisieren"
|
||||
home: "Startseite"
|
||||
diaspora_username: "Diaspora Benutzername"
|
||||
info: "Info"
|
||||
picture: "Bild"
|
||||
editing_profile: "Profil bearbeiten"
|
||||
albums: "Alben"
|
||||
comments:
|
||||
comment:
|
||||
# this won't work in german at all. Needs more thorough I18n
|
||||
ago: "ago"
|
||||
new_comment:
|
||||
comment: "Kommentar"
|
||||
photos:
|
||||
show:
|
||||
prev: "zurück"
|
||||
full_size: "volle Größe"
|
||||
next: "vor"
|
||||
edit_photo: "Foto bearbeiten"
|
||||
delete_photo: "Foto löschen"
|
||||
are_you_sure: "Bist du sicher?"
|
||||
comments: "Kommentare"
|
||||
edit:
|
||||
editing: "Bearbeite"
|
||||
are_you_sure: "Bist du sicher?"
|
||||
delete_photo: "Foto löschen"
|
||||
photo:
|
||||
show_comments: "Kommentare anzeigen"
|
||||
new:
|
||||
new_photo: "Foto erstellen"
|
||||
back_to_list: "Zurück zur Liste"
|
||||
post_it: "Hochladen"
|
||||
registrations:
|
||||
new:
|
||||
sign_up: "Anmelden"
|
||||
status_messages:
|
||||
new_status_message:
|
||||
tell_me_something_good: "Erzähl' mir was schönes!"
|
||||
oh_yeah: "Hey, super!"
|
||||
status_message:
|
||||
show_comments: "Kommentare anzeigen"
|
||||
delete: "Löschen"
|
||||
are_you_sure: "Bist du sicher?"
|
||||
show:
|
||||
status_message: "Statusmeldung"
|
||||
comments: "Kommentare"
|
||||
are_you_sure: "Bist du sicher?"
|
||||
destroy: "Löschen"
|
||||
view_all: "Alle anzeigen"
|
||||
message: "Nachricht"
|
||||
owner: "Besitzer"
|
||||
|
||||
|
||||
41
config/locales/devise.cs.yml
Normal file
41
config/locales/devise.cs.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
cs:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "nenalezeno"
|
||||
already_confirmed: "již bylo potvrzeno"
|
||||
not_locked: "nebylo zamčeno"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Pro pokračování se musíte přihlásit nebo si vytvořit účet.'
|
||||
unconfirmed: 'Před pokračováním musíte potvrdit svůj účet.'
|
||||
locked: 'Váš účet je uzamčen.'
|
||||
invalid: 'Neplatný email nebo heslo.'
|
||||
invalid_token: 'Neplatný autentizační token.'
|
||||
timeout: 'Vaše sezení vypršelo, pro pokračování se prosím přihlašte znovu.'
|
||||
inactive: 'Váš účet ještě nebyl aktivován.'
|
||||
sessions:
|
||||
signed_in: 'Přihlášení proběhlo úspěšně.'
|
||||
signed_out: 'Odhlášení proběhlo úspěšně.'
|
||||
passwords:
|
||||
send_instructions: 'Běhěm několika minut obdržíte email s instrukcemi k resetnutí hesla.'
|
||||
updated: 'Vaše heslo bylo úspěšně změněno. Nyní jste přihlášeni'
|
||||
confirmations:
|
||||
send_instructions: 'Během několika minut obdržíte email s instrukcemi k potvrzení vašeho účtu.'
|
||||
confirmed: 'Váš účet byl uspěšně potvrzen. Nyní jste přihlášeni.'
|
||||
registrations:
|
||||
signed_up: 'Úspěšně jste vytvořili účet. Pokud je tak server nastaven, byl vám zaslán potvrzovací email.'
|
||||
updated: 'Úspěšně jste upravili svůj účet.'
|
||||
destroyed: 'Sbohem! Váš účet byl úspěšně zrušen. Brzy naviděnou.'
|
||||
unlocks:
|
||||
send_instructions: 'Během několika minut obdržíte email s instrukcemi k odemknutí vašeho účtu.'
|
||||
unlocked: 'Váš účet byl úspěšně odemknut. Nyní jste přihlášeni.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instrukce k potvrzení'
|
||||
reset_password_instructions: 'Instrukce k resetnutí hesla'
|
||||
unlock_instructions: 'Instrukce k odemčení'
|
||||
41
config/locales/devise.de.yml
Normal file
41
config/locales/devise.de.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
de:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "nicht gefunden"
|
||||
already_confirmed: "wurde bereits bestätigt"
|
||||
not_locked: "war nicht gesperrt"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Du musst dich anmelden oder registrieren um fortzufahren.'
|
||||
unconfirmed: 'Du musst dein Konto bestätigen um fortzufahren.'
|
||||
locked: 'Dein Konto ist gesperrt.'
|
||||
invalid: 'Ungültige E-Mail-Adresse oder Passwort.'
|
||||
invalid_token: 'Ungültiger Authentifizierungstoken.'
|
||||
timeout: 'Deine Sitzung ist abgelaufen, bitte melde dich erneut an um fortzufahren.'
|
||||
inactive: 'Dein Konto wurde noch nicht aktiviert.'
|
||||
sessions:
|
||||
signed_in: 'Erfolgreich angemeldet.'
|
||||
signed_out: 'Erfolgreich abgemeldet.'
|
||||
passwords:
|
||||
send_instructions: 'Du wirst in ein paar Minuten eine E-Mail erhalten, die beschreibt, wie du dein Passwort zurücksetzt.'
|
||||
updated: 'Dein Passwort wurde erfolgreich geändert. Du bist nun angemeldet.'
|
||||
confirmations:
|
||||
send_instructions: 'Du wirst in ein paar Minuten eine E-Mail erhalten, die beschreibt, wie du dein Konto bestätigst.'
|
||||
confirmed: 'Dein Konto wurde erfolgreich bestätigt. Du bist nun angemeldet.'
|
||||
registrations:
|
||||
signed_up: 'Du hast dich erfolgreich registriert. Sofern aktiviert, wurde dir eine Bestätigung per E-Mail gesendet.'
|
||||
updated: 'Dein Konto wurde aktualisiert.'
|
||||
destroyed: 'Tschüss! Dein Konto wurde erfolgreich gekündigt. Wir hoffen dich bald wiederzusehen.'
|
||||
unlocks:
|
||||
send_instructions: 'Du wirst in ein paar Minuten eine E-Mail erhalten, die beschreibt, wie du dein Konto entsperren kannst.'
|
||||
unlocked: 'Dein Konto wurde erfolgreich entsperrt. Du bist nun angemeldet.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instruktionen zur Bestätigung'
|
||||
reset_password_instructions: 'Instruktionen zum Zurücksetzen des Passworts'
|
||||
unlock_instructions: 'Instruktionen zum Entsperren'
|
||||
|
|
@ -18,10 +18,10 @@ es:
|
|||
signed_in: 'Has ingresado correctamente.'
|
||||
signed_out: 'Has salido correctamente.'
|
||||
passwords:
|
||||
send_instructions: 'Recibirás un email con instrucciones para cambiar tu contraseña en poco minutos.'
|
||||
send_instructions: 'Recibirás un email con instrucciones para cambiar tu contraseña en pocos minutos.'
|
||||
updated: 'Tu contraseña ha sido modificada. Ya has accedido a tu cuenta.'
|
||||
confirmations:
|
||||
send_instructions: 'Recibirás un email con instrucciones para confirmar tu cuenta en poco minutos.'
|
||||
send_instructions: 'Recibirás un email con instrucciones para confirmar tu cuenta en pocos minutos.'
|
||||
confirmed: 'Tu cuenta ha sido confirmada. Ya has accedido a tu cuenta.'
|
||||
registrations:
|
||||
signed_up: 'Te has registrado correctamente. Si está disponible, te habremos enviado un email de confirmación.'
|
||||
|
|
|
|||
41
config/locales/devise.fi.yml
Normal file
41
config/locales/devise.fi.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
# Translator: jarkko moilanen, jm60697@gmail.com
|
||||
|
||||
fi:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "ei löytynyt"
|
||||
already_confirmed: "oli jo varmistettu"
|
||||
not_locked: "ei ollut lukittu"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Kirjaudu tai rekisteröidy ennen kuin voit jatkaa.'
|
||||
unconfirmed: 'Sinun täytyy vahvistaa käyttäjätilisi ennen kuin voit jatkaa'
|
||||
locked: 'Käyttäjätilisi on lukittu.'
|
||||
invalid: 'Väärä sähköpostiosoite tai salasana.'
|
||||
invalid_token: 'Viallinen todennus.'
|
||||
timeout: 'Istunto on vanhentunut, kirjaudu uudelleen.'
|
||||
inactive: 'Käyttätiliäsi ei ole vielä vahvistettu.'
|
||||
sessions:
|
||||
signed_in: 'Sisäänkirjautuminen onnistui.'
|
||||
signed_out: 'Uloskirjautuminen onnistui.'
|
||||
passwords:
|
||||
send_instructions: 'Saat hetken päästä sähköpostiisi ohjeet siitä miten määrität salasanasi uudelleen.'
|
||||
updated: 'Salasanasi on vaihdettu. Olet nyt kirjautunut sisään.'
|
||||
confirmations:
|
||||
send_instructions: 'Saat hetken päästä sähköpostiisi ohjeet siitä miten vahvistat käyttäjätilisi luonnin.'
|
||||
confirmed: 'Käyttäjätilisi luonti on vahvistettu. Olet nyt kirjautunut sisään.'
|
||||
registrations:
|
||||
signed_up: 'Käyttäjätilin luominen onnistui. Mahdollinen vahvistuspyyntö on lähetetty sähköpostiisi.'
|
||||
updated: 'Käyttäjätilisi on päivitetty.'
|
||||
destroyed: 'Näkemiin! Käyttäjätilisi on poistettu. Toivottavasti näemme sinut pian uudelleen.'
|
||||
unlocks:
|
||||
send_instructions: 'Saat muutaman minuutin kuluttua sähköpostiisi ohjeet siitä miten avaat lukituksen.'
|
||||
unlocked: 'Käyttäjätilisi lukitus on avattu. Olet nyt kirjautunut sisään.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Ohjeet vahvistamiseen/todentamiseen'
|
||||
reset_password_instructions: 'Ohjeet salananan uudelleenmäärittämiseksi'
|
||||
unlock_instructions: 'Ohjeet lukituksen poistamiseksi'
|
||||
41
config/locales/devise.fr.yml
Normal file
41
config/locales/devise.fr.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
fr:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "introuvable"
|
||||
already_confirmed: "a déjà été confirmé"
|
||||
not_locked: "n’a pas été verrouillé"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Vous devez vous connecter ou vous inscrire avant de continuer.'
|
||||
unconfirmed: 'Vous devez confirmer votre compte avant de continuer.'
|
||||
locked: 'Votre compte est verrouillé.'
|
||||
invalid: 'E-mail ou mot de passe invalide.'
|
||||
invalid_token: 'Jeton d’authentification invalide.'
|
||||
timeout: 'Votre session a expiré, veuillez vous connecter de nouveau afin de continuer.'
|
||||
inactive: 'Votre compte n’a pas encore été activé.'
|
||||
sessions:
|
||||
signed_in: 'Connecté avec succès.'
|
||||
signed_out: 'Déconnecté avec succès.'
|
||||
passwords:
|
||||
send_instructions: 'Vous allez recevoir dans quelques minutes un e-mail contenant des instructions vous expliquant comment réinitialiser votre mot de passe.'
|
||||
updated: 'Votre mot de passe a été modifié avec succès. Vous êtes à présent connecté.'
|
||||
confirmations:
|
||||
send_instructions: 'Vous allez recevoir dans quelques minutes un e-mail contenant des instructions vous expliquant comment confirmer votre compte.'
|
||||
confirmed: 'Votre compte a été confirmé avec succès. Vous êtes à présent connecté.'
|
||||
registrations:
|
||||
signed_up: 'Vous vous êtes inscrit avec succès. Si activée, une confirmation a été envoyée sur votre adresse e-mail.'
|
||||
updated: 'Vous avez mis à jour votre compte avec succès.'
|
||||
destroyed: 'Au revoir ! Votre compte a été résilié avec succès. Nous espérons vous revoir très bientôt.'
|
||||
unlocks:
|
||||
send_instructions: 'Vous allez recevoir dans quelques minutes un e-mail contenant des instructions vous expliquant comment déverrouiller votre compte.'
|
||||
unlocked: 'Votre compte a été déverrouillé avec succès. Vous êtes à présent connecté.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instructions de confirmation'
|
||||
reset_password_instructions: 'Réinitialiser les instructions du mot de passe'
|
||||
unlock_instructions: 'Instructions de déverrouillage'
|
||||
41
config/locales/devise.it.yml
Normal file
41
config/locales/devise.it.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
it:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "non trovato"
|
||||
already_confirmed: "è già stato confermato"
|
||||
not_locked: "non era bloccato"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: "Devi effettuare l'accesso o registrarti prima di continuare."
|
||||
unconfirmed: "Devi confermare il tuo account prima di continuare."
|
||||
locked: "Il tuo account è bloccato."
|
||||
invalid: "Email o password errati."
|
||||
invalid_token: "Token di autenticazione errato."
|
||||
timeout: "La tua sessione è scaduta, effettua di nuovo l'accesso per continuare."
|
||||
inactive: "Il tuo account non è ancora stato attivato."
|
||||
sessions:
|
||||
signed_in: "Accesso effettuato con successo."
|
||||
signed_out: "Disconnessione effettuata con successo."
|
||||
passwords:
|
||||
send_instructions: "Tra pochi minuti riceverai una email con le istruzioni su come cambiare la tua password."
|
||||
updated: "La tua password è stata modificata. Hai appena effettuato l'accesso."
|
||||
confirmations:
|
||||
send_instructions: "Tra pochi minuti riceverai una email per confermare il tuo account."
|
||||
confirmed: "Il tuo account è stato confermato con successo. Hai appena effettuato l'accesso."
|
||||
registrations:
|
||||
signed_up: "Ti sei iscritto. Se il servizio è disponibile, riceverai una conferma via email."
|
||||
updated: "Hai aggiornato il tuo account."
|
||||
destroyed: "Ciao! Il tuo account è stato rimosso. Speriamo che tu torni a trovarci presto."
|
||||
unlocks:
|
||||
send_instructions: "Tra pochi minuti riceverai una mail con le istruzioni su come sbloccare il tuo account."
|
||||
unlocked: "Il tuo account è stato sbloccato. Hai appena effettuato l'accesso."
|
||||
mailer:
|
||||
confirmation_instructions: "Istruzioni sulla conferma"
|
||||
reset_password_instructions: "Istruzioni su come cambiare la password"
|
||||
unlock_instructions: "Istruzioni su come sbloccare l'account"
|
||||
41
config/locales/devise.pl.yml
Normal file
41
config/locales/devise.pl.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
pl:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "nie znaleziono"
|
||||
already_confirmed: "potwierdzono wcześniej"
|
||||
not_locked: "nie był zablokowany"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'By kontynuować musisz się zalogować lub zarejestrować.'
|
||||
unconfirmed: 'Musisz aktywować swoje konto.'
|
||||
locked: 'Twoje konto jest zablokowane.'
|
||||
invalid: 'Nieprawidłowy adres email lub hasło.'
|
||||
invalid_token: 'Nieprawidłowy kod identyfikacyjny.'
|
||||
timeout: 'Twoja sesja wygasła, zaloguj się ponownie by kontynuować.'
|
||||
inactive: 'Twoje konto nie zostało jeszcze aktywowane.'
|
||||
sessions:
|
||||
signed_in: 'Zalogowano pomyślnie.'
|
||||
signed_out: 'Wylogowano.'
|
||||
passwords:
|
||||
send_instructions: 'W ciągu kilku minut otrzymasz maila zawierającego instrukcjie dotyczące zresetowania hasła.'
|
||||
updated: 'Twoje hasło zostało zmienione, zostałeś zalogowany.'
|
||||
confirmations:
|
||||
send_instructions: 'W ciągu kilku minut otrzymasz maila zawierającego instrukcje dotyczące aktywacji konta.'
|
||||
confirmed: 'Twoje konto zostało aktywowane, zostałeś zalogowany.'
|
||||
registrations:
|
||||
signed_up: 'Zostałeś zarejestrowany. Jeśli aktywowano odpowiednią opcję, wyślemy do Ciebie email potwierdzający rejestrację.'
|
||||
updated: 'Pomyślnie zaktualizowano informacje o Twoim koncie.'
|
||||
destroyed: 'Żegnaj! Twoje konto zostało usunięte.'
|
||||
unlocks:
|
||||
send_instructions: 'W ciągu kilku minut otrzymasz email z instrukcjami odblokowania konta.'
|
||||
unlocked: 'Twoje konto zostało odblokowane, jesteś zalogowany.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instrukcje aktywacji'
|
||||
reset_password_instructions: 'Instrukcje zmiany hasła'
|
||||
unlock_instructions: 'Instrukcje odblokowania'
|
||||
41
config/locales/devise.pt-BR.yml
Normal file
41
config/locales/devise.pt-BR.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
pt-BR:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "não encontrado"
|
||||
already_confirmed: "já foi confirmado"
|
||||
not_locked: "não foi bloqueado"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Você precisa fazer login ou se cadastrar antes de continuar.'
|
||||
unconfirmed: 'Você tem que confirmar a sua conta antes de continuar.'
|
||||
locked: 'Sua conta está bloqueada.'
|
||||
invalid: 'E-mail ou senha inválida.'
|
||||
invalid_token: 'Token de autenticação inválida.'
|
||||
timeout: 'Sua sessão expirou, por favor logue-se novamente para continuar.'
|
||||
inactive: 'Sua conta ainda não foi ativada.'
|
||||
sessions:
|
||||
signed_in: 'Você entrou com sucesso.'
|
||||
signed_out: 'Você saiu com sucesso.'
|
||||
passwords:
|
||||
send_instructions: 'Você receberá um email com instruções sobre como redefinir sua senha em alguns minutos.'
|
||||
updated: 'Sua senha foi alterada com sucesso.'
|
||||
confirmations:
|
||||
send_instructions: 'Você receberá um email em alguns minutos com as instruções sobre como confirmar a sua conta.'
|
||||
confirmed: 'Sua conta foi confirmada com sucesso. Você já pode continuar navegando.'
|
||||
registrations:
|
||||
signed_up: 'Você se inscreveu com êxito. Se habilitado, a confirmação foi enviada para seu e-mail.'
|
||||
updated: 'Você atualizou a sua conta com sucesso.'
|
||||
destroyed: 'Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve.'
|
||||
unlocks:
|
||||
send_instructions: 'Você receberá um email em alguns minutos com as instruções sobre como desbloquear a sua conta.'
|
||||
unlocked: 'Sua conta foi desbloqueada com sucesso. Você já pode continuar navegando.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instruções para confirmarção'
|
||||
reset_password_instructions: 'Instruções para redefinir a senha'
|
||||
unlock_instructions: 'Instruções para o desbloqueio'
|
||||
41
config/locales/devise.pt-PT.yml
Normal file
41
config/locales/devise.pt-PT.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
pt-PT:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "não foi encontrado"
|
||||
already_confirmed: "já foi confirmado"
|
||||
not_locked: "não foi bloqueado"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Faça login ou registre-se antes de continuar.'
|
||||
unconfirmed: 'Confirme a sua conta antes de continuar.'
|
||||
locked: 'A sua conta foi bloqueada.'
|
||||
invalid: 'Endereço de correio ou senha inválida.'
|
||||
invalid_token: 'Token de autenticação inválido.'
|
||||
timeout: 'A sua sessão expirou, por favor faça login novamente para continuar.'
|
||||
inactive: 'A sua conta ainda não foi activada.'
|
||||
sessions:
|
||||
signed_in: 'Login com sucesso.'
|
||||
signed_out: 'Logout com sucesso.'
|
||||
passwords:
|
||||
send_instructions: 'Vai receber um email com instruções sobre como alterar a sua senha dentro de alguns minutos.'
|
||||
updated: 'A sua senha foi alterada com sucesso. Está on-line.'
|
||||
confirmations:
|
||||
send_instructions: 'Vai receber um email com instruções sobre como confirmar a sua conta dentro de alguns minutos.'
|
||||
confirmed: 'A sua conta foi confirmada com sucesso. Está on-line.'
|
||||
registrations:
|
||||
signed_up: 'Registou-se com sucesso. Se ligado, a confirmação foi enviada para o seu email.'
|
||||
updated: 'Actualizou a sua conta com sucesso.'
|
||||
destroyed: 'Adeus! A sua conta foi cancelada com sucesso. Esperamos vê-lo de novo brevemente.'
|
||||
unlocks:
|
||||
send_instructions: 'Vai receber uma mensagem sobre como desbloquear a sua conta dentro de alguns minutos.'
|
||||
unlocked: 'A sua conta foi desbloqueada com sucesso. Está on-line.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instruções de confirmação'
|
||||
reset_password_instructions: 'Instruções para alterar a sua senha'
|
||||
unlock_instructions: 'Instruções para desbloquear'
|
||||
41
config/locales/devise.ru.yml
Normal file
41
config/locales/devise.ru.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
ru:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "не найден(о)"
|
||||
already_confirmed: "уже подтвержден(о)"
|
||||
not_locked: "не заблокирован(о)"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Вам нужно войти либо зарегистрироваться, чтобы продолжить.'
|
||||
unconfirmed: 'Вам нужно подтвердить вашу учётную запись, чтобы продолжить.'
|
||||
locked: 'Ваша учётная запись заблокирована.'
|
||||
invalid: 'Неверный e-mail или пароль.'
|
||||
invalid_token: 'Неверный ключ аутентификации.'
|
||||
timeout: 'Срок вашего сеанса истёк, пожалуйста, войдите в систему снова.'
|
||||
inactive: 'Ваша учётная запись ещё не активирована.'
|
||||
sessions:
|
||||
signed_in: 'Вход в систему выполнен успешно.'
|
||||
signed_out: 'Выход из системы выполнен успешно.'
|
||||
passwords:
|
||||
send_instructions: 'Вы получите e-mail с указаниями по сбросу пароля в течение нескольких минут.'
|
||||
updated: 'Ваш пароль был изменён. Вы вошли в систему.'
|
||||
confirmations:
|
||||
send_instructions: 'Вы получите e-mail с указаниями по подтверждению учётной записи в течение нескольких минут.'
|
||||
confirmed: 'Ваша учётная запись была подтверждена. Вы вошли в систему.'
|
||||
registrations:
|
||||
signed_up: 'Регистрация выполнена успешно. В зависимости от настроек, вам может прийти e-mail с подтверждением.'
|
||||
updated: 'Обновление вашей учётной записи выполнено успешно.'
|
||||
destroyed: 'До свидания! Ваша учётная запись была удалена. Надеемся, что вскоре вас увидим снова.'
|
||||
unlocks:
|
||||
send_instructions: 'Вы получите e-mail с указаниями по разблокированию учётной записи в течение нескольких минут.'
|
||||
unlocked: 'Ваша учётная запись была разблокирована. Вы вошли в систему.'
|
||||
mailer:
|
||||
confirmation_instructions: 'Подтверждение учётной записи'
|
||||
reset_password_instructions: 'Сброс пароля'
|
||||
unlock_instructions: 'Разблокирование учётной записи'
|
||||
40
config/locales/devise.sv.yml
Normal file
40
config/locales/devise.sv.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
sv:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "kan ej hitta"
|
||||
not_locked: "var ej låst"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Du måste logga in innan du kan fortsätta.'
|
||||
unconfirmed: 'Du måste verifiera ditt konto innan du kan fortsätta.'
|
||||
locked: 'Ditt konto är låst.'
|
||||
invalid: 'Felaktig användare eller lösenord.'
|
||||
invalid_token: 'Ogiltig identifiering.'
|
||||
timeout: 'Din session är avslutad, var vänlig logga in igen.'
|
||||
inactive: 'Ditt konto är inte aktiverat.'
|
||||
sessions:
|
||||
signed_in: 'Inloggning ok.'
|
||||
signed_out: 'Utloggning ok.'
|
||||
passwords:
|
||||
send_instructions: 'Du kommer att få ett ebrev med instruktioner för att återställa lösenordet inom några minuter.'
|
||||
updated: 'Ditt lösenord har ändrats och du är inloggad.'
|
||||
confirmations:
|
||||
send_instructions: 'Du kommer att få ett ebrev med instruktioner för att verifiera ditt konto inom några minuter.'
|
||||
confirmed: 'Ditt konto har verifierats och du är inloggad.'
|
||||
registrations:
|
||||
signed_up: 'Du har skapat ett konto. Beroende på inställningar kan ett ebrev ha skickats till dig.'
|
||||
updated: 'Ditt konto har uppdateras.'
|
||||
destroyed: 'Ditt konto är avslutat. Välkommen åter!'
|
||||
unlocks:
|
||||
send_instructions: 'Du kommer att få ett ebrev med instruktioner för att låsa upp ditt konto inom några minuter.'
|
||||
unlocked: 'Ditt konto har är nu upplåst och du är inloggad'
|
||||
mailer:
|
||||
confirmation_instructions: 'Instruktioner för att verifiera ditt konto.'
|
||||
reset_password_instructions: 'Instruktioner för att terställa ditt lösenord.'
|
||||
unlock_instructions: 'Instruktioner för att låsa upp ditt konto.'
|
||||
|
|
@ -8,3 +8,136 @@
|
|||
|
||||
en:
|
||||
hello: "Hello world"
|
||||
layouts:
|
||||
application:
|
||||
edit_profile: "edit profile"
|
||||
logout: "logout"
|
||||
shared:
|
||||
aspect_nav:
|
||||
all_aspects: "All Aspects"
|
||||
manage: "Manage"
|
||||
manage_your_aspects: "Manage your Aspects"
|
||||
sub_header:
|
||||
all_aspects: "All Aspects"
|
||||
manage_aspects: "Manage Aspects"
|
||||
publisher:
|
||||
share: "Share"
|
||||
aspect_friends:
|
||||
add_friends: "add friends"
|
||||
albums:
|
||||
album:
|
||||
you: "you"
|
||||
new_album:
|
||||
create: "create"
|
||||
add_a_new_album: "Add a new album"
|
||||
show:
|
||||
edit_album: "Edit Album"
|
||||
albums: "albums"
|
||||
updated: "updated"
|
||||
by: "by"
|
||||
edit:
|
||||
editing: "Editing"
|
||||
updated: "updated"
|
||||
are_you_sure: "Are you sure?"
|
||||
delete_album: "Delete Album"
|
||||
cancel: "Cancel"
|
||||
index:
|
||||
home: "home"
|
||||
new_album: "New Album"
|
||||
create:
|
||||
success: "You've created an album called %{name}."
|
||||
update:
|
||||
success: "Album %{name} successfully edited."
|
||||
failure: "Failed to edit album %{name}."
|
||||
destroy:
|
||||
success: "Album %{name} deleted."
|
||||
aspects:
|
||||
index:
|
||||
photos: "photos"
|
||||
show:
|
||||
photos: "photos"
|
||||
manage:
|
||||
add_a_new_aspect: "Add a new aspect"
|
||||
add_a_new_friend: "Add a new friend"
|
||||
show: "Show"
|
||||
update_aspects: "Update Aspects"
|
||||
requests: "Requests"
|
||||
ignore_remove: "Ignore/Remove"
|
||||
new_aspect:
|
||||
add_a_new_aspect: "Add a new aspect"
|
||||
create: "Create"
|
||||
create:
|
||||
success:"Click on the plus on the left side to tell Diaspora who can see your new aspect."
|
||||
users:
|
||||
edit:
|
||||
cancel: "Cancel"
|
||||
update_profile: "Update Profile"
|
||||
home: "Home"
|
||||
diaspora_username: "DIASPORA USERNAME"
|
||||
info: "Info"
|
||||
picture: "Picture"
|
||||
editing_profile: "Editing profile"
|
||||
albums: "Albums"
|
||||
you_dont_have_any_photos: "You don't have any photos! Go to the"
|
||||
page_to_upload_some: "page to upload some."
|
||||
comments:
|
||||
comment:
|
||||
ago: "ago"
|
||||
new_comment:
|
||||
comment: "Comment"
|
||||
photos:
|
||||
show:
|
||||
prev: "prev"
|
||||
full_size: "full size"
|
||||
next: "next"
|
||||
edit_photo: "Edit Photo"
|
||||
delete_photo: "Delete Photo"
|
||||
are_you_sure: "Are you sure?"
|
||||
comments: "comments"
|
||||
edit:
|
||||
editing: "Editing"
|
||||
are_you_sure: "Are you sure?"
|
||||
delete_photo: "Delete Photo"
|
||||
photo:
|
||||
show_comments: "show comments"
|
||||
posted_a_new_photo_to: "posted a new photo to"
|
||||
new:
|
||||
new_photo: "New Photo"
|
||||
back_to_list: "Back to List"
|
||||
post_it: "post it!"
|
||||
registrations:
|
||||
new:
|
||||
sign_up: "Sign up"
|
||||
status_messages:
|
||||
new_status_message:
|
||||
tell_me_something_good: "tell me something good"
|
||||
oh_yeah: "oh yeah!"
|
||||
status_message:
|
||||
show_comments: "show comments"
|
||||
delete: "Delete"
|
||||
are_you_sure: "Are you sure?"
|
||||
show:
|
||||
status_message: "Status Message"
|
||||
comments: "comments"
|
||||
are_you_sure: "Are you sure?"
|
||||
destroy: "Destroy"
|
||||
view_all: "View All"
|
||||
message: "Message"
|
||||
owner: "Owner"
|
||||
people:
|
||||
index:
|
||||
add_friend: "add friend"
|
||||
real_name: "real name"
|
||||
diaspora_handle: "diaspora handle"
|
||||
thats_you: "that's you!"
|
||||
friend_request_pending: "friend request pending"
|
||||
you_have_a_friend_request_from_this_person: "you have a friend request from this person"
|
||||
new:
|
||||
new_person: "New Person"
|
||||
back_to_list: "Back to List"
|
||||
show:
|
||||
last_seen: "last seen: %{how_long_ago}"
|
||||
friends_since: "friends since: %{how_long_ago}"
|
||||
save: "save"
|
||||
are_you_sure: "Are you sure?"
|
||||
remove_friend: "remove friend"
|
||||
10
config/locales/es.yml
Normal file
10
config/locales/es.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for English. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
es:
|
||||
hello: "Hello world"
|
||||
10
config/locales/fi.yml
Normal file
10
config/locales/fi.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
# Translator jarkko moilanen, jm60697@gmail.com
|
||||
|
||||
# Sample localization file for English. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
fi:
|
||||
hello: "Terve, maailma"
|
||||
143
config/locales/fr.yml
Normal file
143
config/locales/fr.yml
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Localization file for French. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
fr:
|
||||
hello: "Bonjour tout le monde"
|
||||
layouts:
|
||||
application:
|
||||
edit_profile: "éditer le profil"
|
||||
logout: "déconnexion"
|
||||
shared:
|
||||
aspect_nav:
|
||||
all_aspects: "Tous les aspects"
|
||||
manage: "Gérer"
|
||||
manage_your_aspects: "Gérer vos aspects"
|
||||
sub_header:
|
||||
all_aspects: "Tous les aspects"
|
||||
manage_aspects: "Gérer les aspects"
|
||||
publisher:
|
||||
share: "Partager"
|
||||
aspect_friends:
|
||||
add_friends: "ajouter des amis"
|
||||
albums:
|
||||
album:
|
||||
you: "vous"
|
||||
new_album:
|
||||
create: "créer"
|
||||
add_a_new_album: "Ajouter un nouvel album"
|
||||
show:
|
||||
edit_album: "Éditer l’album"
|
||||
albums: "albums"
|
||||
updated: "mis à jour"
|
||||
by: "par"
|
||||
edit:
|
||||
editing: "Édition"
|
||||
updated: "mis à jour"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
delete_album: "Supprimer l’album"
|
||||
cancel: "Annuler"
|
||||
index:
|
||||
home: "accueil"
|
||||
new_album: "Nouvel album"
|
||||
create:
|
||||
success: "Tu as créé un album nommé %{name}."
|
||||
update:
|
||||
success: "L’album %{name} a été édité avec succès."
|
||||
failure: "L’édition de l’album %{name} a échoué."
|
||||
destroy:
|
||||
success: "L’album %{name} a été supprimé."
|
||||
aspects:
|
||||
index:
|
||||
photos: "photos"
|
||||
show:
|
||||
photos: "photos"
|
||||
manage:
|
||||
add_a_new_aspect: "Ajouter un nouvel aspect"
|
||||
add_a_new_friend: "Ajouter un nouvel ami"
|
||||
show: "Afficher"
|
||||
update_aspects: "Metre à jour les aspects"
|
||||
requests: "Requêtes"
|
||||
ignore_remove: "Ignorer/Supprimer"
|
||||
new_aspect:
|
||||
add_a_new_aspect: "Ajouter un nouvel aspect"
|
||||
create: "Créer"
|
||||
create:
|
||||
success:"Cliquez sur plus situé sur le côté gauche afin d’en informer Diaspora qui peut voir votre nouvel aspect."
|
||||
users:
|
||||
edit:
|
||||
cancel: "Annuler"
|
||||
update_profile: "Mettre à jour le profil"
|
||||
home: "Accueil"
|
||||
diaspora_username: "NOM D’UTILISATEUR DIASPORA"
|
||||
info: "Information"
|
||||
picture: "Image"
|
||||
editing_profile: "Édition du profil"
|
||||
albums: "Albums"
|
||||
you_dont_have_any_photos: "Vous n’avez aucune photo ! Rendez-vous sur la page"
|
||||
page_to_upload_some: "afin d’en transférer quelques-unes."
|
||||
comments:
|
||||
comment:
|
||||
ago: "il y a"
|
||||
new_comment:
|
||||
comment: "Commentaire"
|
||||
photos:
|
||||
show:
|
||||
prev: "précédent"
|
||||
full_size: "taille réelle"
|
||||
next: "suivant"
|
||||
edit_photo: "Éditer la photo"
|
||||
delete_photo: "Supprimer la photo"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
comments: "commentaires"
|
||||
edit:
|
||||
editing: "Édition"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
delete_photo: "Supprimer la photo"
|
||||
photo:
|
||||
show_comments: "afficher les commentaires"
|
||||
posted_a_new_photo_to: "a publié une nouvelle photo sur"
|
||||
new:
|
||||
new_photo: "Nouvelle photo"
|
||||
back_to_list: "Retourner à la liste"
|
||||
post_it: "publiez-la !"
|
||||
registrations:
|
||||
new:
|
||||
sign_up: "Inscription"
|
||||
status_messages:
|
||||
new_status_message:
|
||||
tell_me_something_good: "dites-moi quelque chose de bien"
|
||||
oh_yeah: "oh ouais !"
|
||||
status_message:
|
||||
show_comments: "afficher les commentaires"
|
||||
delete: "Supprimer"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
show:
|
||||
status_message: "Message d’état"
|
||||
comments: "commentaires"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
destroy: "Détruire"
|
||||
view_all: "Tout voir"
|
||||
message: "Message"
|
||||
owner: "Propriétaire"
|
||||
people:
|
||||
index:
|
||||
add_friend: "ajouter un ami"
|
||||
real_name: "nom réel"
|
||||
diaspora_handle: "maniement de diaspora"
|
||||
thats_you: "c’est vous !"
|
||||
friend_request_pending: "Requête d’ami en attente"
|
||||
you_have_a_friend_request_from_this_person: "vous avez une requête d’ami de la part de cette personne"
|
||||
new:
|
||||
new_person: "Nouvelle personne"
|
||||
back_to_list: "Retourner à la liste"
|
||||
show:
|
||||
last_seen: "dernière connexion : %{how_long_ago}"
|
||||
friends_since: "amis depuis : %{how_long_ago}"
|
||||
save: "sauvegarder"
|
||||
are_you_sure: "Êtes-vous sûr ?"
|
||||
remove_friend: "supprimer un ami"
|
||||
10
config/locales/it.yml
Normal file
10
config/locales/it.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for Italian. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
it:
|
||||
hello: "Ciao mondo!"
|
||||
10
config/locales/pl.yml
Normal file
10
config/locales/pl.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for English. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
pl:
|
||||
hello: "Witaj świecie"
|
||||
10
config/locales/pt-BR.yml
Normal file
10
config/locales/pt-BR.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for Portuguese Brazilian. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
pt-BR:
|
||||
hello: "Olá Mundo"
|
||||
10
config/locales/pt-PT.yml
Normal file
10
config/locales/pt-PT.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for Portuguese Portugal. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
pt-PT:
|
||||
hello: "Olá mundo"
|
||||
10
config/locales/ru.yml
Normal file
10
config/locales/ru.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Sample localization file for English. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
ru:
|
||||
hello: "Привет, мир"
|
||||
10
config/locales/sv.yml
Normal file
10
config/locales/sv.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
# Swedish localization file.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
sv:
|
||||
hello: "Hej"
|
||||
|
|
@ -13,10 +13,11 @@ Diaspora::Application.routes.draw do
|
|||
resources :photos, :except => [:index]
|
||||
resources :albums
|
||||
|
||||
match 'aspects/manage', :to => 'aspects#manage'
|
||||
resources :aspects, :except => [:edit]
|
||||
match 'aspects/move_friends', :to => 'aspects#move_friends', :as => 'move_friends'
|
||||
match 'aspects/move_friend', :to => 'aspects#move_friend', :as => 'move_friend'
|
||||
match 'aspects/manage', :to => 'aspects#manage'
|
||||
resources :aspects, :except => [:edit]
|
||||
|
||||
|
||||
match 'warzombie', :to => "dev_utilities#warzombie"
|
||||
match 'zombiefriends', :to => "dev_utilities#zombiefriends"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ max_conns: 1024
|
|||
require: []
|
||||
|
||||
max_persistent_conns: 512
|
||||
environment: production
|
||||
environment: development
|
||||
servers: 1
|
||||
daemonize: true
|
||||
#chdir: /usr/applications/localhash/current
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
require 'config/environment'
|
||||
|
||||
remote_url = "http://tom.joindiaspora.com/"
|
||||
remote_url = "http://localhost:3000/"
|
||||
#remote_url = "http://localhost:3000/"
|
||||
# Create seed user
|
||||
user = User.instantiate!( :email => "tom@tom.joindiaspora.com",
|
||||
:username => "tom",
|
||||
|
|
|
|||
|
|
@ -86,7 +86,8 @@ module Diaspora
|
|||
|
||||
def remove_friend(bad_friend)
|
||||
raise "Friend not deleted" unless self.friend_ids.delete( bad_friend.id )
|
||||
aspects.each{|g| g.person_ids.delete( bad_friend.id )}
|
||||
aspects.each{|aspect|
|
||||
aspect.person_ids.delete( bad_friend.id )}
|
||||
self.save
|
||||
|
||||
self.raw_visible_posts.find_all_by_person_id( bad_friend.id ).each{|post|
|
||||
|
|
|
|||
|
|
@ -7,14 +7,9 @@
|
|||
module Diaspora
|
||||
module UserModules
|
||||
module Querying
|
||||
def visible_posts_from_others(opts ={})
|
||||
if opts[:from].class == Person
|
||||
Post.where(:person_id => opts[:from].id, :_id.in => self.visible_post_ids)
|
||||
elsif opts[:from].class == Aspect
|
||||
Post.where(:_id.in => opts[:from].post_ids) unless opts[:from].user != self
|
||||
else
|
||||
Post.where(:_id.in => self.visible_post_ids)
|
||||
end
|
||||
|
||||
def find_visible_post_by_id( id )
|
||||
self.raw_visible_posts.find id
|
||||
end
|
||||
|
||||
def visible_posts( opts = {} )
|
||||
|
|
@ -22,6 +17,8 @@ module Diaspora
|
|||
return raw_visible_posts if opts[:by_members_of] == :all
|
||||
aspect = self.aspects.find_by_id( opts[:by_members_of].id )
|
||||
aspect.posts
|
||||
elsif opts[:from]
|
||||
self.raw_visible_posts.find_all_by_person_id(opts[:from].id, :order => 'created_at DESC')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -20,36 +20,14 @@ function decrementRequestsCounter() {
|
|||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
|
||||
$('#move_friends_link').live( 'click', function(){
|
||||
$.post(
|
||||
'/aspects/move_friends',
|
||||
{ 'moves' : $('#aspect_list').data() },
|
||||
function() {
|
||||
$('#aspect_title').html("Groups edited successfully!");
|
||||
}
|
||||
);
|
||||
|
||||
// should the following logic be moved into the $.post() callback?
|
||||
$("#aspect_list").removeData();
|
||||
|
||||
$(".person")
|
||||
.css('background-color','none')
|
||||
.attr('from_aspect_id', function() {
|
||||
return $(this).parent().attr('id')
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$("ul .person .requested_person").draggable({
|
||||
// Multiple classes here won't work
|
||||
$("ul .person").draggable({
|
||||
revert: true
|
||||
});
|
||||
|
||||
// Moved class to logic above - unnec duplicate logic
|
||||
//$("ul .requested_person").draggable({
|
||||
// revert: true
|
||||
//});
|
||||
$("ul .requested_person").draggable({
|
||||
revert: true
|
||||
});
|
||||
|
||||
$(".aspect ul").droppable({
|
||||
hoverClass: 'active',
|
||||
|
|
@ -65,26 +43,24 @@ $(function() {
|
|||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
var $aspect_list = $('#aspect_list'),
|
||||
move = {};
|
||||
|
||||
// This is poor implementation
|
||||
move[ 'friend_id' ] = ui.draggable[0].id; // ui.draggable.attr('id')
|
||||
move[ 'to' ] = $(this)[0].id;// $(this).attr('id');
|
||||
move[ 'from' ] = ui.draggable[0].getAttribute('from_aspect_id'); // ui.draggable.attr('from_aspect_id')
|
||||
|
||||
// if created custom attr's - should be using `data-foo`
|
||||
|
||||
|
||||
if (move['to'] == move['from']){
|
||||
$aspect_list.data( ui.draggable[0].id, []);
|
||||
ui.draggable.css('background-color','#eee');
|
||||
};
|
||||
var dropzone = $(this)[0];
|
||||
|
||||
if ($(this)[0].id == ui.draggable[0].getAttribute('from_aspect_id')){
|
||||
ui.draggable.css('background','none');
|
||||
} else {
|
||||
$aspect_list.data( ui.draggable[0].id, move);
|
||||
ui.draggable.css('background-color','orange');
|
||||
$.ajax({
|
||||
url: "/aspects/move_friend/",
|
||||
data: {"friend_id" : ui.draggable[0].id,
|
||||
"from" : ui.draggable[0].getAttribute('from_aspect_id'),
|
||||
"to" : { "to" : dropzone.id }},
|
||||
success: function(data){
|
||||
ui.draggable.attr('from_aspect_id', dropzone.id);
|
||||
ui.draggable.css('background','none');
|
||||
}});
|
||||
|
||||
}
|
||||
}
|
||||
$(this).closest("ul").append(ui.draggable);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ $(document).ready(function(){
|
|||
});
|
||||
});//end document ready
|
||||
|
||||
$("#stream li").live('mouseover',function() {
|
||||
$(this).children(".destroy_link").fadeIn(0);
|
||||
});
|
||||
|
||||
$("#stream li").live('mouseout',function() {
|
||||
$(this).children(".destroy_link").fadeOut(0);
|
||||
});
|
||||
|
||||
$(".show_post_comments").live('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,6 @@ header {
|
|||
header #session_action ul li:last-child {
|
||||
margin-right: 0; }
|
||||
header #aspect_header {
|
||||
z-index: 5;
|
||||
background-color: #eeeeee;
|
||||
border-top: 1px solid white;
|
||||
padding: 20px 0; }
|
||||
|
|
@ -129,7 +128,7 @@ header {
|
|||
color: #111111; }
|
||||
header #aspect_header a:hover {
|
||||
background: none;
|
||||
color: #333333; }
|
||||
color: #999999; }
|
||||
header #aspect_header .page_title {
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 2px 0 white;
|
||||
|
|
@ -143,8 +142,12 @@ ul#stream {
|
|||
list-style: none;
|
||||
padding: 12px 0;
|
||||
border-bottom: 1px solid #eeeeee; }
|
||||
ul#stream > li:first-child {
|
||||
padding-top: 0; }
|
||||
ul#stream > li:hover {
|
||||
background-color: #fafafa; }
|
||||
ul#stream > li:hover .destroy_link {
|
||||
display: inline; }
|
||||
ul#stream .right {
|
||||
top: 0; }
|
||||
|
||||
li.message {
|
||||
position: relative;
|
||||
|
|
@ -165,6 +168,8 @@ li.message {
|
|||
li.message .content div.info {
|
||||
color: #bababa;
|
||||
font-size: 70%; }
|
||||
li.message .content div.info .time a {
|
||||
color: #666666; }
|
||||
|
||||
form {
|
||||
position: relative;
|
||||
|
|
@ -260,7 +265,7 @@ ul.comment_set {
|
|||
|
||||
.destroy_link, .request_button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
right: 2em;
|
||||
bottom: 15px; }
|
||||
.destroy_link a, .request_button a {
|
||||
color: #999999;
|
||||
|
|
@ -341,12 +346,18 @@ label {
|
|||
margin-top: 26px; }
|
||||
#publisher textarea {
|
||||
width: 600px;
|
||||
height: 40px;
|
||||
height: 42px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
-webkit-box-shadow: 0 1px 0 white; }
|
||||
box-shadow: 0 1px white;
|
||||
-moz-box-shadow: 0 1px white;
|
||||
-webkit-box-shadow: 0 1px white; }
|
||||
#publisher .button {
|
||||
margin-left: 100px; }
|
||||
#publisher img {
|
||||
-webkit-box-shadow: 0 1px 0 white;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-top: 1px solid #666666; }
|
||||
|
||||
#image_picker .small_photo {
|
||||
height: 100px;
|
||||
|
|
@ -456,8 +467,11 @@ h1.big_text {
|
|||
#aspect_nav ul > li {
|
||||
padding: 0;
|
||||
display: inline;
|
||||
margin-right: 0.5em; }
|
||||
margin-right: 2px; }
|
||||
#aspect_nav ul > li a {
|
||||
text-shadow: 0 2px 0 #444444;
|
||||
-webkit-border-radius: 3px 3px 0 0;
|
||||
-moz-border-radius: 3px 3px 0 0;
|
||||
line-height: 22px;
|
||||
background-color: #444444;
|
||||
border: 1px solid #555555;
|
||||
|
|
@ -468,12 +482,16 @@ h1.big_text {
|
|||
background-color: #4e4e4e;
|
||||
color: #cccccc; }
|
||||
#aspect_nav ul > li.selected a {
|
||||
-webkit-box-shadow: 0px -4px 6px -2px #777777;
|
||||
-moz-box-shadow: 0px -4px 6px -2px #777777;
|
||||
text-shadow: 0 2px 0 white;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 5px;
|
||||
line-height: 18px;
|
||||
font-weight: bold;
|
||||
background-color: #eeeeee;
|
||||
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(white), to(#eeeeee));
|
||||
background: -moz-linear-gradient(19% 75% 90deg, #eeeeee, white);
|
||||
border: 1px solid white;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
color: black; }
|
||||
|
|
@ -509,6 +527,16 @@ h1.big_text {
|
|||
.requests h1,
|
||||
.remove h1 {
|
||||
display: inline-block; }
|
||||
.aspect .tip,
|
||||
.requests .tip,
|
||||
.remove .tip {
|
||||
display: none;
|
||||
color: #999999;
|
||||
margin-left: 0.5em; }
|
||||
.aspect .edit_name_field:hover .tip,
|
||||
.requests .edit_name_field:hover .tip,
|
||||
.remove .edit_name_field:hover .tip {
|
||||
display: inline; }
|
||||
.aspect .aspect_name,
|
||||
.requests .aspect_name,
|
||||
.remove .aspect_name {
|
||||
|
|
@ -536,7 +564,8 @@ h1.big_text {
|
|||
.requests .grey,
|
||||
.remove .grey {
|
||||
color: #999999;
|
||||
cursor: default; }
|
||||
cursor: default;
|
||||
text-shadow: 0 2px white; }
|
||||
.aspect ul.dropzone,
|
||||
.requests ul.dropzone,
|
||||
.remove ul.dropzone {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
.qq-upload-button {
|
||||
display:block; /* or inline-block */
|
||||
width: 105px; padding: 7px 0; text-align:center;
|
||||
background:#880000; border-bottom:1px solid #ddd;color:#fff;
|
||||
background:#333; border-bottom:1px solid #999;color:#fff;
|
||||
}
|
||||
.qq-upload-button-hover {background:#cc0000;}
|
||||
.qq-upload-button-hover {background:#666;}
|
||||
.qq-upload-button-focus {outline:1px dotted black;}
|
||||
|
||||
.qq-upload-drop-area {
|
||||
position:absolute; top:0; left:0; width:100%; height:100%; min-height: 70px; z-index:2;
|
||||
background:#FF9797; text-align:center;
|
||||
background:#ccc; text-align:center;
|
||||
}
|
||||
.qq-upload-drop-area span {
|
||||
display:block; position:absolute; top: 50%; width:100%; margin-top:-8px; font-size:16px;
|
||||
|
|
@ -28,4 +28,4 @@
|
|||
.qq-upload-size,.qq-upload-cancel {font-size:11px;}
|
||||
|
||||
.qq-upload-failed-text {display:none;}
|
||||
.qq-upload-fail .qq-upload-failed-text {display:inline;}
|
||||
.qq-upload-fail .qq-upload-failed-text {display:inline;}
|
||||
|
|
|
|||
|
|
@ -146,7 +146,6 @@ header
|
|||
:right 0
|
||||
|
||||
#aspect_header
|
||||
:z-index 5
|
||||
:background
|
||||
:color #eee
|
||||
:border
|
||||
|
|
@ -162,7 +161,7 @@ header
|
|||
:color #111
|
||||
&:hover
|
||||
:background none
|
||||
:color #333
|
||||
:color #999
|
||||
|
||||
.page_title
|
||||
:text
|
||||
|
|
@ -182,9 +181,15 @@ ul#stream
|
|||
:border
|
||||
:bottom 1px solid #eee
|
||||
|
||||
> li:first-child
|
||||
:padding
|
||||
:top 0
|
||||
&:hover
|
||||
:background
|
||||
:color #fafafa
|
||||
|
||||
.destroy_link
|
||||
:display inline
|
||||
|
||||
.right
|
||||
:top 0
|
||||
|
||||
li.message
|
||||
:position relative
|
||||
|
|
@ -216,6 +221,10 @@ li.message
|
|||
:color #bababa
|
||||
:font-size 70%
|
||||
|
||||
.time
|
||||
a
|
||||
:color #666
|
||||
|
||||
|
||||
form
|
||||
:position relative
|
||||
|
|
@ -345,7 +354,7 @@ ul.comment_set
|
|||
|
||||
.destroy_link, .request_button
|
||||
:position absolute
|
||||
:right 0
|
||||
:right 2em
|
||||
:bottom 15px
|
||||
a
|
||||
:color #999
|
||||
|
|
@ -444,16 +453,24 @@ label
|
|||
|
||||
textarea
|
||||
:width 600px
|
||||
:height 40px
|
||||
:height 42px
|
||||
:margin
|
||||
:top 0
|
||||
:bottom 0
|
||||
|
||||
:-webkit-box-shadow 0 1px 0 #fff
|
||||
:box-shadow 0 1px #fff
|
||||
:-moz-box-shadow 0 1px #fff
|
||||
:-webkit-box-shadow 0 1px #fff
|
||||
|
||||
.button
|
||||
:margin-left 100px
|
||||
|
||||
img
|
||||
:-webkit-box-shadow 0 1px 0 #fff
|
||||
:border 1px solid #bbb
|
||||
:top 1px solid #666
|
||||
|
||||
|
||||
|
||||
#image_picker
|
||||
.small_photo
|
||||
|
|
@ -601,13 +618,17 @@ h1.big_text
|
|||
:padding 0
|
||||
:display inline
|
||||
:margin
|
||||
:right 0.5em
|
||||
:right 2px
|
||||
|
||||
a
|
||||
:text-shadow 0 2px 0 #444
|
||||
:-webkit-border-radius 3px 3px 0 0
|
||||
:-moz-border-radius 3px 3px 0 0
|
||||
:line
|
||||
:height 22px
|
||||
:background
|
||||
:color #444
|
||||
|
||||
:border 1px solid #555
|
||||
|
||||
:padding 3px 8px
|
||||
|
|
@ -620,6 +641,9 @@ h1.big_text
|
|||
:color #ccc
|
||||
|
||||
&.selected a
|
||||
:-webkit-box-shadow 0px -4px 6px -2px #777
|
||||
:-moz-box-shadow 0px -4px 6px -2px #777
|
||||
|
||||
:text-shadow 0 2px 0 #fff
|
||||
:padding
|
||||
:top 4px
|
||||
|
|
@ -630,6 +654,10 @@ h1.big_text
|
|||
:weight bold
|
||||
:background
|
||||
:color #eee
|
||||
|
||||
:background -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#eee))
|
||||
:background -moz-linear-gradient(19% 75% 90deg, #eee, #fff)
|
||||
|
||||
:border 1px solid #fff
|
||||
:bottom 1px solid #eee
|
||||
:color #000
|
||||
|
|
@ -675,6 +703,17 @@ h1.big_text
|
|||
h1
|
||||
:display inline-block
|
||||
|
||||
.tip
|
||||
:display none
|
||||
:color #999
|
||||
:margin
|
||||
:left 0.5em
|
||||
|
||||
.edit_name_field:hover
|
||||
.tip
|
||||
:display inline
|
||||
|
||||
|
||||
.aspect_name
|
||||
:position relative
|
||||
|
||||
|
|
@ -699,6 +738,7 @@ h1.big_text
|
|||
.grey
|
||||
:color #999
|
||||
:cursor default
|
||||
:text-shadow 0 2px #fff
|
||||
|
||||
ul.dropzone
|
||||
:min-height 20px
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ begin
|
|||
Diaspora::WebSocket.initialize_channels
|
||||
|
||||
EventMachine::WebSocket.start(
|
||||
:host => "0.0.0.0",
|
||||
:host => APP_CONFIG[:socket_host],
|
||||
:port => APP_CONFIG[:socket_port],
|
||||
:debug =>APP_CONFIG[:socket_debug]) do |ws|
|
||||
ws.onopen {
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ describe AlbumsController do
|
|||
render_views
|
||||
before do
|
||||
@user = Factory.create(:user)
|
||||
@user.aspect(:name => "lame-os")
|
||||
@album = Factory.create(:album)
|
||||
@aspect = @user.aspect(:name => "lame-os")
|
||||
@album = @user.post :album, :to => @aspect.id, :name => 'things on fire'
|
||||
sign_in :user, @user
|
||||
end
|
||||
|
||||
it "should update the name of an album" do
|
||||
sign_in :user, @user
|
||||
put :update, :id => @album._id, :album => { :name => "new_name"}
|
||||
put :update, :id => @album.id, :album => { :name => "new_name"}
|
||||
@album.reload.name.should eql("new_name")
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -19,18 +19,18 @@ describe Diaspora::WebSocket do
|
|||
|
||||
describe 'queuing and dequeuing ' do
|
||||
before do
|
||||
@post.socket_to_uid(@user.id, :aspect_ids => @aspect.id)
|
||||
@channel = Magent::GenericChannel.new('websocket')
|
||||
@messages = @channel.message_count
|
||||
@post.socket_to_uid(@user.id, :aspect_ids => @aspect.id)
|
||||
end
|
||||
|
||||
it 'should send the queued job to Magent' do
|
||||
@channel.message_count.should == 1
|
||||
@channel.message_count.should == @messages + 1
|
||||
end
|
||||
|
||||
it 'should dequeue the job successfully' do
|
||||
messages = @channel.message_count
|
||||
@channel.dequeue
|
||||
@channel.message_count.should == messages -1
|
||||
@channel.message_count.should == @messages
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -134,13 +134,13 @@ describe Person do
|
|||
people.include?(@friend_three).should == false
|
||||
people.include?(@friend_four).should == false
|
||||
|
||||
people = Person.search("Wei")
|
||||
people = Person.search("wEi")
|
||||
people.include?(@friend_two).should == true
|
||||
people.include?(@friend_one).should == false
|
||||
people.include?(@friend_three).should == false
|
||||
people.include?(@friend_four).should == false
|
||||
|
||||
people = Person.search("Gri")
|
||||
people = Person.search("gri")
|
||||
people.include?(@friend_one).should == true
|
||||
people.include?(@friend_four).should == true
|
||||
people.include?(@friend_two).should == false
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ describe User do
|
|||
proc {@user.post(:status_message, :message => "heyheyhey")}.should raise_error /You must post to someone/
|
||||
end
|
||||
|
||||
it 'should not be able to post to someone elses aspect' do
|
||||
proc {@user.post(:status_message, :message => "heyheyhey", :to => @aspect2.id)}.should raise_error /Cannot post to an aspect you do not own./
|
||||
end
|
||||
|
||||
it 'should put the post in the aspect post array' do
|
||||
post = @user.post(:status_message, :message => "hey", :to => @aspect.id)
|
||||
@aspect.reload
|
||||
|
|
|
|||
|
|
@ -189,16 +189,14 @@ describe User do
|
|||
@user2 = Factory.create :user
|
||||
@aspect2 = @user2.aspect(:name => "Gross people")
|
||||
|
||||
request = @user.send_friend_request_to( @user2, @aspect)
|
||||
request.reverse_for @user2
|
||||
@user2.activate_friend(@user.person, @aspect2)
|
||||
@user.receive request.to_diaspora_xml
|
||||
friend_users(@user, @aspect, @user2, @aspect2)
|
||||
@user.reload
|
||||
@user2.reload
|
||||
@aspect.reload
|
||||
@aspect2.reload
|
||||
end
|
||||
|
||||
it 'should unfriend the other user on the same seed' do
|
||||
@user.reload
|
||||
@user2.reload
|
||||
|
||||
@user.friends.count.should == 1
|
||||
@user2.friends.count.should == 1
|
||||
|
||||
|
|
@ -212,6 +210,25 @@ describe User do
|
|||
@aspect.people.count.should == 0
|
||||
@aspect2.people.count.should == 0
|
||||
end
|
||||
context 'with a post' do
|
||||
before do
|
||||
@message = @user.post(:status_message, :message => "hi", :to => @aspect.id)
|
||||
@user2.receive @message.to_diaspora_xml.to_s
|
||||
@user2.unfriend @user.person
|
||||
@user.unfriended_by @user2.person
|
||||
@aspect.reload
|
||||
@aspect2.reload
|
||||
@user.reload
|
||||
@user2.reload
|
||||
end
|
||||
it "deletes the unfriended user's posts from visible_posts" do
|
||||
@user.raw_visible_posts.include?(@message.id).should be_false
|
||||
end
|
||||
it "deletes the unfriended user's posts from the aspect's posts" do
|
||||
pending "We need to implement this"
|
||||
@aspect2.posts.include?(@message).should be_false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,19 @@ describe User do
|
|||
@user.visible_posts(:by_members_of => @aspect2).include?(status_message3).should be true
|
||||
end
|
||||
|
||||
describe 'querying' do
|
||||
|
||||
it 'should find a visible post by id' do
|
||||
status_message1 = @user.post :status_message, :message => "hi", :to => @aspect.id
|
||||
status_message2 = @user2.post :status_message, :message => "heyyyy", :to => @user2_aspect.id
|
||||
status_message3 = @user3.post :status_message, :message => "yooo", :to => @user3_aspect.id
|
||||
|
||||
@user.find_visible_post_by_id(status_message1.id).should == status_message1
|
||||
@user2.find_visible_post_by_id(status_message1.id).should == nil
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe 'albums' do
|
||||
before do
|
||||
@album = @user.post :album, :name => "Georges", :to => @aspect.id
|
||||
|
|
|
|||
Loading…
Reference in a new issue