social_stream 0.19.2 → 0.19.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/.travis.yml +1 -1
  2. data/README.rdoc +1 -1
  3. data/base/app/assets/stylesheets/cheesecake.css.scss +43 -12
  4. data/base/app/controllers/contacts_controller.rb +1 -1
  5. data/base/app/models/activity.rb +4 -1
  6. data/base/app/models/actor.rb +2 -14
  7. data/base/app/models/relation.rb +2 -4
  8. data/base/app/models/relation/single.rb +2 -7
  9. data/base/app/models/tie.rb +2 -1
  10. data/base/app/views/activities/_new.html.erb +1 -1
  11. data/base/app/views/cheesecake/_cheesecake.html.erb +170 -105
  12. data/base/app/views/cheesecake/_index.html.erb +45 -47
  13. data/base/app/views/cheesecake/_sector_form.html.erb +1 -0
  14. data/base/app/views/toolbar/_home.html.erb +1 -1
  15. data/base/config/locales/en.yml +2 -0
  16. data/base/config/locales/es.yml +2 -0
  17. data/base/config/locales/rails.es.yml +192 -0
  18. data/base/db/migrate/20110912074426_add_reject_relation.rb +2 -2
  19. data/base/db/migrate/20120201185454_singleton_single_relations.rb +46 -0
  20. data/base/lib/social_stream/base/version.rb +1 -1
  21. data/base/lib/tasks/db/populate.rake +1 -1
  22. data/base/spec/controllers/posts_controller_spec.rb +2 -2
  23. data/base/spec/factories/activity.rb +1 -1
  24. data/base/spec/factories/post.rb +1 -1
  25. data/base/spec/factories/tie.rb +3 -3
  26. data/base/spec/models/activity_authorization_spec.rb +3 -3
  27. data/base/spec/support/db.rb +3 -1
  28. data/documents/app/assets/images/48/{word.png → doc.png} +0 -0
  29. data/documents/app/assets/images/48/{excel.png → xls.png} +0 -0
  30. data/documents/lib/social_stream/documents/version.rb +1 -1
  31. data/documents/social_stream-documents.gemspec +1 -1
  32. data/documents/spec/factories/document.rb +1 -1
  33. data/documents/spec/factories/picture.rb +1 -1
  34. data/documents/spec/support/db.rb +3 -3
  35. data/events/app/views/events/_sidebar_calendar.html.erb +5 -5
  36. data/events/lib/social_stream/events/version.rb +1 -1
  37. data/events/social_stream-events.gemspec +1 -1
  38. data/lib/social_stream/version.rb +1 -1
  39. data/linkser/db/migrate/20120202104549_add_links_foreign_key.rb +9 -0
  40. data/presence/app/assets/javascripts/chat_interface_manager.js.erb +167 -177
  41. data/presence/app/assets/javascripts/chat_persistence.js +194 -0
  42. data/presence/app/assets/javascripts/chat_utilities.js +15 -0
  43. data/presence/app/assets/javascripts/chat_window_manager.js +57 -1
  44. data/presence/app/assets/javascripts/xmpp_client_management.js.erb +191 -143
  45. data/presence/app/assets/stylesheets/chat.css.scss +4 -5
  46. data/presence/app/views/chat/_contacts.html.erb +2 -5
  47. data/presence/app/views/chat/_index.html.erb +46 -32
  48. data/presence/app/views/chat/_off.html.erb +2 -2
  49. data/presence/config/routes.rb +1 -1
  50. data/presence/lib/social_stream/presence/version.rb +1 -1
  51. data/presence/vendor/assets/javascripts/jquery.ui.chatbox.js +14 -11
  52. data/social_stream.gemspec +4 -4
  53. data/spec/support/db.rb +4 -4
  54. metadata +37 -32
@@ -1,40 +1,46 @@
1
1
 
2
2
  <div id="contacts_cheesecake"></div>
3
- <div id="contacts_filter">
4
- <%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :contacts_filter_input %>
3
+ <div id="sector_form" style="display:none;">
4
+ <%= render :partial => "sector_form" %>
5
5
  </div>
