Commit 16fadb1e2fc80dd5d2a4b266945bfb14471f277f
1 parent
a9e829e6
Exists in
master
and in
29 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 | ... | ... |