social_stream 0.22.0 → 0.22.1
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/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
|