social_stream 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. data/Gemfile +0 -9
  2. data/base/app/assets/stylesheets/contacts.css.scss +8 -3
  3. data/base/app/assets/stylesheets/frontpage.css.scss +1 -1
  4. data/base/app/assets/stylesheets/search.css.scss +17 -1
  5. data/base/app/controllers/contacts_controller.rb +2 -5
  6. data/base/app/models/contact.rb +3 -2
  7. data/base/app/views/activities/_options.html.erb +1 -1
  8. data/base/app/views/contacts/_form.html.erb +14 -7
  9. data/base/app/views/frontpage/_social_networks.html.erb +3 -0
  10. data/base/app/views/groups/_new.html.erb +2 -2
  11. data/base/app/views/groups/_show.html.erb +1 -2
  12. data/base/app/views/groups/index.html.erb +1 -1
  13. data/base/app/views/layouts/_header_signed_out.erb +1 -3
  14. data/base/app/views/notifications/activities/_follow_subject.html.erb +5 -2
  15. data/base/app/views/notifications/activities/_like_subject.html.erb +6 -2
  16. data/base/app/views/notifications/activities/_make-friend_subject.html.erb +5 -2
  17. data/base/app/views/notifications/activities/_post_subject.html.erb +6 -1
  18. data/base/app/views/notifications/activities/_update_body.html.erb +5 -1
  19. data/base/app/views/notifications/activities/_update_subject.html.erb +5 -1
  20. data/base/app/views/posts/_post_focus_search.html.erb +37 -3
  21. data/base/app/views/posts/_post_global_search.html.erb +2 -0
  22. data/base/app/views/profiles/_contact.html.erb +1 -1
  23. data/base/app/views/search/index.js.erb +2 -0
  24. data/base/app/views/toolbar/_home.html.erb +4 -0
  25. data/base/config/locales/en.yml +26 -0
  26. data/base/config/locales/es.yml +26 -0
  27. data/base/lib/mailboxer/notification_decoder.rb +8 -6
  28. data/base/lib/social_stream-base.rb +1 -1
  29. data/base/lib/social_stream/base/version.rb +1 -1
  30. data/base/lib/social_stream/migrations/components.rb +1 -1
  31. data/base/lib/social_stream/toolbar_config/base.rb +12 -1
  32. data/base/social_stream-base.gemspec +1 -1
  33. data/base/spec/controllers/contacts_controller_spec.rb +4 -4
  34. data/events/app/assets/javascripts/social_stream-events.js +2 -2
  35. data/events/app/assets/stylesheets/social_stream-events.css +3 -0
  36. data/events/{app → vendor}/assets/javascripts/jquery.ad-gallery.js +0 -0
  37. data/events/{app → vendor}/assets/javascripts/jquery.ad-gallery.pack.js +0 -0
  38. data/events/{app → vendor}/assets/stylesheets/ad_next.png +0 -0
  39. data/events/{app → vendor}/assets/stylesheets/ad_prev.png +0 -0
  40. data/events/{app → vendor}/assets/stylesheets/ad_scroll_back.png +0 -0
  41. data/events/{app → vendor}/assets/stylesheets/ad_scroll_forward.png +0 -0
  42. data/events/{app → vendor}/assets/stylesheets/fullcalendar.css +0 -0
  43. data/events/{app → vendor}/assets/stylesheets/fullcalendar.print.css +0 -0
  44. data/events/{app → vendor}/assets/stylesheets/jquery.ad-gallery.css +0 -0
  45. data/events/{app → vendor}/assets/stylesheets/loader.gif +0 -0
  46. data/events/vendor/assets/stylesheets/social_stream-events.css +273 -0
  47. data/lib/social_stream.rb +0 -4
  48. data/lib/social_stream/version.rb +1 -1
  49. data/presence/.gitignore +4 -0
  50. data/presence/Gemfile +4 -0
  51. data/presence/Rakefile +1 -0
  52. data/presence/app/assets/audio/chat/onMessageAudio.mp3 +0 -0
  53. data/presence/app/assets/audio/chat/onMessageAudio.wav +0 -0
  54. data/presence/app/assets/images/arrow.png +0 -0
  55. data/presence/app/assets/images/black_arrow3.png +0 -0
  56. data/presence/app/assets/images/status/available.png +0 -0
  57. data/presence/app/assets/images/status/away.png +0 -0
  58. data/presence/app/assets/images/status/dnd.png +0 -0
  59. data/presence/app/assets/javascripts/jquery-ui-1.8.14.custom.min.js +789 -0
  60. data/presence/app/assets/javascripts/jquery.tools.min.js +17 -0
  61. data/presence/app/assets/javascripts/jquery.tools.tooltip.js +11 -0
  62. data/presence/app/assets/javascripts/jquery.ui.chatbox.js +260 -0
  63. data/presence/app/assets/javascripts/social_stream-presence.js +2 -0
  64. data/presence/app/assets/javascripts/store.js +27 -0
  65. data/presence/app/assets/javascripts/strophe.js +3612 -0
  66. data/presence/app/assets/javascripts/xmpp_client.js +498 -0
  67. data/presence/app/assets/stylesheets/chat.css +231 -0
  68. data/presence/app/assets/stylesheets/jquery.ui.chatbox.css +54 -0
  69. data/presence/app/assets/stylesheets/social_stream-presence.css +3 -0
  70. data/presence/app/controllers/xmpp_controller.rb +190 -0
  71. data/presence/app/helpers/xmpp_helper.rb +33 -0
  72. data/presence/app/views/xmpp/_chat.html.erb +59 -0
  73. data/presence/app/views/xmpp/_chat_connecting.html.erb +8 -0
  74. data/presence/app/views/xmpp/_chat_contacts.html.erb +46 -0
  75. data/presence/app/views/xmpp/_chat_off.html.erb +35 -0
  76. data/presence/app/views/xmpp/active_users.html.erb +33 -0
  77. data/presence/app/views/xmpp/chat.html.erb +13 -0
  78. data/presence/app/views/xmpp/index.html +19 -0
  79. data/presence/app/views/xmpp/test.html.erb +11 -0
  80. data/presence/config/routes.rb +15 -0
  81. data/presence/db/migrate/20110711111408_add_connected_column_to_user.rb +9 -0
  82. data/presence/db/migrate/20110928135031_add_status_column_to_user.rb +9 -0
  83. data/presence/ejabberd/conf/ejabberd.cfg +625 -0
  84. data/presence/ejabberd/conf/ejabberdctl.cfg +154 -0
  85. data/presence/ejabberd/conf/inetrc +3 -0
  86. data/presence/ejabberd/conf/server.pem +37 -0
  87. data/presence/ejabberd/conf/ssconfig.cfg +29 -0
  88. data/presence/ejabberd/ejabberd_scripts/authentication_script +117 -0
  89. data/presence/ejabberd/ejabberd_scripts/authentication_script_org +114 -0
  90. data/presence/ejabberd/ejabberd_scripts/compile_module +34 -0
  91. data/presence/ejabberd/ejabberd_scripts/generate_random_password +18 -0
  92. data/presence/ejabberd/ejabberd_scripts/kill_authentication_script.sh +13 -0
  93. data/presence/ejabberd/ejabberd_scripts/reset_connection_script +55 -0
  94. data/presence/ejabberd/ejabberd_scripts/reset_logs.sh +23 -0
  95. data/presence/ejabberd/ejabberd_scripts/set_connection_script +48 -0
  96. data/presence/ejabberd/ejabberd_scripts/set_presence_script +48 -0
  97. data/presence/ejabberd/ejabberd_scripts/show_config.sh +30 -0
  98. data/presence/ejabberd/ejabberd_scripts/start_ejabberd.sh +68 -0
  99. data/presence/ejabberd/ejabberd_scripts/stop_ejabberd.sh +12 -0
  100. data/presence/ejabberd/ejabberd_scripts/synchronize_presence_script +57 -0
  101. data/presence/ejabberd/ejabberd_scripts/unset_connection_script +48 -0
  102. data/presence/ejabberd/mod_admin_extra/mod_admin_extra.beam +0 -0
  103. data/presence/ejabberd/mod_admin_extra/mod_admin_extra.erl +1560 -0
  104. data/presence/ejabberd/mod_sspresence/mod_sspresence.erl +230 -0
  105. data/presence/lib/social_stream-presence.rb +13 -0
  106. data/presence/lib/social_stream/migrations/presence.rb +9 -0
  107. data/presence/lib/social_stream/presence/config.rb +9 -0
  108. data/presence/lib/social_stream/presence/engine.rb +49 -0
  109. data/presence/lib/social_stream/presence/models/buddy_manager.rb +67 -0
  110. data/presence/social_stream-presence.gemspec +28 -0
  111. data/presence/spec/demo/.gitignore +5 -0
  112. data/presence/spec/demo/.rspec +1 -0
  113. data/presence/spec/demo/README +261 -0
  114. data/presence/spec/demo/Rakefile +7 -0
  115. data/presence/spec/demo/app/assets/images/rails.png +0 -0
  116. data/presence/spec/demo/app/assets/javascripts/application.js +9 -0
  117. data/presence/spec/demo/app/assets/stylesheets/application.css +7 -0
  118. data/presence/spec/demo/app/controllers/application_controller.rb +3 -0
  119. data/presence/spec/demo/app/helpers/application_helper.rb +2 -0
  120. data/presence/spec/demo/app/mailers/.gitkeep +0 -0
  121. data/presence/spec/demo/app/models/.gitkeep +0 -0
  122. data/presence/spec/demo/app/views/layouts/application.html.erb +14 -0
  123. data/presence/spec/demo/autotest/discover.rb +2 -0
  124. data/presence/spec/demo/config.ru +4 -0
  125. data/presence/spec/demo/config/application.rb +41 -0
  126. data/presence/spec/demo/config/boot.rb +6 -0
  127. data/presence/spec/demo/config/database.yml +25 -0
  128. data/presence/spec/demo/config/environment.rb +5 -0
  129. data/presence/spec/demo/config/environments/development.rb +27 -0
  130. data/presence/spec/demo/config/environments/production.rb +54 -0
  131. data/presence/spec/demo/config/environments/test.rb +39 -0
  132. data/presence/spec/demo/config/initializers/backtrace_silencers.rb +7 -0
  133. data/presence/spec/demo/config/initializers/inflections.rb +10 -0
  134. data/presence/spec/demo/config/initializers/mime_types.rb +5 -0
  135. data/presence/spec/demo/config/initializers/secret_token.rb +7 -0
  136. data/presence/spec/demo/config/initializers/session_store.rb +8 -0
  137. data/presence/spec/demo/config/initializers/wrap_parameters.rb +12 -0
  138. data/presence/spec/demo/config/locales/en.yml +5 -0
  139. data/presence/spec/demo/config/routes.rb +58 -0
  140. data/presence/spec/demo/db/seeds.rb +7 -0
  141. data/presence/spec/demo/doc/README_FOR_APP +2 -0
  142. data/presence/spec/demo/lib/tasks/.gitkeep +0 -0
  143. data/presence/spec/demo/log/.gitkeep +0 -0
  144. data/presence/spec/demo/public/404.html +26 -0
  145. data/presence/spec/demo/public/422.html +26 -0
  146. data/presence/spec/demo/public/500.html +26 -0
  147. data/presence/spec/demo/public/favicon.ico +0 -0
  148. data/presence/spec/demo/public/index.html +241 -0
  149. data/presence/spec/demo/public/robots.txt +5 -0
  150. data/presence/spec/demo/script/rails +6 -0
  151. data/presence/spec/demo/spec/spec_helper.rb +27 -0
  152. data/presence/spec/demo/test/fixtures/.gitkeep +0 -0
  153. data/presence/spec/demo/test/functional/.gitkeep +0 -0
  154. data/presence/spec/demo/test/integration/.gitkeep +0 -0
  155. data/presence/spec/demo/test/performance/browsing_test.rb +12 -0
  156. data/presence/spec/demo/test/test_helper.rb +13 -0
  157. data/presence/spec/demo/test/unit/.gitkeep +0 -0
  158. data/presence/spec/demo/vendor/assets/stylesheets/.gitkeep +0 -0
  159. data/presence/spec/demo/vendor/plugins/.gitkeep +0 -0
  160. data/presence/spec/discover.rb +2 -0
  161. data/presence/spec/spec_helper.rb +27 -0
  162. data/social_stream.gemspec +9 -2
  163. data/spec/dummy/config/environments/{test_pg.rb → test_mysql.rb} +6 -2
  164. data/spec/dummy/config/environments/test_postgres.rb +39 -0
  165. data/spec/spec_helper.rb +1 -4
  166. metadata +135 -21
  167. data/base/app/views/groups/_new_activity.html.erb +0 -1
  168. data/base/app/views/groups/_new_activity_fields.html.erb +0 -7