6
- <div id="contacts_selector_modifiers">
7
- <span id="contacts_selector_clear">Unselect all</span>
8
- </div>
9
- <div id="contacts_grid">
10
- <div id="contacts_grid_saving" style="display:none;">
11
- <%= image_tag('loading.gif') %>
6
+ <div id="contacts_explorer">
7
+ <div id="contacts_filter">
8
+ <%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :contacts_filter_input %>
12
9
  </div>
13
- <div id="contacts_grid_selected">
14
- <br class="clearfloat">
10
+ <div id="contacts_selector_modifiers">
11
+ <span id="contacts_selector_clear">Unselect all</span>
15
12
  </div>
16
- <div id="contacts_grid_available">
17
- <% @actors.each do |actor|%>
18
- <%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
19
- <% end %>
13
+ <div id="contacts_grid">
14
+ <div id="contacts_grid_saving" style="display:none;">
15
+ <%= image_tag('loading.gif') %>
16
+ </div>
17
+ <div id="contacts_grid_selected">
18
+ <div id="contacts_grid_selected_hint"><%= t('cheesecake.select.hint') %></div>
19
+ <br class="clearfloat">
20
+ </div>
21
+ <div id="contacts_grid_available">
22
+ <% @actors.each do |actor|%>
23
+ <%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
24
+ <% end %>
25
+ </div>
20
26
  </div>
21
- </div>
22
- <div id="contacts_save" style="display:none;">
23
- <form action="<%= update_cheesecake_path %>" method="get" data-remote="true" id="contacts_save_form">
24
- <input type="submit" id="contacts_save_button" value="<%= t('cheesecake.changes.save') %>">
25
- <input type="hidden" id="contacts_save_changes" name="contacts_save_changes">
26
- </form>
27
- </div>
28
- <div id="contacts_changes_button" style="display:none;">
29
- <%= t('cheesecake.changes.details') %> (<span id="contacts_changes_button_total">0</span>)
30
- </div>
31
- <br class="clearfloat">
32
- <div id="contacts_changes">
33
- <div id="contacts_changes_title">
34
- <%= t('cheesecake.changes.details') %>
27
+ <div id="contacts_changes_button" style="display:none;">
28
+ <%= t('cheesecake.changes.details') %> (<span id="contacts_changes_button_total">0</span>)
35
29
  </div>
36
- <div id="contacts_changes_details">
37
-
30
+ <div id="contacts_save" style="display:none;">
31
+ <form action="<%= update_cheesecake_path %>" method="get" data-remote="true" id="contacts_save_form">
32
+ <input type="submit" id="contacts_save_button" value="<%= t('cheesecake.changes.save') %>">
33
+ <input type="hidden" id="contacts_save_changes" name="contacts_save_changes">
34
+ </form>
35
+ </div>
36
+ <br class="clearfloat">
37
+ <div id="contacts_changes">
38
+ <div id="contacts_changes_title">
39
+ <%= t('cheesecake.changes.details') %>
40
+ </div>
41
+ <div id="contacts_changes_details">
42
+
43
+ </div>
38
44
  </div>
39
45
  </div>
40
46
  <%= javascript_tag do %>
