social_stream 0.10.4 → 0.11.0
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/activities.js.erb +0 -2
- data/base/app/assets/javascripts/search.js.erb +0 -4
- data/base/app/assets/stylesheets/_colors.scss +22 -0
- data/base/app/assets/stylesheets/{activities.css → activities.css.scss} +20 -23
- data/base/app/assets/stylesheets/{base.css → base.css.scss} +43 -35
- data/base/app/assets/stylesheets/{contacts.css → contacts.css.scss} +5 -3
- data/base/app/assets/stylesheets/footer.css.scss +22 -0
- data/base/app/assets/stylesheets/{frontpage.css → frontpage.css.scss} +7 -13
- data/base/app/assets/stylesheets/{header.css → header.css.scss} +23 -20
- data/base/app/assets/stylesheets/search.css +15 -17
- data/base/app/assets/stylesheets/toolbar.css +7 -0
- data/base/app/controllers/invitations_controller.rb +2 -0
- data/base/app/controllers/search_controller.rb +27 -45
- data/base/app/helpers/contacts_helper.rb +1 -5
- data/base/app/helpers/search_helper.rb +4 -4
- data/base/app/models/actor.rb +1 -3
- data/base/app/views/activity_objects/_activity_object.html.erb +1 -1
- data/base/app/views/contacts/_link.html.erb +9 -0
- data/base/app/views/frontpage/_caracteristics.html.erb +23 -0
- data/base/app/views/frontpage/index.html.erb +3 -25
- data/base/app/views/groups/_index.html.erb +1 -1
- data/base/app/views/invitation_mailer/send_invitation.html.erb +3 -3
- data/base/app/views/invitation_mailer/send_invitation.text.erb +3 -2
- data/base/app/views/invitations/_new.html.erb +2 -2
- data/base/app/views/layouts/_header_dropdown_menu.html.erb +1 -1
- data/base/app/views/layouts/_header_dropdown_menu_sessions.html.erb +1 -1
- data/base/app/views/posts/_new_activity.html.erb +1 -1
- data/base/app/views/posts/_new_activity_fields.erb +6 -0
- data/base/app/views/search/_extended_search.html.erb +14 -0
- data/base/app/views/search/_form.html.erb +25 -13
- data/base/app/views/search/_header_search.html.erb +7 -13
- data/base/app/views/search/_index.html.erb +1 -6
- data/base/app/views/search/_index_frontpage.html.erb +2 -18
- data/base/app/views/search/index.js.erb +1 -1
- data/base/app/views/subjects/_subject_with_details.html.erb +1 -1
- data/base/app/views/toolbar/_home.html.erb +1 -1
- data/base/app/views/toolbar/_messages.html.erb +1 -1
- data/base/app/views/toolbar/_subject.html.erb +10 -0
- data/base/app/views/users/_index.html.erb +1 -1
- data/base/config/locales/en.yml +13 -22
- data/base/config/locales/es.yml +356 -0
- data/base/lib/generators/social_stream/base/templates/initializer.rb +6 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/lib/social_stream/models/object.rb +7 -1
- data/base/lib/social_stream-base.rb +8 -0
- data/base/social_stream-base.gemspec +2 -0
- data/base/spec/controllers/invitations_controller_spec.rb +34 -0
- data/base/spec/dummy/config/initializers/social_stream.rb +6 -0
- data/base/spec/support/thinking-sphinx.rb +10 -0
- data/documents/app/models/audio.rb +10 -1
- data/documents/app/models/document.rb +11 -0
- data/documents/app/models/picture.rb +10 -1
- data/documents/app/models/video.rb +9 -0
- data/documents/app/views/audios/_audio_with_details.html.erb +3 -0
- data/documents/app/views/documents/_document_with_details.html.erb +13 -0
- data/documents/app/views/pictures/_picture_with_details.html.erb +2 -0
- data/documents/app/views/videos/_video_with_details.html.erb +2 -0
- data/documents/config/locales/en.yml +0 -7
- data/documents/config/locales/es.yml +38 -0
- data/documents/db/migrate/20111005112707_add_title_and_description_to_document.rb +11 -0
- data/documents/lib/social_stream/documents/version.rb +1 -1
- data/documents/social_stream-documents.gemspec +1 -1
- data/events/app/views/events/_new_activity_fields.html.erb +5 -0
- 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/social_stream.gemspec +3 -3
- data/spec/support/components.rb +1 -1
- metadata +35 -24
- data/base/app/assets/stylesheets/footer.css +0 -26
- data/base/app/views/search/_focus_search.html.erb +0 -17
- data/base/app/views/search/_global_search.html.erb +0 -19
- data/events/app/views/events/_jquery.html.erb +0 -125
@@ -36,7 +36,7 @@
|
|
36
36
|
overflow: hidden;
|
37
37
|
position: absolute;
|
38
38
|
z-index: 2000;
|
39
|
-
background:
|
39
|
+
background: #f5f5f5;
|
40
40
|
text-align: left;
|
41
41
|
}
|
42
42
|
#header_search_display a {
|
@@ -53,7 +53,7 @@
|
|
53
53
|
border-top: solid 1px #B9B9B9;
|
54
54
|
font-size: 10px;
|
55
55
|
height: 35px;
|
56
|
-
background:
|
56
|
+
background: #f5f5f5;
|
57
57
|
overflow: hidden;
|
58
58
|
text-align: center;
|
59
59
|
}
|
@@ -79,7 +79,7 @@
|
|
79
79
|
#header_search_display li .link {
|
80
80
|
display: none;
|
81
81
|
}
|
82
|
-
#header_search_display li.
|
82
|
+
#header_search_display li.result {
|
83
83
|
padding: 0px;
|
84
84
|
height: 45px;
|
85
85
|
text-align: left;
|
@@ -111,13 +111,23 @@
|
|
111
111
|
.search_row {
|
112
112
|
text-align: center;
|
113
113
|
}
|
114
|
-
.
|
114
|
+
.model_with_details {
|
115
115
|
padding: 5px;
|
116
116
|
}
|
117
117
|
.subject_search_results {
|
118
|
-
width:
|
118
|
+
width: 186px;
|
119
119
|
text-align: center;
|
120
120
|
}
|
121
|
+
.subject_search_results img {
|
122
|
+
width: 48px;
|
123
|
+
height: 48px;
|
124
|
+
}
|
125
|
+
.subject_search_results .sub-block {
|
126
|
+
width: 62%;
|
127
|
+
word-wrap: break-word;
|
128
|
+
height: 50px;
|
129
|
+
overflow: hidden;
|
130
|
+
}
|
121
131
|
#search_results {
|
122
132
|
text-align: center;
|
123
133
|
}
|
@@ -129,20 +139,8 @@
|
|
129
139
|
float: right;
|
130
140
|
padding: 0;
|
131
141
|
}
|
132
|
-
#search_results .title {
|
133
|
-
width: 540px;
|
134
|
-
margin: auto;
|
135
|
-
background-color: #E1EEF5;
|
136
|
-
padding: 5px;
|
137
|
-
font-weight: bold;
|
138
|
-
text-align: center;
|
139
|
-
}
|
140
|
-
#search_results .subject_search_results .title {
|
141
|
-
width: 260px;
|
142
|
-
}
|
143
142
|
/********************************* Form and errors *********/
|
144
143
|
#search_form .error {
|
145
144
|
display: none;
|
146
145
|
}
|
147
|
-
|
148
146
|
/******************** Search css END ***********************/
|
@@ -1,24 +1,24 @@
|
|
1
1
|
class SearchController < ApplicationController
|
2
2
|
include ActionView::Helpers::SanitizeHelper
|
3
|
+
|
4
|
+
helper_method :get_search_query
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
FOCUS_SEARCH_PER_PAGE=16
|
6
|
+
RESULTS_SEARCH_PER_PAGE=15
|
7
7
|
MIN_QUERY=2
|
8
|
+
|
8
9
|
def index
|
9
|
-
@search_class_sym = params[:focus].singularize.to_sym unless params[:focus].blank?
|
10
10
|
if params[:search_query].blank? or too_short_query
|
11
|
-
|
11
|
+
@search_result = []
|
12
12
|
else
|
13
13
|
if params[:mode].eql? "header_search"
|
14
|
-
@search_result =
|
15
|
-
render :partial => "header_search"
|
14
|
+
@search_result = search :quick
|
15
|
+
render :partial => "header_search"
|
16
16
|
return
|
17
17
|
else
|
18
18
|
if params[:focus].present?
|
19
19
|
@search_result = focus_search
|
20
20
|
else
|
21
|
-
@search_result =
|
21
|
+
@search_result = search :extended
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -30,6 +30,25 @@ class SearchController < ApplicationController
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
+
def search mode
|
34
|
+
models = SocialStream.extended_search_models
|
35
|
+
models = SocialStream.quick_search_models if mode.to_s.eql? "quick"
|
36
|
+
models.map! {|model_sym| model_sym.to_s.classify.constantize}
|
37
|
+
result = ThinkingSphinx.search(get_search_query, :classes => models)
|
38
|
+
if mode.to_s.eql? "quick"
|
39
|
+
result.page(1).per(7)
|
40
|
+
else
|
41
|
+
result.page(params[:page]).per(RESULTS_SEARCH_PER_PAGE)
|
42
|
+
end
|
43
|
+
return result
|
44
|
+
end
|
45
|
+
|
46
|
+
def focus_search
|
47
|
+
@search_class_sym = params[:focus].singularize.to_sym unless params[:focus].blank?
|
48
|
+
search_class = @search_class_sym.to_s.classify.constantize
|
49
|
+
ThinkingSphinx.search(get_search_query, :classes => [search_class]).page(params[:page]).per(RESULTS_SEARCH_PER_PAGE)
|
50
|
+
end
|
51
|
+
|
33
52
|
def too_short_query
|
34
53
|
bare_query = strip_tags(params[:search_query]) unless bare_query.html_safe?
|
35
54
|
return bare_query.strip.size < MIN_QUERY
|
@@ -45,41 +64,4 @@ class SearchController < ApplicationController
|
|
45
64
|
end
|
46
65
|
return search_query.strip
|
47
66
|
end
|
48
|
-
|
49
|
-
def global_search
|
50
|
-
return search 6
|
51
|
-
end
|
52
|
-
|
53
|
-
def header_search
|
54
|
-
return search 3
|
55
|
-
end
|
56
|
-
|
57
|
-
def search max_results
|
58
|
-
result = Hash.new
|
59
|
-
total_shown = 0
|
60
|
-
SocialStream.subjects.each do |subject_sym|
|
61
|
-
result.update({subject_sym => ThinkingSphinx.search(get_search_query, :classes => [subject_sym.to_s.classify.constantize]).page(1).per(max_results)})
|
62
|
-
result.update({(subject_sym.to_s+"_total").to_sym => ThinkingSphinx.count(get_search_query, :classes => [subject_sym.to_s.classify.constantize])})
|
63
|
-
end
|
64
|
-
return result
|
65
|
-
end
|
66
|
-
|
67
|
-
def focus_search
|
68
|
-
string_class = params[:focus].singularize
|
69
|
-
search_class = string_class.classify.constantize
|
70
|
-
return ThinkingSphinx.search(get_search_query, :classes => [search_class]).page(params[:page]).per(FOCUS_SEARCH_PER_PAGE)
|
71
|
-
end
|
72
|
-
|
73
|
-
def nil_search
|
74
|
-
if params[:focus].present?
|
75
|
-
result = []
|
76
|
-
else
|
77
|
-
result = Hash.new
|
78
|
-
SocialStream.subjects.each do |subject_sym|
|
79
|
-
result.update({subject_sym => []})
|
80
|
-
result.update({(subject_sym.to_s+"_total").to_sym => 0})
|
81
|
-
end
|
82
|
-
end
|
83
|
-
return result
|
84
|
-
end
|
85
67
|
end
|
@@ -7,11 +7,7 @@ module ContactsHelper
|
|
7
7
|
if c.reflexive?
|
8
8
|
t('subject.this_is_you')
|
9
9
|
else
|
10
|
-
|
11
|
-
edit_contact_path(c),
|
12
|
-
:title => t("contact.#{ c.action }.title", :name => c.receiver.name)) +
|
13
|
-
"<br/>".html_safe +
|
14
|
-
link_to(t('actor.delete'), contact_path(c), :action => :destroy, :confirm => t('actor.confirm_delete'), :remote => true)
|
10
|
+
render :partial => 'contacts/link', :locals => { :contact => c }
|
15
11
|
end
|
16
12
|
|
17
13
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module SearchHelper
|
2
|
-
def
|
3
|
-
|
4
|
-
render :partial =>
|
5
|
-
:locals => {
|
2
|
+
def model_with_details model
|
3
|
+
model = model.model if model.is_a? Actor
|
4
|
+
render :partial => model.class.to_s.pluralize.downcase + '/' + model.class.to_s.downcase + '_with_details',
|
5
|
+
:locals => {model.class.to_s.downcase.to_sym => model}
|
6
6
|
end
|
7
7
|
|
8
8
|
def focus_search_link text, search_class, query
|
data/base/app/models/actor.rb
CHANGED
@@ -15,8 +15,6 @@ class Actor < ActiveRecord::Base
|
|
15
15
|
include SocialStream::Models::Supertype
|
16
16
|
include SocialStream::Models::Object
|
17
17
|
|
18
|
-
delegate :tag_list, :tag_list=, :tagged_with, :tag_counts, :to => :activity_object
|
19
|
-
|
20
18
|
validates_presence_of :name, :subject_type
|
21
19
|
|
22
20
|
acts_as_messageable
|
@@ -159,7 +157,7 @@ class Actor < ActiveRecord::Base
|
|
159
157
|
when String
|
160
158
|
emails << receiver_emails
|
161
159
|
when Array
|
162
|
-
|
160
|
+
receiver_emails.each do |receiver_email|
|
163
161
|
emails << receiver_email
|
164
162
|
end
|
165
163
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= link_to(contact.status, edit_contact_path(contact),
|
2
|
+
:title => t("contact.#{ contact.action }.title", :name => contact.receiver.name)) %>
|
3
|
+
|
4
|
+
<% if controller.controller_name == "contacts" %>
|
5
|
+
|
6
|
+
<br/>
|
7
|
+
<%= link_to(t('contact.delete'), contact_path(contact), :action => :destroy, :confirm => t('contact.confirm_delete'), :remote => true) %>
|
8
|
+
|
9
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div id="caracteristics">
|
2
|
+
<ul>
|
3
|
+
<li class="participants">
|
4
|
+
<%= t('frontpage.elements.participants') %>
|
5
|
+
</li>
|
6
|
+
<li class="organizers">
|
7
|
+
<%= t('frontpage.elements.organizers') %>
|
8
|
+
</li>
|
9
|
+
<li class="spaces">
|
10
|
+
<%= t('frontpage.elements.groups') %>
|
11
|
+
</li>
|
12
|
+
<li class="comments">
|
13
|
+
<%= t('frontpage.elements.comments') %>
|
14
|
+
</li>
|
15
|
+
<li class="tags">
|
16
|
+
<%= t('frontpage.elements.tags') %>
|
17
|
+
</li>
|
18
|
+
<li class="networks">
|
19
|
+
<%= t('frontpage.elements.networks') %>
|
20
|
+
</li>
|
21
|
+
</ul>
|
22
|
+
</div>
|
23
|
+
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% content_for :title do%>
|
2
|
-
<%= t('welcome') %>
|
2
|
+
<%= t('welcome', :site => t('site.name')) %>
|
3
3
|
<%end%>
|
4
4
|
|
5
5
|
<div class="banner_busqueda">
|
@@ -40,6 +40,7 @@
|
|
40
40
|
<div class="sentences">
|
41
41
|
<ul>
|
42
42
|
<li class="green"><%= t('frontpage.meet.sentence1') %></li>
|
43
|
+
<li class="green"><%= t('frontpage.meet.sentence2') %></li>
|
43
44
|
</ul>
|
44
45
|
</div>
|
45
46
|
</div>
|
@@ -65,30 +66,7 @@
|
|
65
66
|
</div>
|
66
67
|
|
67
68
|
<div id="wrapper_right">
|
68
|
-
|
69
|
-
<ul>
|
70
|
-
<li class="participants">
|
71
|
-
<%= t('frontpage.elements.participants') %>
|
72
|
-
</li>
|
73
|
-
<li class="organizers">
|
74
|
-
<%= t('frontpage.elements.organizers') %>
|
75
|
-
</li>
|
76
|
-
<li class="spaces">
|
77
|
-
<%= t('frontpage.elements.groups') %>
|
78
|
-
</li>
|
79
|
-
<li class="comments">
|
80
|
-
<%= t('frontpage.elements.comments') %>
|
81
|
-
</li>
|
82
|
-
<li class="tags">
|
83
|
-
<%= t('frontpage.elements.tags') %>
|
84
|
-
</li>
|
85
|
-
<li class="networks">
|
86
|
-
<%= t('frontpage.elements.networks') %>
|
87
|
-
</li>
|
88
|
-
</ul>
|
89
|
-
</div>
|
69
|
+
<%= render :partial => 'frontpage/caracteristics' %>
|
90
70
|
</div>
|
91
71
|
|
92
72
|
<div id="espacio_body_bottom"></div>
|
93
|
-
|
94
|
-
|
@@ -7,11 +7,11 @@
|
|
7
7
|
<div>
|
8
8
|
<div>
|
9
9
|
<div style="padding: 10px 5px 5px 5px;">
|
10
|
-
<span id
|
10
|
+
<%= raw t('invitation.invited', :sender => "<span id=\"name\" style=\"font-weight: bold;\">#{ h @sender.name}</span>", :site => link_to(t('site.name'), new_user_registration_url)) %>
|
11
11
|
</div>
|
12
12
|
<div style="position: static;padding: 5px; border: #2A3890 solid 2px; background-color: #E1EEF5; margin:10px; min-height: 125px; width: 500px;">
|
13
13
|
<div style="float:left; margin-right:7px; border: thin solid #D4E4EA; background-color: white; max-height: 119px;">
|
14
|
-
<img src="
|
14
|
+
<img src="<%= root_url + @sender.logo.url(:profile)%>" alt="<%=@sender.name%>">
|
15
15
|
</div>
|
16
16
|
<div style=" margin: 5px 5px 5px 5px;">
|
17
17
|
<p style="font-weight: bold; "><%= @sender.name %>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
<% end %>
|
21
21
|
</p>
|
22
22
|
<% if @message.blank? %>
|
23
|
-
<p style="text-align: justify;"><%= t('invitation.join_me')%></p>
|
23
|
+
<p style="text-align: justify;"><%= t('invitation.join_me', :site => t('site.name'))%></p>
|
24
24
|
<%else%>
|
25
25
|
<p style="text-align: justify; font-style: italic;">"<%= @message%>"</p>
|
26
26
|
<%end%>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<%= @sender.name
|
1
|
+
<%= t('invitation.invited', :sender => @sender.name, :site => t('site.name')) %>: <%= new_user_registration_url%>
|
2
2
|
|
3
3
|
<% if @message.blank? %>
|
4
|
-
<%= t('invitation.join_me')%>
|
4
|
+
<%= t('invitation.join_me', :site => t('site.name'))%>
|
5
5
|
<%else%>
|
6
6
|
"<%= @message%>"
|
7
7
|
<%end%>
|
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
<%= t('frontpage.meet.default')%>:
|
16
16
|
<%= t('frontpage.meet.sentence1') %>
|
17
|
+
<%= t('frontpage.meet.sentence2') %>
|
17
18
|
|
18
19
|
<%= t('frontpage.collaborate.default')%>:
|
19
20
|
<%= t('frontpage.collaborate.sentence1') %>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<%= form_tag invitations_path, :method=> :post, :class => "invitation_form", :remote => true do %>
|
12
12
|
<div class="block">
|
13
|
-
<h3 class= "form_row"><%=t('invitation.join')%></h3>
|
13
|
+
<h3 class= "form_row"><%=t('invitation.join', :site => t('site.name'))%></h3>
|
14
14
|
<div class="form_row form_label ">
|
15
15
|
<%= label_tag t('invitation.e-mails')%>
|
16
16
|
<span class= "form_comment">(Separated by commas)</span>
|
@@ -30,4 +30,4 @@
|
|
30
30
|
<div class="form_row space_center">
|
31
31
|
<%= submit_tag t('action.send'), :class => "button" %>
|
32
32
|
</div>
|
33
|
-
<%end%>
|
33
|
+
<%end%>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div id="header_dropdown_menu">
|
2
2
|
<ul class="sf-menu" >
|
3
3
|
<li class="header_dropdown_li">
|
4
|
-
<a href="#" class="sf-with-ul" id="current_subject_avatar_img" style="background: transparent url('<%= image_path current_subject.logo.url(:representation)%>') no-repeat left top;"><%= truncate_name current_subject.name %><span class="sf-sub-indicator"> »</span></a>
|
4
|
+
<a href="#" class="sf-with-ul" id="current_subject_avatar_img" style="background: transparent url('<%= image_path current_subject.logo.url(:representation)%>') no-repeat left top;"><%= truncate_name current_subject.name, :length => 15 %><span class="sf-sub-indicator"> »</span></a>
|
5
5
|
<ul>
|
6
6
|
<%= render :partial => 'layouts/header_dropdown_menu_sessions'%>
|
7
7
|
<li>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<ul>
|
6
6
|
<% representations.each do |representation| %>
|
7
7
|
<li>
|
8
|
-
<%= link_to truncate_name(representation.name), { :s => representation.slug }, { :style => "background: transparent url('#{ image_path representation.logo.url(:representation)}') no-repeat left center;margin-left:2px;" } %>
|
8
|
+
<%= link_to truncate_name(representation.name, :length => 15), { :s => representation.slug }, { :style => "background: transparent url('#{ image_path representation.logo.url(:representation)}') no-repeat left center;margin-left:2px;" } %>
|
9
9
|
</li>
|
10
10
|
<% end %>
|
11
11
|
</ul>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render :partial => 'objects/new_activity', :locals => {:receiver => receiver, :object => Post.new
|
1
|
+
<%= render :partial => 'objects/new_activity', :locals => {:receiver => receiver, :object => Post.new, :remote => true} %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% if @search_result.empty? %>
|
2
|
+
<div class="model_with_details">
|
3
|
+
<%= I18n.t('search.nothing') %>
|
4
|
+
</div>
|
5
|
+
<% else %>
|
6
|
+
<% total = 0 %>
|
7
|
+
<% @search_result.each do |model|%>
|
8
|
+
<div class="subject_search_results block left">
|
9
|
+
<%= model_with_details model %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
<br class="clearfloat">
|
13
|
+
<%= paginate @search_result %>
|
14
|
+
<% end %>
|