Commit ae069d09be61f18e42e3ccdab7081e631d880e11

Authored by Antonio Terceiro
1 parent e8085d8d

ActionItem1044: better profile page

app/helpers/profile_helper.rb
1 1 module ProfileHelper
2 2  
  3 + def display_field(title, object, field)
  4 + value = object.send(field)
  5 + if !value.blank?
  6 + if block_given?
  7 + value = yield(value)
  8 + end
  9 + content_tag('tr', content_tag('td', title, :class => 'field-name') + content_tag('td', value))
  10 + else
  11 + ''
  12 + end
  13 + end
  14 +
3 15 end
... ...
app/helpers/tags_helper.rb
... ... @@ -30,10 +30,10 @@ module TagsHelper
30 30 def tag_cloud(tags, tagname_option, url, options = {})
31 31  
32 32  
33   - return _('No tags yet.') + '<br/>' +
34   - '<a href="' + _('http://en.wikipedia.org/wiki/Tag_%28metadata%29') +
35   - '" class="button with-text icon-help" target="wptags"><span>' +
36   - _('What are tags?') + '</span></a>' if tags.empty?
  33 + return content_tag('em', _('No tags yet.')) +
  34 + ' <a href="' + _('http://en.wikipedia.org/wiki/Tag_%28metadata%29') +
  35 + '" target="wptags"><span>(' +
  36 + _('What are tags?') + ')</span></a>' if tags.empty?
37 37  
38 38 max_size = options[:max_size] || Cloud::MAX_SIZE
39 39 min_size = options[:min_size] || Cloud::MIN_SIZE
... ...
app/views/profile/_organization.rhtml 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +<tr>
  2 + <th colspan='2'><%= _('Basic information')%></th>
  3 +</tr>
  4 +<%= display_field(_('Name:'), profile, :name) { |name| link_to name, profile.url } %>
  5 +<tr>
  6 + <td colspan='2'>
  7 + <%= link_to _('Members'), :action => 'members' %></li>
  8 + </td>
  9 +</tr>
  10 +<% if profile.kind_of?(Enterprise) && !profile.environment.enabled?('disable_products_for_enterprises') %>
  11 + <tr>
  12 + <td colspan='2'>
  13 + <%= link_to _('Products/Services'), :controller => 'catalog', :action => 'index' %>
  14 + </td>
  15 + </tr>
  16 +<% end %>
... ...
app/views/profile/_person.rhtml 0 → 100644
... ... @@ -0,0 +1,38 @@
  1 +<tr>
  2 + <th colspan='2'><%= _('Basic information')%></th>
  3 +</tr>
  4 +<%= display_field(_('Name:'), profile, :name) { |name| link_to name, profile.url } %>
  5 +<%= display_field(_('Gender:'), profile, :sex) { |gender| { 'male' => _('Male'), 'female' => _('Female') }[gender] } %>
  6 +<%= display_field(_('Date of birth:'), profile, :birth_date) { |date| show_date(date) }%>
  7 +
  8 +<tr>
  9 + <th colspan='2'><%= _('Contact')%></th>
  10 +</tr>
  11 +<% if profile == user || profile.friends.include?(user) %>
  12 + <%= display_field(_('Address:'), profile, :address) %>
  13 + <%= display_field(_('ZIP code:'), profile, :zip_code) %>
  14 + <%= display_field(_('Contact phone:'), profile, :contact_phone) %>
  15 + <%= display_field(_('e-Mail:'), profile, :email) { |email| link_to email, 'mailto:'+email } %>
  16 +<% end %>
  17 +<%= display_field(_('Location:'), profile, :location) %>
  18 +
  19 +<tr>
  20 + <th colspan='2'><%= _('Work')%></th>
  21 +</tr>
  22 +<%= display_field(_('Organization:'), profile, :organization) %>
  23 +<%= display_field(_('Organization website:'), profile, :organization_website) { |url| link_to(url, url) }%>
  24 +</tr>
  25 +
  26 +<tr>
  27 + <th colspan='2'><%= _('Network')%></th>
  28 +</tr>
  29 +<tr>
  30 + <td colspan='2'>
  31 + <%= link_to __('Friends'), :action => 'friends' %>
  32 + &mdash; <%= link_to __('Communities'), :action => 'communities' %>
  33 + <% if !environment.enabled?('disable_asset_enterprises') %>
  34 + &mdash; <%= link_to __('Enterprises'), :action => 'enterprises' %>
  35 + <% end %>
  36 + </td>
  37 +</tr>
  38 +
