social_stream 0.10.4 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 %>
|