social_stream 0.19.0 → 0.19.1
Sign up to get free protection for your applications and to get access to all the features.
- data/base/app/assets/stylesheets/cheesecake.css.scss +107 -36
- data/base/app/models/channel.rb +5 -0
- data/base/app/models/group.rb +2 -1
- data/base/app/views/actors/_actor_cheesecake.html.erb +1 -1
- data/base/app/views/cheesecake/_cheesecake.html.erb +38 -44
- data/base/app/views/cheesecake/_index.html.erb +83 -16
- data/base/config/locales/en.yml +5 -3
- data/base/config/locales/es.yml +5 -3
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/lib/social_stream/models/object.rb +0 -5
- data/base/social_stream-base.gemspec +1 -1
- data/base/spec/controllers/groups_controller_spec.rb +3 -0
- data/events/app/views/events/_event.html.erb +12 -1
- data/events/lib/social_stream/events/version.rb +1 -1
- data/events/social_stream-events.gemspec +1 -1
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +3 -3
- metadata +29 -29
@@ -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/base/app/models/channel.rb
CHANGED
data/base/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/base/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/base/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.
|
@@ -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
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%= link_to event, :class => "event_date" do %>
|
2
|
-
<div class="event_date_image">
|
2
|
+
<div id="event-<%= event.id %>" class="event_date_image">
|
3
3
|
<div class="event_day">
|
4
4
|
<%= event.start_at.day %>
|
5
5
|
</div>
|
@@ -14,6 +14,17 @@
|
|
14
14
|
</div>
|
15
15
|
<% end %>
|
16
16
|
|
17
|
+
<%= javascript_tag do %>
|
18
|
+
var d = new Date(<%= 1000*event.start_at.to_i %>);
|
19
|
+
$("#event-<%= event.id %> .event_day").text($.datepicker.formatDate('d', d));
|
20
|
+
$("#event-<%= event.id %> .event_month").text($.datepicker.formatDate('M', d));
|
21
|
+
if($("#event-<%= event.id %> .event_hour").length) {
|
22
|
+
var minutes = d.getMinutes();
|
23
|
+
if (minutes<10) minutes = "0" + minutes;
|
24
|
+
$("#event-<%= event.id %> .event_hour").text(d.getHours() + ':' + minutes);
|
25
|
+
}
|
26
|
+
<% end %>
|
27
|
+
|
17
28
|
<div class="event_details">
|
18
29
|
<div class="title">
|
19
30
|
<%= link_to event.title, event %>
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.files = `git ls-files`.split("\n")
|
13
13
|
|
14
14
|
# Gem dependencies
|
15
|
-
s.add_runtime_dependency('social_stream-base', '~> 0.14.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.14.1')
|
16
16
|
s.add_runtime_dependency('rails-scheduler', '~> 0.0.6')
|
17
17
|
s.add_runtime_dependency('coffee-rails', '>= 3.1.0')
|
18
18
|
|
data/social_stream.gemspec
CHANGED
@@ -11,9 +11,9 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.files = `git ls-files`.split("\n")
|
12
12
|
|
13
13
|
# Gem dependencies
|
14
|
-
s.add_runtime_dependency('social_stream-base', '~> 0.14.
|
14
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.14.1')
|
15
15
|
s.add_runtime_dependency('social_stream-documents', '~> 0.9.0')
|
16
|
-
s.add_runtime_dependency('social_stream-events', '~> 0.6.
|
16
|
+
s.add_runtime_dependency('social_stream-events', '~> 0.6.1')
|
17
17
|
s.add_runtime_dependency('social_stream-linkser', '~> 0.4.0')
|
18
18
|
s.add_runtime_dependency('social_stream-presence', '~> 0.5.0')
|
19
19
|
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
# Specs
|
44
|
-
s.add_development_dependency('rspec-rails', '~> 2.
|
44
|
+
s.add_development_dependency('rspec-rails', '~> 2.8.0')
|
45
45
|
# Fixtures
|
46
46
|
s.add_development_dependency('factory_girl', '~> 1.3.2')
|
47
47
|
# Population
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,22 +10,22 @@ 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: social_stream-base
|
17
|
-
requirement: &
|
17
|
+
requirement: &74908450 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.14.
|
22
|
+
version: 0.14.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *74908450
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: social_stream-documents
|
28
|
-
requirement: &
|
28
|
+
requirement: &74905530 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,21 +33,21 @@ dependencies:
|
|
33
33
|
version: 0.9.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *74905530
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: social_stream-events
|
39
|
-
requirement: &
|
39
|
+
requirement: &74905280 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 0.6.
|
44
|
+
version: 0.6.1
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *74905280
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: social_stream-linkser
|
50
|
-
requirement: &
|
50
|
+
requirement: &74905040 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.4.0
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *74905040
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: social_stream-presence
|
61
|
-
requirement: &
|
61
|
+
requirement: &74904790 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.5.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *74904790
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: capybara
|
72
|
-
requirement: &
|
72
|
+
requirement: &74904540 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 0.3.9
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *74904540
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: sqlite3
|
83
|
-
requirement: &
|
83
|
+
requirement: &74904330 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *74904330
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: ruby-debug19
|
94
|
-
requirement: &
|
94
|
+
requirement: &74904060 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,21 +99,21 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *74904060
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rspec-rails
|
105
|
-
requirement: &
|
105
|
+
requirement: &74903790 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
110
|
+
version: 2.8.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *74903790
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: factory_girl
|
116
|
-
requirement: &
|
116
|
+
requirement: &74903520 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ~>
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: 1.3.2
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *74903520
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: forgery
|
127
|
-
requirement: &
|
127
|
+
requirement: &74903280 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: 0.4.2
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *74903280
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: ci_reporter
|
138
|
-
requirement: &
|
138
|
+
requirement: &74903030 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ~>
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
version: 1.6.4
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *74903030
|
147
147
|
description: Social Stream is a Ruby on Rails engine for building social network websites.
|
148
148
|
It supports contacts, posts, file uploads, private messages and many more.
|
149
149
|
email:
|