... ...
app/views/profile/index.rhtml
... ... @@ -4,43 +4,29 @@
4 4 </div>
5 5 <% end %>
6 6  
7   -<h2><%= _("%s's profile") % profile.identifier %></h2>
  7 +<h1><%= _("%s's profile") % profile.identifier %></h1>
8 8  
9   -<ul>
10   - <li>
11   - <strong><%= _('Name:') %></strong>
12   - <%= profile.name %>
13   - </li>
14   - <li>
15   - <strong><%= _('Homepage:') %></strong>
16   - <%= link_to url_for(profile.url), profile.url %>
17   - </li>
18   -
19   - <%# FIXME %>
20   - <% if profile.kind_of? Person %>
21   - <% if profile.friends.include?(user) %>
22   - <li>
23   - <strong><%= _('e-Mail:') %></strong>
24   - <%= content_tag 'a', profile.email, :href => 'mailto:'+profile.email %>
25   - </li>
26   - <% end %>
27   - <li><%= link_to __('Friends'), :action => 'friends' %></li>
28   - <li><%= link_to __('Communities'), :action => 'communities' %></li>
29   - <li><%= link_to __('Enterprises'), :action => 'enterprises' %></li>
30   - <% end %>
31   - <% if profile.kind_of? Organization %>
32   - <li><%= link_to _('Members'), :action => 'members' %></li>
33   - <% end %>
34   - <% if profile.kind_of?(Enterprise) && !profile.environment.enabled?('disable_products_for_enterprises') %>
35   - <li><%= link_to _('Products/Services'), :controller => 'catalog', :action => 'index' %></li>
36   - <% end %>
37   -
38   - <li>
39   - <%= link_to _('Site map'), :action => 'sitemap' %>
40   - </li>
41   -
42   - <li>
43   - <%= _('Tags:') %>
44   - <%= tag_cloud @tags, :id, { :action => 'tag' }, :max_size => 18, :min_size => 10%>
45   - </li>
46   -</ul>
  9 +<table class='profile'>
  10 + <%= render :partial => partial_for_class(profile.class) %>
  11 + <tr>
  12 + <th colspan='2'>
  13 + <%= _('Content') %>
  14 + </th>
  15 + </tr>
  16 + <tr>
  17 + <td>
  18 + <%= _('Content published:') %>
  19 + </td>
  20 + <td>
  21 + <%= link_to _('Site map'), :action => 'sitemap' %>
  22 + </td>
  23 + </tr>
  24 + <tr>
  25 + <td>
  26 + <%= _('Tags:') %>
  27 + </td>
  28 + <td>
  29 + <%= tag_cloud @tags, :id, { :action => 'tag' }, :max_size => 18, :min_size => 10%>
  30 + </td>
  31 + </tr>
  32 +</table>
... ...
public/stylesheets/common.css
... ... @@ -276,6 +276,25 @@ td .button {
276 276 background-color: transparent;
277 277 }
278 278  
  279 +td.field-name {
  280 + color: #888;
  281 + width: 150px;
  282 + text-align: left;
  283 +}
  284 +
  285 +table.profile th {
  286 + border-bottom: 2px solid #eeeeec;
  287 + padding: 10px 0px 0px 0px;
  288 +}
  289 +table.profile td {
  290 + border: none;
  291 + padding-left: 0px;
  292 +}
  293 +table.profile tr:hover td {
  294 + background: none;
  295 +}
  296 +
  297 +
279 298 /* for fields with auto-completion */
280 299 div.auto-complete {
281 300 display: block;
... ...