social_stream 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +8 -9
- data/app/helpers/groups_helper.rb +5 -0
- data/app/helpers/ties_helper.rb +1 -1
- data/app/helpers/users_helper.rb +4 -0
- data/app/views/activities/_jquery.html.erb +51 -0
- data/app/views/activities/_root.html.erb +9 -3
- data/app/views/frontpage/_header.html.erb +3 -3
- data/app/views/frontpage/index.html.erb +4 -4
- data/app/views/groups/_follow.html.erb +1 -1
- data/app/views/groups/_group.html.erb +13 -2
- data/app/views/groups/_groups.html.erb +23 -0
- data/app/views/home/index.html.erb +3 -1
- data/app/views/layouts/_footer.html.erb +1 -2
- data/app/views/layouts/application.html.erb +1 -8
- data/app/views/ties/_new.html.erb +2 -2
- data/app/views/ties/_suggestions.html.erb +11 -11
- data/app/views/ties/_tie.html.erb +2 -2
- data/app/views/ties/create.js.erb +9 -3
- data/app/views/ties/new.js.erb +1 -1
- data/config/locales/en.yml +25 -2
- data/init.rb +0 -2
- data/lib/generators/social_stream/templates/public/stylesheets/activities.css +2 -3
- data/lib/generators/social_stream/templates/public/stylesheets/carousel.css +57 -0
- data/lib/generators/social_stream/templates/public/stylesheets/home.css +24 -1
- data/lib/generators/social_stream/templates/public/stylesheets/middle.css +26 -7
- data/lib/social_stream/version.rb +1 -1
- data/lib/tasks/db/populate.rake +62 -0
- metadata +9 -5
- data/app/views/home/_groups.html.erb +0 -13
data/README.rdoc
CHANGED
@@ -37,9 +37,8 @@ Then, execute:
|
|
37
37
|
This will generate the following:
|
38
38
|
* A jquery:install generation for jQuery support
|
39
39
|
* A devise:install generation for authentication support
|
40
|
-
* An initializer configuration
|
41
|
-
* A database seeds file for defining Social Stream relations, along with an entry
|
42
|
-
in db/seeds.rb to load it.
|
40
|
+
* An initializer file with configuration for Social Stream.
|
41
|
+
* A database seeds file for defining custom Social Stream relations, along with an entry in db/seeds.rb to load it.
|
43
42
|
* A new application layout
|
44
43
|
* A migration providing the database schema
|
45
44
|
|
@@ -50,21 +49,21 @@ Do not forget to migrate and seed your database
|
|
50
49
|
|
51
50
|
== Actors and Activity Objects
|
52
51
|
|
53
|
-
{Social Stream}[http://github.com/ging/social_stream] relies in Devise[http://github.com/plataformatec/devise].
|
52
|
+
{Social Stream}[http://github.com/ging/social_stream] relies in Devise[http://github.com/plataformatec/devise].
|
53
|
+
You have authenticated users support in your application by default.
|
54
54
|
|
55
|
-
Besides, there is another kind of actor: groups. If you want other type of
|
55
|
+
Besides, there is another kind of actor: groups. If you want other type of actor
|
56
56
|
(like organizations or social events) you must include an <tt>actor_id</tt> column in
|
57
|
-
the migration. Then add it to <tt>config/initializers/social_stream.rb</tt>
|
57
|
+
the new actor migration. Then add it to <tt>config/initializers/social_stream.rb</tt>
|
58
58
|
|
59
59
|
There is also support for two types of basic activity objects: posts and comments.
|
60
|
-
|
60
|
+
You can create other types, like photos, bookmarks or videos, but you must do the same:
|
61
61
|
add a <tt>activity_object_id</tt> column in the migration and include it in the
|
62
62
|
initializer.
|
63
63
|
|
64
64
|
= Documentation
|
65
65
|
|
66
|
-
{Social Stream documentation}[http://rdoc.info/github/ging/social_stream/frames]
|
67
|
-
{rdoc.info}[http://rdoc.info/]
|
66
|
+
{Social Stream documentation is available at rdoc.info}[http://rdoc.info/github/ging/social_stream/frames]}
|
68
67
|
|
69
68
|
= Discussion
|
70
69
|
|
data/app/helpers/ties_helper.rb
CHANGED
@@ -50,3 +50,54 @@ $(".to_comment").livequery("blur", function(){
|
|
50
50
|
$(this).parents(".activity_content").find(".input_new_comments").blur();
|
51
51
|
return false;
|
52
52
|
});
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
//move he last list item before the first item. The purpose of this is if the user clicks to slide left he will be able to see the last item.
|
62
|
+
$('#carousel_ul li:first').before($('#carousel_ul li:last'));
|
63
|
+
|
64
|
+
|
65
|
+
//when user clicks the image for sliding right
|
66
|
+
$('#right_scroll img').livequery("click",function(){
|
67
|
+
|
68
|
+
//get the width of the items ( i like making the jquery part dynamic, so if you change the width in the css you won't have o change it here too ) '
|
69
|
+
var item_width = $('#carousel_ul li').outerWidth() + 10;
|
70
|
+
|
71
|
+
//calculae the new left indent of the unordered list
|
72
|
+
var left_indent = parseInt($('#carousel_ul').css('left')) - item_width;
|
73
|
+
|
74
|
+
//make the sliding effect using jquery's anumate function '
|
75
|
+
$('#carousel_ul:not(:animated)').animate({'left' : left_indent},500,function(){
|
76
|
+
|
77
|
+
//get the first list item and put it after the last list item (that's how the infinite effects is made) '
|
78
|
+
$('#carousel_ul li:last').after($('#carousel_ul li:first'));
|
79
|
+
|
80
|
+
//and get the left indent to the default -210px
|
81
|
+
$('#carousel_ul').css({'left' : '-210px'});
|
82
|
+
});
|
83
|
+
});
|
84
|
+
|
85
|
+
//when user clicks the image for sliding left
|
86
|
+
$('#left_scroll img').livequery("click",function(){
|
87
|
+
|
88
|
+
var item_width = $('#carousel_ul li').outerWidth() + 10;
|
89
|
+
|
90
|
+
/* same as for sliding right except that it's current left indent + the item width (for the sliding right it's - item_width) */
|
91
|
+
var left_indent = parseInt($('#carousel_ul').css('left')) + item_width;
|
92
|
+
|
93
|
+
$('#carousel_ul:not(:animated)').animate({'left' : left_indent},500,function(){
|
94
|
+
|
95
|
+
/* when sliding to left we are moving the last item before the first list item */
|
96
|
+
$('#carousel_ul li:first').before($('#carousel_ul li:last'));
|
97
|
+
|
98
|
+
/* and again, when we make that change we are setting the left indent of our unordered list to the default -210px */
|
99
|
+
$('#carousel_ul').css({'left' : '-210px'});
|
100
|
+
});
|
101
|
+
|
102
|
+
|
103
|
+
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= div_for activity do %>
|
2
2
|
<div class="actor_logo">
|
3
3
|
<%= link_to image_tag(activity.sender_subject.logo.url,
|
4
|
-
:size => "
|
4
|
+
:size => "35x35",
|
5
5
|
:alt => activity.sender_subject.name),
|
6
6
|
activity.sender_subject %>
|
7
7
|
</div>
|
@@ -26,7 +26,13 @@
|
|
26
26
|
|
27
27
|
</div>
|
28
28
|
<div class="space_comments"></div>
|
29
|
+
|
30
|
+
|
29
31
|
<div class="space_activities">
|
30
|
-
|
32
|
+
<% if activity.activity_objects.count > 1 %>
|
33
|
+
<div class="space_sub"></div>
|
34
|
+
<%else %>
|
35
|
+
<div class="space_center"></div>
|
36
|
+
<%end%>
|
31
37
|
</div>
|
32
|
-
<% end %>
|
38
|
+
<% end %>
|
@@ -10,12 +10,12 @@
|
|
10
10
|
<%= f.email_field :email, :class => "input_username" %>
|
11
11
|
<span><%= f.label :password %></span>
|
12
12
|
<%= f.password_field :password, :class => "input_username" %>
|
13
|
-
<%= f.submit t(:
|
13
|
+
<%= f.submit t(:sign_in), :class => 'other_blue'%>
|
14
14
|
<% end -%>
|
15
15
|
<div class="subtexto">
|
16
|
-
<%= link_to t('
|
16
|
+
<%= link_to t('sign_up'), new_user_registration_path, :class => "register_link" %>
|
17
17
|
<span>|</span>
|
18
|
-
<%= link_to t('
|
18
|
+
<%= link_to t('forgot_password?'), new_user_password_path, :class => "register_link" %>
|
19
19
|
</div>
|
20
20
|
</div>
|
21
21
|
<br class="clearfloat" />
|
@@ -17,11 +17,11 @@
|
|
17
17
|
<span>
|
18
18
|
<ul class="purple">
|
19
19
|
</li>
|
20
|
-
<li><%=image_tag("../images/frontpage/purple_sq.png") %><%= t('frontpage.share.
|
20
|
+
<li><%=image_tag("../images/frontpage/purple_sq.png") %><%= t('frontpage.share.sentence1') %>
|
21
21
|
</img>
|
22
22
|
</li>
|
23
23
|
<li>
|
24
|
-
<%=image_tag("../images/frontpage/purple_sq.png") %><%= t('frontpage.share.
|
24
|
+
<%=image_tag("../images/frontpage/purple_sq.png") %><%= t('frontpage.share.sentence2') %>
|
25
25
|
</img>
|
26
26
|
</li>
|
27
27
|
</ul>
|
@@ -31,7 +31,7 @@
|
|
31
31
|
<span><%=image_tag("../images/frontpage/meet.gif") %></span>
|
32
32
|
<span class="no_float">
|
33
33
|
<ul class="green">
|
34
|
-
<li><%=image_tag("../images/frontpage/green_sq.png") %><%= t('frontpage.meet.
|
34
|
+
<li><%=image_tag("../images/frontpage/green_sq.png") %><%= t('frontpage.meet.sentence1') %>
|
35
35
|
</img>
|
36
36
|
</li>
|
37
37
|
</ul>
|
@@ -46,7 +46,7 @@
|
|
46
46
|
</img>
|
47
47
|
</li>
|
48
48
|
<li>
|
49
|
-
<%=image_tag("../images/frontpage/yellow_sq.png") %><%= t('frontpage.collaborate.
|
49
|
+
<%=image_tag("../images/frontpage/yellow_sq.png") %><%= t('frontpage.collaborate.sentence2') %>
|
50
50
|
</img>
|
51
51
|
</li>
|
52
52
|
</ul>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="bookmark">
|
2
|
-
<%=image_tag("btn/btn_bookmark.png")
|
2
|
+
<%=image_tag("btn/btn_bookmark.png", :class=>"btn_config")%> <%= link_to "Follow "+@group.name,
|
3
3
|
ties_path("tie[sender_id]" => current_user.actor.id,
|
4
4
|
"tie[receiver_id]" => @group,
|
5
5
|
"tie[relation_name]" => "follower"),
|
@@ -1,3 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<% if (current_user.recent_groups.count)>10 %>
|
2
|
+
<li>
|
3
3
|
<% end %>
|
4
|
+
<%= div_for group do %>
|
5
|
+
<div class="group_content">
|
6
|
+
<%=link_to(image_tag(group.logo.url, :class => 'btn_group', :alt => group.name, :title => group.name), group) %>
|
7
|
+
</div>
|
8
|
+
<div class="group_title">
|
9
|
+
<%=link_to(group.name, group)%>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
<% if (current_user.recent_groups.count)>10 %>
|
13
|
+
</li>
|
14
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% if current_user.recent_groups.any? %>
|
2
|
+
<div id="groups_title" class="content_size">
|
3
|
+
<%=t('group.other') %> (<span id="group_count"><%=current_user.recent_groups.count%></span>)
|
4
|
+
</div>
|
5
|
+
<div id="groups_list" class="content_size">
|
6
|
+
<% if (current_user.recent_groups.count) > 10 %>
|
7
|
+
<div id='carousel_container'>
|
8
|
+
<div id='left_scroll'><%=image_tag("btn/group_left.png")%></div>
|
9
|
+
<div id='carousel_inner'>
|
10
|
+
<ul id='carousel_ul'>
|
11
|
+
<% else %>
|
12
|
+
<div class="space_center"></div>
|
13
|
+
<%end%>
|
14
|
+
|
15
|
+
<%= render current_user.recent_groups %>
|
16
|
+
<% if (current_user.recent_groups.count) > 10 %>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<div id='right_scroll'><%=image_tag("btn/group_right.png")%></div>
|
20
|
+
</div>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
@@ -11,7 +11,9 @@
|
|
11
11
|
<br class="clearfloat" />
|
12
12
|
<div class="space_center">
|
13
13
|
</div>
|
14
|
-
|
14
|
+
<div id="my_groups">
|
15
|
+
<%= render :partial => "groups/groups" %>
|
16
|
+
</div>
|
15
17
|
<%= render :partial => "activities/activities",
|
16
18
|
:locals => { :activities => current_user.wall,
|
17
19
|
:owner => current_user } %>
|
@@ -15,15 +15,8 @@
|
|
15
15
|
<%= stylesheet_link_tag "boxy", :media => "screen, projection" %>
|
16
16
|
<%= stylesheet_link_tag "middle", :media => "screen, projection" %>
|
17
17
|
<%= stylesheet_link_tag "menu", :media => "screen, projection" %>
|
18
|
+
<%= stylesheet_link_tag "carousel", :media => "screen, projection" %>
|
18
19
|
|
19
|
-
<!--[if IE]>
|
20
|
-
<%= stylesheet_link_tag "ie", :media => "screen, projection" %>
|
21
|
-
<![endif]-->
|
22
|
-
<script type="text/javascript">
|
23
|
-
if (navigator.userAgent.indexOf('Mac') != -1) {
|
24
|
-
document.write("<link href='/stylesheets/mac.css' media='screen, projection' rel='stylesheet' type='text/css' />");
|
25
|
-
}
|
26
|
-
</script>
|
27
20
|
<%= javascript_include_tag :defaults %>
|
28
21
|
|
29
22
|
<%= javascript_include_tag 'hoverIntent', 'superfish', 'main',
|
@@ -14,10 +14,10 @@
|
|
14
14
|
<%= f.hidden_field :sender_id %>
|
15
15
|
<%= f.hidden_field :relation_name %>
|
16
16
|
<% if @tie.relation!.granted %>
|
17
|
-
<%= f.text_area :message, :class =>"
|
17
|
+
<%= f.text_area :message, :class =>"input_new_tie" %>
|
18
18
|
<% end %>
|
19
19
|
<div class="ties_btn">
|
20
|
-
<%= submit_tag t('
|
20
|
+
<%= submit_tag t('send', :scope => @tie.relation_name), :class => "tie_btn" %>
|
21
21
|
</div>
|
22
22
|
<% end %>
|
23
23
|
</div>
|
@@ -5,16 +5,16 @@
|
|
5
5
|
});
|
6
6
|
<% end %>
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
|
9
|
+
<div class="tie_header">
|
10
|
+
<%= image_tag('btn/notifications.png', :class => "tie_icon") %>
|
11
|
+
<div class="tie_text_header">
|
12
|
+
<%=t('tie.suggestion.one') %>
|
13
13
|
</div>
|
14
|
-
|
15
|
-
|
14
|
+
</div>
|
15
|
+
<div class="suggestions">
|
16
|
+
<% if (sgs = current_user.suggestions(2)).present? %>
|
16
17
|
<%= render sgs %>
|
17
|
-
|
18
|
-
|
19
|
-
<%
|
20
|
-
|
18
|
+
<%end%>
|
19
|
+
</div>
|
20
|
+
<%end%>
|
@@ -5,12 +5,12 @@
|
|
5
5
|
</div>
|
6
6
|
<div class="tie_content">
|
7
7
|
<div class="tie_name">
|
8
|
-
<%= link_to(tie.receiver_subject.name, tie.receiver_subject) %>
|
8
|
+
<%= link_to(tie.receiver_subject.name, tie.receiver_subject, :class => "tie_link") %>
|
9
9
|
</div>
|
10
10
|
<div class="tie_brief">
|
11
11
|
<%= tie_brief(tie.receiver_subject) %>
|
12
12
|
</div>
|
13
|
-
<div class="tie_link" id="
|
13
|
+
<div class="tie_link" id="tie_link<%= dom_id(tie.receiver_subject)%>">
|
14
14
|
<%= tie_link(tie) %>
|
15
15
|
</div>
|
16
16
|
</div>
|
@@ -2,11 +2,17 @@
|
|
2
2
|
$("#tie_<%=dom_id(@tie.receiver_subject)%>").html(<%= @tie.errors.to_xml %>);
|
3
3
|
<% else %>
|
4
4
|
var old_tie = $("#tie_<%= dom_id(@tie.receiver_subject) %>");
|
5
|
+
var link_tie = $("#tie_link<%= dom_id(@tie.receiver_subject) %>");
|
5
6
|
<% if @tie.receiver_subject.is_a?(Group) && ! @tie.relation.granted #group follower %>
|
6
7
|
// add to group list
|
7
|
-
$(
|
8
|
-
|
9
|
-
|
8
|
+
if ($('#carousel_ul').length) { // element found
|
9
|
+
$("#carousel_ul").prepend("<%= escape_javascript(render @tie.receiver_subject) %>");
|
10
|
+
}else{ // no element found
|
11
|
+
$("#my_groups").html("<%= escape_javascript(render "groups/groups" )%>");
|
12
|
+
}
|
13
|
+
$("#group_count").html("<%=current_user.recent_groups.count%>");
|
14
|
+
link_tie.replaceWith("<%= escape_javascript(link_follow_state) %>");
|
15
|
+
link_tie.slideUp(300).delay(800).fadeIn(400);
|
10
16
|
<% else %>
|
11
17
|
if (old_tie.parent().hasClass('suggestions')) {
|
12
18
|
//replace with new suggestion
|
data/app/views/ties/new.js.erb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
new Boxy("<%= escape_javascript(render(:partial => "ties/new")) %>",
|
2
|
-
{ title: "<%= escape_javascript(t('
|
2
|
+
{ title: "<%= escape_javascript(t('confirm_new', :name => @tie.receiver_subject.name , :scope => @tie.relation_name)) %>" });
|
data/config/locales/en.yml
CHANGED
@@ -9,6 +9,7 @@ en:
|
|
9
9
|
like: I like
|
10
10
|
unlike: Already I do not like
|
11
11
|
last: Last Activities
|
12
|
+
browse: "Browse"
|
12
13
|
comment:
|
13
14
|
input: "Write a comment..."
|
14
15
|
confirm_delete: "Delete comment?"
|
@@ -22,7 +23,8 @@ en:
|
|
22
23
|
other: Followers
|
23
24
|
new: "+ Follow"
|
24
25
|
confirm_new: "Do you want to follow %{name}?"
|
25
|
-
submit: "Follow"
|
26
|
+
submit: "+ Follow"
|
27
|
+
forgot_password?: "Forgot you password?"
|
26
28
|
friend:
|
27
29
|
one: Friend
|
28
30
|
other: Friends
|
@@ -31,7 +33,26 @@ en:
|
|
31
33
|
submit: "Accept as friend"
|
32
34
|
friend_request:
|
33
35
|
new: "+ Add as friend"
|
36
|
+
send: "Send Request"
|
34
37
|
confirm_new: "Do you want to add %{name} as friend?"
|
38
|
+
frontpage:
|
39
|
+
collaborate:
|
40
|
+
sentence1: "Organize your projects and activities"
|
41
|
+
sentence2: "Create your own groups"
|
42
|
+
elements:
|
43
|
+
comments: "Comments"
|
44
|
+
networks: "Social Networks"
|
45
|
+
organizers: "Organizers"
|
46
|
+
participants: "Participants"
|
47
|
+
groups: "Groups"
|
48
|
+
tags: "Tags"
|
49
|
+
main_title: "SocialStream a core for building social network applications."
|
50
|
+
meet:
|
51
|
+
sentence1: "Meet interesting people and groups"
|
52
|
+
share:
|
53
|
+
sentence1: "Your contacts and relations"
|
54
|
+
sentence2: "Posts, comments and activities"
|
55
|
+
stats: "%{users} users and %{groups} groups registered"
|
35
56
|
group:
|
36
57
|
other: "Groups"
|
37
58
|
all: All Groups
|
@@ -48,6 +69,9 @@ en:
|
|
48
69
|
options: "Menu Options"
|
49
70
|
post:
|
50
71
|
confirm_delete: "Delete post?"
|
72
|
+
sign_in: "Sign in"
|
73
|
+
sign_up: "Sign up"
|
74
|
+
socialstream: "SocialStream"
|
51
75
|
tie:
|
52
76
|
pending:
|
53
77
|
other: Pending requests
|
@@ -58,5 +82,4 @@ en:
|
|
58
82
|
all: All
|
59
83
|
time:
|
60
84
|
ago: "%{time} ago"
|
61
|
-
socialstream: "SocialStream"
|
62
85
|
|
data/init.rb
CHANGED
@@ -27,7 +27,6 @@
|
|
27
27
|
padding-top: 5px;
|
28
28
|
}
|
29
29
|
|
30
|
-
|
31
30
|
#input_activities {
|
32
31
|
border-color: #0656a4;
|
33
32
|
color: #2A3890;
|
@@ -56,7 +55,7 @@
|
|
56
55
|
}
|
57
56
|
|
58
57
|
.actor_logo {
|
59
|
-
width:
|
58
|
+
width: 38px;
|
60
59
|
padding: 8px 0px 8px 5px;
|
61
60
|
display: inline-block;
|
62
61
|
vertical-align: top;
|
@@ -66,7 +65,7 @@
|
|
66
65
|
padding: 8px 0px 0px 0px;
|
67
66
|
display: inline-block;
|
68
67
|
color: #000;
|
69
|
-
width:
|
68
|
+
width: 90%;
|
70
69
|
}
|
71
70
|
|
72
71
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#carousel_container{
|
2
|
+
text-align:center;
|
3
|
+
}
|
4
|
+
|
5
|
+
#carousel_inner {
|
6
|
+
float:left; /* important for inline positioning */
|
7
|
+
width:490px; /* important (this width = width of list item(including margin) * items shown */
|
8
|
+
overflow: hidden; /* important (hide the items outside the div) */
|
9
|
+
/* non-important styling bellow */
|
10
|
+
background: #fff;
|
11
|
+
text-align:center;
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
#carousel_ul {
|
16
|
+
position:relative;
|
17
|
+
left:-210px; /* important (this should be negative number of list items width(including margin) */
|
18
|
+
list-style-type: none; /* removing the default styling for unordered list items */
|
19
|
+
margin: 0px;
|
20
|
+
padding: 0px;
|
21
|
+
width:9999px; /* important */
|
22
|
+
/* non-important styling bellow */
|
23
|
+
padding-bottom:10px;
|
24
|
+
}
|
25
|
+
|
26
|
+
#carousel_ul li{
|
27
|
+
float: left; /* important for inline positioning of the list items */
|
28
|
+
width:55px; /* fixed width, important */
|
29
|
+
/* just styling bellow*/
|
30
|
+
padding:0px;
|
31
|
+
height:38px;
|
32
|
+
background: #fff;
|
33
|
+
margin-top:10px;
|
34
|
+
margin-bottom:10px;
|
35
|
+
margin-left:5px;
|
36
|
+
margin-right:5px;
|
37
|
+
}
|
38
|
+
|
39
|
+
#carousel_ul li img {
|
40
|
+
.margin-bottom:-4px; /* IE is making a 4px gap bellow an image inside of an anchor (<a href...>) so this is to fix that*/
|
41
|
+
/* styling */
|
42
|
+
cursor:pointer;
|
43
|
+
cursor: hand;
|
44
|
+
border:0px;
|
45
|
+
}
|
46
|
+
#left_scroll, #right_scroll{
|
47
|
+
float:left;
|
48
|
+
height:10px;
|
49
|
+
padding-top:15px;
|
50
|
+
width:26px;
|
51
|
+
background: #fff;
|
52
|
+
}
|
53
|
+
#left_scroll img, #right_scroll img{
|
54
|
+
/*styling*/
|
55
|
+
cursor: pointer;
|
56
|
+
cursor: hand;
|
57
|
+
}
|
@@ -4,13 +4,14 @@
|
|
4
4
|
|
5
5
|
.group{
|
6
6
|
display:inline-block;
|
7
|
+
width:50px;
|
7
8
|
}
|
8
9
|
|
9
10
|
#groups_list {
|
10
11
|
width: 100%;
|
11
|
-
border-bottom: thin solid #D4E4Ea;
|
12
12
|
padding-bottom: 5px;
|
13
13
|
text-align: center;
|
14
|
+
display: inline-block;
|
14
15
|
}
|
15
16
|
|
16
17
|
#group_todos {
|
@@ -25,6 +26,28 @@
|
|
25
26
|
font-weight: bold;
|
26
27
|
}
|
27
28
|
|
29
|
+
.group_title a{
|
30
|
+
display:block;
|
31
|
+
font-size:9px;
|
32
|
+
text-decoration:none;
|
33
|
+
text-align:center;
|
34
|
+
}
|
35
|
+
|
36
|
+
.group_title a:hover{
|
37
|
+
display:block;
|
38
|
+
text-decoration:underline;
|
39
|
+
}
|
40
|
+
|
41
|
+
.group_content{
|
42
|
+
display:block;
|
43
|
+
text-align:center;
|
44
|
+
}
|
45
|
+
|
46
|
+
.btn_group{
|
47
|
+
vertical-align:top;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
28
51
|
#my_conferences {
|
29
52
|
background-color: #deeff8;
|
30
53
|
/*border-bottom: thin solid #D4E4Ea;*/
|
@@ -26,19 +26,31 @@
|
|
26
26
|
}
|
27
27
|
|
28
28
|
.follow_btn{
|
29
|
-
color: #
|
30
|
-
background-color: #1F4A75;
|
31
|
-
padding: 2px 2px 2px 2px;
|
32
|
-
border:1px solid #BDC7D8;
|
29
|
+
color: #2A3890;
|
33
30
|
font-size: 11px;
|
34
31
|
cursor: pointer;
|
32
|
+
text-decoration:underline;
|
33
|
+
background:none;
|
34
|
+
border:0;
|
35
|
+
|
36
|
+
}
|
37
|
+
.follow_btn button{
|
38
|
+
overflow: visible;
|
35
39
|
}
|
36
40
|
|
41
|
+
.tie_btn{
|
42
|
+
color:#fff;
|
43
|
+
background:#1F4A75;
|
44
|
+
padding: 2px 0px 2px 0px;
|
45
|
+
font-size: 11px;
|
46
|
+
}
|
37
47
|
|
38
48
|
.ties_btn{
|
39
|
-
|
40
|
-
|
41
|
-
|
49
|
+
text-align: right;
|
50
|
+
padding: 2px 0px 2px 0px;
|
51
|
+
vertical-align: middle;
|
52
|
+
text-decoration:underline;
|
53
|
+
|
42
54
|
}
|
43
55
|
|
44
56
|
|
@@ -89,6 +101,13 @@
|
|
89
101
|
|
90
102
|
}
|
91
103
|
|
104
|
+
.tie_link a{
|
105
|
+
text-decoration:none;
|
106
|
+
}
|
107
|
+
|
108
|
+
.tie_link a:hover{
|
109
|
+
text-decoration:underline;
|
110
|
+
}
|
92
111
|
|
93
112
|
|
94
113
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
namespace :db do
|
2
|
+
desc 'Populate database with fake data for development'
|
3
|
+
task :populate => [ 'db:seed', 'db:populate:create' ]
|
4
|
+
|
5
|
+
namespace :populate do
|
6
|
+
|
7
|
+
desc "Reload populate data"
|
8
|
+
task :reload => [ 'db:reset', :create ]
|
9
|
+
|
10
|
+
desc "Create populate data"
|
11
|
+
task :create => :environment do
|
12
|
+
|
13
|
+
# Create demo user if not present
|
14
|
+
if User.find_by_name('demo').blank?
|
15
|
+
u = User.create! :full_name => 'demo',
|
16
|
+
:email => 'demo@dit.upm.es',
|
17
|
+
:password => 'demo',
|
18
|
+
:password_confirmation => 'demo'
|
19
|
+
u.confirm!
|
20
|
+
end
|
21
|
+
|
22
|
+
puts "* Create Users"
|
23
|
+
20.times do
|
24
|
+
u = User.create :full_name => Forgery::Name.full_name,
|
25
|
+
:email => Forgery::Internet.email_address,
|
26
|
+
:password => 'test',
|
27
|
+
:password_confirmation => 'test'
|
28
|
+
u.confirm!
|
29
|
+
end
|
30
|
+
|
31
|
+
available_users = User.all
|
32
|
+
|
33
|
+
puts "* Create Groups"
|
34
|
+
20.times do
|
35
|
+
Group.create :name => Forgery::Name.company_name,
|
36
|
+
:email => Forgery::Internet.email_address
|
37
|
+
end
|
38
|
+
|
39
|
+
available_groups = Group.all
|
40
|
+
|
41
|
+
puts "* Create Ties"
|
42
|
+
User.all.each do |u|
|
43
|
+
users = available_users.dup - Array(u)
|
44
|
+
user_relations = %w( Friend FriendOfFriend ).map{ |r| Relation.mode('User', 'User').find_by_name(r) }
|
45
|
+
|
46
|
+
Forgery::Basic.number.times do
|
47
|
+
user = users.delete_at((rand * users.size).to_i)
|
48
|
+
u.ties.create :receiver => user.actor,
|
49
|
+
:relation => user_relations.random
|
50
|
+
end
|
51
|
+
groups = available_groups.dup
|
52
|
+
group_relations = Relation.mode('User', 'Group')
|
53
|
+
|
54
|
+
Forgery::Basic.number.times do
|
55
|
+
group = groups.delete_at((rand * groups.size).to_i)
|
56
|
+
u.ties.create :receiver => group.actor,
|
57
|
+
:relation => group_relations.random
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Antonio Tapiador
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-11-03 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -138,7 +138,9 @@ files:
|
|
138
138
|
- app/controllers/posts_controller.rb
|
139
139
|
- app/controllers/ties_controller.rb
|
140
140
|
- app/helpers/activities_helper.rb
|
141
|
+
- app/helpers/groups_helper.rb
|
141
142
|
- app/helpers/ties_helper.rb
|
143
|
+
- app/helpers/users_helper.rb
|
142
144
|
- app/models/activity.rb
|
143
145
|
- app/models/activity_object.rb
|
144
146
|
- app/models/activity_object_activity.rb
|
@@ -172,13 +174,13 @@ files:
|
|
172
174
|
- app/views/groups/_follow.html.erb
|
173
175
|
- app/views/groups/_followers.html.erb
|
174
176
|
- app/views/groups/_group.html.erb
|
177
|
+
- app/views/groups/_groups.html.erb
|
175
178
|
- app/views/groups/_logo.html.erb
|
176
179
|
- app/views/groups/_middle_show.html.erb
|
177
180
|
- app/views/groups/_right_show.html.erb
|
178
181
|
- app/views/groups/_tabs.html.erb
|
179
182
|
- app/views/groups/show.html.erb
|
180
183
|
- app/views/home/_contacts.html.erb
|
181
|
-
- app/views/home/_groups.html.erb
|
182
184
|
- app/views/home/_location.html.erb
|
183
185
|
- app/views/home/_middle.html.erb
|
184
186
|
- app/views/home/_options.html.erb
|
@@ -314,6 +316,7 @@ files:
|
|
314
316
|
- lib/generators/social_stream/templates/public/stylesheets/base.css
|
315
317
|
- lib/generators/social_stream/templates/public/stylesheets/boxy.css
|
316
318
|
- lib/generators/social_stream/templates/public/stylesheets/browse.css
|
319
|
+
- lib/generators/social_stream/templates/public/stylesheets/carousel.css
|
317
320
|
- lib/generators/social_stream/templates/public/stylesheets/frontpage.css
|
318
321
|
- lib/generators/social_stream/templates/public/stylesheets/header.css
|
319
322
|
- lib/generators/social_stream/templates/public/stylesheets/home.css
|
@@ -334,6 +337,7 @@ files:
|
|
334
337
|
- lib/social_stream/rails/railtie.rb
|
335
338
|
- lib/social_stream/seed.rb
|
336
339
|
- lib/social_stream/version.rb
|
340
|
+
- lib/tasks/db/populate.rake
|
337
341
|
- social_stream.gemspec
|
338
342
|
- spec/dummy/Rakefile
|
339
343
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<div id="my_groups">
|
2
|
-
<div id="groups_title" class="content_size">
|
3
|
-
<%=t('group.other') %>
|
4
|
-
</div>
|
5
|
-
<div id="groups_list" class="content_size">
|
6
|
-
<% if current_user.recent_groups.any? %>
|
7
|
-
<%= render current_user.recent_groups %>
|
8
|
-
<% else %>
|
9
|
-
<div class="space_center">
|
10
|
-
</div>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
</div>
|