social_stream 0.12.12 → 0.12.13
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/models/actor.rb +2 -0
- data/base/app/models/tie.rb +2 -0
- data/base/app/models/user.rb +2 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/social_stream-base.gemspec +1 -1
- data/documents/app/views/audios/index.html.erb +1 -1
- data/documents/app/views/audios/show.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_document_info.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_edit_form.html.erb +0 -0
- data/documents/app/views/{common → common_documents}/_headers.html.erb +0 -0
- data/documents/app/views/{common → common_documents}/_index.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_show.html.erb +1 -1
- data/documents/app/views/documents/index.html.erb +1 -1
- data/documents/app/views/documents/show.html.erb +1 -1
- data/documents/app/views/pictures/index.html.erb +1 -1
- data/documents/app/views/pictures/show.html.erb +1 -1
- data/documents/app/views/videos/index.html.erb +1 -1
- data/documents/app/views/videos/show.html.erb +1 -1
- data/documents/config/locales/en.yml +5 -5
- data/documents/config/locales/es.yml +7 -7
- data/documents/lib/social_stream/documents/version.rb +1 -1
- data/documents/lib/social_stream/toolbar_config/documents.rb +6 -6
- data/documents/social_stream-documents.gemspec +1 -1
- data/lib/social_stream/version.rb +1 -1
- data/presence/app/assets/javascripts/chat_interface_manager.js.erb +48 -0
- data/presence/app/assets/javascripts/chat_utilities.js +126 -0
- data/presence/app/assets/javascripts/chat_window_manager.js +1 -1
- data/presence/app/assets/javascripts/xmpp_client_management.js.erb +1 -26
- data/presence/lib/social_stream/presence/engine.rb +2 -6
- data/presence/vendor/assets/javascripts/jquery.ui.chatbox.js +22 -13
- data/social_stream.gemspec +6 -4
- metadata +15 -16
- data/documents/app/views/documents/_header.html.erb +0 -5
data/base/app/models/actor.rb
CHANGED
data/base/app/models/tie.rb
CHANGED
data/base/app/models/user.rb
CHANGED
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
# Activity and Relation hierarchies
|
|
19
19
|
s.add_runtime_dependency('ancestry', '~> 1.2.3')
|
|
20
20
|
# SQL foreign keys
|
|
21
|
-
s.add_runtime_dependency('foreigner', '~>
|
|
21
|
+
s.add_runtime_dependency('foreigner', '~> 1.1.1')
|
|
22
22
|
# Authentication
|
|
23
23
|
s.add_runtime_dependency('devise', '~> 1.4.5')
|
|
24
24
|
# CRUD controllers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%=render(:partial => '
|
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<%= render :partial => '
|
|
1
|
+
<%= render :partial => 'common_documents/show',
|
|
2
2
|
:locals => { :document => @audio } %>
|
|
File without changes
|
|
File without changes
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
<%= show_view_for document %>
|
|
30
30
|
|
|
31
|
-
<%= render :partial => "
|
|
31
|
+
<%= render :partial => "common_documents/document_info", :locals => {:document => document} %>
|
|
32
32
|
|
|
33
33
|
<div id="document_comments">
|
|
34
34
|
<%= render :partial => 'activities/comments', :locals => { :activity => document.post_activity } %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%=render(:partial => '
|
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<%= render :partial => '
|
|
1
|
+
<%= render :partial => 'common_documents/show',
|
|
2
2
|
:locals => { :document => @document } %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%=render(:partial => '
|
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<%= render :partial => '
|
|
1
|
+
<%= render :partial => 'common_documents/show',
|
|
2
2
|
:locals => { :document => @picture } %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%=render(:partial => '
|
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<%= render :partial => '
|
|
1
|
+
<%= render :partial => 'common_documents/show',
|
|
2
2
|
:locals => { :document => @video } %>
|
|
@@ -14,8 +14,8 @@ en:
|
|
|
14
14
|
details: "Details"
|
|
15
15
|
download: "Download"
|
|
16
16
|
edit: "Edit"
|
|
17
|
-
all: "All
|
|
18
|
-
confirm_delete: "Delete
|
|
17
|
+
all: "All files"
|
|
18
|
+
confirm_delete: "Delete file?"
|
|
19
19
|
form:
|
|
20
20
|
title: "File"
|
|
21
21
|
info:
|
|
@@ -28,8 +28,8 @@ en:
|
|
|
28
28
|
title: "Upload"
|
|
29
29
|
title:
|
|
30
30
|
title: "Title"
|
|
31
|
-
mine: "My
|
|
32
|
-
msg: "Uploaded a
|
|
31
|
+
mine: "My files"
|
|
32
|
+
msg: "Uploaded a file:"
|
|
33
33
|
name: "file"
|
|
34
34
|
not_mine: "Documents"
|
|
35
35
|
one: "a file"
|
|
@@ -52,7 +52,7 @@ en:
|
|
|
52
52
|
resource:
|
|
53
53
|
all: "All Resources"
|
|
54
54
|
confirm_delete: "Delete resource?"
|
|
55
|
-
title: "
|
|
55
|
+
title: "Resources"
|
|
56
56
|
mine: "My resources"
|
|
57
57
|
msg: "Uploaded a resource:"
|
|
58
58
|
not_mine: "Resources"
|
|
@@ -14,8 +14,8 @@ es:
|
|
|
14
14
|
details: "Detalles"
|
|
15
15
|
download: "Descargar"
|
|
16
16
|
edit: "Editar"
|
|
17
|
-
all: "Todos los
|
|
18
|
-
confirm_delete: "¿Borrar
|
|
17
|
+
all: "Todos los ficheros"
|
|
18
|
+
confirm_delete: "¿Borrar fichero?"
|
|
19
19
|
form:
|
|
20
20
|
title: "Fichero"
|
|
21
21
|
info:
|
|
@@ -28,11 +28,11 @@ es:
|
|
|
28
28
|
title: "Subir"
|
|
29
29
|
title:
|
|
30
30
|
title: "Título"
|
|
31
|
-
mine: "Mis
|
|
32
|
-
msg: "Subió un
|
|
33
|
-
name: "
|
|
31
|
+
mine: "Mis ficheros"
|
|
32
|
+
msg: "Subió un fichero:"
|
|
33
|
+
name: "fichero"
|
|
34
34
|
not_mine: "Documentos"
|
|
35
|
-
one: "un
|
|
35
|
+
one: "un fichero"
|
|
36
36
|
simple_all: "Todos"
|
|
37
37
|
title: "Documentos"
|
|
38
38
|
picture:
|
|
@@ -52,7 +52,7 @@ es:
|
|
|
52
52
|
resource:
|
|
53
53
|
all: "Todos los recursos"
|
|
54
54
|
confirm_delete: "¿Borrar recursos?"
|
|
55
|
-
title: "
|
|
55
|
+
title: "Recursos"
|
|
56
56
|
mine: "Mis recursos"
|
|
57
57
|
msg: "Subió un recurso:"
|
|
58
58
|
not_mine: "Recursos"
|
|
@@ -5,10 +5,10 @@ module SocialStream
|
|
|
5
5
|
items = super
|
|
6
6
|
|
|
7
7
|
items << {
|
|
8
|
-
:key => :
|
|
9
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("
|
|
8
|
+
:key => :documents,
|
|
9
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
|
10
10
|
:url => polymorphic_path([subject, Document.new]),
|
|
11
|
-
:options => {:link => {:id => "
|
|
11
|
+
:options => {:link => {:id => "documents_menu"}}
|
|
12
12
|
}
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -16,10 +16,10 @@ module SocialStream
|
|
|
16
16
|
items = super
|
|
17
17
|
|
|
18
18
|
items << {
|
|
19
|
-
:key => :
|
|
20
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("
|
|
19
|
+
:key => :documents,
|
|
20
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
|
21
21
|
:url => polymorphic_path([current_subject, Document.new]),
|
|
22
|
-
:options => {:link => {:id => "
|
|
22
|
+
:options => {:link => {:id => "documents_menu"}}
|
|
23
23
|
}
|
|
24
24
|
end
|
|
25
25
|
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.9.
|
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.35')
|
|
16
16
|
s.add_runtime_dependency('paperclip-ffmpeg', '~> 0.7.0')
|
|
17
17
|
s.add_runtime_dependency('paperclip','2.3.11')
|
|
18
18
|
s.add_runtime_dependency('delayed_paperclip','>= 0.7.2')
|
|
@@ -194,4 +194,52 @@ function getAllConnectedSlugs(){
|
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
196
|
return connectedSlugs
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
////////////////////
|
|
201
|
+
//Insert received message in chatbox
|
|
202
|
+
////////////////////
|
|
203
|
+
|
|
204
|
+
function putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID){
|
|
205
|
+
|
|
206
|
+
//Antiflood control
|
|
207
|
+
if (antifloodControl(from_jid,from_slug,body,msgID)){
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
//Check for from_slug name and connectionBox visibility
|
|
212
|
+
if (typeof($('div.user_presence[slug=' + from_slug + ']').attr('name')) == 'undefined') {
|
|
213
|
+
//No connectionBox for this user!
|
|
214
|
+
var from_name = from_slug;
|
|
215
|
+
refreshChatWindow();
|
|
216
|
+
} else {
|
|
217
|
+
showConnectionBoxFromSlug(from_slug);
|
|
218
|
+
var from_name = $('div.user_presence[slug=' + from_slug + ']').attr('name');
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
//Create or toggle from_slug's chatBox.
|
|
223
|
+
if (createChatBox(from_slug, from_name, from_jid, user_name, user_jid)) {
|
|
224
|
+
} else {
|
|
225
|
+
window[getChatVariableFromSlug(from_slug)].chatbox("option", "boxManager").toggleBox(true);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
//Parse content before show it.
|
|
229
|
+
var content = getParsedContent(Strophe.getText(body), false)
|
|
230
|
+
|
|
231
|
+
//Show message to chatBox.
|
|
232
|
+
$("#" + from_slug).chatbox("option", "boxManager").addMsg(from_name, content);
|
|
233
|
+
|
|
234
|
+
//Rotate chatBoxes priority.
|
|
235
|
+
rotatePriority(from_slug);
|
|
236
|
+
|
|
237
|
+
//Check for start blinkTitle.
|
|
238
|
+
blinkTitleOnMessage(from_name);
|
|
239
|
+
|
|
240
|
+
//Check for play sound
|
|
241
|
+
if (mustPlaySoundForChatWindow(window[getChatVariableFromSlug(from_slug)])) {
|
|
242
|
+
playSound("onMessageAudio");
|
|
243
|
+
}
|
|
244
|
+
|
|
197
245
|
}
|
|
@@ -64,6 +64,132 @@ function blinkTitleOnMessage(username){
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
|
|
67
|
+
|
|
68
|
+
////////////////////
|
|
69
|
+
//Antiflood
|
|
70
|
+
////////////////////
|
|
71
|
+
|
|
72
|
+
var lastMessageTimes = new Array();
|
|
73
|
+
//lastMessageTimes['from_slug'] = ["timeOfLastMessage",["msgID1","msgID2"]];
|
|
74
|
+
|
|
75
|
+
var timeBetweenMessages = 500; //mseconds
|
|
76
|
+
|
|
77
|
+
//Return true when detects a text storm and control the text flood:
|
|
78
|
+
//timeBetweenMessages is the minimum time that must elapse between the messages of the same contact.
|
|
79
|
+
function antifloodControl(from_jid,from_slug,body,msgID) {
|
|
80
|
+
|
|
81
|
+
if( from_slug in lastMessageTimes){
|
|
82
|
+
|
|
83
|
+
} else {
|
|
84
|
+
lastMessageTimes[from_slug] = [,[]];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (msgID==null){
|
|
88
|
+
msgID = generateMessageID();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var lastMessageTime = lastMessageTimes[from_slug][0];
|
|
92
|
+
|
|
93
|
+
var t = (new Date()).getTime();
|
|
94
|
+
if(t - lastMessageTime < timeBetweenMessages) {
|
|
95
|
+
//Flood detected
|
|
96
|
+
return retryToShowMessage(from_jid,from_slug,body,msgID);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//Check if is the first message of this user to be send.
|
|
100
|
+
//var messageQueue = lastMessageTimes[from_slug][1];
|
|
101
|
+
|
|
102
|
+
if (lastMessageTimes[from_slug][1].length>0){
|
|
103
|
+
if((lastMessageTimes[from_slug][1])[0]==msgID){
|
|
104
|
+
//Message is the first on the queue: Show it and remove from the queue
|
|
105
|
+
lastMessageTimes[from_slug][1].splice(0,1);
|
|
106
|
+
} else {
|
|
107
|
+
//Message is not the first on the queue
|
|
108
|
+
return retryToShowMessage(from_jid,from_slug,body,msgID);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
//Message can be send
|
|
113
|
+
lastMessageTimes[from_slug][0] = t;
|
|
114
|
+
return false;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
var rootMessageID=1;
|
|
119
|
+
function generateMessageID(){
|
|
120
|
+
return (++rootMessageID);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
function retryToShowMessage(from_jid,from_slug,body,msgID){
|
|
125
|
+
//Enque the message if isn't in the queue
|
|
126
|
+
if (lastMessageTimes[from_slug][1].indexOf(msgID)==-1){
|
|
127
|
+
lastMessageTimes[from_slug][1].push(msgID);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
setTimeout(function(){putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID)}, timeBetweenMessages);
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
////////////////////
|
|
139
|
+
//Controlflood
|
|
140
|
+
////////////////////
|
|
141
|
+
var timeBetweenOwnMessages = 500; //mseconds
|
|
142
|
+
var lastMessageSentTime=null;
|
|
143
|
+
|
|
144
|
+
function floodControl() {
|
|
145
|
+
var t = (new Date()).getTime();
|
|
146
|
+
|
|
147
|
+
if(lastMessageSentTime==null){
|
|
148
|
+
lastMessageSentTime = t;
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (t - lastMessageSentTime < timeBetweenOwnMessages) {
|
|
153
|
+
return false;
|
|
154
|
+
} else {
|
|
155
|
+
lastMessageSentTime = t;
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
function initControlFlood(){
|
|
162
|
+
$(".ui-chatbox-input-box")
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
////////////////////
|
|
167
|
+
//Bounce chatbox control
|
|
168
|
+
////////////////////
|
|
169
|
+
var lastBounceTimes = new Array();
|
|
170
|
+
var timeBetweenBounces = 5000; //mseconds
|
|
171
|
+
|
|
172
|
+
function mustBounceBoxForChatWindow(jqueryUIChatbox){
|
|
173
|
+
var from_slug = $($(jqueryUIChatbox.elem.uiChatbox).find(".ui-chatbox-content").children()[0]).attr("id")
|
|
174
|
+
|
|
175
|
+
var t = (new Date()).getTime();
|
|
176
|
+
|
|
177
|
+
if(!(from_slug in lastBounceTimes)){
|
|
178
|
+
lastBounceTimes[from_slug] = t;
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
var lastBounceTime = lastBounceTimes[from_slug];
|
|
183
|
+
|
|
184
|
+
if (t - lastBounceTime < timeBetweenBounces) {
|
|
185
|
+
return false;
|
|
186
|
+
} else {
|
|
187
|
+
lastBounceTimes[from_slug] = t;
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
67
193
|
////////////////////
|
|
68
194
|
//Next features...
|
|
69
195
|
////////////////////
|
|
@@ -52,7 +52,7 @@ function createChatBox(guest_slug,guest_name,guest_jid,user_name,user_jid){
|
|
|
52
52
|
},
|
|
53
53
|
|
|
54
54
|
messageSent : function(id, user, msg) {
|
|
55
|
-
|
|
55
|
+
rotatePriority(guest_slug);
|
|
56
56
|
$("#" + guest_slug).chatbox("option", "boxManager").addMsg(id, getParsedContent(msg,true));
|
|
57
57
|
sendChatMessage(user_jid,guest_jid,msg);
|
|
58
58
|
}});
|
|
@@ -181,36 +181,11 @@ function onMessage(msg) {
|
|
|
181
181
|
var elems = msg.getElementsByTagName('body');
|
|
182
182
|
|
|
183
183
|
if (type == "chat" && elems.length > 0) {
|
|
184
|
-
|
|
185
184
|
var body = elems[0];
|
|
186
185
|
var from_slug = from.split("@")[0];
|
|
187
|
-
var from_name = $("#" + from_slug).attr("name");
|
|
188
186
|
var from_jid = from_slug + "@" + domain;
|
|
189
187
|
|
|
190
|
-
|
|
191
|
-
if (typeof ($('div.user_presence[slug=' + from_slug + ']').attr('name')) == 'undefined') {
|
|
192
|
-
//No connectionBox for this user!
|
|
193
|
-
var from_name = from_slug;
|
|
194
|
-
refreshChatWindow();
|
|
195
|
-
} else {
|
|
196
|
-
showConnectionBoxFromSlug(from_slug);
|
|
197
|
-
var from_name = $('div.user_presence[slug=' + from_slug + ']').attr('name');
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (createChatBox(from_slug,from_name,from_jid,user_name,user_jid)) {
|
|
201
|
-
} else {
|
|
202
|
-
window[getChatVariableFromSlug(from_slug)].chatbox("option", "boxManager").toggleBox(true);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
var content = getParsedContent(Strophe.getText(body),false)
|
|
206
|
-
//Send message to chatBox and post-message functions.
|
|
207
|
-
$("#" + from_slug).chatbox("option", "boxManager").addMsg(from_name, content);
|
|
208
|
-
rotatePriority(from_slug);
|
|
209
|
-
blinkTitleOnMessage(from_name);
|
|
210
|
-
if (mustPlaySoundForChatWindow(window[getChatVariableFromSlug(from_slug)])){
|
|
211
|
-
playSound("onMessageAudio");
|
|
212
|
-
}
|
|
213
|
-
|
|
188
|
+
putReceivedMessageOnChatWindow(from_jid,from_slug,body,null)
|
|
214
189
|
}
|
|
215
190
|
|
|
216
191
|
// we must return true to keep the handler alive.
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
module SocialStream
|
|
2
2
|
module Presence
|
|
3
3
|
class Engine < Rails::Engine
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#Patching Tie
|
|
7
|
-
Tie.class_eval do
|
|
4
|
+
initializer "social_stream-presence.tie" do
|
|
5
|
+
ActiveSupport.on_load(:tie) do
|
|
8
6
|
include SocialStream::Presence::Models::BuddyManager
|
|
9
7
|
end
|
|
10
|
-
|
|
11
8
|
end
|
|
12
|
-
|
|
13
9
|
end
|
|
14
10
|
end
|
|
15
11
|
end
|
|
@@ -54,11 +54,18 @@
|
|
|
54
54
|
//Get highlight color from css
|
|
55
55
|
var dummy_element = $("<p class=\"chatWindowhighlighted\"></div>");
|
|
56
56
|
var options = {color: $(dummy_element).css("color")};
|
|
57
|
+
|
|
57
58
|
self.elem.uiChatboxTitlebar.effect("highlight", options, 300);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
if (((typeof mustBounceBoxForChatWindow == 'function')&&(mustBounceBoxForChatWindow(self)))||((typeof mustBounceBoxForChatWindow != 'function'))) {
|
|
62
|
+
self.elem.uiChatbox.effect("bounce", {times:3}, 300, function(){
|
|
63
|
+
self.highlightLock = false;
|
|
64
|
+
self._scrollToBottom();
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
self.highlightLock = false;
|
|
68
|
+
}
|
|
62
69
|
},
|
|
63
70
|
toggleBox: function(show) {
|
|
64
71
|
this.elem.uiChatbox.toggle(show);
|
|
@@ -187,15 +194,17 @@
|
|
|
187
194
|
)
|
|
188
195
|
.appendTo(uiChatboxInput)
|
|
189
196
|
.keydown(function(event) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
if(event.keyCode && event.keyCode == $.ui.keyCode.ENTER) {
|
|
198
|
+
if (((typeof floodControl == 'function')&&(floodControl()))||((typeof floodControl != 'function'))) {
|
|
199
|
+
msg = $.trim($(this).val());
|
|
200
|
+
if (msg.length > 0) {
|
|
201
|
+
self.options.messageSent(self.options.id, self.options.user, msg);
|
|
202
|
+
}
|
|
203
|
+
$(this).val('');
|
|
204
|
+
}
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
})
|
|
199
208
|
.focusin(function() {
|
|
200
209
|
uiChatboxInputBox.addClass('ui-chatbox-input-focus');
|
|
201
210
|
var box = $(this).parent().prev();
|
data/social_stream.gemspec
CHANGED
|
@@ -11,8 +11,8 @@ 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.9.
|
|
15
|
-
s.add_runtime_dependency('social_stream-documents', '~> 0.4.
|
|
14
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.35')
|
|
15
|
+
s.add_runtime_dependency('social_stream-documents', '~> 0.4.7')
|
|
16
16
|
s.add_runtime_dependency('social_stream-events', '~> 0.0.20')
|
|
17
17
|
|
|
18
18
|
# Development Gem dependencies
|
|
@@ -29,8 +29,10 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
s.add_development_dependency('sqlite3')
|
|
30
30
|
end
|
|
31
31
|
# Debugging
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
unless ENV["CI"]
|
|
33
|
+
if RUBY_VERSION < '1.9'
|
|
34
|
+
s.add_development_dependency('ruby-debug', '~> 0.10.3')
|
|
35
|
+
end
|
|
34
36
|
end
|
|
35
37
|
# Specs
|
|
36
38
|
s.add_development_dependency('rspec-rails', '~> 2.5.0')
|
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: 53
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 12
|
|
9
|
-
-
|
|
10
|
-
version: 0.12.
|
|
9
|
+
- 13
|
|
10
|
+
version: 0.12.13
|
|
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-11-
|
|
19
|
+
date: 2011-11-20 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: 125
|
|
31
31
|
segments:
|
|
32
32
|
- 0
|
|
33
33
|
- 9
|
|
34
|
-
-
|
|
35
|
-
version: 0.9.
|
|
34
|
+
- 35
|
|
35
|
+
version: 0.9.35
|
|
36
36
|
type: :runtime
|
|
37
37
|
version_requirements: *id001
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
@@ -43,12 +43,12 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - ~>
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
hash:
|
|
46
|
+
hash: 1
|
|
47
47
|
segments:
|
|
48
48
|
- 0
|
|
49
49
|
- 4
|
|
50
|
-
-
|
|
51
|
-
version: 0.4.
|
|
50
|
+
- 7
|
|
51
|
+
version: 0.4.7
|
|
52
52
|
type: :runtime
|
|
53
53
|
version_requirements: *id002
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
@@ -876,17 +876,16 @@ files:
|
|
|
876
876
|
- documents/app/views/audios/index.html.erb
|
|
877
877
|
- documents/app/views/audios/index.js.erb
|
|
878
878
|
- documents/app/views/audios/show.html.erb
|
|
879
|
-
- documents/app/views/
|
|
880
|
-
- documents/app/views/
|
|
881
|
-
- documents/app/views/
|
|
882
|
-
- documents/app/views/
|
|
883
|
-
- documents/app/views/
|
|
879
|
+
- documents/app/views/common_documents/_document_info.html.erb
|
|
880
|
+
- documents/app/views/common_documents/_edit_form.html.erb
|
|
881
|
+
- documents/app/views/common_documents/_headers.html.erb
|
|
882
|
+
- documents/app/views/common_documents/_index.html.erb
|
|
883
|
+
- documents/app/views/common_documents/_show.html.erb
|
|
884
884
|
- documents/app/views/documents/_document.html.erb
|
|
885
885
|
- documents/app/views/documents/_document_focus_search.html.erb
|
|
886
886
|
- documents/app/views/documents/_document_global_search.html.erb
|
|
887
887
|
- documents/app/views/documents/_document_show.html.erb
|
|
888
888
|
- documents/app/views/documents/_document_with_details.html.erb
|
|
889
|
-
- documents/app/views/documents/_header.html.erb
|
|
890
889
|
- documents/app/views/documents/_new_activity.html.erb
|
|
891
890
|
- documents/app/views/documents/_new_activity_fields.html.erb
|
|
892
891
|
- documents/app/views/documents/destroy.js.erb
|