Commit 16fadb1e2fc80dd5d2a4b266945bfb14471f277f
1 parent
a9e829e6
Exists in
master
and in
28 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 | module FolderHelper | 1 | module FolderHelper |
2 | 2 | ||
3 | def list_articles(articles, recursive = false) | 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 | end | 9 | end |
6 | 10 | ||
7 | def display_article_in_listing(article, recursive = false, level = 0) | 11 | def display_article_in_listing(article, recursive = false, level = 0) |
8 | result = content_tag( | 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 | :class => 'sitemap-item' | 16 | :class => 'sitemap-item' |
12 | ) | 17 | ) |
13 | if recursive | 18 | if recursive |
app/models/folder.rb
@@ -18,8 +18,9 @@ class Folder < Article | @@ -18,8 +18,9 @@ class Folder < Article | ||
18 | include ActionController::UrlWriter | 18 | include ActionController::UrlWriter |
19 | include ActionView::Helpers::AssetTagHelper | 19 | include ActionView::Helpers::AssetTagHelper |
20 | include FolderHelper | 20 | include FolderHelper |
21 | + include DatesHelper | ||
21 | def to_html | 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 | end | 24 | end |
24 | 25 | ||
25 | def folder? | 26 | def folder? |
public/stylesheets/common.css
@@ -275,18 +275,22 @@ div.pending-tasks { | @@ -275,18 +275,22 @@ div.pending-tasks { | ||
275 | } | 275 | } |
276 | 276 | ||
277 | /* sitemap */ | 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 | display: block; | 280 | display: block; |
281 | border: none; | 281 | border: none; |
282 | text-decoration: none; | 282 | text-decoration: none; |
283 | } | 283 | } |
284 | -div.sitemap-item img { | 284 | +.sitemap-item img { |
285 | border: none; | 285 | border: none; |
286 | } | 286 | } |
287 | -div.sitemap-item a:hover { | ||
288 | - background-color: #f0f0f0; | 287 | +.sitemap-item a:hover { |
288 | + background: #e0e0e0; | ||
289 | color: red; | 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,9 +23,16 @@ class FolderTest < ActiveSupport::TestCase | ||
23 | f = Folder.create!(:profile => p, :name => 'f') | 23 | f = Folder.create!(:profile => p, :name => 'f') |
24 | f.children.create!(:profile => p, :name => 'onearticle') | 24 | f.children.create!(:profile => p, :name => 'onearticle') |
25 | f.children.create!(:profile => p, :name => 'otherarticle') | 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 | end | 36 | end |
30 | 37 | ||
31 | should 'show text body in HTML content' do | 38 | should 'show text body in HTML content' do |