data/Gemfile CHANGED
@@ -15,12 +15,3 @@ end
15
15
  # gem 'social2social', :path => '../social2social'
16
16
 
17
17
  gemspec
18
-
19
- group :test do
20
- case ENV['DB']
21
- when 'mysql'
22
- gem 'mysql2'
23
- when 'postgres'
24
- gem 'pg'
25
- end
26
- end
@@ -58,12 +58,18 @@ span.ui-helper-hidden {
58
58
  }
59
59
 
60
60
  #contact-form label {
61
- display: block;
62
- font-family: sans-serif;
63
61
  padding: 2px;
62
+ }
63
+
64
+ #contact-form label[for=contact_message] {
65
+ display: block;
64
66
  margin-left: 20px;
65
67
  }
66
68
 
69
+ #contact-form .new_contact_text_area {
70
+ width: 99%;
71
+ }
72
+
67
73
  span.ui-radio-state-hover, span.ui-checkbox-state-hover {
68
74
  background-position: 0 -114px;
69
75
  }
@@ -92,4 +98,3 @@ span.ui-radio-state-checked-hover {
92
98
  .checked-option{
93
99
  background-color: $secondary-color;
94
100
  }
95
-
@@ -39,7 +39,7 @@ span.find{ padding-right:5px;}
39
39
  #icon_collaborate{ background: transparent url(frontpage/collaborate.png); width:56px; height:57px;}
40
40
  .icon_text{ text-align:center; width:100%; font-weight:bold;}
41
41
  #join_form{ margin: 15px 0px; text-align:center;}
42
- #join_form input[type="submit"] {font-size: 17px; padding: 6px 20px;}
42
+ #join_form input[type="submit"] {font-size: 14px; padding: 6px 10px;}
43
43
  .sentences{ width:80%; display:inline-block; vertical-align:top; padding-top:10px;}
44
44
  .sentences ul,.sentences li{ list-style-type:none; font-size:14px; margin-left:10px; padding-top:3px;}
45
45
  .sentences li.purple{ list-style-image:url("frontpage/purple_sq.png");}
@@ -118,7 +118,23 @@
118
118
  overflow: hidden;
119
119
  text-align: center;
120
120
  }
