social_stream 0.13.1 → 0.13.2
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/controllers/comments_controller.rb +2 -12
- data/base/app/views/comments/_new.html.erb +1 -1
- data/base/lib/social_stream/base/version.rb +1 -1
- data/lib/social_stream/version.rb +1 -1
- data/presence/app/assets/javascripts/chat_interface_manager.js.erb +43 -5
- data/presence/app/assets/javascripts/chat_utilities.js +26 -0
- data/presence/app/assets/javascripts/xmpp_client_management.js.erb +5 -1
- data/presence/app/assets/stylesheets/chat.css +24 -0
- data/presence/app/views/chat/_off.html.erb +0 -3
- data/presence/config/locales/en.yml +4 -2
- data/presence/config/locales/es.yml +3 -1
- data/presence/lib/social_stream/presence/version.rb +1 -1
- data/presence/vendor/assets/javascripts/jquery.ui.chatbox.js +18 -2
- data/social_stream.gemspec +1 -1
- metadata +7 -7
@@ -1,18 +1,8 @@
|
|
1
|
-
class CommentsController <
|
2
|
-
|
1
|
+
class CommentsController < ApplicationController
|
2
|
+
include SocialStream::Controllers::Objects
|
3
3
|
|
4
|
-
respond_to :html, :xml, :js
|
5
|
-
|
6
|
-
def destroy
|
7
|
-
@post_activity = resource.post_activity
|
8
|
-
|
9
|
-
destroy!
|
10
|
-
end
|
11
|
-
|
12
4
|
def show
|
13
5
|
parent = resource.post_activity.parent
|
14
6
|
redirect_to polymorphic_path(parent.direct_object,:anchor => dom_id(parent))
|
15
7
|
end
|
16
|
-
|
17
|
-
|
18
8
|
end
|
@@ -15,7 +15,7 @@
|
|
15
15
|
:html => { :class => "new_comment", :id => "new_comment"+dom_id(activity) },
|
16
16
|
:remote => true do |f| %>
|
17
17
|
|
18
|
-
<%= f.hidden_field :
|
18
|
+
<%= f.hidden_field :owner_id %>
|
19
19
|
<%= f.hidden_field :_activity_parent_id %>
|
20
20
|
|
21
21
|
<div class="input_new_comments_container">
|
@@ -18,19 +18,20 @@ statusIcons['dnd'] = "dnd";
|
|
18
18
|
|
19
19
|
var connectButtonTimer;
|
20
20
|
var periodBetweenAttempts=15; //(seg)
|
21
|
-
var connectButtonTimerCounter=periodBetweenAttempts;
|
21
|
+
var connectButtonTimerCounter=periodBetweenAttempts+1;
|
22
22
|
|
23
23
|
function connectButtonTimerFunction(){
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
connectButtonTimerCounter++;
|
25
|
+
if (connectButtonTimerCounter > (periodBetweenAttempts-1)) {
|
26
|
+
clearTimeout(connectButtonTimer);
|
27
27
|
$("#chat_header_title").html('<%=I18n.t('chat.disconnected')%>')
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
31
31
|
function requestConnectToChat(){
|
32
32
|
if (connectButtonTimerCounter > (periodBetweenAttempts-1)) {
|
33
|
-
connectButtonTimerCounter=0;
|
33
|
+
connectButtonTimerCounter=0;
|
34
|
+
connectButtonTimer = setInterval("connectButtonTimerFunction()", 1000)
|
34
35
|
$("#chat_header_title").html('<%=I18n.t('chat.connecting')%>')
|
35
36
|
return true
|
36
37
|
} else {
|
@@ -292,4 +293,41 @@ function putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID){
|
|
292
293
|
playSound("onMessageAudio");
|
293
294
|
}
|
294
295
|
|
296
|
+
}
|
297
|
+
|
298
|
+
|
299
|
+
////////////////////
|
300
|
+
//Notifications on chat Window
|
301
|
+
////////////////////
|
302
|
+
|
303
|
+
function showChatNotificationForSlug(slug,msg){
|
304
|
+
var notification = $("#" + slug).parent().find("div.ui-chatbox-notify");
|
305
|
+
showChatNotification(notification,msg);
|
306
|
+
}
|
307
|
+
|
308
|
+
function showChatNotification(notification,msg){
|
309
|
+
notification.html("<p class==\"ui-chatbox-notify-text\">" + msg + "</p>");
|
310
|
+
notification.css("visibility","visible");
|
311
|
+
notification.fadeIn();
|
312
|
+
}
|
313
|
+
|
314
|
+
function hideChatNotificationForSlug(slug){
|
315
|
+
var notification = $("#" + slug).parent().find("div.ui-chatbox-notify");
|
316
|
+
hideChatNotification(notification);
|
317
|
+
}
|
318
|
+
|
319
|
+
function hideChatNotification(notification){
|
320
|
+
notification.fadeOut();
|
321
|
+
notification.css("visibility","hidden");
|
322
|
+
}
|
323
|
+
|
324
|
+
function notifyWhenUsersDisconnect(){
|
325
|
+
var notification = $("div.ui-chatbox-notify");
|
326
|
+
var msg = '<%=I18n.t('chat.notify.offline')%>';
|
327
|
+
showChatNotification(notification,msg);
|
328
|
+
}
|
329
|
+
|
330
|
+
function hideAllNotifications(){
|
331
|
+
var notification = $("div.ui-chatbox-notify");
|
332
|
+
hideChatNotification(notification);
|
295
333
|
}
|
@@ -65,6 +65,19 @@ function blinkTitleOnMessage(username){
|
|
65
65
|
|
66
66
|
|
67
67
|
|
68
|
+
////////////////////
|
69
|
+
//Control user data input on the chatbox
|
70
|
+
////////////////////
|
71
|
+
|
72
|
+
//Return true to allow user to send data to the chatbox.
|
73
|
+
function userChatDataInputControl(){
|
74
|
+
var floodControlBoolean = floodControl();
|
75
|
+
var offlineDataSendControlBoolean = offlineDataSendControl();
|
76
|
+
return (floodControlBoolean && offlineDataSendControlBoolean);
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
|
68
81
|
////////////////////
|
69
82
|
//Antiflood
|
70
83
|
////////////////////
|
@@ -190,6 +203,19 @@ function mustBounceBoxForChatWindow(jqueryUIChatbox){
|
|
190
203
|
|
191
204
|
}
|
192
205
|
|
206
|
+
|
207
|
+
|
208
|
+
////////////////////
|
209
|
+
//Prevent user to send data to the chatbox when he is offline.
|
210
|
+
////////////////////
|
211
|
+
|
212
|
+
function offlineDataSendControl(){
|
213
|
+
return ((!disconnectionFlag) && (isStropheConnected()));
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
193
219
|
////////////////////
|
194
220
|
//Next features...
|
195
221
|
////////////////////
|
@@ -160,6 +160,7 @@ function onConnect(status) {
|
|
160
160
|
log('Strophe is disconnected.');
|
161
161
|
disconnectionFlag = true;
|
162
162
|
clearTimeout(awayTimer);
|
163
|
+
notifyWhenUsersDisconnect();
|
163
164
|
reconnectTimer = setTimeout ("onReconnect()", 5000);
|
164
165
|
} else if (status == Strophe.Status.CONNECTED) {
|
165
166
|
log('Strophe is connected.');
|
@@ -173,13 +174,14 @@ function onConnect(status) {
|
|
173
174
|
sendStatus(userStatus);
|
174
175
|
awayTimer = setInterval("awayTimerFunction()", awayTimerPeriod);
|
175
176
|
timer = setInterval("timerFunction()", timerPeriod);
|
177
|
+
hideAllNotifications();
|
176
178
|
}
|
177
179
|
|
178
180
|
updateChatWindow();
|
179
181
|
}
|
180
182
|
|
181
183
|
function onReconnect(){
|
182
|
-
|
184
|
+
|
183
185
|
if ((!isStropheConnected())&&(userStatus!="offline")) {
|
184
186
|
|
185
187
|
if (reconnectAttempts>0) {
|
@@ -273,6 +275,7 @@ function processAvailablePresenceStanza(presence){
|
|
273
275
|
setUserIconStatus(slug, status);
|
274
276
|
if (cacheConnectedUsers.indexOf(slug) != -1) {
|
275
277
|
showConnectionBoxFromSlug(slug);
|
278
|
+
hideChatNotificationForSlug(slug);
|
276
279
|
}
|
277
280
|
} else {
|
278
281
|
setTimeout("refreshChatWindow()", 3000);
|
@@ -287,6 +290,7 @@ function processUnavailablePresenceStanza(presence){
|
|
287
290
|
if (slug != user_slug) {
|
288
291
|
if (getConnectionBoxFromSlug(slug)!=null){
|
289
292
|
hideConnectionBoxFromSlug(slug)
|
293
|
+
showChatNotificationForSlug(slug,$(getConnectionBoxFromSlug(slug)).attr("name") + " is offline");
|
290
294
|
}
|
291
295
|
}
|
292
296
|
}
|
@@ -62,6 +62,30 @@
|
|
62
62
|
clear: both;
|
63
63
|
}
|
64
64
|
|
65
|
+
div.ui-chatbox-notify{
|
66
|
+
visibility: hidden;
|
67
|
+
background: #E5E5E5;
|
68
|
+
background-color: #E5E5E5;
|
69
|
+
color: black;
|
70
|
+
z-index: 1;
|
71
|
+
position:absolute;
|
72
|
+
top: 0;
|
73
|
+
margin-top: 30px;
|
74
|
+
padding: 4px 0px 4px 0px;
|
75
|
+
width: 236px;
|
76
|
+
text-align: center;
|
77
|
+
border-style:solid;
|
78
|
+
border-width:1px;
|
79
|
+
border-color: #CCCCCC;
|
80
|
+
opacity:0.95;
|
81
|
+
filter:alpha(opacity=95); /* For IE8 and earlier */
|
82
|
+
}
|
83
|
+
|
84
|
+
p.ui-chatbox-notify-text{
|
85
|
+
text-align: center;
|
86
|
+
font-weight: bold;
|
87
|
+
}
|
88
|
+
|
65
89
|
|
66
90
|
/* Ticks */
|
67
91
|
|
@@ -3,7 +3,7 @@ en:
|
|
3
3
|
connecting: "Chat Connecting"
|
4
4
|
reconnecting: "Chat Reconnecting"
|
5
5
|
disconnected: "Chat Disconnected"
|
6
|
-
unableconnect: "Chat
|
6
|
+
unableconnect: "Chat Out of Service"
|
7
7
|
title: "Chat"
|
8
8
|
password: "Password"
|
9
9
|
status:
|
@@ -15,4 +15,6 @@ en:
|
|
15
15
|
settings:
|
16
16
|
title: "Enable and configure Social Stream Chat"
|
17
17
|
checkbox: "Enable or disable Social Stream Chat"
|
18
|
-
update: "Update Settings"
|
18
|
+
update: "Update Settings"
|
19
|
+
notify:
|
20
|
+
offline: "You are offline"
|
@@ -3,7 +3,7 @@ es:
|
|
3
3
|
connecting: "Chat Conectando"
|
4
4
|
reconnecting: "Chat Reconectando"
|
5
5
|
disconnected: "Chat Desconectado"
|
6
|
-
unableconnect: "Chat
|
6
|
+
unableconnect: "Chat Fuera de servicio"
|
7
7
|
title: "Chat"
|
8
8
|
password: "Contraseña"
|
9
9
|
status:
|
@@ -16,4 +16,6 @@ es:
|
|
16
16
|
title: "Activación y configuración del chat de Social Stream"
|
17
17
|
checkbox: "Activar o desactivar chat"
|
18
18
|
update: "Guardar configuración"
|
19
|
+
notify:
|
20
|
+
offline: "Desconectado"
|
19
21
|
|
@@ -167,7 +167,9 @@
|
|
167
167
|
.addClass('ui-icon-minusthick ' + 'chat-thick ' + ' chat-minusthick')
|
168
168
|
.text('minimize')
|
169
169
|
.appendTo(uiChatboxTitlebarMinimize),
|
170
|
-
|
170
|
+
|
171
|
+
|
172
|
+
// content
|
171
173
|
uiChatboxContent = (self.uiChatboxContent = $('<div></div>'))
|
172
174
|
.addClass('ui-widget-content ' +
|
173
175
|
'ui-chatbox-content '
|
@@ -179,6 +181,19 @@
|
|
179
181
|
'ui-chatbox-log'
|
180
182
|
)
|
181
183
|
.appendTo(uiChatboxContent),
|
184
|
+
|
185
|
+
//Notification div
|
186
|
+
uiChatboxNotify = (self.uiChatboxNotify = $('<div></div>'))
|
187
|
+
.addClass('ui-widget-content ' +
|
188
|
+
'ui-chatbox-notify'
|
189
|
+
)
|
190
|
+
.click(function(event) {
|
191
|
+
// anything?
|
192
|
+
self.uiChatboxNotify.fadeOut();
|
193
|
+
})
|
194
|
+
.appendTo(uiChatboxContent),
|
195
|
+
|
196
|
+
|
182
197
|
uiChatboxInput = (self.uiChatboxInput = $('<div></div>'))
|
183
198
|
.addClass('ui-widget-content ' +
|
184
199
|
'ui-chatbox-input'
|
@@ -195,7 +210,8 @@
|
|
195
210
|
.appendTo(uiChatboxInput)
|
196
211
|
.keydown(function(event) {
|
197
212
|
if(event.keyCode && event.keyCode == $.ui.keyCode.ENTER) {
|
198
|
-
|
213
|
+
var userChatDataInputControlBoolean = (((typeof userChatDataInputControl == 'function')&&(userChatDataInputControl()))||((typeof userChatDataInputControl != 'function')));
|
214
|
+
if (userChatDataInputControlBoolean) {
|
199
215
|
msg = $.trim($(this).val());
|
200
216
|
if (msg.length > 0) {
|
201
217
|
self.options.messageSent(self.options.id, self.options.user, msg);
|
data/social_stream.gemspec
CHANGED
@@ -11,7 +11,7 @@ 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.10.
|
14
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.10.2')
|
15
15
|
s.add_runtime_dependency('social_stream-documents', '~> 0.5.0')
|
16
16
|
s.add_runtime_dependency('social_stream-events', '~> 0.1.0')
|
17
17
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 13
|
9
|
-
-
|
10
|
-
version: 0.13.
|
9
|
+
- 2
|
10
|
+
version: 0.13.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-
|
19
|
+
date: 2011-12-01 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -27,12 +27,12 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
30
|
+
hash: 51
|
31
31
|
segments:
|
32
32
|
- 0
|
33
33
|
- 10
|
34
|
-
-
|
35
|
-
version: 0.10.
|
34
|
+
- 2
|
35
|
+
version: 0.10.2
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id001
|
38
38
|
- !ruby/object:Gem::Dependency
|