social_stream-base 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/app/assets/javascripts/activities.js.erb +54 -27
- data/app/assets/stylesheets/base.css +2 -1
- data/app/assets/stylesheets/frontpage.css +1 -0
- data/app/assets/stylesheets/search.css +4 -5
- data/app/controllers/notifications_controller.rb +2 -1
- data/app/controllers/search_controller.rb +2 -2
- data/app/controllers/ties_controller.rb +3 -0
- data/app/models/actor.rb +1 -9
- data/app/models/permission.rb +1 -4
- data/app/views/activities/_new.html.erb +1 -1
- data/app/views/comments/_new.html.erb +3 -9
- data/app/views/comments/create.js.erb +2 -7
- data/app/views/devise/passwords/new.html.erb +8 -3
- data/app/views/devise/registrations/new.html.erb +8 -6
- data/app/views/groups/_new.html.erb +1 -1
- data/app/views/layouts/_search.html.erb +3 -1
- data/app/views/objects/_new_activity.html.erb +14 -0
- data/app/views/permissions/_index.html.erb +1 -1
- data/app/views/posts/_new_activity.html.erb +1 -0
- data/app/views/posts/{_fields.erb → _new_activity_fields.erb} +0 -0
- data/app/views/posts/create.js.erb +2 -7
- data/app/views/profiles/edit.html.erb +3 -5
- data/app/views/search/_header_search.html.erb +8 -7
- data/config/locales/en.yml +9 -3
- data/lib/social_stream/base/version.rb +1 -1
- data/lib/social_stream/models/subject.rb +8 -1
- data/lib/social_stream/toolbar_config.rb +1 -1
- data/spec/controllers/notifications_controller_spec.rb +1 -2
- metadata +7 -7
- data/app/views/objects/_new.html.erb +0 -8
- data/app/views/posts/_new.html.erb +0 -1
data/.gitignore
CHANGED
@@ -7,20 +7,66 @@ $(function() {
|
|
7
7
|
$('#new_<%= SocialStream.activity_forms.first %>').show();
|
8
8
|
$('#select_<%= SocialStream.activity_forms.first %>').addClass('selected');
|
9
9
|
$('#security').chosen();
|
10
|
+
$("#input_activities").Watermark("<%= I18n.t('activity.input') %>","#666");
|
10
11
|
});
|
11
12
|
|
12
13
|
|
13
14
|
$(document).ready(function() {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
$('
|
15
|
+
activate_anti_rebounds();
|
16
|
+
});
|
17
|
+
|
18
|
+
activate_anti_rebounds = function(){
|
19
|
+
$('#wrapper_activities_header form').submit(function() {
|
20
|
+
$(this).find('input[type=text]').each(function() {
|
21
|
+
$(this).blur().attr('readonly', true);
|
22
|
+
});
|
23
|
+
$("#masterSubmitButton").val("<%= I18n.t('activity.sending') %>...").attr("disabled", true);
|
24
|
+
|
25
|
+
// Add _relation_ids[] parameter from authorization selector
|
26
|
+
$('.liveAdded').remove();
|
27
|
+
|
28
|
+
var currentForm = $(this);
|
29
|
+
|
30
|
+
$('#security option:selected').each(function() {
|
31
|
+
currentForm.append(
|
32
|
+
$('<input/>')
|
33
|
+
.addClass('liveAdded')
|
34
|
+
.attr('type', 'hidden')
|
35
|
+
.attr('name', currentForm
|
36
|
+
.attr('id').split('_')[1]+'[_relation_ids][]')
|
37
|
+
.val($(this).attr('value')));
|
38
|
+
});
|
20
39
|
return true;
|
21
40
|
});
|
22
|
-
|
41
|
+
|
42
|
+
$('.new_comment').submit(function() {
|
43
|
+
$(this).find('input[type=text]').each(function() {
|
44
|
+
$(this).blur().attr('readonly', true);
|
45
|
+
});
|
46
|
+
$(this).find(".submitActivity").each(function() {
|
47
|
+
$(this).val("<%= I18n.t('activity.sending') %>...").attr("disabled", true);
|
48
|
+
});
|
49
|
+
return true;
|
50
|
+
});
|
51
|
+
}
|
52
|
+
|
53
|
+
unblock_all_forms = function() {
|
54
|
+
//Sharing buttons
|
55
|
+
$(".submitActivity").val("<%= I18n.t('share') %>").removeAttr("disabled");
|
56
|
+
//Header activities form
|
57
|
+
$("#masterSubmitButton").val("<%= I18n.t('share') %>").removeAttr("disabled");
|
58
|
+
$('#wrapper_activities_header form').find('input[type=text]').each(function() {
|
59
|
+
$(this).removeAttr("readonly").val("").blur();
|
60
|
+
});
|
61
|
+
//New comments
|
62
|
+
$('.input_new_comments').each(function() {
|
63
|
+
$(this).removeAttr("readonly").val("");
|
64
|
+
});
|
65
|
+
}
|
23
66
|
|
67
|
+
$('#masterSubmitButton').live('click',function(){
|
68
|
+
$('#wrapper_activities_header form:visible').submit();
|
69
|
+
});
|
24
70
|
|
25
71
|
|
26
72
|
//clicks form selector
|
@@ -31,21 +77,6 @@ $('.activity_form_selector').live('click',function(){
|
|
31
77
|
$('#new_'+this.id.split("_")[1]).show();
|
32
78
|
});
|
33
79
|
|
34
|
-
//submit
|
35
|
-
$('#masterSubmitButton').live('click',function(){
|
36
|
-
$('.liveAdded').remove();
|
37
|
-
$('#security option:selected').each(function() {
|
38
|
-
$('#wrapper_activities_header form:visible').append(
|
39
|
-
$('<input/>')
|
40
|
-
.addClass('liveAdded')
|
41
|
-
.attr('type', 'hidden')
|
42
|
-
.attr('name', $('#wrapper_activities_header form:visible')
|
43
|
-
.attr('id').split('_')[1]+'[_relation_ids][]')
|
44
|
-
.val($(this).attr('value')));
|
45
|
-
});
|
46
|
-
$('#wrapper_activities_header form:visible').submit();
|
47
|
-
});
|
48
|
-
|
49
80
|
//javascript for main activities input
|
50
81
|
$(function() {
|
51
82
|
$("#input_activities").click(function(){
|
@@ -55,11 +86,7 @@ $(function() {
|
|
55
86
|
|
56
87
|
|
57
88
|
//javascript for comments
|
58
|
-
$(function() {
|
59
|
-
//"write new comment..." text in every text field for comments
|
60
|
-
$("#input_activities").Watermark("<%= I18n.t('activity.input') %>","#666");
|
61
|
-
$(".input_new_comments").Watermark("<%= I18n.t('comment.input') %>","#666");
|
62
|
-
|
89
|
+
$(function() {
|
63
90
|
//show only the text fields for new comment if there are any comment to the post
|
64
91
|
$(".activity_new_comment").each(function(){
|
65
92
|
if ($.trim($(this).siblings(".activity_comments").text()) != ""){
|
@@ -130,7 +130,7 @@ textarea.new_contact_text_area{ height: 100px; color: #2A3890;}
|
|
130
130
|
.block .field{ display:inline; padding: 0px; width:50%;}
|
131
131
|
.block .form_tag{border-color: #0656a4; color: #2A3890; padding: 5px 5px 5px 5px; border:1px solid #BDC7D8; width:90%;}
|
132
132
|
.block .form_tag_long{border-color: #0656a4; color: #2A3890; padding: 5px 5px 5px 5px; border:1px solid #BDC7D8; width:91%;}
|
133
|
-
.block .form_label{display:inline-block; width:25%; font-weight:bold; vertical-align:
|
133
|
+
.block .form_label{display:inline-block; width:25%; font-weight:bold; vertical-align:10%; padding-top:3px;}
|
134
134
|
.block .form_field{ display:inline-block; padding: 0px; width:73%;}
|
135
135
|
.block .form_row {display: block; padding:5px; padding-left:20px;}
|
136
136
|
.block .form_sub_row {display: block; padding:5px; padding-left:30px;}
|
@@ -140,6 +140,7 @@ textarea.new_contact_text_area{ height: 100px; color: #2A3890;}
|
|
140
140
|
.block .form_column_right { display: block; padding: 5px 10px 5px 10px; float:right; width:31%; text-align: center;}
|
141
141
|
.block .form_bottom { display: block; padding:5px; padding-left:20px; clear:both; text-align: center; }
|
142
142
|
.block .select_relations{ padding-top:20px; text-align: center; }
|
143
|
+
#form_participants{vertical-align:60%;}
|
143
144
|
|
144
145
|
|
145
146
|
/********* Links SECTION **********/
|
@@ -17,6 +17,7 @@ span.find{ padding-right:5px;}
|
|
17
17
|
#devise_links {padding: 5px 0 5px 0;}
|
18
18
|
#devise_links a{font-weight: bold;line-height: 15px; }
|
19
19
|
#login{ padding-top: 5px;}
|
20
|
+
.instructions{text-align: left; padding-bottom: 5px;}
|
20
21
|
#welcome{ margin: 50px auto 50px auto; width:330px; padding:20px; border: thin solid #2A3890;
|
21
22
|
text-align:center;}
|
22
23
|
#wrapper_left{ vertical-align:top; width:49%; display:inline-block; padding-left: 20px;}
|
@@ -55,6 +55,10 @@
|
|
55
55
|
|
56
56
|
#global_search_display li .name {
|
57
57
|
float:left;
|
58
|
+
width: 125px;
|
59
|
+
overflow: hidden;
|
60
|
+
height: 25px;
|
61
|
+
text-align: left;
|
58
62
|
}
|
59
63
|
|
60
64
|
|
@@ -64,11 +68,6 @@
|
|
64
68
|
}
|
65
69
|
|
66
70
|
|
67
|
-
#global_search_display span{
|
68
|
-
float:left;
|
69
|
-
margin-top: 10px;
|
70
|
-
}
|
71
|
-
|
72
71
|
#global_search_display .warning{
|
73
72
|
width:100%;
|
74
73
|
}
|
@@ -45,7 +45,8 @@ class NotificationsController < ApplicationController
|
|
45
45
|
|
46
46
|
def destroy
|
47
47
|
@notification.receipt_for(@actor).move_to_trash
|
48
|
-
|
48
|
+
@notifications = @mailbox.notifications.not_trashed.page(params[:page]).per(10)
|
49
|
+
render :action => :index
|
49
50
|
end
|
50
51
|
|
51
52
|
private
|
@@ -4,8 +4,8 @@ class SearchController < ApplicationController
|
|
4
4
|
|
5
5
|
def index
|
6
6
|
if params[:mode].eql? "header_search"
|
7
|
-
@search_result =
|
8
|
-
render :partial => "header_search", :locals =>{:search_result => @search_result}
|
7
|
+
@search_result = ThinkingSphinx.search "*#{params[:id]}*", :page => 1, :per_page => 10, :classes => [User, Group]
|
8
|
+
render :partial => "header_search", :locals => {:search_result => @search_result}
|
9
9
|
return
|
10
10
|
else
|
11
11
|
@search_result = ThinkingSphinx.search "*#{params[:id]}*"
|
data/app/models/actor.rb
CHANGED
@@ -20,15 +20,7 @@ class Actor < ActiveRecord::Base
|
|
20
20
|
validates_presence_of :name, :subject_type
|
21
21
|
|
22
22
|
acts_as_messageable
|
23
|
-
|
24
|
-
define_index do
|
25
|
-
indexes name, :sortable => true
|
26
|
-
indexes email
|
27
|
-
indexes slug
|
28
|
-
|
29
|
-
has created_at
|
30
|
-
end
|
31
|
-
|
23
|
+
|
32
24
|
acts_as_url :name, :url_attribute => :slug
|
33
25
|
|
34
26
|
has_one :profile, :dependent => :destroy
|
data/app/models/permission.rb
CHANGED
@@ -45,10 +45,7 @@ class Permission < ActiveRecord::Base
|
|
45
45
|
|
46
46
|
# An explanation of the permissions. Type can be brief or detailed.
|
47
47
|
# If detailed, description includes more information about the relation
|
48
|
-
def description(type,
|
49
|
-
options = {}
|
50
|
-
options[:relation] = relation.name if relation.present?
|
51
|
-
|
48
|
+
def description(type, options = {})
|
52
49
|
I18n.t "permission.description.#{ type }.#{ action }.#{ object || "nil" }",
|
53
50
|
options
|
54
51
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if can? :create, new_activity(receiver) %>
|
2
2
|
<div id="activities_header" class="content_size">
|
3
3
|
<% SocialStream.activity_forms.each do |element| %>
|
4
|
-
<%= render :partial => element.to_s.pluralize+'/
|
4
|
+
<%= render :partial => element.to_s.pluralize+'/new_activity',
|
5
5
|
:locals => {
|
6
6
|
:receiver => receiver
|
7
7
|
} %>
|
@@ -22,14 +22,8 @@
|
|
22
22
|
<% end %>
|
23
23
|
|
24
24
|
<%= javascript_tag do %>
|
25
|
-
$(document).ready(function() {
|
26
|
-
|
27
|
-
|
28
|
-
$('#comment_submit_<%= dom_id(activity) %>').val("<%= I18n.t('activity.sending') %>...");
|
29
|
-
$('#new_comment<%= dom_id(activity) %>').attr("disabled", true);
|
30
|
-
$('#comment_submit_<%= dom_id(activity) %>').attr("disabled", true);
|
31
|
-
$('#comment_text_<%= dom_id(activity) %>').attr('readonly', true);
|
32
|
-
return true;
|
25
|
+
$(document).ready(function() {
|
26
|
+
$("#comment_text_<%= dom_id(activity) %>").Watermark("<%= I18n.t('comment.input') %>","#666");
|
27
|
+
activate_anti_rebounds();
|
33
28
|
});
|
34
|
-
});
|
35
29
|
<% end %>
|
@@ -1,10 +1,5 @@
|
|
1
|
-
$(".submitActivity").val("<%= I18n.t('share') %>");
|
2
|
-
$('.input_new_comments').val("");
|
3
|
-
$('.input_new_comments').blur();
|
4
|
-
$(".submitActivity").removeAttr("disabled");
|
5
|
-
$('.input_new_comments').removeAttr('readonly');
|
6
|
-
$('.new_comment').removeAttr("disabled");
|
7
|
-
|
8
1
|
//Display the new comment
|
9
2
|
$("#comments_activity_<%= @comment.post_activity.parent.id %>").append("<%= escape_javascript(render @comment.post_activity) %>");
|
10
3
|
$(".activities_comment_btn").hide();
|
4
|
+
|
5
|
+
unblock_all_forms();
|
@@ -5,10 +5,15 @@
|
|
5
5
|
<div class="space_center"></div>
|
6
6
|
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
|
7
7
|
<%= devise_error_messages! %>
|
8
|
-
<div class="
|
9
|
-
<div class="form_row"
|
8
|
+
<div class="instructions"><%= t('devise.passwords.acquire') %></div>
|
9
|
+
<div class="form_row">
|
10
|
+
<div class="form_label"<%= f.label :email %></div>
|
11
|
+
<div class="form_field"><%= f.text_field :email, :class => "form_tag" %></div>
|
12
|
+
</div>
|
10
13
|
|
11
|
-
|
14
|
+
<div id="devise_links">
|
15
|
+
<%= render :partial => "devise/shared/links" %>
|
16
|
+
</div>
|
12
17
|
|
13
18
|
<div class="space_center"></div>
|
14
19
|
<div class="btn_login">
|
@@ -1,23 +1,25 @@
|
|
1
1
|
<div id="welcome">
|
2
2
|
<div id="login" class="block">
|
3
3
|
<h2><%= t('sign_up').capitalize %></h2>
|
4
|
+
<div class="space_center"></div>
|
5
|
+
<div class="space_center"></div>
|
4
6
|
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
|
5
7
|
<%= devise_error_messages! %>
|
6
8
|
<div class="form_row">
|
7
9
|
<div class="form_label"><%= f.label :name %></div>
|
8
|
-
<div class="form_field"><%= f.text_field :name, :class =>"
|
10
|
+
<div class="form_field"><%= f.text_field :name, :class =>"form_tag" %></div>
|
9
11
|
</div>
|
10
12
|
<div class="form_row">
|
11
13
|
<div class="form_label"><%= f.label :email %></div>
|
12
|
-
<div class="form_field"><%= f.text_field :email, :class =>"
|
14
|
+
<div class="form_field"><%= f.text_field :email, :class =>"form_tag" %></div>
|
13
15
|
</div>
|
14
16
|
<div class="form_row">
|
15
17
|
<div class="form_label"><%= f.label :password %></div>
|
16
|
-
<div class="form_field"><%= f.password_field :password, :class =>"
|
18
|
+
<div class="form_field"><%= f.password_field :password, :class =>"form_tag", :id => "password" %></div>
|
17
19
|
</div>
|
18
20
|
<div class="form_row">
|
19
|
-
<div class="form_label"><%= f.label
|
20
|
-
<div class="form_field"><%= f.password_field :password_confirmation, :class =>"
|
21
|
+
<div class="form_label"><%= f.label t('devise.passwords.confirm') %></div>
|
22
|
+
<div class="form_field"><%= f.password_field :password_confirmation, :class =>"form_tag" %></div>
|
21
23
|
</div>
|
22
24
|
<div class="form_row center">
|
23
25
|
<div id="btn_login"><%= f.submit t('action.accept').capitalize,:class=>"myButton" %></div>
|
@@ -28,7 +30,7 @@
|
|
28
30
|
<%= link_to t('confirmation.not_received.long'), new_confirmation_path(resource_name) %><br />
|
29
31
|
<% end -%>
|
30
32
|
</div>
|
31
|
-
<div
|
33
|
+
<div id="devise_links">
|
32
34
|
<%= render :partial => "devise/shared/links" %>
|
33
35
|
</div>
|
34
36
|
</div>
|
@@ -25,9 +25,11 @@ $(document).ready(function() {
|
|
25
25
|
$("#global_search_input").keyup(function() {
|
26
26
|
var searchstring = $(this).val();
|
27
27
|
if((searchstring=="")){
|
28
|
+
if (last_search!=searchstring){last_search=searchstring;}
|
28
29
|
$("#global_search_display").hide();
|
29
30
|
}
|
30
31
|
else if(searchstring.length < 2) {
|
32
|
+
if (last_search!=searchstring){last_search=searchstring;}
|
31
33
|
$("#global_search_display").html("<ul><li><%= escape_javascript(content_tag(:span,I18n.t('search.at_least'), :class => :warning)) %></li></ul>").show();
|
32
34
|
} else {
|
33
35
|
if (last_search!=searchstring){
|
@@ -42,7 +44,7 @@ $(document).ready(function() {
|
|
42
44
|
}
|
43
45
|
},
|
44
46
|
error: function(){
|
45
|
-
$("#global_search_display").html("
|
47
|
+
$("#global_search_display").html("<ul><li><%= escape_javascript(content_tag(:span,I18n.t('search.wrong'), :class => :warning)) %></li></ul>");
|
46
48
|
}
|
47
49
|
});
|
48
50
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% object._contact_id = current_subject.contact_to!(receiver).id %>
|
2
|
+
<% remote = true if remote.nil? %>
|
3
|
+
|
4
|
+
<%= form_for object, :remote => remote do |f| %>
|
5
|
+
<%= f.hidden_field :_contact_id %>
|
6
|
+
|
7
|
+
<%= render :partial => object.class.to_s.tableize+'/new_activity_fields' , :locals => {:f => f} %>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<%= javascript_tag do %>
|
11
|
+
$(document).ready(function(){
|
12
|
+
activate_anti_rebounds();
|
13
|
+
});
|
14
|
+
<% end %>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<%= raw t('privacy.intro', :relation => h(@relation.name)) %>
|
29
29
|
|
30
30
|
<%= semantic_form_for @relation, :url => polymorphic_path(@relation, :section => 'rules'), :remote => true do |f| %>
|
31
|
-
<%= f.input :permissions, :as => :check_boxes, :collection => default_permissions.map{ |p| [p.description(:detailed, @relation), p.id] } %>
|
31
|
+
<%= f.input :permissions, :as => :check_boxes, :collection => default_permissions.map{ |p| [p.description(:detailed, :relation => @relation.name, :subject => current_subject.name), p.id] } %>
|
32
32
|
<%= f.submit t('button.save'), :class => 'button' %>
|
33
33
|
<% end %>
|
34
34
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => 'objects/new_activity', :locals => {:receiver => receiver, :object => Post.new(:text => t('activity.input')), :remote => true} %>
|
File without changes
|
@@ -1,10 +1,5 @@
|
|
1
|
-
$(".submitActivity").val("<%= I18n.t('share') %>");
|
2
|
-
$('#input_activities').val("");
|
3
|
-
$('#input_activities').blur();
|
4
|
-
$(".submitActivity").removeAttr("disabled");
|
5
|
-
$('#input_activities').removeAttr('readonly');
|
6
|
-
$('#new_post').removeAttr("disabled");
|
7
|
-
|
8
1
|
//Display the new post
|
9
2
|
$("#wall").prepend("<%= escape_javascript(render @post.post_activity) %>");
|
10
3
|
|
4
|
+
unblock_all_forms();
|
5
|
+
|
@@ -96,7 +96,8 @@ end %>
|
|
96
96
|
<%= f.label t('profile.' + current_subject.class.to_s.downcase + '.birthday')%>
|
97
97
|
</div>
|
98
98
|
<div class="form_field">
|
99
|
-
<%= date_select "profile", "birthday", :order => [:day, :month, :year], :end_year=> Date.today.year,
|
99
|
+
<%= date_select "profile", "birthday", :order => [:day, :month, :year], :end_year=> Date.today.year,
|
100
|
+
:start_year=> (Date.today.year - 100), :prompt => { :day => 'Day', :month => 'Month', :year => 'Year' } %>
|
100
101
|
</div>
|
101
102
|
</div>
|
102
103
|
|
@@ -186,10 +187,7 @@ end %>
|
|
186
187
|
<% end %>
|
187
188
|
|
188
189
|
<div class="form_row space_center">
|
189
|
-
<%= f.submit t('button.update'), :class => "button"
|
190
|
-
<button class="button" onclick="window.location.href='<%= polymorphic_path(current_subject) %>';">
|
191
|
-
<%= t('button.cancel')%>
|
192
|
-
</button>
|
190
|
+
<%= f.submit t('button.update'), :class => "button" %>
|
193
191
|
</div>
|
194
192
|
|
195
193
|
<% end %>
|
@@ -1,15 +1,16 @@
|
|
1
|
+
<% if search_result.empty? %>
|
2
|
+
<ul><li><%= content_tag(:span,I18n.t('search.actor.none'), :class => :warning) %></li></ul>
|
3
|
+
<% else %>
|
1
4
|
<ul>
|
2
|
-
<% search_result.each do |
|
3
|
-
<%= link_to
|
5
|
+
<% search_result.each do |subject| %>
|
6
|
+
<%= link_to subject do %>
|
4
7
|
<li>
|
5
|
-
<%= image_tag(actor.logo.url(:actor), :class => :logo) %>
|
6
|
-
<%= content_tag(:span, actor.name, :class => :name) %>
|
8
|
+
<%= image_tag(subject.actor.logo.url(:actor), :class => :logo) %>
|
9
|
+
<%= content_tag(:span, truncate_name(subject.actor.name), :class => :name) %>
|
7
10
|
</li>
|
8
11
|
<% end %>
|
9
12
|
<% end %>
|
10
13
|
</ul>
|
14
|
+
<% end %>
|
11
15
|
|
12
16
|
|
13
|
-
<% if search_result.empty? %>
|
14
|
-
<ul><li><%= content_tag(:span,I18n.t('search.actor.none'), :class => :warning) %></li></ul>
|
15
|
-
<% end %>
|
data/config/locales/en.yml
CHANGED
@@ -95,6 +95,9 @@ en:
|
|
95
95
|
edit:
|
96
96
|
title: "Edit contact to %{name}"
|
97
97
|
submit: "Edit Contact"
|
98
|
+
graph:
|
99
|
+
one: "Graph"
|
100
|
+
empty: "We're sorry but you don't have any contacts yet. You can try the search box to look for somebody!"
|
98
101
|
in_common:
|
99
102
|
one: "1 contact in common"
|
100
103
|
other: "%{count} contacts in common"
|
@@ -124,6 +127,8 @@ en:
|
|
124
127
|
confirm: Delete %{element}}?
|
125
128
|
devise:
|
126
129
|
passwords:
|
130
|
+
acquire: "Type the email address bound to your account and we will sent you a new one:"
|
131
|
+
confirm: "Confirm password"
|
127
132
|
update: "Change your password"
|
128
133
|
follower:
|
129
134
|
n:
|
@@ -229,7 +234,7 @@ en:
|
|
229
234
|
read_all: "Mark all as read"
|
230
235
|
unread: "Mark as unread"
|
231
236
|
password:
|
232
|
-
forgot: "
|
237
|
+
forgot: "Acquire a new password"
|
233
238
|
post:
|
234
239
|
confirm_delete: "Delete post?"
|
235
240
|
form:
|
@@ -287,7 +292,7 @@ en:
|
|
287
292
|
read:
|
288
293
|
activity: "Read wall"
|
289
294
|
represent:
|
290
|
-
nil: "
|
295
|
+
nil: "Administrate"
|
291
296
|
detailed:
|
292
297
|
create:
|
293
298
|
activity: "Post to \"%{relation}\" wall"
|
@@ -297,7 +302,7 @@ en:
|
|
297
302
|
activity: "Read posts in \"%{relation}\" wall"
|
298
303
|
tie: "See contacts in levels: %{relations} and %{public}"
|
299
304
|
represent:
|
300
|
-
nil: "
|
305
|
+
nil: "Change session to act as %{subject}"
|
301
306
|
of_relation:
|
302
307
|
choose: "2. Permissions in <strong>%{name}</strong> sphere"
|
303
308
|
privacy:
|
@@ -323,6 +328,7 @@ en:
|
|
323
328
|
actor:
|
324
329
|
none: "Nothing found"
|
325
330
|
at_least: "Write at least two characters"
|
331
|
+
wrong: "There seems to be a problem with the search engine"
|
326
332
|
settings:
|
327
333
|
error: "Some errors raised when saving your changes"
|
328
334
|
for: "Settings for"
|
@@ -43,7 +43,7 @@ module SocialStream
|
|
43
43
|
:options => {:link => {:id => "contacts_menu"}},
|
44
44
|
:items => [
|
45
45
|
{:key => :invitations, :name => image_tag("btn/btn_friend.png")+t('contact.current'), :url => contacts_path},
|
46
|
-
{:key => :contacts_graph, :name => image_tag("btn/btn_friend.png")+t('contact.graph'), :url => ties_path},
|
46
|
+
{:key => :contacts_graph, :name => image_tag("btn/btn_friend.png")+t('contact.graph.one'), :url => ties_path},
|
47
47
|
{:key => :invitations, :name => image_tag("btn/btn_friend.png")+t('contact.pending.other'), :url => contacts_path(:pending=>true)},
|
48
48
|
{:key => :invitations, :name => image_tag("btn/btn_invitation.png")+t('invitation.toolbar'), :url => new_invitation_path}
|
49
49
|
]}
|
@@ -40,8 +40,7 @@ describe NotificationsController do
|
|
40
40
|
it "should send to trash" do
|
41
41
|
delete :destroy, :id => @receipt.notification.to_param
|
42
42
|
@receipt.notification.is_trashed?(@actor).should==true
|
43
|
-
|
44
|
-
|
43
|
+
assert_response :success
|
45
44
|
end
|
46
45
|
|
47
46
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 63
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 2
|
10
|
+
version: 0.9.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- GING - DIT - UPM
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-09-
|
19
|
+
date: 2011-09-15 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -825,12 +825,12 @@ files:
|
|
825
825
|
- app/views/notifications/index.html.erb
|
826
826
|
- app/views/notifications/index.js.erb
|
827
827
|
- app/views/objects/_destroy.js.erb
|
828
|
-
- app/views/objects/
|
828
|
+
- app/views/objects/_new_activity.html.erb
|
829
829
|
- app/views/objects/_show.html.erb
|
830
830
|
- app/views/permissions/_index.html.erb
|
831
831
|
- app/views/permissions/index.js.erb
|
832
|
-
- app/views/posts/
|
833
|
-
- app/views/posts/
|
832
|
+
- app/views/posts/_new_activity.html.erb
|
833
|
+
- app/views/posts/_new_activity_fields.erb
|
834
834
|
- app/views/posts/_post.html.erb
|
835
835
|
- app/views/posts/create.js.erb
|
836
836
|
- app/views/posts/destroy.js.erb
|
@@ -1,8 +0,0 @@
|
|
1
|
-
<% object._contact_id = current_subject.contact_to!(receiver).id %>
|
2
|
-
<% remote = true if remote.nil? %>
|
3
|
-
|
4
|
-
<%= form_for object, :remote => remote do |f| %>
|
5
|
-
<%= f.hidden_field :_contact_id %>
|
6
|
-
|
7
|
-
<%= render :partial => object.class.to_s.tableize+'/fields' , :locals => {:f => f} %>
|
8
|
-
<% end %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render :partial => 'objects/new', :locals => {:receiver => receiver, :object => Post.new(:text => t('activity.input')), :remote => true} %>
|