121
- .subject_search_results img {
121
+ .subject_search_results.post {
122
+ width: 560px;
123
+ height: 100%;
124
+ overflow: hidden;
125
+ text-align: center;
126
+ }
127
+ .subject_search_results.post .activity_objects a,.subject_search_results .brief a{
128
+ text-decoration: none;
129
+ color: inherit;
130
+ }
131
+ .subject_search_results .post.content_size {
132
+ word-wrap: break-word;
133
+ }
134
+ .subject_search_results .logo {
135
+ display:inline-block;
136
+ }
137
+ .subject_search_results .logo img {
122
138
  width: 48px;
123
139
  height: 48px;
124
140
  }
@@ -23,11 +23,8 @@ class ContactsController < ApplicationController
23
23
 
24
24
  def update
25
25
  # FIXME: This should be in the model
26
- if params[:contact][:relation_ids].present? &&
27
- params[:contact][:relation_ids].delete("gotcha") &&
28
- params[:contact][:relation_ids].blank?
29
- params[:contact][:relation_ids] << @contact.sender.relation_public.id
30
- end
26
+ params[:contact][:relation_ids].present? &&
27
+ params[:contact][:relation_ids].delete("0")
31
28
 
32
29
  if @contact.update_attributes(params[:contact])
33
30
  redirect_to @contact.receiver_subject
@@ -63,8 +63,8 @@ class Contact < ActiveRecord::Base
63
63
  end
64
64
  }
65
65
 
66
-
67
66
  validates_presence_of :sender_id, :receiver_id
67
+ validates_presence_of :relation_ids, :on => :update
68
68
  validates_uniqueness_of :sender_id, :scope => :receiver_id
69
69
  validates_uniqueness_of :receiver_id, :scope => :sender_id
70
70
 
@@ -181,7 +181,8 @@ class Contact < ActiveRecord::Base
181
181
  end
182
182
 
183
183
  def set_inverse
184
- inverse = Contact.sent_by(receiver_id).received_by(sender_id).first
184
+
185
+ inverse = self.class.sent_by(receiver_id).received_by(sender_id).first
185
186
 
186
187
  return if inverse.blank?
187
188
 
@@ -9,7 +9,7 @@
9
9
  <% if user_signed_in? %>
10
10
  ·
11
11
  <%= link_to activity.audience_in_words(current_subject, :details => :summary),
12
- '#',
12
+ 'javascript:;',
13
13
  :class => 'activity_audience_summary' %>
14
14
  <div class="activity_audience">
15
15
  <%= activity.audience_in_words(current_subject) %>
@@ -1,16 +1,23 @@
1
1
  <div id="contact-form">
2
2
  <%= form_for @contact do |f| %>
3
- <%= hidden_field_tag "contact[relation_ids][]", "gotcha" %>
3
+ <%= hidden_field_tag "contact[relation_ids][]", "0" %>
4
+
5
+ <% if @contact.errors.any? %>
6
+ <div id="error_explanation">
7
+ <h2><%= t 'contact.error_count', :count => @contact.errors.count %></h2>
8
+
9
+ <ul>
10
+ <% @contact.errors.full_messages.each do |msg| %>
11
+ <li><%= msg %></li>
12
+ <% end %>
13
+ </ul>
14
+ </div>
15
+ <% end %>
4
16
 
5
17
  <ul>
6
18
  <% current_subject.relation_customs.each do |relation| %>
7
19
  <li>
8
- <div contain="<%= dom_id relation %>">
9
- <input id="<%= dom_id relation %>" name="contact[relation_ids][]" value="<%= relation.id %>" type="checkbox" <%= raw('checked="checked"') if @contact.relation_ids.include?(relation.id) %> />
10
- <label for="<%= dom_id relation %>">
11
- <%= relation.name %>
12
- </label>
13
- </div>
20
+ <%= check_box_tag "contact[relation_ids][]", relation.id, f.object.relation_ids.include?(relation.id), :id => "contact_relation_ids_#{ relation.id }" %><%= label_tag "contact_relation_ids_#{ relation.id }", relation.name %>
14
21
  </li>
15
22
  <% end %>
16
23
  </ul>
@@ -0,0 +1,3 @@
1
+ <span>|</span>
2
+ <%= link_to image_tag('btn/facebook.png'), user_omniauth_authorize_path(:facebook), :class => "menu_icon" %>
3
+ <%= link_to image_tag('btn/linkedin.png'), user_omniauth_authorize_path(:linked_in), :class => "menu_icon" %>
@@ -12,8 +12,8 @@
12
12
  <% end %>
13
13
 
14
14
  <%= location(
15
- link_to(image_tag("btn/btn_group.png", :class => "menu_icon")+t('group.other'), groups_path),
16
- link_to(image_tag("btn/btn_group.png", :class => "menu_icon")+t('group.new.action'), new_group_path)
15
+ link_to(t('group.other'), groups_path),
16
+ link_to(t('group.new.action'), new_group_path)
17
17
  ) %>
18
18
 
