social_stream 0.20.2 → 0.21.0
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/base/app/assets/images/btn/permission_negative.png +0 -0
- data/base/app/assets/images/btn/permission_positive.png +0 -0
- data/base/app/assets/javascripts/activities.js.erb +2 -118
- data/base/app/assets/javascripts/social_stream-base.js +3 -0
- data/base/app/assets/javascripts/social_stream.timeline.js +42 -0
- data/base/app/assets/javascripts/social_stream.wall.js.erb +125 -0
- data/base/app/assets/stylesheets/cheesecake.css.scss +9 -1
- data/base/app/helpers/notifications_helper.rb +1 -5
- data/base/app/models/activity.rb +21 -2
- data/base/app/models/comment.rb +5 -0
- data/base/app/models/permission.rb +16 -1
- data/base/app/models/post.rb +5 -0
- data/base/app/views/activities/_new.html.erb +7 -6
- data/base/app/views/activities/_wall.html.erb +6 -0
- data/base/app/views/cheesecake/_index.html.erb +17 -0
- data/base/app/views/cheesecake/_sector_form.html.erb +15 -6
- data/base/app/views/comments/_new.html.erb +2 -2
- data/base/app/views/comments/create.js.erb +1 -3
- data/base/app/views/notifications/activities/_post.html.erb +0 -3
- data/base/app/views/permissions/_index.html.erb +2 -2
- data/base/app/views/posts/create.js.erb +1 -4
- data/base/config/locales/en.yml +33 -23
- data/base/config/locales/es.yml +53 -24
- data/base/db/migrate/20120208135718_group_title_and_description_in_activity_object.rb +52 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/spec/factories/activity.rb +1 -1
- data/documents/db/migrate/20120208143721_documents_group_title_and_description_in_activity_object.rb +28 -0
- data/documents/lib/social_stream/documents/version.rb +1 -1
- data/documents/social_stream-documents.gemspec +1 -1
- data/documents/spec/factories/document.rb +1 -0
- data/documents/spec/factories/picture.rb +1 -0
- data/events/db/migrate/20120208143756_events_group_title_and_description_in_activity_object.rb +26 -0
- 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/linkser/app/views/links/create.js.erb +1 -3
- data/linkser/db/migrate/20120208143739_linkser_group_title_and_description_in_activity_object.rb +30 -0
- data/linkser/lib/social_stream/linkser/version.rb +1 -1
- data/linkser/social_stream-linkser.gemspec +1 -1
- data/presence/app/assets/images/black_arrow7.png +0 -0
- data/presence/app/assets/images/black_arrow8.png +0 -0
- data/presence/app/assets/images/black_arrow9.png +0 -0
- data/presence/app/assets/javascripts/chat_interface_manager.js.erb +191 -23
- data/presence/app/assets/javascripts/chat_persistence.js +15 -6
- data/presence/app/assets/javascripts/chat_utilities.js +13 -0
- data/presence/app/assets/javascripts/chat_window_manager.js +101 -20
- data/presence/app/assets/javascripts/social_stream-presence.js +2 -0
- data/presence/app/assets/javascripts/xmpp_client_management.js.erb +6 -5
- data/presence/app/assets/stylesheets/chat.css.scss +43 -3
- data/presence/app/assets/stylesheets/social_stream-presence.css +1 -0
- data/presence/app/helpers/xmpp_helper.rb +4 -2
- data/presence/app/views/chat/_contacts.html.erb +55 -42
- data/presence/config/locales/en.yml +4 -1
- data/presence/config/locales/es.yml +3 -1
- data/presence/db/migrate/20110928135031_add_status_column_to_user.rb +1 -1
- data/presence/lib/social_stream/presence/version.rb +1 -1
- data/presence/social_stream-presence.gemspec +1 -1
- data/presence/vendor/assets/javascripts/jquery.flexselect.js +265 -0
- data/presence/vendor/assets/javascripts/jquery.tools.tooltip.js +2 -1
- data/presence/vendor/assets/javascripts/liquidmetal.js +90 -0
- data/presence/vendor/assets/stylesheets/flexselect.css +39 -0
- data/social_stream.gemspec +5 -5
- metadata +45 -32
- data/base/app/views/activities/_filter.html.erb +0 -83
@@ -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.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.16.0')
|
16
16
|
s.add_runtime_dependency('paperclip-ffmpeg', '~> 0.7.0')
|
17
17
|
s.add_runtime_dependency('paperclip','= 2.4.5')
|
18
18
|
s.add_runtime_dependency('delayed_paperclip','2.4.5.1')
|
data/events/db/migrate/20120208143756_events_group_title_and_description_in_activity_object.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class EventsGroupTitleAndDescriptionInActivityObject < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
ao_ts = ActivityObject.record_timestamps
|
4
|
+
ActivityObject.record_timestamps = false
|
5
|
+
|
6
|
+
# Fix 'events' table
|
7
|
+
e_ts = Event.record_timestamps
|
8
|
+
Event.record_timestamps = false
|
9
|
+
|
10
|
+
Event.all.each do |e|
|
11
|
+
e.activity_object.title = e.read_attribute(:title)
|
12
|
+
e.save!
|
13
|
+
end
|
14
|
+
change_table :events do |t|
|
15
|
+
t.remove :title
|
16
|
+
end
|
17
|
+
Event.reset_column_information
|
18
|
+
Event.record_timestamps = e_ts
|
19
|
+
|
20
|
+
ActivityObject.record_timestamps = ao_ts
|
21
|
+
end
|
22
|
+
|
23
|
+
def down
|
24
|
+
raise ActiveRecord::IrreversibleMigration # Due to trans-gem oddities
|
25
|
+
end
|
26
|
+
end
|
@@ -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.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.16.0')
|
16
16
|
s.add_runtime_dependency('rails-scheduler', '~> 0.0.6')
|
17
17
|
s.add_runtime_dependency('coffee-rails', '>= 3.1.0')
|
18
18
|
|
@@ -1,9 +1,7 @@
|
|
1
1
|
//Display the new post
|
2
2
|
$("#wall").prepend("<%= escape_javascript(render @link.post_activity) %>");
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
unblock_all_forms();
|
4
|
+
SocialStream.Timeline.newActivity("<%= escape_javascript dom_id(@link.post_activity) %>");
|
7
5
|
|
8
6
|
$("#link_preview").hide();
|
9
7
|
$("#link_preview").html("");
|
data/linkser/db/migrate/20120208143739_linkser_group_title_and_description_in_activity_object.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
class LinkserGroupTitleAndDescriptionInActivityObject < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
ao_ts = ActivityObject.record_timestamps
|
4
|
+
ActivityObject.record_timestamps = false
|
5
|
+
|
6
|
+
# Fix 'links' table
|
7
|
+
l_ts = Link.record_timestamps
|
8
|
+
Link.record_timestamps = false
|
9
|
+
|
10
|
+
Link.all.each do |l|
|
11
|
+
l.activity_object.title = l.read_attribute(:title)
|
12
|
+
l.activity_object.description = l.read_attribute(:description)
|
13
|
+
l.save!
|
14
|
+
end
|
15
|
+
|
16
|
+
change_table :links do |t|
|
17
|
+
t.remove :title
|
18
|
+
t.remove :description
|
19
|
+
end
|
20
|
+
|
21
|
+
Link.reset_column_information
|
22
|
+
Link.record_timestamps = l_ts
|
23
|
+
|
24
|
+
ActivityObject.record_timestamps = ao_ts
|
25
|
+
end
|
26
|
+
|
27
|
+
def down
|
28
|
+
raise ActiveRecord::IrreversibleMigration # Due to trans-gem oddities
|
29
|
+
end
|
30
|
+
end
|
@@ -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.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.16.0')
|
16
16
|
s.add_runtime_dependency('linkser', '~> 0.0.10')
|
17
17
|
# Development Gem dependencies
|
18
18
|
s.add_development_dependency('sqlite3-ruby')
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,3 +1,5 @@
|
|
1
|
+
var global;
|
2
|
+
|
1
3
|
////////////////////
|
2
4
|
//Reconnect button interface functions
|
3
5
|
////////////////////
|
@@ -30,8 +32,15 @@ function requestConnectToChat(){
|
|
30
32
|
//Chat interface: Connection boxes
|
31
33
|
////////////////////
|
32
34
|
|
35
|
+
var focusSearchContactsFlag=false;
|
36
|
+
|
33
37
|
function setUserFunctions(){
|
34
|
-
|
38
|
+
|
39
|
+
settingTooltips();
|
40
|
+
|
41
|
+
///////////////////////
|
42
|
+
//Open chatbox function
|
43
|
+
///////////////////////
|
35
44
|
$("div.user_presence").click(function(event, ui){
|
36
45
|
var guest_name = $(this).attr("name");
|
37
46
|
var guest_slug = $(this).attr("slug");
|
@@ -43,10 +52,21 @@ function setUserFunctions(){
|
|
43
52
|
};
|
44
53
|
});
|
45
54
|
|
55
|
+
|
56
|
+
//Hide tooltips on mouseleave
|
57
|
+
$("div.user_presence").mouseleave(function(e){
|
58
|
+
var div = $(this);
|
59
|
+
$.each($(".tooltip:visible"), function(index, value) {
|
60
|
+
if ( $($(".tooltip:visible")[0]).html() == $(div).attr("name") ){
|
61
|
+
$($(".tooltip:visible")[index]).hide();
|
62
|
+
}
|
63
|
+
});
|
64
|
+
});
|
46
65
|
|
47
|
-
|
48
|
-
|
49
|
-
|
66
|
+
|
67
|
+
////////////////////
|
68
|
+
//Chat interface: Status selector
|
69
|
+
////////////////////
|
50
70
|
|
51
71
|
//JQuery DropdwanStatus
|
52
72
|
|
@@ -78,15 +98,105 @@ function setUserFunctions(){
|
|
78
98
|
|
79
99
|
$(document).bind('click', function(e) {
|
80
100
|
var $clicked = $(e.target);
|
101
|
+
|
81
102
|
if (! $clicked.parents().hasClass("dropdown")){
|
82
103
|
//Click outside the select...
|
83
104
|
$(".dropdown dd ul").hide();
|
84
105
|
setStatusWidgetTitle(userStatus);
|
85
106
|
}
|
86
107
|
});
|
108
|
+
|
109
|
+
///////////////
|
110
|
+
//Search contacts enabling
|
111
|
+
///////////////
|
112
|
+
$("select.flexselect").flexselect({
|
113
|
+
allowMismatch: true
|
114
|
+
});
|
115
|
+
|
116
|
+
//Select contact function
|
117
|
+
//callback in changeSelectContactValue()
|
118
|
+
|
119
|
+
|
120
|
+
$("#search_chat_contact_flexselect").focus(function(e) {
|
121
|
+
changeContactListVisibility(true);
|
122
|
+
});
|
123
|
+
|
124
|
+
$("#search_chat_contact_flexselect").blur(function(e) {
|
125
|
+
changeContactListVisibility(false);
|
126
|
+
});
|
127
|
+
|
128
|
+
}
|
129
|
+
|
130
|
+
|
131
|
+
function changeSelectContactValue(name,value){
|
132
|
+
$("#search_chat_contact_flexselect").blur();
|
133
|
+
|
134
|
+
if(value == "ZERO_CONTACTS"){
|
135
|
+
return;
|
136
|
+
}
|
137
|
+
|
138
|
+
var guest_slug = value;
|
139
|
+
var guest_name = name;
|
140
|
+
var guest_jid = guest_slug + "@" + domain;
|
141
|
+
if (createChatBox(guest_slug, guest_name, guest_jid, user_name, user_jid)) {
|
142
|
+
} else {
|
143
|
+
window[getChatVariableFromSlug(guest_slug)].chatbox("option", "boxManager").toggleBox(true);
|
144
|
+
};
|
145
|
+
|
146
|
+
//Check for online status and show notification
|
147
|
+
if (getAllConnectedSlugs().indexOf(guest_slug)==-1) {
|
148
|
+
showOfflineChatNotificationForSlug(guest_slug);
|
149
|
+
}
|
87
150
|
|
151
|
+
changeContactListVisibility(false);
|
88
152
|
}
|
89
153
|
|
154
|
+
|
155
|
+
function settingTooltips(){
|
156
|
+
if (mainChatBox == null) {
|
157
|
+
//Enabling default tooltips
|
158
|
+
$(".user_presence a[title]").tooltip();
|
159
|
+
} else {
|
160
|
+
//Enabling tooltips with center left position
|
161
|
+
|
162
|
+
//Changing Tooltip CSS class by JQuery
|
163
|
+
var ss = document.styleSheets;
|
164
|
+
for (var i=0; i<ss.length; i++) {
|
165
|
+
var rules = ss[i].cssRules || ss[i].rules;
|
166
|
+
for (var j=0; j<rules.length; j++) {
|
167
|
+
if (rules[j].selectorText === ".tooltip") {
|
168
|
+
rules[j].style.background = 'url("black_arrow9.png") repeat scroll 0% 0% transparent'
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
$(".user_presence a[title]").tooltip({
|
173
|
+
opacity: 0.95,
|
174
|
+
relative: false,
|
175
|
+
position: 'top left',
|
176
|
+
offset: [0,37]
|
177
|
+
});
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
function changeContactListVisibility(visible){
|
183
|
+
var nItems = $("#search_chat_contact_flexselect_dropdown ul li").length-1;
|
184
|
+
if (visible){
|
185
|
+
focusSearchContactsFlag=true;
|
186
|
+
if(nItems > 9){
|
187
|
+
changeMainChatBoxHeight(mainChatBoxHeightWhileSearchContacts);
|
188
|
+
} else {
|
189
|
+
var mainChatBoxMinRequiredHeight= mainChatBoxaddonsHeight + 20 + nItems * 19;
|
190
|
+
changeMainChatBoxHeight(mainChatBoxMinRequiredHeight);
|
191
|
+
}
|
192
|
+
$(".users_connected").hide();
|
193
|
+
} else {
|
194
|
+
changeMainChatBoxHeight(getChatBoxHeightRequiredForConnectionBoxes());
|
195
|
+
$(".users_connected").show();
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
|
90
200
|
function setStatusWidgetTitle(status){
|
91
201
|
|
92
202
|
if((status in sstreamChatStatus)){
|
@@ -179,14 +289,18 @@ function updateChatWindow(){
|
|
179
289
|
$.post("/chatWindow", { userConnected: stropheConnectedAndOnlineStatus }, function(data){
|
180
290
|
$(".tooltip").hide() //Prevent tooltips
|
181
291
|
$("#chat_partial").html(modifyChatPartialIfMainBox(data));
|
292
|
+
updateConnectedUsersOfMainChatBox();
|
182
293
|
if (isStropheConnected()) {
|
183
294
|
setStatusWidgetTitle(userStatus);
|
184
|
-
|
185
|
-
setUserFunctions();
|
186
|
-
updateConnectedUsersOfMainChatBox();
|
295
|
+
setUserFunctions();
|
187
296
|
if (afterNewConnectionFlag){
|
188
297
|
afterNewConnectionFlag = false;
|
189
|
-
|
298
|
+
if(afterFirstConnectionFlag){
|
299
|
+
restoreChatData();
|
300
|
+
afterFirstConnectionFlag = false;
|
301
|
+
} else {
|
302
|
+
updateAllNotifications();
|
303
|
+
}
|
190
304
|
}
|
191
305
|
}
|
192
306
|
});
|
@@ -201,11 +315,23 @@ function getConnectionBoxFromSlug(slug){
|
|
201
315
|
}
|
202
316
|
|
203
317
|
var cacheConnectedUsers = [];
|
318
|
+
|
204
319
|
function hideConnectionBoxFromSlug(slug){
|
205
320
|
if ($('div.user_presence[slug=' + slug + ']').length > 0){
|
206
321
|
$('div.user_presence[slug=' + slug + ']').hide();
|
207
322
|
if(cacheConnectedUsers.indexOf(slug)==-1){
|
208
323
|
cacheConnectedUsers.push(slug);
|
324
|
+
}
|
325
|
+
updateMainChatBoxAfterUserDisconnect();
|
326
|
+
|
327
|
+
//Last user disconnected?
|
328
|
+
if (getAllConnectedSlugs().length ==0){
|
329
|
+
if($(".users_connected p.zero_users_connected").length > 0){
|
330
|
+
$(".users_connected p.zero_users_connected").show();
|
331
|
+
} else {
|
332
|
+
var msg = '<%=I18n.t('chat.zerousers')%>';
|
333
|
+
$(".users_connected").append('<p class="zero_users_connected">' + msg + '</p>')
|
334
|
+
}
|
209
335
|
}
|
210
336
|
}
|
211
337
|
}
|
@@ -214,6 +340,7 @@ function showConnectionBoxFromSlug(slug){
|
|
214
340
|
if ($('div.user_presence[slug=' + slug + ']').length > 0){
|
215
341
|
if (!($('div.user_presence[slug=' + slug + ']').is(":visible"))){
|
216
342
|
$('div.user_presence[slug=' + slug + ']').show();
|
343
|
+
$(".users_connected p.zero_users_connected").hide();
|
217
344
|
}
|
218
345
|
}
|
219
346
|
}
|
@@ -229,17 +356,29 @@ function setUserIconStatus(slug, status){
|
|
229
356
|
}
|
230
357
|
|
231
358
|
function getAllConnectedSlugs(){
|
232
|
-
|
359
|
+
return getAllSlugsByChatConnectedState()[0];
|
360
|
+
}
|
361
|
+
|
362
|
+
function getAllDisconnectedSlugs(){
|
363
|
+
return getAllSlugsByChatConnectedState()[1];
|
364
|
+
}
|
365
|
+
|
366
|
+
function getAllSlugsByChatConnectedState(){
|
367
|
+
var onlineSlugs=[];
|
368
|
+
var offlineSlugs=[];
|
369
|
+
var allSlugs=[];
|
233
370
|
connectionBoxes = $('div.user_presence[slug]');
|
234
371
|
$.each(connectionBoxes, function(index, value) {
|
235
|
-
|
236
|
-
|
237
|
-
|
372
|
+
if($(value).css("display")!="none"){
|
373
|
+
onlineSlugs.push($(value).attr("slug"))
|
374
|
+
} else {
|
375
|
+
offlineSlugs.push($(value).attr("slug"))
|
376
|
+
}
|
377
|
+
allSlugs.push($(value).attr("slug"))
|
238
378
|
});
|
239
|
-
return
|
379
|
+
return [onlineSlugs,offlineSlugs,allSlugs]
|
240
380
|
}
|
241
381
|
|
242
|
-
|
243
382
|
////////////////////
|
244
383
|
//Insert received message in chatbox
|
245
384
|
////////////////////
|
@@ -293,20 +432,24 @@ function putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID){
|
|
293
432
|
//Notifications on chat Window
|
294
433
|
////////////////////
|
295
434
|
|
296
|
-
function showChatNotificationForSlug(slug,msg){
|
297
|
-
var notification = $("#" + slug).parent().find("div.ui-chatbox-notify");
|
298
|
-
showChatNotification(notification,msg);
|
299
|
-
}
|
300
|
-
|
301
435
|
function showChatNotification(notification,msg){
|
302
436
|
notification.html("<p class==\"ui-chatbox-notify-text\">" + msg + "</p>");
|
303
437
|
notification.css("visibility","visible");
|
304
438
|
notification.fadeIn();
|
305
439
|
}
|
306
440
|
|
307
|
-
function
|
441
|
+
function showChatNotificationForSlug(slug,msg){
|
308
442
|
var notification = $("#" + slug).parent().find("div.ui-chatbox-notify");
|
309
|
-
|
443
|
+
showChatNotification(notification,msg);
|
444
|
+
}
|
445
|
+
|
446
|
+
function showOfflineChatNotificationForSlug(slug){
|
447
|
+
var slug_chat_box = getChatBoxForSlug(slug);
|
448
|
+
if(slug_chat_box!=null){
|
449
|
+
var name = slug_chat_box.attr("name")
|
450
|
+
var msg = name + ' ' + '<%=I18n.t('chat.notify.guestOffline')%>';
|
451
|
+
showChatNotificationForSlug(slug,msg);
|
452
|
+
}
|
310
453
|
}
|
311
454
|
|
312
455
|
function hideChatNotification(notification){
|
@@ -314,6 +457,11 @@ function hideChatNotification(notification){
|
|
314
457
|
notification.css("visibility","hidden");
|
315
458
|
}
|
316
459
|
|
460
|
+
function hideChatNotificationForSlug(slug){
|
461
|
+
var notification = $("#" + slug).parent().find("div.ui-chatbox-notify");
|
462
|
+
hideChatNotification(notification);
|
463
|
+
}
|
464
|
+
|
317
465
|
function notifyWhenUsersDisconnect(){
|
318
466
|
var notification = $("div.ui-chatbox-notify");
|
319
467
|
var msg = '<%=I18n.t('chat.notify.offline')%>';
|
@@ -325,6 +473,17 @@ function hideAllNotifications(){
|
|
325
473
|
hideChatNotification(notification);
|
326
474
|
}
|
327
475
|
|
476
|
+
function updateAllNotifications(){
|
477
|
+
hideAllNotifications();
|
478
|
+
if(disconnectionFlag){
|
479
|
+
notifyWhenUsersDisconnect();
|
480
|
+
} else {
|
481
|
+
//Notification for offline contacts
|
482
|
+
$.each(getAllDisconnectedSlugsWithChatBoxes(), function(index, value) {
|
483
|
+
showOfflineChatNotificationForSlug(value)
|
484
|
+
});
|
485
|
+
}
|
486
|
+
}
|
328
487
|
|
329
488
|
|
330
489
|
////////////////////
|
@@ -332,6 +491,15 @@ function hideAllNotifications(){
|
|
332
491
|
////////////////////
|
333
492
|
|
334
493
|
function updateConnectedUsersOfMainChatBox(){
|
335
|
-
|
336
|
-
|
494
|
+
if(mainChatBox!=null){
|
495
|
+
var connectedUsers = getAllConnectedSlugs().length;
|
496
|
+
changeMainChatBoxHeaderTitle( '<%=I18n.t('chat.title')%>' + " (" + connectedUsers + ")");
|
497
|
+
changeMainChatBoxHeight(getChatBoxHeightRequiredForConnectionBoxes());
|
498
|
+
}
|
337
499
|
}
|
500
|
+
|
501
|
+
|
502
|
+
function updateMainChatBoxAfterUserDisconnect(){
|
503
|
+
changeMainChatBoxHeight(getChatBoxHeightRequiredForConnectionBoxes());
|
504
|
+
updateConnectedUsersOfMainChatBox();
|
505
|
+
}
|