Merge branch 'master' of github.com:diaspora/diaspora into production
This commit is contained in:
commit
f5316fb3c1
17 changed files with 138 additions and 107 deletions
|
|
@ -37,6 +37,8 @@ def warzombie
|
|||
|
||||
def zombiefriendaccept
|
||||
render :nothing => true
|
||||
set_profile_photo
|
||||
|
||||
Request.all.each{|r|
|
||||
current_user.accept_and_respond(r.id, current_user.groups.first.id)
|
||||
}
|
||||
|
|
@ -54,4 +56,15 @@ def warzombie
|
|||
file.write(seed_num_hash.to_yaml)
|
||||
file.close
|
||||
end
|
||||
|
||||
def set_profile_photo
|
||||
album = current_user.post(:album, :name => "Profile Photos")
|
||||
|
||||
backer_number = YAML.load_file(Rails.root.join('config','backer_number.yml'))[:seed_number].to_i
|
||||
username = backer_info[backer_number]['username'].gsub(/ /,'').downcase
|
||||
photo = current_user.post(:photo, :album_id => album.id,
|
||||
:user_file => "public/images/users/#{username}.jpg")
|
||||
|
||||
current_user.update_profile(:image_url => photo.url)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ class GroupsController < ApplicationController
|
|||
|
||||
def index
|
||||
@posts = current_user.visible_posts(:by_members_of => :all).paginate :page => params[:page], :order => 'created_at DESC'
|
||||
@group = :all
|
||||
@friends = current_user.friends
|
||||
|
||||
@groups = current_user.groups.find_all_by_id(params[:group_ids]) if params[:group_ids]
|
||||
@groups ||= current_user.groups
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class SocketsController < ApplicationController
|
|||
|
||||
def outgoing(uid,object,opts={})
|
||||
@_request = ActionDispatch::Request.new({})
|
||||
Diaspora::WebSocket.push_to_user(uid, action_hash(uid, object, :group_id => opts[:group_id]))
|
||||
Diaspora::WebSocket.push_to_user(uid, action_hash(uid, object, opts))
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,16 +6,12 @@ class StatusMessagesController < ApplicationController
|
|||
@status_message = current_user.post(:status_message, params[:status_message])
|
||||
|
||||
if @status_message.created_at
|
||||
flash[:notice] = "Successfully created status message."
|
||||
render :nothing => true
|
||||
else
|
||||
render :action => 'new'
|
||||
redirect_to root_url
|
||||
end
|
||||
end
|
||||
|
||||
def new
|
||||
@status_message = StatusMessage.new
|
||||
end
|
||||
|
||||
def destroy
|
||||
@status_message = StatusMessage.where(:id => params[:id]).first
|
||||
@status_message.destroy
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ module SocketsHelper
|
|||
Rails.logger.error("web socket view rendering failed for object #{object.inspect}.")
|
||||
raise e
|
||||
end
|
||||
action_hash = {:class =>object.class.to_s.underscore.pluralize, :group_id => opts[:group_id] , :html => v, :post_id => obj_id(object)}
|
||||
|
||||
action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}
|
||||
action_hash.merge! opts
|
||||
if object.is_a? Photo
|
||||
action_hash[:photo_hash] = object.thumb_hash
|
||||
elsif object.is_a? StatusMessage
|
||||
|
|
|
|||
|
|
@ -80,10 +80,10 @@ class User
|
|||
group.save
|
||||
target_people = target_people | group.people
|
||||
}
|
||||
|
||||
post.socket_to_uid(id, :group_ids => groups.map{|g| g.id}) if post.respond_to?(:socket_to_uid)
|
||||
post.push_to( target_people )
|
||||
|
||||
post.socket_to_uid(id) if post.respond_to?(:socket_to_uid)
|
||||
|
||||
self.raw_visible_posts << post
|
||||
self.save
|
||||
post
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
//Attach onmessage to websocket
|
||||
ws.onmessage = function(evt) {
|
||||
var obj = jQuery.parseJSON(evt.data);
|
||||
debug("got a " + obj['class'] + " for group " + obj['group_id']);
|
||||
console.log(obj)
|
||||
debug("got a " + obj['class'] + " for groups " + obj['group_ids']);
|
||||
|
||||
if (obj['class']=="retractions"){
|
||||
processRetraction(obj['post_id']);
|
||||
|
|
@ -19,10 +20,8 @@
|
|||
|
||||
}else if (obj['class']=='photos' && onPageForClass('albums')){
|
||||
processPhotoInAlbum(obj['photo_hash'])
|
||||
}else if (obj['class']=='status_messages'){
|
||||
processStatusMessage(obj['class'], obj['html'], obj['status_message_hash'], obj['group_id'], obj['mine?'])
|
||||
}else{
|
||||
processPost(obj['class'], obj['html'], obj['group_id'], obj['mine?'])
|
||||
processPost(obj['class'], obj['html'], obj['group_ids'])
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -33,69 +32,68 @@
|
|||
debug("connected...");
|
||||
};
|
||||
|
||||
function processRetraction(post_id){
|
||||
$('#' + post_id ).fadeOut(500, function(){
|
||||
$(this).remove;
|
||||
});
|
||||
}
|
||||
|
||||
function processComment(post_id, html){
|
||||
post = $('#' + post_id)[0]
|
||||
$(' .comment_set li:last', post ).before(
|
||||
$(html).fadeIn("fast", function(){})
|
||||
);
|
||||
toggler = $('.show_post_comments', post)
|
||||
toggler.html(
|
||||
toggler.html().replace(/\d/,$('.comment_set', post)[0].childElementCount -1));
|
||||
}
|
||||
|
||||
function processPost(className, html, groupId, mineBool){
|
||||
if(mineBool || onPageForClass(className) || onPageForGroup(groupId)){
|
||||
$("#stream").prepend(
|
||||
$(html).fadeIn("fast", function(){
|
||||
$("#stream label:first").inFieldLabels();
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function processStatusMessage(className, html, messageHash, groupId, mineBool){
|
||||
processPost(className, html, groupId, mineBool);
|
||||
console.log(messageHash)
|
||||
if(messageHash['mine?']){
|
||||
updateMyLatestStatus(messageHash);
|
||||
}
|
||||
}
|
||||
|
||||
function updateMyLatestStatus(messageHash){
|
||||
$("#latest_message").text(messageHash['text']);
|
||||
$("#latest_message_time").text(' - just now');
|
||||
}
|
||||
|
||||
function processPhotoInAlbum(photoHash){
|
||||
if (location.href.indexOf(photoHash['album_id']) == -1){
|
||||
return ;
|
||||
}
|
||||
html = "<div class=\'image_thumb\' id=\'"+photoHash['id']+"\' style=\'padding-right:3px;\'> \
|
||||
<a href=\"/photos/"+ photoHash['id'] +"\"> \
|
||||
<img alt=\"New thumbnail\" src=\""+ photoHash['thumb_url'] +"\" /> \
|
||||
</a> </div>"
|
||||
$("#thumbnails").append( $(html) )
|
||||
$("#"+ photoHash['id'] + " img").load( function() {
|
||||
$(this).fadeIn("slow");
|
||||
});
|
||||
}
|
||||
|
||||
function onPageForClass(className){
|
||||
return ((location.href.indexOf(className) != -1 ) || (location.pathname == '/')) && onPageOne();
|
||||
}
|
||||
|
||||
function onPageForGroup(groupId){
|
||||
return (location.href.indexOf(groupId) != -1 )
|
||||
}
|
||||
|
||||
function onPageOne() {
|
||||
var c = document.location.search.charAt(document.location.search.length-1);
|
||||
return ((c =='') || (c== '1'));
|
||||
}
|
||||
});
|
||||
function processRetraction(post_id){
|
||||
$('#' + post_id ).fadeOut(500, function(){
|
||||
$(this).remove;
|
||||
});
|
||||
}
|
||||
|
||||
function processComment(post_id, html){
|
||||
post = $('#' + post_id)[0]
|
||||
$(' .comment_set li:last', post ).before(
|
||||
$(html).fadeIn("fast", function(){})
|
||||
);
|
||||
toggler = $('.show_post_comments', post)
|
||||
toggler.html(
|
||||
toggler.html().replace(/\d/,$('.comment_set', post)[0].childElementCount -1));
|
||||
}
|
||||
|
||||
function processPost(className, html, groupIds){
|
||||
if(onPageForGroups(groupIds)){
|
||||
$("#stream").prepend(
|
||||
$(html).fadeIn("fast", function(){
|
||||
$("#stream label:first").inFieldLabels();
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function processPhotoInAlbum(photoHash){
|
||||
if (location.href.indexOf(photoHash['album_id']) == -1){
|
||||
return ;
|
||||
}
|
||||
html = "<div class=\'image_thumb\' id=\'"+photoHash['id']+"\' style=\'padding-right:3px;\'> \
|
||||
<a href=\"/photos/"+ photoHash['id'] +"\"> \
|
||||
<img alt=\"New thumbnail\" src=\""+ photoHash['thumb_url'] +"\" /> \
|
||||
</a> </div>"
|
||||
$("#thumbnails").append( $(html) )
|
||||
$("#"+ photoHash['id'] + " img").load( function() {
|
||||
$(this).fadeIn("slow");
|
||||
});
|
||||
}
|
||||
|
||||
function onPageForClass(className){
|
||||
return ((location.href.indexOf(className) != -1 ) || (location.pathname == '/')) && onPageOne();
|
||||
}
|
||||
|
||||
function onPageForGroups(groupIds){
|
||||
if(location.pathname == '/' && onPageOne()){
|
||||
return true
|
||||
}
|
||||
var found = false;
|
||||
$.each(groupIds, function(index, value) {
|
||||
if(onPageForGroup(value)){ found = true };
|
||||
});
|
||||
return found;
|
||||
}
|
||||
|
||||
function onPageForGroup(groupId){
|
||||
return (location.href.indexOf(groupId) != -1 )
|
||||
}
|
||||
|
||||
function onPageOne() {
|
||||
var c = document.location.search.charAt(document.location.search.length-1);
|
||||
return ((c =='') || (c== '1'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
#friend_pictures
|
||||
- for friend in @friends
|
||||
= person_image_link(friend)
|
||||
= link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button'
|
||||
|
||||
- unless @group == :all
|
||||
= link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button'
|
||||
|
||||
.yo{:style => 'display:none'}
|
||||
#add_request_pane
|
||||
= render "requests/new_request"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
= form_for StatusMessage.new, :remote => true do |f|
|
||||
= f.error_messages
|
||||
|
||||
.span-15.last
|
||||
.span-2.last
|
||||
.span-15
|
||||
.span-2
|
||||
.user_image
|
||||
= owner_image_tag
|
||||
.span-13.last
|
||||
|
|
@ -12,8 +12,7 @@
|
|||
%label{:for => "status_message_message"} Message
|
||||
= f.text_area :message, :rows => 2
|
||||
|
||||
.span-3.last
|
||||
|
||||
.span-3
|
||||
%ul.group_selector
|
||||
going to...
|
||||
- for group in current_user.groups
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
- title "New Status Message"
|
||||
|
||||
= form_for @status_message, :remote => true do |f|
|
||||
= f.error_messages
|
||||
%p
|
||||
= f.label :message
|
||||
%br
|
||||
= f.text_field :message
|
||||
%p
|
||||
= f.submit
|
||||
|
||||
|
||||
%p= link_to "Back to List", status_messages_path
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
development:
|
||||
debug: false
|
||||
socket_debug : false
|
||||
socket_debug : true
|
||||
socket_port: 8080
|
||||
pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Diaspora::Application.routes.draw do
|
||||
resources :people, :only => [:index, :show, :destroy]
|
||||
resources :users, :except => [:create, :new]
|
||||
resources :status_messages, :except => [:index]
|
||||
resources :status_messages, :only => [:create, :destroy, :show]
|
||||
resources :comments, :except => [:index]
|
||||
resources :requests, :except => [:edit, :update]
|
||||
resources :photos, :except => [:index]
|
||||
|
|
|
|||
|
|
@ -19,10 +19,12 @@ def create
|
|||
:password => "#{username+backer_info[backer_number]['pin'].to_s}",
|
||||
:person => Person.new(
|
||||
:email => "#{username}@#{username}.joindiaspora.com",
|
||||
:profile => Profile.new( :first_name => backer_info[backer_number]['given_name'], :last_name => backer_info[backer_number]['family_name'] ),
|
||||
:profile => Profile.new( :first_name => backer_info[backer_number]['given_name'], :last_name => backer_info[backer_number]['family_name'],
|
||||
:image_url => "http://#{username}.joindiaspora.com/images/users/#{username}.jpg"),
|
||||
:url=> "http://#{username}.joindiaspora.com/")
|
||||
)
|
||||
user.person.save
|
||||
|
||||
user.group(:name => "Presidents")
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module Diaspora
|
|||
end
|
||||
|
||||
def self.subscribe(uid, ws)
|
||||
Rails.logger.debug "Subscribing socket to #{User.first(:id => uid).email}"
|
||||
Rails.logger.debug "Subscribing socket to #{uid}"
|
||||
self.ensure_channel(uid)
|
||||
@channels[uid][0].subscribe{ |msg| ws.send msg }
|
||||
@channels[uid][1] += 1
|
||||
|
|
@ -32,7 +32,8 @@ module Diaspora
|
|||
|
||||
module Socketable
|
||||
def socket_to_uid(id, opts={})
|
||||
SocketsController.new.outgoing(id, self, :group_id => opts[:group_id])
|
||||
puts "#{id}, #{self}, #{opts}"
|
||||
SocketsController.new.outgoing(id, self, opts)
|
||||
end
|
||||
|
||||
def unsocket_from_uid id
|
||||
|
|
|
|||
|
|
@ -319,18 +319,27 @@ label {
|
|||
height: 50px;
|
||||
padding-left: 10px; }
|
||||
#publisher ul.group_selector {
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 150px;
|
||||
width: auto;
|
||||
z-index: 10;
|
||||
position: absolute;
|
||||
height: auto;
|
||||
overflow: visible;
|
||||
list-style: none; }
|
||||
#publisher ul.group_selector > li {
|
||||
z-index: 10;
|
||||
height: auto;
|
||||
font-size: smaller;
|
||||
padding: 2px;
|
||||
display: none;
|
||||
background-color: white; }
|
||||
#publisher ul.group_selector > li:active {
|
||||
background-color: yellow; }
|
||||
#publisher ul.group_selector:hover li {
|
||||
display: block; }
|
||||
#publisher .button {
|
||||
margin-left: 100px; }
|
||||
|
||||
#image_picker .small_photo {
|
||||
height: 100px;
|
||||
|
|
|
|||
|
|
@ -397,14 +397,21 @@ label
|
|||
:left 10px
|
||||
|
||||
ul.group_selector
|
||||
:float left
|
||||
:padding 0
|
||||
:margin 0
|
||||
:width 150px
|
||||
:width auto
|
||||
:z-index 10
|
||||
:position absolute
|
||||
:height auto
|
||||
:overflow visible
|
||||
:list
|
||||
:style none
|
||||
|
||||
> li
|
||||
:z-index 10
|
||||
:height auto
|
||||
:font-size smaller
|
||||
:padding 2px
|
||||
:display none
|
||||
:background
|
||||
:color #fff
|
||||
|
|
@ -415,6 +422,9 @@ label
|
|||
|
||||
&:hover li
|
||||
:display block
|
||||
|
||||
.button
|
||||
:margin-left 100px
|
||||
|
||||
|
||||
#image_picker
|
||||
|
|
|
|||
|
|
@ -144,5 +144,18 @@ describe Person do
|
|||
it 'should search by email exactly' do
|
||||
Person.by_webfinger(@friend_one.email).should == @friend_one
|
||||
end
|
||||
|
||||
describe 'wall posting' do
|
||||
it 'should be able to post on another persons wall' do
|
||||
|
||||
#user2 is in user's group, user is in group2 on user
|
||||
friend_users(@user, @group, @user2, @group2)
|
||||
|
||||
@user.person.post_to_wall(:person => @user2.person, :message => "youve got a great smile")
|
||||
@user.person.wall_posts.count.should == 1
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue