social_stream 0.22.0 → 0.22.1
Sign up to get free protection for your applications and to get access to all the features.
- data/base/app/assets/javascripts/social_stream.search.js.erb +27 -0
- data/base/app/assets/stylesheets/activities.css.scss +2 -0
- data/base/app/controllers/search_controller.rb +5 -2
- data/base/app/helpers/activities_helper.rb +19 -0
- data/base/app/helpers/search_helper.rb +37 -7
- data/base/app/models/actor.rb +2 -1
- data/base/app/models/group.rb +2 -0
- data/base/app/views/activities/_likes.html.erb +5 -0
- data/base/app/views/activities/_root.html.erb +3 -0
- data/base/app/views/cheesecake/_cheesecake.html.erb +1 -1
- data/base/app/views/search/_form.html.erb +27 -48
- data/base/config/locales/en.yml +21 -3
- data/base/config/locales/es.yml +14 -3
- data/base/lib/social_stream/base/version.rb +1 -1
- data/documents/config/locales/en.yml +12 -3
- data/documents/config/locales/es.yml +12 -4
- data/documents/lib/social_stream/documents/version.rb +1 -1
- data/documents/lib/social_stream/toolbar_config/documents.rb +2 -2
- data/documents/social_stream-documents.gemspec +1 -1
- data/events/app/views/events/index.html.erb +2 -2
- data/events/config/locales/en.yml +4 -1
- data/events/config/locales/es.yml +4 -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/presence/app/assets/javascripts/social_stream-presence.js +1 -0
- data/presence/app/assets/javascripts/xmpp_client_management.js.erb +14 -2
- data/presence/lib/social_stream/presence/engine.rb +6 -0
- data/presence/lib/social_stream/presence/models/group_manager.rb +41 -0
- data/presence/lib/social_stream/presence/version.rb +1 -1
- data/presence/lib/social_stream/presence/xmpp_server_order.rb +84 -10
- data/presence/lib/social_stream-presence.rb +1 -1
- data/presence/lib/tasks/presence/synchronize.rake +15 -0
- data/presence/social_stream-presence.gemspec +4 -4
- data/presence/vendor/assets/javascripts/strophe.muc.js +934 -0
- data/social_stream.gemspec +3 -3
- metadata +33 -29
@@ -0,0 +1,27 @@
|
|
1
|
+
SocialStream.Search = (function(SS, $, undefined){
|
2
|
+
function init(){
|
3
|
+
$.preloadImages ("<%= asset_path "mini-loading.gif" %>");
|
4
|
+
|
5
|
+
$('#search_form').submit(function() {
|
6
|
+
query = $('#global_search_input').val();
|
7
|
+
if((query=="")||(query.length < 2)||(query == I18n.t('search.write'))){
|
8
|
+
$('#too_short_error').show();
|
9
|
+
$('#global_search_input').removeClass("searching");
|
10
|
+
$('#global_search_input').blur();
|
11
|
+
$('#global_search_input').focus();
|
12
|
+
return false;
|
13
|
+
}else{
|
14
|
+
$('#global_search_input').addClass("searching");
|
15
|
+
$('#global_search_input').blur();
|
16
|
+
}
|
17
|
+
return true;
|
18
|
+
});
|
19
|
+
|
20
|
+
$("#global_search_input").Watermark(I18n.t('search.write'));
|
21
|
+
}
|
22
|
+
|
23
|
+
return {
|
24
|
+
init: init
|
25
|
+
}
|
26
|
+
|
27
|
+
}) (SocialStream, jQuery);
|
@@ -26,8 +26,11 @@ class SearchController < ApplicationController
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def search mode
|
29
|
-
models =
|
30
|
-
|
29
|
+
models = ( mode.to_s.eql?("quick") ?
|
30
|
+
SocialStream.extended_search_models :
|
31
|
+
SocialStream.quick_search_models
|
32
|
+
).dup
|
33
|
+
|
31
34
|
models.map! {|model_sym| model_sym.to_s.classify.constantize}
|
32
35
|
result = ThinkingSphinx.search(get_search_query, :classes => models)
|
33
36
|
result = authorization_filter result
|
@@ -34,4 +34,23 @@ module ActivitiesHelper
|
|
34
34
|
Post.new :author_id => Actor.normalize_id(current_subject),
|
35
35
|
:owner_id => Actor.normalize_id(receiver)
|
36
36
|
end
|
37
|
+
|
38
|
+
def like_sentence(activity)
|
39
|
+
likers_shown = 3
|
40
|
+
likers_count = activity.likes.count
|
41
|
+
likers_other = likers_count - likers_shown
|
42
|
+
|
43
|
+
# TODO: select likers from current_subject's contacts
|
44
|
+
likers =
|
45
|
+
activity.likes.first(likers_shown).
|
46
|
+
map{ |a| a.sender_subject }.
|
47
|
+
map{ |l| link_to l.name, l }.
|
48
|
+
join(", ")
|
49
|
+
|
50
|
+
if likers_other > 0
|
51
|
+
t("activity.like_sentence.many", :likers => likers, :count => likers_other).html_safe
|
52
|
+
else
|
53
|
+
t("activity.like_sentence.few", :likers => likers, :count => likers_count).html_safe
|
54
|
+
end
|
55
|
+
end
|
37
56
|
end
|
@@ -1,10 +1,4 @@
|
|
1
1
|
module SearchHelper
|
2
|
-
|
3
|
-
def focus_search_link text, search_class, query
|
4
|
-
search_class = search_class.to_s if search_class.is_a? Class or search_class.is_a? Symbol
|
5
|
-
link_to text, search_path(:focus => search_class.downcase.pluralize, :search_query => query ), :remote => true
|
6
|
-
end
|
7
|
-
|
8
2
|
def too_short_query?
|
9
3
|
return true if params[:search_query].blank?
|
10
4
|
bare_query = strip_tags(params[:search_query]) unless bare_query.html_safe?
|
@@ -35,4 +29,40 @@ module SearchHelper
|
|
35
29
|
bare_query = strip_tags(params[:search_query]) unless bare_query.html_safe?
|
36
30
|
return bare_query.strip.split
|
37
31
|
end
|
38
|
-
|
32
|
+
|
33
|
+
def search_class(type, model_sym)
|
34
|
+
case type
|
35
|
+
when :selected
|
36
|
+
params[:focus].present? &&
|
37
|
+
params[:focus].eql?(model_sym.to_s) &&
|
38
|
+
'selected' || ''
|
39
|
+
when :disabled
|
40
|
+
search_results?(model_sym) &&
|
41
|
+
'' || 'disabled'
|
42
|
+
else
|
43
|
+
raise "Unknown select search class type"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def search_results?(model_sym)
|
48
|
+
ThinkingSphinx.count(get_search_query,
|
49
|
+
:classes => [model_sym.to_s.classify.constantize]) > 0
|
50
|
+
end
|
51
|
+
|
52
|
+
def search_tab(model_sym)
|
53
|
+
span_options = {}
|
54
|
+
span_options[:class] = "#{ search_class(:selected, model_sym) } #{ search_class(:disabled, model_sym) } #{ model_sym.to_s.pluralize.downcase }"
|
55
|
+
|
56
|
+
results = search_results?(model_sym)
|
57
|
+
|
58
|
+
unless results
|
59
|
+
span_options[:title] = t('search.no_subject_found', :subject => model_sym.to_s)
|
60
|
+
end
|
61
|
+
|
62
|
+
link_to_if results,
|
63
|
+
content_tag(:span, t("#{ model_sym }.title.other"), span_options),
|
64
|
+
search_path(:focus => model_sym,
|
65
|
+
:search_query => params[:search_query]),
|
66
|
+
:remote => true
|
67
|
+
end
|
68
|
+
end
|
data/base/app/models/actor.rb
CHANGED
data/base/app/models/group.rb
CHANGED
@@ -19,6 +19,9 @@
|
|
19
19
|
<%= render :partial => 'activities/options',
|
20
20
|
:locals => { :activity => activity } %>
|
21
21
|
|
22
|
+
<%= render :partial => 'activities/likes',
|
23
|
+
:locals => { :activity => activity } %>
|
24
|
+
|
22
25
|
<%= render :partial => 'activities/comments',
|
23
26
|
:locals => { :activity => activity } %>
|
24
27
|
|
@@ -77,7 +77,7 @@ $(function(){
|
|
77
77
|
$("#sector_editor").data("prepare")(subsector.getCheesecake(),subsector);
|
78
78
|
};
|
79
79
|
$("#contacts_filter_input").keyup(function(){
|
80
|
-
cheese.
|
80
|
+
cheese.filter($("#contacts_filter_input").val());
|
81
81
|
//TODO: Make users unfiltered visible again
|
82
82
|
});
|
83
83
|
cheese.onChange = function(cheesecake){
|
@@ -1,54 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<li><%= link_to content_tag(:span,t('search.show_all'),:class => params[:focus].blank? ? 'global selected' : 'global'), search_path(:search_query => params[:search_query]), :remote => true %></li>
|
11
|
-
<% SocialStream.extended_search_models.each do |model_sym| %>
|
12
|
-
<% selected_class = (params[:focus].present? and params[:focus].pluralize.downcase.eql?(model_sym.to_s.pluralize.downcase)) ? 'selected' : ''%>
|
13
|
-
<% disabled = ThinkingSphinx.count(get_search_query, :classes => [model_sym.to_s.classify.constantize])==0 %>
|
14
|
-
<% disabled_class = (disabled ? 'disabled' : '') %>
|
15
|
-
<li>
|
16
|
-
<% unless disabled %>
|
17
|
-
<%= focus_search_link content_tag(:span, model_sym.to_s.pluralize.capitalize,
|
18
|
-
:class => selected_class + " " + disabled_class + " " + model_sym.to_s.pluralize.downcase),
|
19
|
-
model_sym.to_s.classify.constantize,
|
20
|
-
params[:search_query] %>
|
21
|
-
<% else %>
|
22
|
-
<%= content_tag(:span, model_sym.to_s.pluralize.capitalize,
|
23
|
-
:class => selected_class + " " + disabled_class + " " + model_sym.to_s.pluralize.downcase,
|
24
|
-
:title => I18n.t('search.no_subject_found', :subject => model_sym.to_s)) %>
|
25
|
-
<% end %>
|
26
|
-
</li>
|
27
|
-
<% end %>
|
28
|
-
</ul>
|
29
|
-
</div>
|
1
|
+
<%= form_tag search_path, :method => :get,
|
2
|
+
:remote => true,
|
3
|
+
:id => "search_form" do %>
|
4
|
+
<%= hidden_field_tag :focus, params[:focus] %>
|
5
|
+
<div class="block">
|
6
|
+
<div class="error" id="too_short_error" <%= 'style=display:block;' if too_short_query? %>><%= t('search.at_least') %></div>
|
7
|
+
|
8
|
+
<div class="form_row search_row">
|
9
|
+
<%= text_field_tag :search_query, params[:search_query], :autocomplete => :off, :id => :global_search_input %>
|
30
10
|
</div>
|
31
|
-
|
11
|
+
|
12
|
+
<div id="focus_options" class="form_row search_row">
|
13
|
+
<ul class="menu_plain_list">
|
14
|
+
<li><%= link_to content_tag(:span,
|
15
|
+
t('search.show_all'),
|
16
|
+
:class => "global #{ params[:focus].blank? && 'selected' }"),
|
17
|
+
search_path(:search_query => params[:search_query]),
|
18
|
+
:remote => true %></li>
|
19
|
+
<% SocialStream.extended_search_models.each do |model_sym| %>
|
20
|
+
<li>
|
21
|
+
<%= search_tab(model_sym) %>
|
22
|
+
</li>
|
23
|
+
<% end %>
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
32
28
|
|
33
29
|
<%= javascript_tag do %>
|
34
30
|
$(function() {
|
35
|
-
|
36
|
-
|
37
|
-
$('#search_form').submit(function() {
|
38
|
-
query = $('#global_search_input').val();
|
39
|
-
if((query=="")||(query.length < 2)||(query=="<%= t('search.write') %>")){
|
40
|
-
$('#too_short_error').show();
|
41
|
-
$('#global_search_input').removeClass("searching");
|
42
|
-
$('#global_search_input').blur();
|
43
|
-
$('#global_search_input').focus();
|
44
|
-
return false;
|
45
|
-
}else{
|
46
|
-
$('#global_search_input').addClass("searching");
|
47
|
-
$('#global_search_input').blur();
|
48
|
-
}
|
49
|
-
return true;
|
50
|
-
});
|
51
|
-
|
52
|
-
$("#global_search_input").Watermark("<%= I18n.t('search.write') %>");
|
31
|
+
SocialStream.Search.init();
|
53
32
|
});
|
54
33
|
<% end %>
|
data/base/config/locales/en.yml
CHANGED
@@ -45,6 +45,13 @@ en:
|
|
45
45
|
delete: "Delete"
|
46
46
|
last: "Last Activities"
|
47
47
|
like: "I like"
|
48
|
+
like_sentence:
|
49
|
+
few:
|
50
|
+
one: "%{likers} likes this"
|
51
|
+
other: "%{likers} like this"
|
52
|
+
many:
|
53
|
+
one: "%{likers} and %{count} more person like this"
|
54
|
+
other: "%{likers} and %{count} more people like this"
|
48
55
|
one: "Activity"
|
49
56
|
other: "Activities"
|
50
57
|
privacy:
|
@@ -111,6 +118,9 @@ en:
|
|
111
118
|
confirm_delete: "Delete comment?"
|
112
119
|
name: "comment"
|
113
120
|
one: "a comment"
|
121
|
+
title:
|
122
|
+
one: "Comment"
|
123
|
+
other: "Comments"
|
114
124
|
view_all: "View all comments"
|
115
125
|
contact:
|
116
126
|
addressbook: "Addressbook"
|
@@ -226,6 +236,9 @@ en:
|
|
226
236
|
followed: "Most followed"
|
227
237
|
liked: "Most liked"
|
228
238
|
tags: "Tags"
|
239
|
+
title:
|
240
|
+
one: "Group"
|
241
|
+
other: "Groups"
|
229
242
|
help: "Help"
|
230
243
|
helpers:
|
231
244
|
submit:
|
@@ -337,7 +350,9 @@ en:
|
|
337
350
|
input: "What are you doing?"
|
338
351
|
name: "post"
|
339
352
|
one: "a post"
|
340
|
-
title:
|
353
|
+
title:
|
354
|
+
one: "Post"
|
355
|
+
other: "Posts"
|
341
356
|
preposition:
|
342
357
|
and: "and"
|
343
358
|
on: "on"
|
@@ -496,11 +511,14 @@ en:
|
|
496
511
|
ago: "%{time} ago"
|
497
512
|
unknown: "Unknown"
|
498
513
|
user:
|
514
|
+
all: "All users"
|
515
|
+
all_n: "All users (%{count})"
|
499
516
|
by: "By Users"
|
500
517
|
one: "User"
|
501
518
|
other: "Users"
|
502
|
-
|
503
|
-
|
519
|
+
title:
|
520
|
+
one: "User"
|
521
|
+
other: "Users"
|
504
522
|
welcome: "Welcome to %{site}!"
|
505
523
|
lang:
|
506
524
|
browser: "Auto-detect browser language"
|
data/base/config/locales/es.yml
CHANGED
@@ -112,6 +112,9 @@ es:
|
|
112
112
|
name: "comentario"
|
113
113
|
one: "un comentario"
|
114
114
|
view_all: "Ver todos los comentarios"
|
115
|
+
title:
|
116
|
+
one: "Comentario"
|
117
|
+
other: "Comentarios"
|
115
118
|
contact:
|
116
119
|
addressbook: "Libreta de direcciones"
|
117
120
|
all_n: "Todos los contactos (%{count})"
|
@@ -226,6 +229,9 @@ es:
|
|
226
229
|
followed: "Más seguidos"
|
227
230
|
liked: "Más populares"
|
228
231
|
tags: "Etiquetas"
|
232
|
+
title:
|
233
|
+
one: "Grupo"
|
234
|
+
other: "Grupos"
|
229
235
|
help: "Ayuda"
|
230
236
|
helpers:
|
231
237
|
submit:
|
@@ -337,7 +343,9 @@ es:
|
|
337
343
|
input: "¿Qué quieres compartir?"
|
338
344
|
name: "publicación"
|
339
345
|
one: "una publicación"
|
340
|
-
title:
|
346
|
+
title:
|
347
|
+
one: "Texto"
|
348
|
+
other: "Textos"
|
341
349
|
preposition:
|
342
350
|
and: "y"
|
343
351
|
profile:
|
@@ -514,11 +522,14 @@ es:
|
|
514
522
|
ago: "hace %{time}"
|
515
523
|
unknown: "Desconocido"
|
516
524
|
user:
|
525
|
+
all: "Todos los usuarios"
|
526
|
+
all_n: "Todos los usuarios (%{count})"
|
517
527
|
by: "Por usuarios"
|
518
528
|
one: "Usuario"
|
519
529
|
other: "Usuarios"
|
520
|
-
|
521
|
-
|
530
|
+
title:
|
531
|
+
one: "Usuario"
|
532
|
+
other: "Usuarios"
|
522
533
|
welcome: "¡Bienvenid@ a %{site}!"
|
523
534
|
lang:
|
524
535
|
browser: "Autodetectar el idioma del navegador"
|
@@ -12,6 +12,9 @@ en:
|
|
12
12
|
not_mine: "Audios"
|
13
13
|
one: "an audio"
|
14
14
|
processing: "Processing audio clip. Please wait..."
|
15
|
+
title:
|
16
|
+
one: "Audio"
|
17
|
+
other: "Audios"
|
15
18
|
document:
|
16
19
|
actions:
|
17
20
|
delete: "Delete"
|
@@ -38,15 +41,19 @@ en:
|
|
38
41
|
not_mine: "Files"
|
39
42
|
one: "a file"
|
40
43
|
simple_all: "All"
|
41
|
-
title:
|
44
|
+
title:
|
45
|
+
one: "File"
|
46
|
+
other: "Files"
|
42
47
|
picture:
|
43
48
|
confirm_delete: "Delete picture?"
|
44
|
-
title: "Pictures"
|
45
49
|
mine: "My pictures"
|
46
50
|
msg: "See details..."
|
47
51
|
name: "picture"
|
48
52
|
not_mine: "Pictures"
|
49
53
|
one: "a picture"
|
54
|
+
title:
|
55
|
+
one: "Picture"
|
56
|
+
other: "Pictures"
|
50
57
|
repository:
|
51
58
|
title: "Files"
|
52
59
|
order:
|
@@ -62,10 +69,12 @@ en:
|
|
62
69
|
not_mine: "Resources"
|
63
70
|
video:
|
64
71
|
confirm_delete: "Delete video?"
|
65
|
-
title: "Videos"
|
66
72
|
mine: "My videos"
|
67
73
|
msg: "Uploaded a video:"
|
68
74
|
name: "video"
|
69
75
|
not_mine: "Videos"
|
70
76
|
one: "a video"
|
71
77
|
processing: "Processing video. Please, wait..."
|
78
|
+
title:
|
79
|
+
one: "Video"
|
80
|
+
other: "Videos"
|
@@ -5,13 +5,15 @@ es:
|
|
5
5
|
title: "Título"
|
6
6
|
audio:
|
7
7
|
confirm_delete: "¿Borrar audios?"
|
8
|
-
title: "Audios"
|
9
8
|
mine: "Mis audios"
|
10
9
|
msg: "Subió un audio:"
|
11
10
|
name: "archivo de audio"
|
12
11
|
not_mine: "Audios"
|
13
12
|
one: "un archivo de audio"
|
14
13
|
processing: "Procesando fichero de audio. Espere, por favor..."
|
14
|
+
title:
|
15
|
+
one: "Audio"
|
16
|
+
other: "Audios"
|
15
17
|
document:
|
16
18
|
actions:
|
17
19
|
delete: "Borrar"
|
@@ -38,15 +40,19 @@ es:
|
|
38
40
|
not_mine: "Ficheros"
|
39
41
|
one: "un fichero"
|
40
42
|
simple_all: "Todos"
|
41
|
-
title:
|
43
|
+
title:
|
44
|
+
one: "Fichero"
|
45
|
+
other: "Ficheros"
|
42
46
|
picture:
|
43
47
|
confirm_delete: "¿Borrar imagen?"
|
44
|
-
title: "Imágenes"
|
45
48
|
mine: "Mis imágenes"
|
46
49
|
msg: "Ver detalles..."
|
47
50
|
name: "imagen"
|
48
51
|
not_mine: "Imágenes"
|
49
52
|
one: "una imagen"
|
53
|
+
title:
|
54
|
+
one: "Imagen"
|
55
|
+
other: "Imágenes"
|
50
56
|
repository:
|
51
57
|
title: "Ficheros"
|
52
58
|
order:
|
@@ -62,10 +68,12 @@ es:
|
|
62
68
|
not_mine: "Recursos"
|
63
69
|
video:
|
64
70
|
confirm_delete: "¿Borrar vídeo?"
|
65
|
-
title: "Vídeos"
|
66
71
|
mine: "Mis vídeos"
|
67
72
|
msg: "Subió un vídeo:"
|
68
73
|
name: "vídeo"
|
69
74
|
not_mine: "Vídeos"
|
70
75
|
one: "un vídeo"
|
71
76
|
processing: "Procesando vídeo. Espere, por favor..."
|
77
|
+
title:
|
78
|
+
one: "Vídeo"
|
79
|
+
other: "Vídeos"
|
@@ -6,7 +6,7 @@ module SocialStream
|
|
6
6
|
|
7
7
|
items << {
|
8
8
|
:key => :documents,
|
9
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
9
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title.other"),
|
10
10
|
:url => polymorphic_path([subject, Document.new]),
|
11
11
|
:options => {:link => {:id => "documents_menu"}}
|
12
12
|
}
|
@@ -17,7 +17,7 @@ module SocialStream
|
|
17
17
|
|
18
18
|
items << {
|
19
19
|
:key => :documents,
|
20
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
20
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title.other"),
|
21
21
|
:url => polymorphic_path([current_subject, Document.new]),
|
22
22
|
:options => {:link => {:id => "documents_menu"}}
|
23
23
|
}
|
@@ -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.16.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.16.4')
|
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')
|
@@ -6,12 +6,12 @@
|
|
6
6
|
<% end %>
|
7
7
|
|
8
8
|
<% content_for :title do %>
|
9
|
-
<%= profile_subject.name + ": " + t('event.
|
9
|
+
<%= profile_subject.name + ": " + t('event.calendar') %>
|
10
10
|
<% end %>
|
11
11
|
|
12
12
|
<%= location(
|
13
13
|
link_to(profile_subject.name, polymorphic_path(profile_subject)),
|
14
|
-
link_to(t('event.
|
14
|
+
link_to(t('event.calendar'), polymorphic_path([profile_subject, Event.new]))
|
15
15
|
) %>
|
16
16
|
|
17
17
|
<% toolbar :profile => profile_subject %>
|
@@ -19,11 +19,14 @@ en:
|
|
19
19
|
boxy:
|
20
20
|
close_text: "[close]"
|
21
21
|
event:
|
22
|
+
calendar: "Calendar"
|
22
23
|
confirm_delete: "Delete event?"
|
23
24
|
new:
|
24
25
|
title: "New event"
|
25
26
|
one: "an event"
|
26
|
-
title:
|
27
|
+
title:
|
28
|
+
one: "Event"
|
29
|
+
other: "Events"
|
27
30
|
wall_post: "Published an event: %{title}"
|
28
31
|
room:
|
29
32
|
confirm_delete: "Delete room?"
|
@@ -19,11 +19,14 @@ es:
|
|
19
19
|
boxy:
|
20
20
|
close_text: "[cerrar]"
|
21
21
|
event:
|
22
|
+
calendar: "Calendario"
|
22
23
|
confirm_delete: "¿Borrar evento?"
|
23
24
|
new:
|
24
25
|
title: "Nuevo evento"
|
25
26
|
one: "un evento"
|
26
|
-
title:
|
27
|
+
title:
|
28
|
+
one: "Evento"
|
29
|
+
other: "Eventos"
|
27
30
|
wall_post: "Publicó un evento: %{title}"
|
28
31
|
room:
|
29
32
|
confirm_delete: "¿Borrar espacio?"
|
@@ -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.16.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.16.4')
|
16
16
|
s.add_runtime_dependency('rails-scheduler', '~> 0.0.6')
|
17
17
|
s.add_runtime_dependency('coffee-rails', '>= 3.1.0')
|
18
18
|
|
@@ -441,7 +441,7 @@ function handleGetIQStanza(iq,jid,slug){
|
|
441
441
|
return true;
|
442
442
|
}
|
443
443
|
|
444
|
-
//Case: Default behaviour
|
444
|
+
//Case 3: Default behaviour
|
445
445
|
sendIQEmpty(jid,iqID);
|
446
446
|
|
447
447
|
return true;
|
@@ -466,7 +466,7 @@ function handleGetVideochatIQStanza(jid,iqID,iq,slug){
|
|
466
466
|
}
|
467
467
|
}
|
468
468
|
|
469
|
-
//Send
|
469
|
+
//Send empty stanza
|
470
470
|
sendIQEmpty(jid,iqID);
|
471
471
|
}
|
472
472
|
|
@@ -671,3 +671,15 @@ function sendStatus(status){
|
|
671
671
|
setStatusWidgetTitle(status);
|
672
672
|
}
|
673
673
|
}
|
674
|
+
|
675
|
+
|
676
|
+
|
677
|
+
////////
|
678
|
+
//MUC management
|
679
|
+
///////
|
680
|
+
|
681
|
+
function joinRoom(roomName){
|
682
|
+
//domain
|
683
|
+
//stropne_connection.muc.init(stropne_connection)
|
684
|
+
//stropne_connection.muc.join(room, user_name, onMessage, onPresence, null, null)
|
685
|
+
}
|
@@ -6,6 +6,12 @@ module SocialStream
|
|
6
6
|
include SocialStream::Presence::Models::BuddyManager
|
7
7
|
end
|
8
8
|
end
|
9
|
+
|
10
|
+
initializer "social_stream-presence.group" do
|
11
|
+
ActiveSupport.on_load(:group) do
|
12
|
+
include SocialStream::Presence::Models::GroupManager
|
13
|
+
end
|
14
|
+
end
|
9
15
|
|
10
16
|
initializer "social_stream-presence.views.settings" do
|
11
17
|
SocialStream::Views::Settings.module_eval do
|