19
19
  <div class="space_center"></div>
@@ -15,8 +15,7 @@
15
15
  <%= render :partial => 'sidebar_show' %>
16
16
  <% end %>
17
17
 
18
- <%= location(link_to(image_tag("btn/btn_group.png", :class => "btn_config")+t('group.one')+": "+
19
- content_tag(:span, ( truncate_name sanitize @group.name), :class=>"name_group")))%>
18
+ <%= location(link_to(t('group.one')+": "+truncate_name(sanitize @group.name)))%>
20
19
 
21
20
  <% toolbar :profile => @group %>
22
21
 
@@ -7,7 +7,7 @@
7
7
  <% content_for :sidebar do %>
8
8
  <%= render :partial => "groups/sidebar_index" %>
9
9
  <% end %>
10
- <%= location(image_tag("btn/btn_browse.png", :class=>"btn_config") + t('browse') +": "+
10
+ <%= location(t('browse') +": "+
11
11
  link_to(t('user.by'), users_path) + ", "+
12
12
  content_tag(:b,content_tag(:span, t('group.all'), :id=>'name_group')))%>
13
13
 
@@ -24,9 +24,7 @@
24
24
  <%= link_to t('sign_up'), new_user_registration_path, :class => "register_link" %>
25
25
  <span>|</span>
26
26
  <%= link_to t('forgot_password'), new_user_password_path, :class => "register_link" %>
27
- <span>|</span>
28
- <%= link_to image_tag('btn/facebook.png'), user_omniauth_authorize_path(:facebook), :class => "menu_icon" %>
29
- <%= link_to image_tag('btn/linkedin.png'), user_omniauth_authorize_path(:linked_in), :class => "menu_icon" %>
27
+ <%= render :partial => "frontpage/social_networks" %>
30
28
  </div>
31
29
  <% end -%>
32
30
  </div>
@@ -1,2 +1,5 @@
1
- %{sender} added %{who} as contact.
2
-
1
+ <% if activity.receiver.subject.is_a?(User) %>
2
+ <%= t('notification.added.user') %>
3
+ <% else %>
4
+ <%= t('notification.added.other') %>
5
+ <% end %>
@@ -1,5 +1,9 @@
1
1
  <% if activity.direct_object.is_a? Actor or activity.direct_object.respond_to? :actor %>
2
- %{sender} is now %{whose} fan.
2
+ <%= t('notification.fan')%>
3
3
  <% else %>
4
- %{sender} likes %{whose} %{object.name}%>
4
+ <% if activity.receiver.subject.is_a?(User) %>
5
+ <%= t('notification.like.user') %>
6
+ <% else %>
7
+ <%= t('notification.like.other') %>
8
+ <% end %>
5
9
  <% end %>
@@ -1,2 +1,5 @@
1
- %{sender} also added %{who} as contact.
2
-
1
+ <% if activity.receiver.subject.is_a?(User) %>
2
+ <%= t('notification.makefriend.user') %>
3
+ <% else %>
4
+ <%= t('notification.makefriend.other') %>
5
+ <% end %>
@@ -1 +1,6 @@
1
- %{sender} added a %{object} in %{whose} wall
1
+ <% if activity.receiver.subject.is_a?(User) %>
2
+ <%= t('notification.post.user') %>
3
+ <% else %>
4
+ <%= t('notification.post.other') %>
5
+ <% end %>
6
+
@@ -1 +1,5 @@
1
- %{sender} updated a %{object} in %{whose} wall.
1
+ <% if activity.receiver.subject.is_a?(User) %>
2
+ <%= t('notification.update.user') %>
3
+ <% else %>
4
+ <%= t('notification.update.other') %>
5
+ <% end %>
@@ -1 +1,5 @@
1
- %{sender.name} updated a %{object.name} in %{whose} wall
1
+ <% if activity.receiver.subject.is_a?(User) %>
2
+ <%= t('notification.update.user') %>
3
+ <% else %>
4
+ <%= t('notification.update.other') %>
5
+ <% end %>
@@ -1,3 +1,37 @@
1
- <%= div_for post, :class => 'content_size' do %>
2
- <%= simple_format post.text %>
3
- <% end %>
1
+ <% activity = post.post_activity %>
2
+ <%= div_for activity, :class => 'super_activity' do %>
3
+ <div class="actor_logo">
4
+ <%= link_to image_tag(activity.sender_subject.logo.url(:actor),
5
+ :alt => activity.sender_subject.name),
6
+ activity.sender_subject %>
7
+ </div>
8
+ <div class="activity_content">
9
+ <div class="actor_name">
10
+ <%= activity.title(self) %>
11
+ </div>
12
+ <div class="activity_objects">
13
+ <%= link_to post do%>
14
+ <% text = excerpt(strip_tags(post.text),get_search_query_words.first,:radius => 180) %>
15
+ <% if text.length < 400 %>
16
+ <% text = excerpt(strip_tags(post.text),get_search_query_words.first,:radius => 540 - text.length) %>
17
+ <% end %>
18
+ <%= highlight(text,get_search_query_words) %>
19
+ <% end %>
20
+ </div>
21
+ <div class="activity_options">
22
+ <div class="post_time_ago">
23
+ <%= t('time.ago', :time => time_ago_in_words(activity.created_at)) %>
24
+ </div>
25
+ <% if user_signed_in? %>
26
+ ·
27
+ <%= link_to activity.audience_in_words(current_subject, :details => :summary),
28
+ 'javascript:;',
29
+ :class => 'activity_audience_summary' %>
30
+ <div class="activity_audience">
31
+ <%= activity.audience_in_words(current_subject) %>
32
+ </div>
33
+ <% end %>
34
+ </div>
35
+ </div>
36
+ <% end %>
37
+
@@ -5,11 +5,13 @@
5
5
  </div>
6
6
  <div class="sub-block">
7
7
  <div class="brief">
8
+ <%= link_to post do%>
8
9
  <% text = excerpt(strip_tags(post.text),get_search_query_words.first,:radius => 25) %>
9
10
  <% if text.length < 60 %>
10
11
  <% text = excerpt(strip_tags(post.text),get_search_query_words.first,:radius => 30 + (60 - text.length)) %>
11
12
  <% end %>
12
13
  <%= highlight(text,get_search_query_words) %>
14
+ <% end %>
13
15
  <br>
14
16
  </div>
15
17
  </div>
@@ -63,7 +63,7 @@
63
63
  </div>
64
64
  </div>
65
65
  <%end%>
66
- <% if @profile.subject.email? %>
66
+ <% if @profile.subject.email? && user_signed_in? %>
67
67
  <div class="row">
68
68
  <div class="label">
69
69
  <%=t('profile.email')%>:
@@ -18,3 +18,5 @@
18
18
  <% end %>
19
19
 
20
20
  $('#global_search_input').removeClass("searching");
21
+
22
+ setActivityPrivacyTooltips();
@@ -7,5 +7,9 @@
7
7
  <%= yield(:toolbar_menu).empty? ? home_toolbar_menu : yield(:toolbar_menu)%>
8
8
  </div>
9
9
 
10
+ <% if defined?(SocialStream::Presence) %>
11
+ <%= render :partial => 'xmpp/chat' %>
12
+ <% end %>
13
+
10
14
  <div class="block space_center">
11
15
  </div>
@@ -17,6 +17,8 @@ en:
17
17
  privacy: "Privacy"
18
18
  activerecord:
19
19
  attributes:
20
+ contact:
21
+ relation_ids: "Contact type"
20
22
  user:
21
23
  email: "Email"
22
24
  name: "Name"
@@ -91,6 +93,9 @@ en:
91
93
  edit:
92
94
  title: "Edit contact to %{name}"
93
95
  submit: "Edit contact"
96
+ error_count:
97
+ one: "1 error prohibited this contact from being saved:"
98
+ other: "%{count} errors prohibited this contact from being saved:"
94
99
  graph:
95
100
  one: "Graph"
96
101
  empty: "We're sorry but you don't have any contacts yet. You can try the search box to look for somebody!"
@@ -242,14 +247,35 @@ en:
242
247
  sentbox: "Sentbox"
243
248
  trash: "Trash"
244
249
  notification:
250
+ added:
251
+ other: "%{sender} added %{who} as contact."
252
+ user: "%{sender} added %{who} as contact."
245
253
  confirm: "Confirm %{sender.name} as contact?"
246
254
  destroy_sure: "Do you want to delete this notification?"
255
+ fan: "%{sender} is now %{whose} fan."
256
+ like:
257
+ other: "%{sender} likes %{whose} %{object.name}."
258
+ user: "%{sender} likes %{whose} %{object.name}."
247
259
  look: "Take a look at %{sender.name}'s wall"
260
+ makefriend:
261
+ other: "%{sender} also added %{who} as contact."
262
+ user: "%{sender} also added %{who} as contact."
248
263
  one: "Notification"
249
264
  other: "Notifications"
265
+ post:
266
+ other: "%{sender} added a %{object} in %{whose} wall."
267
+ user: "%{sender} added a %{object} in %{whose} wall."
250
268
  read: "Mark as read"
251
269
  read_all: "Mark all as read"
252
270
  unread: "Mark as unread"
271
+ update:
272
+ other: "%{sender} updated a %{object} in %{whose} wall."
273
+ user: "%{sender} updated a %{object} in %{whose} wall."
274
+ who:
275
+ user: "you"
276
+ whose:
277
+ others: "%{receiver}'s"
278
+ user: "your"
253
279
  post:
254
280
  confirm_delete: "Delete post?"
255
281
  form:
@@ -17,6 +17,8 @@ es:
17
17
  privacy: "Privacidad"
18
18
  activerecord:
19
19
  attributes:
20
+ contact:
21
+ relation_ids: "El tipo de contacto"
20
22
  user:
21
23
  email: "Correo"
22
24
  name: "Nombre"
@@ -90,6 +92,9 @@ es:
90
92
  edit:
91
93
  title: "Editar contacto con %{name}"
92
94
  submit: "Editar contacto"
95
+ error_count:
96
+ one: "1 error impidió que se guardara este contacto:"
97
+ other: "%{count} errores impidieron que se guardara este contacto"
93
98
  graph:
94
99
  one: "Gráfico"
95
100
  empty: "Lo sentimos pero aún no tienes contactos, pero ¡puedes probar a buscar en la caja de búsqueda!"
@@ -239,14 +244,35 @@ es:
239
244
  sentbox: "Salida"
240
245
  trash: "Papelera"
241
246
  notification:
247
+ added:
248
+ other: "%{sender} añadió a %{who} como contacto."
249
+ user: "%{sender} te añadió como contacto."
242
250
  confirm: "¿Confirmar contacto con %{sender.name}?"
243
251
  destroy_sure: "¿Borrar notificación?"
252
+ fan: "%{sender} es ahora fan %{whose}."
253
+ like:
254
+ other: "A %{sender} le gusta el %{object.name} %{whose}."
255
+ user: "A %{sender} le gusta tu %{object.name}."
244
256
  look: "Écha un vistazo al muro de %{sender.name}"
257
+ makefriend:
258
+ other: "%{sender} también añadió a %{who} como contacto."
259
+ user: "%{sender} también te añadió como contacto."
245
260
  one: "Notificación"
246
261
  other: "Notificaciones"
262
+ post:
263
+ other: "%{sender} añadió %{object} en el muro %{whose}."
264
+ user: "%{sender} añadió %{object} en tu muro."
247
265
  read: "Marcar como leída"
248
266
  read_all: "Marcar todas como leídas"
249
267
  unread: "Marcar como no leídas"
268
+ update:
269
+ other: "%{sender} actualizó %{object} en el muro %{whose}."
270
+ user: "%{sender} actualizó %{object} en tu muro."
271
+ who:
272
+ user: "tú"
273
+ whose:
274
+ user: "tuyo"
275
+ others: "de %{receiver}"
250
276
  post:
251
277
  confirm_delete: "¿Borrar texto?"
252
278
  form: