Commit b16df6d9a6fc8c39e42f233455805dacc83e46e0
1 parent
2011e00c
Exists in
master
and in
28 other branches
ActionItem488: better profile list and "search for sellers" box
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2091 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
8 changed files
with
87 additions
and
101 deletions
Show diff stats
app/controllers/public/search_controller.rb
... | ... | @@ -177,12 +177,12 @@ class SearchController < ApplicationController |
177 | 177 | @results = {} |
178 | 178 | @names = {} |
179 | 179 | [ |
180 | - [ :people, _('Recently registered people'), @finder.recent('people') ], | |
181 | - [ :communities, _('Recently created communities'), @finder.recent('communities') ], | |
182 | - [ :articles, _('Recent articles'), @finder.recent('articles') ], | |
180 | + [ :people, _('Newer profiles'), @finder.recent('people') ], | |
181 | + [ :communities, _('Newer communities'), @finder.recent('communities') ], | |
182 | + [ :articles, _('Newer articles'), @finder.recent('articles') ], | |
183 | 183 | [ :most_commented_articles, _('Most commented articles'), @finder.most_commented_articles ], |
184 | - [ :enterprises, _('Recently created enterprises'), @finder.recent('enterprises') ], | |
185 | - [ :events, _('Recently added events'), @finder.current_events(params[:year], params[:month]) ] | |
184 | + [ :enterprises, _('Newer enterprises'), @finder.recent('enterprises') ], | |
185 | + [ :events, _('Near events TODO'), @finder.current_events(params[:year], params[:month]) ] | |
186 | 186 | ].each do |key, name, list| |
187 | 187 | @results[key] = list |
188 | 188 | @names[key] = name | ... | ... |
app/helpers/application_helper.rb
... | ... | @@ -424,6 +424,8 @@ module ApplicationHelper |
424 | 424 | def profile_image(profile, size=:portrait, opt={}) |
425 | 425 | opt[:alt] ||= profile.name() |
426 | 426 | opt[:title] ||= '' |
427 | + opt[:class] ||= '' | |
428 | + opt[:class] += ( profile.class == Person ? ' photo' : ' logo' ) | |
427 | 429 | image_tag(profile_icon(profile, size), opt ) |
428 | 430 | end |
429 | 431 | |
... | ... | @@ -446,10 +448,18 @@ module ApplicationHelper |
446 | 448 | |
447 | 449 | # displays a link to the profile homepage with its image (as generated by |
448 | 450 | # #profile_image) and its name below it. |
449 | - def profile_image_link(profile, size=:portrait) | |
450 | - link_to( '<div>'+ profile_image(profile, size) +'</div><span>'+ profile.name() +'</span>', profile.url, | |
451 | - :class => 'profile_link', | |
452 | - :help => _('Click on this icon to go to the <b>%s</b>\'s home page') % profile.name ) | |
451 | + def profile_image_link( profile, size=:portrait, tag='li' ) | |
452 | + #link_to( '<div>'+ profile_image(profile, size) +'</div><span>'+ profile.name() +'</span>', profile.url, | |
453 | + # :class => 'profile_link', | |
454 | + # :help => _('Click on this icon to go to the <b>%s</b>\'s home page') % profile.name ) | |
455 | + content_tag tag, | |
456 | + link_to( | |
457 | + content_tag( 'span', profile_image(profile, size), :class => 'profile-image' ) + | |
458 | + content_tag( 'span', profile.name(), :class => ( profile.class == Person ? 'fn' : 'org' ) ), | |
459 | + profile.url, | |
460 | + :class => 'profile_link url', | |
461 | + :help => _('Click on this icon to go to the <b>%s</b>\'s home page') % profile.name ), | |
462 | + :class => 'vcard' | |
453 | 463 | end |
454 | 464 | |
455 | 465 | def text_field_with_local_autocomplete(name, choices, html_options = {}) | ... | ... |
app/models/profile_list_block.rb
... | ... | @@ -64,15 +64,21 @@ class ProfileListBlock < Block |
64 | 64 | title = self.title |
65 | 65 | nl = "\n" |
66 | 66 | lambda do |
67 | - list = profiles.map {|item| content_tag( 'li', profile_image_link(item) ) }.join("\n ") | |
67 | + #list = profiles.map {|item| content_tag( 'li', profile_image_link(item) ) }.join("\n ") | |
68 | + count=0 | |
69 | + list = profiles.map {|item| | |
70 | + count+=1 | |
71 | + profile_image_link( item ) #+ | |
72 | + #( ( count%2 == 0 && count < profiles.size ) ? nl+'</tr><tr>' : '' ) | |
73 | + }.join("\n ") | |
68 | 74 | if list.empty? |
69 | 75 | list = '<div class="common-profile-list-block-none">'+ _('None') +'</div>' |
70 | 76 | else |
71 | - list = content_tag( 'ul', nl +' '+ list + nl ) | |
77 | + list = content_tag 'ul', nl +' '+ list + nl | |
72 | 78 | end |
79 | + block_title(title) + nl + | |
73 | 80 | '<div class="common-profile-list-block">' + |
74 | - nl + block_title(title) + nl + list + nl + | |
75 | - '</div>' | |
81 | + nl + list + nl + '</div>' | |
76 | 82 | end |
77 | 83 | end |
78 | 84 | ... | ... |
app/views/search/_sellers_form.rhtml
1 | 1 | <h3><%= _('Search for sellers') %></h3> |
2 | + | |
2 | 3 | <% form_tag({:controller => 'search', :action => 'assets'}, {:method => 'get'}) do %> |
3 | - <p class="search-in-opt"><%= _('Search in:') %><dir> | |
4 | - <%= labelled_radio_button _('Products'), 'asset', 'products', true %><br /> | |
5 | - <%= labelled_radio_button _('Enterprises'), 'asset', 'enterprises', false %></dir></p> | |
6 | - <p class="search-distance-opt"><%= labelled_text_field _('Distance (km): '), 'radius' %></p> | |
7 | - <p class="search-from-opt"><%= labelled_text_field _('From: '), 'region[name]', nil, :id => 'search_region_block' %></p> | |
8 | - <div id='search_region_block_auto_complete' class='auto-complete'></div> | |
9 | - <%= auto_complete_field('search_region_block', :url => {:controller => 'search', :action => 'complete_region'}) %> | |
10 | - <br/> | |
11 | - <%= submit_tag _('Search') %> | |
4 | + | |
5 | + <div class="search-in-opt"><%= _('Search in:') %> | |
6 | + <dir> | |
7 | + <%= labelled_radio_button _('Products'), 'asset', 'products', true %><br /> | |
8 | + <%= labelled_radio_button _('Enterprises'), 'asset', 'enterprises', false %> | |
9 | + </dir> | |
10 | + </div> | |
11 | + | |
12 | + <div class="formfield search-distance-opt"> | |
13 | + <%= labelled_text_field _('Distance (km): '), 'radius' %> | |
14 | + </div> | |
15 | + <div class="formfield search-from-opt"> | |
16 | + <%= labelled_text_field _('From: '), 'region[name]', nil, :id => 'search_region_block' %> | |
17 | + <div id="search_region_block_auto_complete" class="auto-complete"></div> | |
18 | + <%= auto_complete_field('search_region_block', :url => {:controller => 'search', :action => 'complete_region'}) %> | |
19 | + </div> | |
20 | + | |
21 | + <div class="button-bar"> | |
22 | + <%= submit_tag _('Search'), :class => 'button with-text icon-search' %> | |
23 | + </div> | |
24 | + | |
12 | 25 | <% end %> | ... | ... |
public/designs/themes/ecosol/stylesheets/blocks/profile-list-block.css
1 | 1 | |
2 | -.common-profile-list-block { | |
3 | - color: #B8CFE7; | |
4 | -} | |
5 | - | |
6 | -#content .common-profile-list-block .block-title { | |
7 | - font-size: 14px; | |
8 | -} | |
9 | - | |
10 | -.common-profile-list-block li a { | |
11 | - border: 2px solid #FFF; | |
12 | -} | |
13 | - | |
14 | -.common-profile-list-block li a:hover { | |
15 | - border: 2px solid #2A5896; | |
16 | - background: #B8CFE7; | |
17 | - color: #035; | |
18 | -} | |
19 | - | |
20 | -.enterprises-block .block-footer-content, | |
21 | -.friends-block .block-footer-content, | |
22 | -.communities-block .block-footer-content { | |
23 | - text-align: center; | |
24 | - font-size: 80%; | |
25 | - padding: 5px 0px 0px 0px; | |
26 | -} | |
27 | -.msie .enterprises-block .block-footer-content, | |
28 | -.msie .friends-block .block-footer-content, | |
29 | -.msie .communities-block .block-footer-content { | |
30 | - padding: 0px; | |
31 | - margin-top: -5px; | |
32 | -} | |
33 | - | |
34 | -.common-profile-list-block-none { | |
35 | - font-style: italic; | |
36 | - margin-bottom: -10px; | |
37 | -} | |
38 | -.msie .common-profile-list-block-none { | |
39 | - margin-bottom: 0px; | |
40 | - padding-bottom: 10px; | |
41 | -} | |
42 | - | |
43 | -.common-profile-list-block .button-bar { | |
44 | - padding-top: 15px; | |
45 | - clear: left; | |
2 | +.common-profile-list-block .vcard a { | |
3 | + -moz-border-radius: 10px; | |
4 | + color: #026; | |
46 | 5 | } |
47 | 6 | ... | ... |
public/designs/themes/zen3/stylesheets/blocks/profile-list-block.css
1 | 1 | |
2 | -.common-profile-list-block li a { | |
3 | - border: 2px solid transparent; | |
4 | - color: #C00; | |
5 | - -moz-border-radius: 4px; | |
6 | -} | |
7 | -.msie6 .common-profile-list-block li a { | |
8 | - border: 2px solid #FFF; | |
2 | +.common-profile-list-block .vcard a { | |
3 | + -moz-border-radius: 10px; | |
9 | 4 | } |
10 | 5 | |
11 | -.common-profile-list-block li a:hover { | |
6 | +.common-profile-list-block .vcard a:hover { | |
12 | 7 | border: 2px solid #C00; |
13 | - background: #fcaf3e; | |
8 | + background: #FCAF3E; | |
14 | 9 | color: #FFF; |
15 | 10 | } |
16 | 11 | ... | ... |
public/designs/themes/zen3/stylesheets/login-box.css
public/stylesheets/blocks/profile-list-block.css
1 | -.common-profile-list-block { | |
2 | - text-align: center; | |
3 | -} | |
4 | 1 | |
5 | -.common-profile-list-block ul { | |
2 | +#content .common-profile-list-block ul, | |
3 | +#content .common-profile-list-block li { | |
6 | 4 | margin: 0px; |
7 | 5 | padding: 0px; |
6 | + list-style: none; | |
7 | + display: inline; | |
8 | 8 | } |
9 | 9 | |
10 | -#content .common-profile-list-block li { | |
11 | - list-style: none; | |
12 | - margin: 0px; | |
13 | - padding: 0px; | |
10 | +.common-profile-list-block .vcard a { | |
11 | + width: 92px; | |
12 | + height: 95px; | |
13 | + max-height: 92px; | |
14 | + padding-top: 3px; | |
15 | + margin: 0px 2px; | |
14 | 16 | float: left; |
17 | + border: 2px solid transparent; | |
18 | + text-align: center; | |
19 | + overflow: hidden; | |
20 | + font-size: 11px; | |
21 | + text-decoration: none; | |
22 | + color: #000; | |
23 | +} | |
24 | +.msie6 .common-profile-list-block .vcard a { | |
25 | + border: 2px solid #FFF; | |
26 | +} | |
27 | +.common-profile-list-block .vcard a:hover { | |
28 | + border: 2px solid #2A5896; | |
29 | + background: #B8CFE7; | |
15 | 30 | } |
16 | 31 | |
17 | -.common-profile-list-block li a { | |
32 | +.common-profile-list-block span { | |
18 | 33 | display: block; |
19 | - height: 100px; | |
20 | - padding-top: 2px; | |
21 | - width: 96px; | |
22 | 34 | overflow: hidden; |
23 | - text-decoration: none; | |
24 | - font-size: 9px; | |
25 | -} | |
26 | -.msie .common-profile-list-block li a { | |
27 | - line-height: 10px; | |
28 | - cursor: pointer; | |
29 | 35 | } |
30 | 36 | |
31 | -.common-profile-list-block li div { | |
37 | +.common-profile-list-block .profile-image { | |
32 | 38 | width: 96px; |
39 | + display: table-cell; | |
40 | + vertical-align: middle; | |
33 | 41 | height: 64px; |
34 | 42 | } |
35 | 43 | |
36 | -.common-profile-list-block li span { | |
37 | - display: block; | |
38 | - width: 92px; | |
39 | -} | |
40 | - | |
41 | -.common-profile-list-block li img { | |
44 | +.common-profile-list-block img { | |
42 | 45 | border: none; |
43 | 46 | } |
44 | 47 | ... | ... |