@@ -50,36 +56,36 @@
50
56
  var unselected_actor_click = function(){
51
57
  var clone = $(this).clone();
52
58
  clone.attr("id",$(this).attr("id") + "_selected");
53
- $(this).slideToggle("fast",function(){
59
+ $(this).fadeOut("fast",function(){
54
60
  clone.hide();
55
61
  $(this).before(clone);
56
- $("#contacts_grid_selected br.clearfloat").before($(this));
62
+ $("#contacts_grid_selected_hint").before($(this));
57
63
  $(this).off("click.unselected_actor");
58
64
  $(this).on("click.selected_actor", selected_actor_click);
59
- if($("#contacts_grid_selected").css("display")=="none"){
60
- $("#contacts_grid_selected").slideToggle("fast");
65
+ if($("#contacts_grid_selected_hint").css("display")!="none"){
61
66
  $("#contacts_selector_modifiers").css("opacity",1);
67
+ $("#contacts_grid_selected_hint").hide();
62
68
  }
63
69
  var height = 336 - Math.ceil(($("#contacts_grid_selected").children().length - 1) / 10) * 28;
64
70
  if(height != $("#contacts_grid_available").height())
65
71
  $("#contacts_grid_available").animate({height: height});
66
- $(this).slideToggle("fast");
72
+ $(this).fadeIn("fast");
67
73
  });
68
74
  };
69
75
  var selected_actor_click = function(){
70
76
  var clone = $("#" + $(this).attr("id") + "_selected");
71
- $(this).slideToggle("fast",function(){
77
+ $(this).fadeOut("fast",function(){
72
78
  clone.before($(this));
73
79
  $(this).off("click.selected_actor");
74
80
  $(this).on("click.unselected_actor", unselected_actor_click);
75
- if($("#contacts_grid_selected").children().length <= 1){
76
- $("#contacts_grid_selected").slideToggle("fast");
81
+ if($("#contacts_grid_selected").children().length <= 2){
77
82
  $("#contacts_selector_modifiers").css("opacity",0);
83
+ $("#contacts_grid_selected_hint").fadeIn("fast");
78
84
  }
79
85
  var height = 336 - Math.ceil(($("#contacts_grid_selected").children().length - 1) / 10) * 28;
80
86
  if(height != $("#contacts_grid_available").height())
81
87
  $("#contacts_grid_available").animate({height: height});
82
- $(this).slideToggle("fast");
88
+ $(this).fadeIn("fast");
83
89
  clone.remove();
84
90
  });
85
91
  };
@@ -102,13 +108,5 @@
102
108
  });
103
109
  }
104
110
  });
105
- $("#contacts_save_form").submit(function(){
106
- if($(".contacts_changes_tipsy_menu").length != 0){
107
- $("#contacts_changes_button").tipsy("hide");
108
- }
109
- $("#contacts_grid_saving").show();
110
- cheese.disable();
111
- $("#contacts_save_button").val("<%= t('cheesecake.changes.saving') %>").attr("disabled","true");
112
- });
113
111
  <%= render :partial => 'cheesecake' %>
114
112
  <% end %>
@@ -0,0 +1 @@
1
+ Sector form in construction. Please, be patient :D
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
 
10
10
  <% if defined?(SocialStream::Presence) and SocialStream::Presence.enable %>
11
- <%= render :partial => 'chat/index' %>
11
+ <%= render :partial => 'chat/index' , :locals => {:flow => true} %>
12
12
  <% end %>
13
13
 
14
14
  <div class="block space_center">
@@ -97,6 +97,8 @@ en:
97
97
  none: "No changes"
98
98
  save: "Save changes"
99
99
  saving: "Saving..."
100
+ select:
101
+ hint: "Select by clicking the portraits"
100
102
  comment:
101
103
  input: "Write a comment..."
102
104
  confirm_delete: "Delete comment?"
@@ -97,6 +97,8 @@ es:
97
97
  none: "Sin cambios"
98
98
  save: "Guardar cambios"
99
99
  saving: "Guardando..."
100
+ select:
101
+ hint: "Selecciona haciendo click en los retratos"
100
102
  comment:
101
103
  input: "Comentar..."
102
104
  confirm_delete: "¿Borrar commentario?"
@@ -0,0 +1,192 @@
1
+ es:
2
+ date:
3
+ abbr_day_names:
4
+ - dom
5
+ - lun
6
+ - mar
7
+ - mié
8
+ - jue
9
+ - vie
10
+ - sáb
11
+ abbr_month_names:
12
+ -
13
+ - ene
14
+ - feb
15
+ - mar
16
+ - abr
17
+ - may
18
+ - jun
19
+ - jul
20
+ - ago
21
+ - sep
22
+ - oct
23
+ - nov
24
+ - dic
25
+ day_names:
26
+ - domingo
27
+ - lunes
28
+ - martes
29
+ - miércoles
30
+ - jueves
31
+ - viernes
32
+ - sábado
33
+ formats:
34
+ default: ! '%d/%m/%Y'
35
+ long: ! '%d de %B de %Y'
36
+ short: ! '%d de %b'
37
+ month_names:
38
+ -
39
+ - enero
40
+ - febrero
41
+ - marzo
42
+ - abril
43
+ - mayo
44
+ - junio
45
+ - julio
46
+ - agosto
47
+ - septiembre
48
+ - octubre
49
+ - noviembre
50
+ - diciembre
51
+ order:
52
+ - :day
53
+ - :month
54
+ - :year
55
+ datetime:
56
+ distance_in_words:
57
+ about_x_hours:
58
+ one: alrededor de 1 hora
59
+ other: alrededor de %{count} horas
60
+ about_x_months:
61
+ one: alrededor de 1 mes
62
+ other: alrededor de %{count} meses
63
+ about_x_years:
64
+ one: alrededor de 1 año
65
+ other: alrededor de %{count} años
66
+ almost_x_years:
67
+ one: casi 1 año
68
+ other: casi %{count} años
69
+ half_a_minute: medio minuto
70
+ less_than_x_minutes:
71
+ one: menos de 1 minuto
72
+ other: menos de %{count} minutos
73
+ less_than_x_seconds:
74
+ one: menos de 1 segundo
75
+ other: menos de %{count} segundos
76
+ over_x_years:
77
+ one: más de 1 año
78
+ other: más de %{count} años
79
+ x_days:
80
+ one: 1 día
81
+ other: ! '%{count} días'
82
+ x_minutes:
83
+ one: 1 minuto
84
+ other: ! '%{count} minutos'
85
+ x_months:
86
+ one: 1 mes
87
+ other: ! '%{count} meses'
88
+ x_seconds:
89
+ one: 1 segundo
90
+ other: ! '%{count} segundos'
91
+ prompts:
92
+ day: Día
93
+ hour: Hora
94
+ minute: Minutos
95
+ month: Mes
96
+ second: Segundos
97
+ year: Año
98
+ errors:
99
+ format: ! '%{attribute} %{message}'
100
+ messages:
101
+ accepted: debe ser aceptado
102
+ blank: no puede estar en blanco
103
+ confirmation: no coincide con la confirmación
104
+ empty: no puede estar vacío
105
+ equal_to: debe ser igual a %{count}
106
+ even: debe ser par
107
+ exclusion: está reservado
108
+ greater_than: debe ser mayor que %{count}
109
+ greater_than_or_equal_to: debe ser mayor que o igual a %{count}
110
+ inclusion: no está incluido en la lista
111
+ invalid: no es válido
112
+ less_than: debe ser menor que %{count}
113
+ less_than_or_equal_to: debe ser menor que o igual a %{count}
114
+ not_a_number: no es un número
115
+ not_an_integer: debe ser un entero
116
+ odd: debe ser impar
117
+ record_invalid: ! 'La validación falló: %{errors}'
118
+ taken: ya está en uso
119
+ too_long: es demasiado largo (%{count} caracteres máximo)
120
+ too_short: es demasiado corto (%{count} caracteres mínimo)
121
+ wrong_length: no tiene la longitud correcta (%{count} caracteres exactos)
122
+ template:
123
+ body: ! 'Se encontraron problemas con los siguientes campos:'
124
+ header:
125
+ one: No se pudo guardar este/a %{model} porque se encontró 1 error
126
+ other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
127
+ helpers:
128
+ select:
129
+ prompt: Por favor seleccione
130
+ submit:
131
+ create: Crear %{model}
132
+ submit: Guardar %{model}
133
+ update: Actualizar %{model}
134
+ number:
135
+ currency:
136
+ format:
137
+ delimiter: .
138
+ format: ! '%n %u'
139
+ precision: 2
140
+ separator: ! ','
141
+ significant: false
142
+ strip_insignificant_zeros: false
143
+ unit: €
144
+ format:
145
+ delimiter: .
146
+ precision: 3
147
+ separator: ! ','
148
+ significant: false
149
+ strip_insignificant_zeros: false
150
+ human:
151
+ decimal_units:
152
+ format: ! '%n %u'
153
+ units:
154
+ billion: mil millones
155
+ million: millón
156
+ quadrillion: mil billones
157
+ thousand: mil
158
+ trillion: billón
159
+ unit: ''
160
+ format:
161
+ delimiter: ''
162
+ precision: 1
163
+ significant: true
164
+ strip_insignificant_zeros: true
165
+ storage_units:
166
+ format: ! '%n %u'
167
+ units:
168
+ byte:
169
+ one: Byte
170
+ other: Bytes
171
+ gb: GB
172
+ kb: KB
173
+ mb: MB
174
+ tb: TB
175
+ percentage:
176
+ format:
177
+ delimiter: ''
178
+ precision:
179
+ format:
180
+ delimiter: ''
181
+ support:
182
+ array:
183
+ last_word_connector: ! ', y '
184
+ two_words_connector: ! ' y '
185
+ words_connector: ! ', '
186
+ time:
187
+ am: am
188
+ formats:
189
+ default: ! '%A, %d de %B de %Y %H:%M:%S %z'
190
+ long: ! '%d de %B de %Y %H:%M'
191
+ short: ! '%d de %b %H:%M'
192
+ pm: pm
@@ -12,7 +12,7 @@ class AddRejectRelation < ActiveRecord::Migration
12
12
  logger.warn "Public contact #{ t.contact_id } has #{ contact.ties_count }, when expecting 1"
13
13
  end
14
14
 
15
- t.update_attribute :relation_id, t.sender.relation_reject.id
15
+ t.update_attribute :relation_id, Relation::Reject.instance.id
16
16
  end
17
17
  end
18
18
 
@@ -21,7 +21,7 @@ class AddRejectRelation < ActiveRecord::Migration
21
21
  includes(:relation, :contact).
22
22
  merge(Relation.where(:type => 'Relation::Reject')).
23
23
  each do |t|
24
- t.update_attribute :relation_id, t.sender.relation_public.id
24
+ t.update_attribute :relation_id, Relation::Public.instance.id
25
25
  end
26
26
 
27
27
  Relation::Reject.destroy_all
@@ -0,0 +1,46 @@
1
+ class SingletonSingleRelations < ActiveRecord::Migration
2
+ def up
3
+ Tie.record_timestamps = false
4
+ Audience.record_timestamps = false
5
+
6
+ r_new = Relation::Public.instance
7
+
8
+ Relation::Public.all.each do |r|
9
+ next if r == r_new
10
+
11
+ # Reassign r -> r_new
12
+ r.ties.each do |t|
13
+ t.update_column(:relation_id, r_new.id)
14
+ end
15
+
16
+ r.audiences.each do |a|
17
+ a.update_column(:relation_id, r_new.id)
18
+ end
19
+
20
+ # Delete r
21
+ r.delete
22
+ end
23
+
24
+ r_new = Relation::Reject.instance
25
+
26
+ Relation::Reject.all.each do |r|
27
+ next if r == r_new
28
+
29
+ # Reassign r -> r_new
30
+ r.ties.each do |t|
31
+ t.update_column(:relation_id, r_new.id)
32
+ end
33
+
34
+ r.audiences.each do |a|
35
+ a.update_column(:relation_id, r_new.id)
36
+ end
37
+
38
+ # Delete r
39
+ r.delete
40
+ end
41
+ end
42
+
43
+ def down
44
+ raise ActiveRecord::IrreversibleMigration
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Base
3
- VERSION = "0.14.2".freeze
3
+ VERSION = "0.14.3".freeze
4
4
  end
5
5
  end
@@ -125,7 +125,7 @@ namespace :db do
125
125
  # = Ties
126
126
  available_actors.each do |a|
127
127
  actors = available_actors.dup - Array(a)
128
- relations = a.relation_customs + Array.wrap(a.relation_reject)
128
+ relations = a.relation_customs + Array.wrap(Relation::Reject.instance)
129
129
  break if actors.size==0
130
130
  if CHEESECAKE
131
131
  actor = Actor.first
@@ -55,7 +55,7 @@ describe PostsController do
55
55
  describe "with public relation" do
56
56
  before do
57
57
  contact = @user.contact_to!(@user)
58
- relation = @user.relation_public
58
+ relation = Relation::Public.instance
59
59
  model_assigned_to @user.contact_to!(@user), relation
60
60
  @current_model = Factory(:post, :author_id => @user.actor_id,
61
61
  :owner_id => @user.actor_id,
@@ -146,7 +146,7 @@ describe PostsController do
146
146
  describe "with public relation" do
147
147
  before do
148
148
  contact = @group.contact_to!(@group)
149
- relation = @group.relation_public
149
+ relation = Relation::Public.instance
150
150
  model_assigned_to contact, relation
151
151
  @current_model = Factory(:post, :author_id => contact.sender.id,
152
152
  :owner_id => contact.receiver.id,