Commit 16fadb1e2fc80dd5d2a4b266945bfb14471f277f
1 parent
a9e829e6
Exists in
master
and in
23 other branches
ActionItem601: making sitemap look a little better
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2349 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
4 changed files
with
28 additions
and
11 deletions
Show diff stats
app/helpers/folder_helper.rb
| 1 | 1 | module FolderHelper |
| 2 | 2 | |
| 3 | 3 | def list_articles(articles, recursive = false) |
| 4 | - articles.map {|item| display_article_in_listing(item, recursive, 0)}.join('') | |
| 4 | + content_tag( | |
| 5 | + 'table', | |
| 6 | + content_tag('tr', content_tag('th', _('Title')) + content_tag('th', _('Last update'))) + | |
| 7 | + articles.map {|item| display_article_in_listing(item, recursive, 0)}.join('') | |
| 8 | + ) | |
| 5 | 9 | end |
| 6 | 10 | |
| 7 | 11 | def display_article_in_listing(article, recursive = false, level = 0) |
| 8 | 12 | result = content_tag( |
| 9 | - 'div', | |
| 10 | - link_to((' ' * (level * 4) ) + image_tag(icon_for_article(article)) + article.name, article.url), | |
| 13 | + 'tr', | |
| 14 | + content_tag('td', link_to((' ' * (level * 4) ) + image_tag(icon_for_article(article)) + article.name, article.url))+ | |
| 15 | + content_tag('td', show_date(article.updated_at), :class => 'last-update'), | |
| 11 | 16 | :class => 'sitemap-item' |
| 12 | 17 | ) |
| 13 | 18 | if recursive | ... | ... |
app/models/folder.rb
| ... | ... | @@ -18,8 +18,9 @@ class Folder < Article |
| 18 | 18 | include ActionController::UrlWriter |
| 19 | 19 | include ActionView::Helpers::AssetTagHelper |
| 20 | 20 | include FolderHelper |
| 21 | + include DatesHelper | |
| 21 | 22 | def to_html |
| 22 | - content_tag('div', body) + tag('hr') + list_articles(children) | |
| 23 | + content_tag('div', body) + tag('hr') + (children.empty? ? content_tag('em', _('(empty folder)')) : list_articles(children)) | |
| 23 | 24 | end |
| 24 | 25 | |
| 25 | 26 | def folder? | ... | ... |
public/stylesheets/common.css
| ... | ... | @@ -275,18 +275,22 @@ div.pending-tasks { |
| 275 | 275 | } |
| 276 | 276 | |
| 277 | 277 | /* sitemap */ |
| 278 | -div.sitemap-item a:link, | |
| 279 | -div.sitemap-item a:visited { | |
| 278 | +.sitemap-item a:link, | |
| 279 | +.sitemap-item a:visited { | |
| 280 | 280 | display: block; |
| 281 | 281 | border: none; |
| 282 | 282 | text-decoration: none; |
| 283 | 283 | } |
| 284 | -div.sitemap-item img { | |
| 284 | +.sitemap-item img { | |
| 285 | 285 | border: none; |
| 286 | 286 | } |
| 287 | -div.sitemap-item a:hover { | |
| 288 | - background-color: #f0f0f0; | |
| 287 | +.sitemap-item a:hover { | |
| 288 | + background: #e0e0e0; | |
| 289 | 289 | color: red; |
| 290 | + text-decoration: underline; | |
| 291 | +} | |
| 292 | +.last-update { | |
| 293 | + font-size: small; | |
| 290 | 294 | } |
| 291 | 295 | |
| 292 | 296 | ... | ... |
test/unit/folder_test.rb
| ... | ... | @@ -23,9 +23,16 @@ class FolderTest < ActiveSupport::TestCase |
| 23 | 23 | f = Folder.create!(:profile => p, :name => 'f') |
| 24 | 24 | f.children.create!(:profile => p, :name => 'onearticle') |
| 25 | 25 | f.children.create!(:profile => p, :name => 'otherarticle') |
| 26 | + f.reload | |
| 26 | 27 | |
| 27 | - assert_tag_in_string f.to_html, :tag => 'div', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/onearticle$/ } }, :content => /onearticle/ | |
| 28 | - assert_tag_in_string f.to_html, :tag => 'div', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/otherarticle$/ } }, :content => /otherarticle/ | |
| 28 | + assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/onearticle$/ } }, :content => /onearticle/ | |
| 29 | + assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/otherarticle$/ } }, :content => /otherarticle/ | |
| 30 | + end | |
| 31 | + | |
| 32 | + should 'explictly advise if empty' do | |
| 33 | + p = create_user('testuser').person | |
| 34 | + f = Folder.create!(:profile => p, :name => 'f') | |
| 35 | + assert_tag_in_string f.to_html, :content => '(empty folder)' | |
| 29 | 36 | end |
| 30 | 37 | |
| 31 | 38 | should 'show text body in HTML content' do | ... | ... |