Commit b3bb617789de1c6a58f30594841ac152f1e1df13
1 parent
0b8734e8
Exists in
master
and in
22 other branches
ActionItem183: better tags and profile info
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1503 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
18 changed files
with
110 additions
and
31 deletions
Show diff stats
app/helpers/application_helper.rb
| @@ -332,7 +332,7 @@ module ApplicationHelper | @@ -332,7 +332,7 @@ module ApplicationHelper | ||
| 332 | if File.exists?(File.join(RAILS_ROOT, 'public', filename)) | 332 | if File.exists?(File.join(RAILS_ROOT, 'public', filename)) |
| 333 | "@import url(#{filename});\n" | 333 | "@import url(#{filename});\n" |
| 334 | else | 334 | else |
| 335 | - '' | 335 | + "/* Not included: url(#{filename}) */\n" |
| 336 | end | 336 | end |
| 337 | end.join(), | 337 | end.join(), |
| 338 | { "type" => "text/css" }.merge(options) | 338 | { "type" => "text/css" }.merge(options) |
| @@ -342,7 +342,7 @@ module ApplicationHelper | @@ -342,7 +342,7 @@ module ApplicationHelper | ||
| 342 | def filename_for_stylesheet(name, in_theme) | 342 | def filename_for_stylesheet(name, in_theme) |
| 343 | result = '' | 343 | result = '' |
| 344 | if in_theme | 344 | if in_theme |
| 345 | - result << '/designs/templates/' + current_theme | 345 | + result << '/designs/themes/' + current_theme |
| 346 | end | 346 | end |
| 347 | result << '/stylesheets/' << name << '.css' | 347 | result << '/stylesheets/' << name << '.css' |
| 348 | end | 348 | end |
app/helpers/tags_helper.rb
| @@ -40,12 +40,17 @@ module TagsHelper | @@ -40,12 +40,17 @@ module TagsHelper | ||
| 40 | 40 | ||
| 41 | delta = max_size - min_size | 41 | delta = max_size - min_size |
| 42 | max = tags.values.max.to_f | 42 | max = tags.values.max.to_f |
| 43 | + min = tags.values.min.to_f | ||
| 43 | 44 | ||
| 44 | tags.map do |tag,count| | 45 | tags.map do |tag,count| |
| 45 | - v = count.to_f / max | 46 | + if ( max == min ) |
| 47 | + v = 0.5 | ||
| 48 | + else | ||
| 49 | + v = (count.to_f - min) / (max - min) | ||
| 50 | + end | ||
| 46 | style = ""+ | 51 | style = ""+ |
| 47 | "font-size: #{ (v * delta).round + min_size }px;"+ | 52 | "font-size: #{ (v * delta).round + min_size }px;"+ |
| 48 | - "top: #{ -4 - (v * 4).round }px;" | 53 | + "top: #{ -(delta/2) - (v * (delta/2)).round }px;" |
| 49 | destination = url.kind_of?(Hash) ? url_for(url.merge(tagname_option => tag)) : (url.to_s + tag) | 54 | destination = url.kind_of?(Hash) ? url_for(url.merge(tagname_option => tag)) : (url.to_s + tag) |
| 50 | 55 | ||
| 51 | display_count = options[:show_count] ? "<small><sup>(#{count})</sup></small>" : "" | 56 | display_count = options[:show_count] ? "<small><sup>(#{count})</sup></small>" : "" |
app/models/profile_info_block.rb
| @@ -4,6 +4,10 @@ class ProfileInfoBlock < Block | @@ -4,6 +4,10 @@ class ProfileInfoBlock < Block | ||
| 4 | _('Profile information block') | 4 | _('Profile information block') |
| 5 | end | 5 | end |
| 6 | 6 | ||
| 7 | + def help | ||
| 8 | + _('Basic information about <i>%{user}</i>. Here you see how much time <i>%{user}</i> is part of the <i>%{env}</i> enviroment, and useful links.') % { :user => self.owner.name(), :env => self.owner.environment.name() } | ||
| 9 | + end | ||
| 10 | + | ||
| 7 | def content | 11 | def content |
| 8 | block = self | 12 | block = self |
| 9 | lambda do | 13 | lambda do |
app/models/profile_list_block.rb
| @@ -66,7 +66,7 @@ class ProfileListBlock < Block | @@ -66,7 +66,7 @@ class ProfileListBlock < Block | ||
| 66 | lambda do | 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 | if list.empty? | 68 | if list.empty? |
| 69 | - list = '<i>'+ _('None') +'</i>' | 69 | + list = '<div class="common-profile-list-block-none">'+ _('None') +'</div>' |
| 70 | else | 70 | else |
| 71 | list = content_tag( 'ul', nl +' '+ list + nl ) | 71 | list = content_tag( 'ul', nl +' '+ list + nl ) |
| 72 | end | 72 | end |
app/models/tags_block.rb
| @@ -18,7 +18,7 @@ class TagsBlock < Block | @@ -18,7 +18,7 @@ class TagsBlock < Block | ||
| 18 | "\n<div class='tag_cloud'>\n"+ | 18 | "\n<div class='tag_cloud'>\n"+ |
| 19 | tag_cloud( owner.tags, :id, | 19 | tag_cloud( owner.tags, :id, |
| 20 | owner.generate_url(:controller => 'profile', :action => 'tag'), | 20 | owner.generate_url(:controller => 'profile', :action => 'tag'), |
| 21 | - :max_size => 18, :min_size => 9 ) + | 21 | + :max_size => 16, :min_size => 9 ) + |
| 22 | "\n</div><!-- end class='tag_cloud' -->\n"; | 22 | "\n</div><!-- end class='tag_cloud' -->\n"; |
| 23 | end | 23 | end |
| 24 | 24 |
app/views/blocks/profile_info.rhtml
| 1 | <h2><%= block.owner.name %></h2> | 1 | <h2><%= block.owner.name %></h2> |
| 2 | 2 | ||
| 3 | -<%= profile_image(block.owner) %> | 3 | +<div class="profile-info-picture"><%= profile_image(block.owner) %></div> |
| 4 | 4 | ||
| 5 | -<ul> | ||
| 6 | - <li><%= _('Since %d') % block.owner.created_at.year %></li> | 5 | +<ul class="profile-info-data"> |
| 6 | + <li><%= _('Since %{year}/%{month}') % { :year => block.owner.created_at.year, :month => block.owner.created_at.month } %></li> | ||
| 7 | <li><%= link_to _('Homepage'), block.owner.url %></li> | 7 | <li><%= link_to _('Homepage'), block.owner.url %></li> |
| 8 | <li><%= link_to _('View profile'), block.owner.public_profile_url %></li> | 8 | <li><%= link_to _('View profile'), block.owner.public_profile_url %></li> |
| 9 | </ul> | 9 | </ul> |
| 10 | 10 | ||
| 11 | -<div class='profile-info-options'> | 11 | +<div class="profile-info-options"> |
| 12 | <%= render :file => 'blocks/profile_info_actions/' + block.owner.class.name.underscore %> | 12 | <%= render :file => 'blocks/profile_info_actions/' + block.owner.class.name.underscore %> |
| 13 | </div> | 13 | </div> |
| 14 | 14 |
app/views/blocks/profile_info_actions/community.rhtml
| 1 | <ul> | 1 | <ul> |
| 2 | <% if logged_in? %> | 2 | <% if logged_in? %> |
| 3 | - <li><%= link_to _('Join this community'), :profile => user.identifier, :controller => 'memberships', :action => 'join', :id => profile.id %></li> | 3 | + <li><%= link_to content_tag('span', _('Join this community')), { :profile => user.identifier, :controller => 'memberships', :action => 'join', :id => profile.id }, :class => 'button with-text icon-add' %></li> |
| 4 | <% end %> | 4 | <% end %> |
| 5 | </ul> | 5 | </ul> |
app/views/blocks/profile_info_actions/person.rhtml
| 1 | <ul> | 1 | <ul> |
| 2 | <%if logged_in? && (user != profile) && (! user.friends.include?(profile)) %> | 2 | <%if logged_in? && (user != profile) && (! user.friends.include?(profile)) %> |
| 3 | - <li><%= link_to _('Add friend'), :profile => user.identifier, :controller => 'friends', :action => 'add', :id => profile.id %></li> | 3 | + <li><%= link_to content_tag('span', _('Add friend')), { :profile => user.identifier, :controller => 'friends', :action => 'add', :id => profile.id }, :class => 'button with-text icon-add' %></li> |
| 4 | <% end %> | 4 | <% end %> |
| 5 | </ul> | 5 | </ul> |
1.16 KB
919 Bytes
905 Bytes
1.18 KB
public/designs/themes/default/stylesheets/blocks/profile-info-block.css
0 → 100644
| @@ -0,0 +1,30 @@ | @@ -0,0 +1,30 @@ | ||
| 1 | +.profile-info-block h2 { | ||
| 2 | + text-align: center; | ||
| 3 | +} | ||
| 4 | + | ||
| 5 | +.profile-info-picture { | ||
| 6 | + border: 2px solid #204A87; | ||
| 7 | + padding: 1px; | ||
| 8 | + background: #FFF; | ||
| 9 | + margin-right: 40px; | ||
| 10 | +} | ||
| 11 | +.msie6 .profile-info-picture { | ||
| 12 | + margin-right: 20px; | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +.profile-info-data { | ||
| 16 | + width: 140px; | ||
| 17 | + font-size: 10px; | ||
| 18 | + text-align: right; | ||
| 19 | + position: relative; | ||
| 20 | + top: 6px; | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +.profile-info-options { | ||
| 24 | + clear: both; | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +.profile-info-options { | ||
| 28 | + text-align: center; | ||
| 29 | +} | ||
| 30 | + |
public/designs/themes/default/stylesheets/blocks/tags-block.css
0 → 100644
| @@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
| 1 | +.tags-block { | ||
| 2 | +} | ||
| 3 | +.box-2 .tags-block { | ||
| 4 | + text-align: right; | ||
| 5 | +} | ||
| 6 | + | ||
| 7 | +#content .tags-block .block-title { | ||
| 8 | + margin-bottom: 0px; | ||
| 9 | + background: url(../../images/bg-tags-top.png) 0% 0%; | ||
| 10 | + padding: 3px 0px 0px 20px; | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +.tags-block .tag_cloud { | ||
| 14 | + background: url(../../images/bg-tags.png) 0% 100%; | ||
| 15 | + padding: 0px 0px 5px 5px; | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +#content .box-2 .tags-block .block-title { | ||
| 19 | + background: url(../../images/bg-tags-top-2.png) no-repeat 100% 0%; | ||
| 20 | + padding: 3px 20px 0px 0px; | ||
| 21 | +} | ||
| 22 | +.box-2 .tags-block .tag_cloud { | ||
| 23 | + background: url(../../images/bg-tags-2.png) no-repeat 100% 100%; | ||
| 24 | + padding: 0px 5px 5px 0px; | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +.tags-block .tag_cloud a { | ||
| 28 | + text-decoration: none; | ||
| 29 | + padding: 0px 4px; | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +.tags-block .tag_cloud a:hover { | ||
| 33 | + color: red; | ||
| 34 | +} |
public/stylesheets/blocks/profile-info-block.css
| 1 | -div.profile-info-block img { | 1 | + |
| 2 | +.profile-info-picture { | ||
| 2 | float: right; | 3 | float: right; |
| 3 | - margin-left: 1em; | ||
| 4 | } | 4 | } |
| 5 | 5 | ||
| 6 | -div.profile-info-block { | 6 | +.profile-info-block { |
| 7 | padding-left: 1em; | 7 | padding-left: 1em; |
| 8 | padding-right: 1em; | 8 | padding-right: 1em; |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | -div.profile-info-block ul { | 11 | +.profile-info-block ul { |
| 12 | padding: 0px; | 12 | padding: 0px; |
| 13 | + margin: 0px; | ||
| 13 | } | 14 | } |
| 14 | 15 | ||
| 15 | -div.profile-info-block li { | 16 | +.profile-info-block li { |
| 16 | list-style: none; | 17 | list-style: none; |
| 17 | - border-bottom: 1px solid #d0d0d0; | ||
| 18 | - background: #f0f0f0; | 18 | + margin: 0px; |
| 19 | padding: 2px; | 19 | padding: 2px; |
| 20 | } | 20 | } |
public/stylesheets/blocks/profile-list-block.css
| @@ -59,6 +59,20 @@ | @@ -59,6 +59,20 @@ | ||
| 59 | .communities-block .block-footer-content { | 59 | .communities-block .block-footer-content { |
| 60 | text-align: center; | 60 | text-align: center; |
| 61 | font-size: 80%; | 61 | font-size: 80%; |
| 62 | - padding: 10px 0px 0px 0px; | 62 | + padding: 5px 0px 0px 0px; |
| 63 | +} | ||
| 64 | +.msie .enterprises-block .block-footer-content, | ||
| 65 | +.msie .communities-block .block-footer-content { | ||
| 66 | + padding: 0px; | ||
| 67 | + margin-top: -5px; | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +.common-profile-list-block-none { | ||
| 71 | + font-style: italic; | ||
| 72 | + margin-bottom: -10px; | ||
| 73 | +} | ||
| 74 | +.msie .common-profile-list-block-none { | ||
| 75 | + margin-bottom: 0px; | ||
| 76 | + padding-bottom: 10px; | ||
| 63 | } | 77 | } |
| 64 | 78 |
public/stylesheets/blocks/tags-block.css
| 1 | .tags-block { | 1 | .tags-block { |
| 2 | } | 2 | } |
| 3 | 3 | ||
| 4 | -.tags-block .help_tags { | ||
| 5 | - position: absolute; | ||
| 6 | - top: 10px; | ||
| 7 | - right: 2px; | ||
| 8 | -} | ||
| 9 | - | ||
| 10 | -.tag_cloud a { | 4 | +.tags-block .tag_cloud a { |
| 11 | text-decoration: none; | 5 | text-decoration: none; |
| 12 | padding: 0px 4px; | 6 | padding: 0px 4px; |
| 13 | } | 7 | } |
| 14 | 8 | ||
| 15 | -.tag_cloud a:hover { | 9 | +.tags-block .tag_cloud a:hover { |
| 16 | color: red; | 10 | color: red; |
| 17 | - background: #f0f0f0; | ||
| 18 | } | 11 | } |
public/stylesheets/common.css
| @@ -332,8 +332,7 @@ body.category4 #content h1, body.category4 #content h2, body.category4 #content | @@ -332,8 +332,7 @@ body.category4 #content h1, body.category4 #content h2, body.category4 #content | ||
| 332 | body.category4 #content h4, body.category4 #content h5, body.category4 #content h6 | 332 | body.category4 #content h4, body.category4 #content h5, body.category4 #content h6 |
| 333 | { color: #B80000 } | 333 | { color: #B80000 } |
| 334 | 334 | ||
| 335 | -.block-title { | ||
| 336 | - color: red; | 335 | +#content .block-title { |
| 337 | margin: 0px 0px 10px 0px; | 336 | margin: 0px 0px 10px 0px; |
| 338 | } | 337 | } |
| 339 | 338 |