social_stream-base 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/assets/stylesheets/cheesecake.css.scss +107 -36
- data/app/models/channel.rb +5 -0
- data/app/models/group.rb +2 -1
- data/app/views/actors/_actor_cheesecake.html.erb +1 -1
- data/app/views/cheesecake/_cheesecake.html.erb +38 -44
- data/app/views/cheesecake/_index.html.erb +83 -16
- data/config/locales/en.yml +5 -3
- data/config/locales/es.yml +5 -3
- data/lib/social_stream/base/version.rb +1 -1
- data/lib/social_stream/models/object.rb +0 -5
- data/social_stream-base.gemspec +1 -1
- data/spec/controllers/groups_controller_spec.rb +3 -0
- metadata +67 -67
@@ -11,18 +11,33 @@
|
|
11
11
|
padding: 0px;
|
12
12
|
margin-top: 45px;
|
13
13
|
float: left;
|
14
|
+
position: relative;
|
14
15
|
}
|
15
16
|
#contacts_filter {
|
16
17
|
width: 290px;
|
17
|
-
height:
|
18
|
+
height: 45px;
|
18
19
|
position: relative;
|
19
20
|
float: left;
|
20
21
|
padding: 5px;
|
21
22
|
}
|
22
|
-
|
23
|
+
#contacts_selector_modifiers {
|
24
|
+
opacity: 0;
|
25
|
+
position: relative;
|
26
|
+
float: left;
|
27
|
+
width: 280px;
|
28
|
+
}
|
29
|
+
#contacts_selector_clear{
|
30
|
+
cursor: pointer;
|
31
|
+
width: 138px;
|
32
|
+
height: 12px;
|
33
|
+
position: relative;
|
34
|
+
float: left;
|
35
|
+
text-align:center;
|
36
|
+
padding: 3px;
|
37
|
+
}
|
23
38
|
#cheesecake #contacts_filter #contacts_filter_input {
|
24
|
-
padding: 0 3px 0 22px;
|
25
39
|
background: url('btn/search_icon.png') 5px 50% no-repeat white;
|
40
|
+
padding: 0 3px 0 22px;
|
26
41
|
font-size: 11px;
|
27
42
|
color: $main-color;
|
28
43
|
border: solid 1px $input-border-color;
|
@@ -39,24 +54,28 @@
|
|
39
54
|
position: relative;
|
40
55
|
float: left;
|
41
56
|
}
|
42
|
-
#
|
43
|
-
width:
|
57
|
+
#contacts_grid_available {
|
58
|
+
width: 300px;
|
59
|
+
height: 336px;
|
60
|
+
position: relative;
|
61
|
+
float: left;
|
62
|
+
overflow: auto;
|
63
|
+
}
|
64
|
+
#contacts_grid_saving {
|
65
|
+
width: 280px;
|
66
|
+
height: 100%;
|
67
|
+
line-height: 336px;
|
68
|
+
overflow: hidden;
|
69
|
+
position: absolute;
|
70
|
+
opacity: 0.80;
|
44
71
|
text-align: center;
|
45
|
-
float: right;
|
46
|
-
margin-right: 20px;
|
47
|
-
cursor: pointer;
|
48
72
|
vertical-align: middle;
|
49
|
-
|
50
|
-
background: #DEEFF8;
|
51
|
-
padding-left: 10px;
|
52
|
-
display: block;
|
53
|
-
height: 20px;
|
54
|
-
font-weight: bold;
|
73
|
+
background-color: $fill-color;
|
55
74
|
}
|
56
75
|
#contacts_save {
|
57
|
-
width:
|
76
|
+
width: 130px;
|
58
77
|
padding-right: 5px;
|
59
|
-
height:
|
78
|
+
height: 30px;
|
60
79
|
text-align: right;
|
61
80
|
float: right;
|
62
81
|
margin-right: 20px;
|
@@ -64,31 +83,70 @@
|
|
64
83
|
#contacts_save_form {
|
65
84
|
overflow: visible;
|
66
85
|
}
|
86
|
+
#contacts_save_button {
|
87
|
+
margin: 5px 0px 0px 0px;
|
88
|
+
height: 25px;
|
89
|
+
padding: 3px 10px 3px 10px;
|
90
|
+
}
|
67
91
|
#contacts_changes {
|
68
|
-
width:
|
69
|
-
|
92
|
+
width: 500px;
|
93
|
+
background-color: $text-over-main;
|
94
|
+
display: none;
|
95
|
+
}
|
96
|
+
#contacts_changes_button {
|
97
|
+
width: 130px;
|
98
|
+
height: 25px;
|
99
|
+
float: right;
|
100
|
+
margin-top: 10px;
|
101
|
+
cursor: pointer;
|
70
102
|
}
|
71
103
|
#contacts_changes_title {
|
72
104
|
vertical-align: middle;
|
73
105
|
padding-top: 6px;
|
74
|
-
background: $secondary-color;
|
75
106
|
padding-left: 10px;
|
76
107
|
display: block;
|
77
108
|
height: 20px;
|
78
109
|
font-weight: bold;
|
79
110
|
cursor: pointer;
|
111
|
+
width: 500px;
|
112
|
+
border: solid 2px $main-color;
|
113
|
+
border-bottom: none;
|
114
|
+
background: url('cancel.png') 487px 50% no-repeat $secondary-color;
|
80
115
|
}
|
81
116
|
#contacts_changes_details {
|
82
|
-
border: solid 1px $secondary-color;
|
83
117
|
border-top: 0px;
|
84
118
|
padding: 5px;
|
85
|
-
|
86
|
-
|
119
|
+
height: 300px;
|
120
|
+
width: 500px;
|
121
|
+
overflow-y: auto;
|
122
|
+
background-color: $text-over-main;
|
123
|
+
border: solid 2px $main-color;
|
124
|
+
border-top: none;
|
87
125
|
overflow-y: auto;
|
88
126
|
}
|
89
127
|
#contacts_changes_details ul{
|
90
128
|
padding-left: 20px;
|
91
129
|
}
|
130
|
+
.contacts_changes_tipsy_menu.tipsy {
|
131
|
+
padding: 0px;
|
132
|
+
display: none;
|
133
|
+
width: 514px;
|
134
|
+
height: 340px;
|
135
|
+
top: 145px !important;
|
136
|
+
left: 460px !important;
|
137
|
+
}
|
138
|
+
.contacts_changes_tipsy_menu.tipsy .tipsy-arrow {
|
139
|
+
display: none;
|
140
|
+
}
|
141
|
+
.contacts_changes_tipsy_menu.tipsy .tipsy-inner {
|
142
|
+
background-color: $text-over-main;
|
143
|
+
padding:0px;
|
144
|
+
max-width: 514px;
|
145
|
+
max-height: 340px;
|
146
|
+
box-shadow: 0 0 5px #000000;
|
147
|
+
-webkit-box-shadow: 0 0 5px #000000;
|
148
|
+
-moz-box-shadow: 0 0 5px #000000;
|
149
|
+
}
|
92
150
|
#contacts_changes_details .change_deleted{
|
93
151
|
font-weight: bold;
|
94
152
|
color: $error-color;
|
@@ -106,31 +164,44 @@
|
|
106
164
|
height: 48px;
|
107
165
|
float: left;
|
108
166
|
margin: 4px;
|
109
|
-
|
110
|
-
}
|
111
|
-
#contacts_grid .actor.focused {
|
112
|
-
border: 2px solid $main-color;
|
113
|
-
margin: 0px;
|
167
|
+
opacity: 0.8;
|
114
168
|
}
|
115
169
|
#contacts_grid .actor img {
|
116
170
|
width: 48px;
|
117
171
|
height: 48px;
|
118
172
|
}
|
173
|
+
#contacts_grid .actor.focused {
|
174
|
+
opacity: 1;
|
175
|
+
|
176
|
+
}
|
119
177
|
#contacts_grid .actor.focused img {
|
120
|
-
|
121
|
-
height: 52px;
|
178
|
+
|
122
179
|
}
|
123
|
-
#
|
124
|
-
|
125
|
-
height: 52px;
|
126
|
-
float: left;
|
180
|
+
#contacts_grid_selected .actor {
|
181
|
+
border: 0px;
|
127
182
|
margin: 0px;
|
183
|
+
width: 24px;
|
184
|
+
height: 24px;
|
185
|
+
float: left;
|
186
|
+
margin: 2px 2px 0px 2px;
|
128
187
|
}
|
129
|
-
#
|
130
|
-
|
188
|
+
#contacts_grid_selected .actor img {
|
189
|
+
width: 24px;
|
190
|
+
height: 24px;
|
131
191
|
}
|
132
|
-
#
|
192
|
+
#contacts_grid_selected.focused .actor {
|
193
|
+
|
194
|
+
}
|
195
|
+
#contacts_grid_selected .actor.focused img {
|
196
|
+
|
197
|
+
}
|
198
|
+
#contacts_grid_selected {
|
199
|
+
width: 280px;
|
200
|
+
min-height: 28px;
|
201
|
+
background-color: $fill-color;
|
202
|
+
border: 1px solid $main-color;
|
133
203
|
display: none;
|
204
|
+
padding-bottom: 2px;
|
134
205
|
}
|
135
206
|
.cheesecake_actor_tipsy.tipsy {
|
136
207
|
padding-top: 2px;
|
data/app/models/channel.rb
CHANGED
data/app/models/group.rb
CHANGED
@@ -37,7 +37,8 @@ class Group < ActiveRecord::Base
|
|
37
37
|
:relation_ids => _relation_ids
|
38
38
|
|
39
39
|
if represented_author?
|
40
|
-
|
40
|
+
user_author.sent_contacts.create! :receiver_id => actor_id,
|
41
|
+
:relation_ids => _relation_ids
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
@@ -12,44 +12,37 @@ $(function(){
|
|
12
12
|
rMax : 200,
|
13
13
|
center: {x : 220, y : 220}
|
14
14
|
};
|
15
|
-
cheesecakeData.highlightedSectorCallback = function(cheesecake){
|
16
|
-
$("#contacts_grid").css("overflow-y","hidden");
|
17
|
-
var sector = cheesecake.highlightedSector;
|
18
|
-
var actors = [];
|
19
|
-
var visibles = 0;
|
20
|
-
var extra_text = ["<%= t('cheesecake.hidden_contact.one')%>","<%= t('cheesecake.hidden_contact.other')%>"];
|
21
|
-
if(sector){
|
22
|
-
actors = sector.actors;
|
23
|
-
}else{
|
24
|
-
actors = cheesecake.grid.actors;
|
25
|
-
}
|
26
|
-
for(var i in actors){
|
27
|
-
if(actors[i].isVisible()){
|
28
|
-
visibles++;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
if(visibles <= 30){
|
32
|
-
$("#contacts_grid_extra").hide();
|
33
|
-
}else{
|
34
|
-
$("#contacts_grid_extra_total").html(visibles - 30);
|
35
|
-
if((visibles - 30) == 1){
|
36
|
-
$("#contacts_grid_extra_text").html(extra_text[0]);
|
37
|
-
}else{
|
38
|
-
$("#contacts_grid_extra_text").html(extra_text[1]);
|
39
|
-
}
|
40
|
-
$("#contacts_grid_extra").show();
|
41
|
-
$("#contacts_grid").scrollTo(0, 1000);
|
42
|
-
}
|
43
|
-
}
|
44
15
|
cheesecakeData.sectors = <%= raw(current_subject.cheesecake_json) %>.sectors;
|
45
|
-
var cheese = new socialCheesecake.Cheesecake(cheesecakeData);
|
16
|
+
var cheese = new socialCheesecake.Cheesecake(cheesecakeData);
|
17
|
+
cheese.syncSectorFocusCallbacks = true;
|
18
|
+
cheese.onSectorFocusBegin = function(cheesecake,callback){
|
19
|
+
$("#contacts_grid_available").fadeOut("fast", callback);
|
20
|
+
};
|
21
|
+
cheese.onSectorFocusEnd = function(cheesecake){
|
22
|
+
console.log("end"); $("#contacts_grid_available").fadeIn("fast");
|
23
|
+
};
|
46
24
|
$("#contacts_filter_input").keyup(function(){
|
47
25
|
cheese.searchEngine.filter($("#contacts_filter_input").val());
|
48
|
-
|
26
|
+
//TODO: Make users unfiltered visible again
|
49
27
|
});
|
50
28
|
cheese.onChange = function(cheesecake){
|
51
29
|
var initial = cheesecake.getInitialState();
|
52
30
|
var changes = cheesecake.getChanges();
|
31
|
+
if((changes.actors)&&(changes.actors.length==0)&&(changes.sectors)&&(changes.sectors.length==0)&&(changes.subsectors)&&(changes.subsectors.length==0)){
|
32
|
+
$("#contacts_changes_button").hide();
|
33
|
+
$("#contacts_save").hide();
|
34
|
+
}else{
|
35
|
+
$("#contacts_changes_button").show();
|
36
|
+
$("#contacts_save").show();
|
37
|
+
var total = 0;
|
38
|
+
if(changes.actors)
|
39
|
+
total += changes.actors.length;
|
40
|
+
if(changes.sectors)
|
41
|
+
total += changes.sectors.length;
|
42
|
+
if(changes.subsectors)
|
43
|
+
total += changes.subsectors.length;
|
44
|
+
$("#contacts_changes_button_total").html(total);
|
45
|
+
}
|
53
46
|
var changes_html = "";
|
54
47
|
var actors = changes.actors;
|
55
48
|
$("#contacts_save_changes").val(JSON.stringify(changes));
|
@@ -114,18 +107,19 @@ $(function(){
|
|
114
107
|
}
|
115
108
|
}
|
116
109
|
$("#contacts_changes_details").html(changes_html);
|
117
|
-
if (!$("#contacts_changes_details").is (":visible")){
|
118
|
-
$("#contacts_changes_details").slideToggle("slow");
|
119
|
-
}
|
120
|
-
}
|
121
|
-
if(cheese.grid.actors.length > 30){
|
122
|
-
var extra_text = ["<%= t('cheesecake.hidden_contact.one')%>","<%= t('cheesecake.hidden_contact.other')%>"];
|
123
|
-
$("#contacts_grid_extra_total").html(cheese.grid.actors.length - 30);
|
124
|
-
if((cheese.grid.actors.length - 30) == 1){
|
125
|
-
$("#contacts_grid_extra_text").html(extra_text[0]);
|
126
|
-
}else{
|
127
|
-
$("#contacts_grid_extra_text").html(extra_text[1]);
|
128
|
-
}
|
129
|
-
$("#contacts_grid_extra").show();
|
130
110
|
}
|
111
|
+
$('#contacts_changes_button').tipsy({
|
112
|
+
delayIn: 0,
|
113
|
+
delayOut: 0,
|
114
|
+
gravity: 'se',
|
115
|
+
opacity: 1,
|
116
|
+
trigger: 'manual',
|
117
|
+
className: 'contacts_changes_tipsy_menu',
|
118
|
+
html: true,
|
119
|
+
hoverable: true,
|
120
|
+
title: function(){
|
121
|
+
return $('#contacts_changes').html();
|
122
|
+
}
|
123
|
+
});
|
124
|
+
$("#contacts_save_changes").val(JSON.stringify(cheese.getChanges()));
|
131
125
|
});
|
@@ -3,29 +3,38 @@
|
|
3
3
|
<div id="contacts_filter">
|
4
4
|
<%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :contacts_filter_input %>
|
5
5
|
</div>
|
6
|
-
<div id="
|
7
|
-
|
8
|
-
<%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
|
9
|
-
<% end %>
|
6
|
+
<div id="contacts_selector_modifiers">
|
7
|
+
<span id="contacts_selector_clear">Unselect all</span>
|
10
8
|
</div>
|
11
|
-
<div id="
|
12
|
-
<
|
9
|
+
<div id="contacts_grid">
|
10
|
+
<div id="contacts_grid_saving" style="display:none;">
|
11
|
+
<%= image_tag('loading.gif') %>
|
12
|
+
</div>
|
13
|
+
<div id="contacts_grid_selected">
|
14
|
+
<br class="clearfloat">
|
15
|
+
</div>
|
16
|
+
<div id="contacts_grid_available">
|
17
|
+
<% @actors.each do |actor|%>
|
18
|
+
<%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
|
19
|
+
<% end %>
|
20
|
+
</div>
|
13
21
|
</div>
|
14
|
-
<div id="contacts_save">
|
22
|
+
<div id="contacts_save" style="display:none;">
|
15
23
|
<form action="<%= update_cheesecake_path %>" method="get" data-remote="true" id="contacts_save_form">
|
16
|
-
<input type="submit" id="contacts_save_button" value="
|
24
|
+
<input type="submit" id="contacts_save_button" value="<%= t('cheesecake.changes.save') %>">
|
17
25
|
<input type="hidden" id="contacts_save_changes" name="contacts_save_changes">
|
18
26
|
</form>
|
19
27
|
</div>
|
28
|
+
<div id="contacts_changes_button" style="display:none;">
|
29
|
+
<%= t('cheesecake.changes.details') %> (<span id="contacts_changes_button_total">0</span>)
|
30
|
+
</div>
|
20
31
|
<br class="clearfloat">
|
21
32
|
<div id="contacts_changes">
|
22
33
|
<div id="contacts_changes_title">
|
23
|
-
|
34
|
+
<%= t('cheesecake.changes.details') %>
|
24
35
|
</div>
|
25
36
|
<div id="contacts_changes_details">
|
26
|
-
|
27
|
-
<li>Working on it :)</li>
|
28
|
-
</ul>
|
37
|
+
|
29
38
|
</div>
|
30
39
|
</div>
|
31
40
|
<%= javascript_tag do %>
|
@@ -36,12 +45,70 @@
|
|
36
45
|
$("#contacts_grid_extra").click(function(){
|
37
46
|
$("#contacts_grid").css("overflow-y","scroll");
|
38
47
|
$("#contacts_grid").scrollTo("+=308px", 800, {axis:'y'});
|
39
|
-
$("#contacts_grid_extra").
|
48
|
+
$("#contacts_grid_extra").css("opacity",0);
|
40
49
|
});
|
41
|
-
|
42
|
-
$(
|
43
|
-
|
50
|
+
var unselected_actor_click = function(){
|
51
|
+
var clone = $(this).clone();
|
52
|
+
clone.attr("id",$(this).attr("id") + "_selected");
|
53
|
+
$(this).slideToggle("fast",function(){
|
54
|
+
clone.hide();
|
55
|
+
$(this).before(clone);
|
56
|
+
$("#contacts_grid_selected br.clearfloat").before($(this));
|
57
|
+
$(this).off("click.unselected_actor");
|
58
|
+
$(this).on("click.selected_actor", selected_actor_click);
|
59
|
+
if($("#contacts_grid_selected").css("display")=="none"){
|
60
|
+
$("#contacts_grid_selected").slideToggle("fast");
|
61
|
+
$("#contacts_selector_modifiers").css("opacity",1);
|
62
|
+
}
|
63
|
+
var height = 336 - Math.ceil(($("#contacts_grid_selected").children().length - 1) / 10) * 28;
|
64
|
+
if(height != $("#contacts_grid_available").height())
|
65
|
+
$("#contacts_grid_available").animate({height: height});
|
66
|
+
$(this).slideToggle("fast");
|
44
67
|
});
|
68
|
+
};
|
69
|
+
var selected_actor_click = function(){
|
70
|
+
var clone = $("#" + $(this).attr("id") + "_selected");
|
71
|
+
$(this).slideToggle("fast",function(){
|
72
|
+
clone.before($(this));
|
73
|
+
$(this).off("click.selected_actor");
|
74
|
+
$(this).on("click.unselected_actor", unselected_actor_click);
|
75
|
+
if($("#contacts_grid_selected").children().length <= 1){
|
76
|
+
$("#contacts_grid_selected").slideToggle("fast");
|
77
|
+
$("#contacts_selector_modifiers").css("opacity",0);
|
78
|
+
}
|
79
|
+
var height = 336 - Math.ceil(($("#contacts_grid_selected").children().length - 1) / 10) * 28;
|
80
|
+
if(height != $("#contacts_grid_available").height())
|
81
|
+
$("#contacts_grid_available").animate({height: height});
|
82
|
+
$(this).slideToggle("fast");
|
83
|
+
clone.remove();
|
84
|
+
});
|
85
|
+
};
|
86
|
+
$("#contacts_selector_clear").on("click",function(){
|
87
|
+
$("#contacts_grid_selected .actor").each(function(){
|
88
|
+
var evt = document.createEvent("MouseEvents");
|
89
|
+
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
90
|
+
var cb = $(this)[0];
|
91
|
+
!cb.dispatchEvent(evt);
|
92
|
+
});
|
93
|
+
});
|
94
|
+
$(".actor").on("click.unselected_actor",unselected_actor_click);
|
95
|
+
$("#contacts_changes_button").click(function(){
|
96
|
+
if($(".contacts_changes_tipsy_menu").length != 0){
|
97
|
+
$("#contacts_changes_button").tipsy("hide");
|
98
|
+
}else{
|
99
|
+
$("#contacts_changes_button").tipsy("show");
|
100
|
+
$("#contacts_changes_title").click(function(){
|
101
|
+
$("#contacts_changes_button").tipsy("hide");
|
102
|
+
});
|
103
|
+
}
|
104
|
+
});
|
105
|
+
$("#contacts_save_form").submit(function(){
|
106
|
+
if($(".contacts_changes_tipsy_menu").length != 0){
|
107
|
+
$("#contacts_changes_button").tipsy("hide");
|
108
|
+
}
|
109
|
+
$("#contacts_grid_saving").show();
|
110
|
+
cheese.disable();
|
111
|
+
$("#contacts_save_button").val("<%= t('cheesecake.changes.saving') %>").attr("disabled","true");
|
45
112
|
});
|
46
113
|
<%= render :partial => 'cheesecake' %>
|
47
114
|
<% end %>
|
data/config/locales/en.yml
CHANGED
@@ -92,9 +92,11 @@ en:
|
|
92
92
|
save: "Save"
|
93
93
|
update: "Update"
|
94
94
|
cheesecake:
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
changes:
|
96
|
+
details: "Change details"
|
97
|
+
none: "No changes"
|
98
|
+
save: "Save changes"
|
99
|
+
saving: "Saving..."
|
98
100
|
comment:
|
99
101
|
input: "Write a comment..."
|
100
102
|
confirm_delete: "Delete comment?"
|
data/config/locales/es.yml
CHANGED
@@ -92,9 +92,11 @@ es:
|
|
92
92
|
save: "Guardar"
|
93
93
|
update: "Actualizar"
|
94
94
|
cheesecake:
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
changes:
|
96
|
+
details: "Cambios detallados"
|
97
|
+
none: "Sin cambios"
|
98
|
+
save: "Guardar cambios"
|
99
|
+
saving: "Guardando..."
|
98
100
|
comment:
|
99
101
|
input: "Comentar..."
|
100
102
|
confirm_delete: "¿Borrar commentario?"
|
@@ -29,11 +29,6 @@ module SocialStream
|
|
29
29
|
}
|
30
30
|
end
|
31
31
|
|
32
|
-
# Was the author represented with this {SocialStream::Models::Object object} was created?
|
33
|
-
def represented_author?
|
34
|
-
author_id == user_author_id
|
35
|
-
end
|
36
|
-
|
37
32
|
# All the activities with this object
|
38
33
|
def activities
|
39
34
|
Activity.
|
data/social_stream-base.gemspec
CHANGED
@@ -58,7 +58,7 @@ Gem::Specification.new do |s|
|
|
58
58
|
# Autolink text blocks
|
59
59
|
s.add_runtime_dependency('rails_autolink', '~> 1.0.4')
|
60
60
|
# SocialCheesecake
|
61
|
-
s.add_runtime_dependency('social_cheesecake','~> 0.
|
61
|
+
s.add_runtime_dependency('social_cheesecake','~> 0.3.0')
|
62
62
|
# I18n-js
|
63
63
|
s.add_runtime_dependency('i18n-js','~>2.1.2')
|
64
64
|
|
@@ -87,6 +87,7 @@ describe GroupsController do
|
|
87
87
|
Group.count.should eq(count + 1)
|
88
88
|
assigns(:current_subject).should eq(group)
|
89
89
|
response.should redirect_to(:home)
|
90
|
+
@user.receivers.should include(group.actor)
|
90
91
|
end
|
91
92
|
|
92
93
|
context "with participants" do
|
@@ -171,6 +172,8 @@ describe GroupsController do
|
|
171
172
|
Group.count.should eq(count + 1)
|
172
173
|
assigns(:current_subject).should eq(group)
|
173
174
|
response.should redirect_to(:home)
|
175
|
+
@user.receivers.should include(group.actor)
|
176
|
+
@group.receivers.should include(group.actor)
|
174
177
|
end
|
175
178
|
end
|
176
179
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-01
|
13
|
+
date: 2012-02-01 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &72982930 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.1.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *72982930
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: ancestry
|
28
|
-
requirement: &
|
28
|
+
requirement: &72982670 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.2.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *72982670
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: foreigner
|
39
|
-
requirement: &
|
39
|
+
requirement: &72982420 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.1.1
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *72982420
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: devise
|
50
|
-
requirement: &
|
50
|
+
requirement: &72982170 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.5.3
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *72982170
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: inherited_resources
|
61
|
-
requirement: &
|
61
|
+
requirement: &72981930 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 1.3.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *72981930
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: stringex
|
72
|
-
requirement: &
|
72
|
+
requirement: &72981680 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 1.3.0
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *72981680
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: avatars_for_rails
|
83
|
-
requirement: &
|
83
|
+
requirement: &72981430 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 0.2.2
|
89
89
|
type: :runtime
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *72981430
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: jquery-rails
|
94
|
-
requirement: &
|
94
|
+
requirement: &72981190 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: 1.0.9
|
100
100
|
type: :runtime
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *72981190
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: cancan
|
105
|
-
requirement: &
|
105
|
+
requirement: &72980940 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: 1.6.4
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *72980940
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: kaminari
|
116
|
-
requirement: &
|
116
|
+
requirement: &72980700 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ~>
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: 0.13.0
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *72980700
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: omniauth
|
127
|
-
requirement: &
|
127
|
+
requirement: &72980450 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: 1.0.2
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *72980450
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: omniauth-facebook
|
138
|
-
requirement: &
|
138
|
+
requirement: &72980200 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ~>
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
version: 1.2.0
|
144
144
|
type: :runtime
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *72980200
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: omniauth-linkedin
|
149
|
-
requirement: &
|
149
|
+
requirement: &72979960 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|
152
152
|
- - ~>
|
@@ -154,10 +154,10 @@ dependencies:
|
|
154
154
|
version: 0.0.6
|
155
155
|
type: :runtime
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
157
|
+
version_requirements: *72979960
|
158
158
|
- !ruby/object:Gem::Dependency
|
159
159
|
name: mailboxer
|
160
|
-
requirement: &
|
160
|
+
requirement: &72979710 !ruby/object:Gem::Requirement
|
161
161
|
none: false
|
162
162
|
requirements:
|
163
163
|
- - ~>
|
@@ -165,10 +165,10 @@ dependencies:
|
|
165
165
|
version: 0.6.0
|
166
166
|
type: :runtime
|
167
167
|
prerelease: false
|
168
|
-
version_requirements: *
|
168
|
+
version_requirements: *72979710
|
169
169
|
- !ruby/object:Gem::Dependency
|
170
170
|
name: acts-as-taggable-on
|
171
|
-
requirement: &
|
171
|
+
requirement: &72979460 !ruby/object:Gem::Requirement
|
172
172
|
none: false
|
173
173
|
requirements:
|
174
174
|
- - ~>
|
@@ -176,10 +176,10 @@ dependencies:
|
|
176
176
|
version: 2.2.2
|
177
177
|
type: :runtime
|
178
178
|
prerelease: false
|
179
|
-
version_requirements: *
|
179
|
+
version_requirements: *72979460
|
180
180
|
- !ruby/object:Gem::Dependency
|
181
181
|
name: formtastic
|
182
|
-
requirement: &
|
182
|
+
requirement: &72976230 !ruby/object:Gem::Requirement
|
183
183
|
none: false
|
184
184
|
requirements:
|
185
185
|
- - ~>
|
@@ -187,10 +187,10 @@ dependencies:
|
|
187
187
|
version: 1.2.3
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
|
-
version_requirements: *
|
190
|
+
version_requirements: *72976230
|
191
191
|
- !ruby/object:Gem::Dependency
|
192
192
|
name: simple-navigation
|
193
|
-
requirement: &
|
193
|
+
requirement: &72975980 !ruby/object:Gem::Requirement
|
194
194
|
none: false
|
195
195
|
requirements:
|
196
196
|
- - ~>
|
@@ -198,10 +198,10 @@ dependencies:
|
|
198
198
|
version: 3.5.1
|
199
199
|
type: :runtime
|
200
200
|
prerelease: false
|
201
|
-
version_requirements: *
|
201
|
+
version_requirements: *72975980
|
202
202
|
- !ruby/object:Gem::Dependency
|
203
203
|
name: resque
|
204
|
-
requirement: &
|
204
|
+
requirement: &72975730 !ruby/object:Gem::Requirement
|
205
205
|
none: false
|
206
206
|
requirements:
|
207
207
|
- - ~>
|
@@ -209,10 +209,10 @@ dependencies:
|
|
209
209
|
version: 1.19.0
|
210
210
|
type: :runtime
|
211
211
|
prerelease: false
|
212
|
-
version_requirements: *
|
212
|
+
version_requirements: *72975730
|
213
213
|
- !ruby/object:Gem::Dependency
|
214
214
|
name: modernizr-rails
|
215
|
-
requirement: &
|
215
|
+
requirement: &72975490 !ruby/object:Gem::Requirement
|
216
216
|
none: false
|
217
217
|
requirements:
|
218
218
|
- - ~>
|
@@ -220,10 +220,10 @@ dependencies:
|
|
220
220
|
version: 2.0.6
|
221
221
|
type: :runtime
|
222
222
|
prerelease: false
|
223
|
-
version_requirements: *
|
223
|
+
version_requirements: *72975490
|
224
224
|
- !ruby/object:Gem::Dependency
|
225
225
|
name: thinking-sphinx
|
226
|
-
requirement: &
|
226
|
+
requirement: &72975240 !ruby/object:Gem::Requirement
|
227
227
|
none: false
|
228
228
|
requirements:
|
229
229
|
- - ~>
|
@@ -231,10 +231,10 @@ dependencies:
|
|
231
231
|
version: 2.0.8
|
232
232
|
type: :runtime
|
233
233
|
prerelease: false
|
234
|
-
version_requirements: *
|
234
|
+
version_requirements: *72975240
|
235
235
|
- !ruby/object:Gem::Dependency
|
236
236
|
name: sass-rails
|
237
|
-
requirement: &
|
237
|
+
requirement: &72975000 !ruby/object:Gem::Requirement
|
238
238
|
none: false
|
239
239
|
requirements:
|
240
240
|
- - ! '>='
|
@@ -242,10 +242,10 @@ dependencies:
|
|
242
242
|
version: 3.1.0
|
243
243
|
type: :runtime
|
244
244
|
prerelease: false
|
245
|
-
version_requirements: *
|
245
|
+
version_requirements: *72975000
|
246
246
|
- !ruby/object:Gem::Dependency
|
247
247
|
name: rails_autolink
|
248
|
-
requirement: &
|
248
|
+
requirement: &72974750 !ruby/object:Gem::Requirement
|
249
249
|
none: false
|
250
250
|
requirements:
|
251
251
|
- - ~>
|
@@ -253,21 +253,21 @@ dependencies:
|
|
253
253
|
version: 1.0.4
|
254
254
|
type: :runtime
|
255
255
|
prerelease: false
|
256
|
-
version_requirements: *
|
256
|
+
version_requirements: *72974750
|
257
257
|
- !ruby/object:Gem::Dependency
|
258
258
|
name: social_cheesecake
|
259
|
-
requirement: &
|
259
|
+
requirement: &72974500 !ruby/object:Gem::Requirement
|
260
260
|
none: false
|
261
261
|
requirements:
|
262
262
|
- - ~>
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: 0.
|
264
|
+
version: 0.3.0
|
265
265
|
type: :runtime
|
266
266
|
prerelease: false
|
267
|
-
version_requirements: *
|
267
|
+
version_requirements: *72974500
|
268
268
|
- !ruby/object:Gem::Dependency
|
269
269
|
name: i18n-js
|
270
|
-
requirement: &
|
270
|
+
requirement: &72974260 !ruby/object:Gem::Requirement
|
271
271
|
none: false
|
272
272
|
requirements:
|
273
273
|
- - ~>
|
@@ -275,10 +275,10 @@ dependencies:
|
|
275
275
|
version: 2.1.2
|
276
276
|
type: :runtime
|
277
277
|
prerelease: false
|
278
|
-
version_requirements: *
|
278
|
+
version_requirements: *72974260
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: capybara
|
281
|
-
requirement: &
|
281
|
+
requirement: &72974010 !ruby/object:Gem::Requirement
|
282
282
|
none: false
|
283
283
|
requirements:
|
284
284
|
- - ~>
|
@@ -286,10 +286,10 @@ dependencies:
|
|
286
286
|
version: 0.3.9
|
287
287
|
type: :development
|
288
288
|
prerelease: false
|
289
|
-
version_requirements: *
|
289
|
+
version_requirements: *72974010
|
290
290
|
- !ruby/object:Gem::Dependency
|
291
291
|
name: sqlite3-ruby
|
292
|
-
requirement: &
|
292
|
+
requirement: &72973800 !ruby/object:Gem::Requirement
|
293
293
|
none: false
|
294
294
|
requirements:
|
295
295
|
- - ! '>='
|
@@ -297,10 +297,10 @@ dependencies:
|
|
297
297
|
version: '0'
|
298
298
|
type: :development
|
299
299
|
prerelease: false
|
300
|
-
version_requirements: *
|
300
|
+
version_requirements: *72973800
|
301
301
|
- !ruby/object:Gem::Dependency
|
302
302
|
name: ruby-debug19
|
303
|
-
requirement: &
|
303
|
+
requirement: &72973540 !ruby/object:Gem::Requirement
|
304
304
|
none: false
|
305
305
|
requirements:
|
306
306
|
- - ! '>='
|
@@ -308,10 +308,10 @@ dependencies:
|
|
308
308
|
version: '0'
|
309
309
|
type: :development
|
310
310
|
prerelease: false
|
311
|
-
version_requirements: *
|
311
|
+
version_requirements: *72973540
|
312
312
|
- !ruby/object:Gem::Dependency
|
313
313
|
name: rspec-rails
|
314
|
-
requirement: &
|
314
|
+
requirement: &72973280 !ruby/object:Gem::Requirement
|
315
315
|
none: false
|
316
316
|
requirements:
|
317
317
|
- - ~>
|
@@ -319,10 +319,10 @@ dependencies:
|
|
319
319
|
version: 2.6.1
|
320
320
|
type: :development
|
321
321
|
prerelease: false
|
322
|
-
version_requirements: *
|
322
|
+
version_requirements: *72973280
|
323
323
|
- !ruby/object:Gem::Dependency
|
324
324
|
name: factory_girl
|
325
|
-
requirement: &
|
325
|
+
requirement: &72973010 !ruby/object:Gem::Requirement
|
326
326
|
none: false
|
327
327
|
requirements:
|
328
328
|
- - ~>
|
@@ -330,10 +330,10 @@ dependencies:
|
|
330
330
|
version: 1.3.2
|
331
331
|
type: :development
|
332
332
|
prerelease: false
|
333
|
-
version_requirements: *
|
333
|
+
version_requirements: *72973010
|
334
334
|
- !ruby/object:Gem::Dependency
|
335
335
|
name: forgery
|
336
|
-
requirement: &
|
336
|
+
requirement: &72972760 !ruby/object:Gem::Requirement
|
337
337
|
none: false
|
338
338
|
requirements:
|
339
339
|
- - ~>
|
@@ -341,10 +341,10 @@ dependencies:
|
|
341
341
|
version: 0.4.2
|
342
342
|
type: :development
|
343
343
|
prerelease: false
|
344
|
-
version_requirements: *
|
344
|
+
version_requirements: *72972760
|
345
345
|
- !ruby/object:Gem::Dependency
|
346
346
|
name: ci_reporter
|
347
|
-
requirement: &
|
347
|
+
requirement: &72972520 !ruby/object:Gem::Requirement
|
348
348
|
none: false
|
349
349
|
requirements:
|
350
350
|
- - ~>
|
@@ -352,10 +352,10 @@ dependencies:
|
|
352
352
|
version: 1.6.4
|
353
353
|
type: :development
|
354
354
|
prerelease: false
|
355
|
-
version_requirements: *
|
355
|
+
version_requirements: *72972520
|
356
356
|
- !ruby/object:Gem::Dependency
|
357
357
|
name: nifty-generators
|
358
|
-
requirement: &
|
358
|
+
requirement: &72972270 !ruby/object:Gem::Requirement
|
359
359
|
none: false
|
360
360
|
requirements:
|
361
361
|
- - ~>
|
@@ -363,7 +363,7 @@ dependencies:
|
|
363
363
|
version: 0.4.5
|
364
364
|
type: :development
|
365
365
|
prerelease: false
|
366
|
-
version_requirements: *
|
366
|
+
version_requirements: *72972270
|
367
367
|
description: ! 'Social Stream is a Ruby on Rails engine providing your application
|
368
368
|
with social networking features and activity streams.
|
369
369
|
|