Commit 6c532f5dfb7d278f3c53ffde6d911bdab2ff790b
Committed by
Antonio Terceiro
1 parent
688faaee
Exists in
master
and in
29 other branches
fixing big file names liting in layout
(ActionItem1299)
Showing
4 changed files
with
42 additions
and
2 deletions
Show diff stats
app/helpers/folder_helper.rb
... | ... | @@ -19,7 +19,7 @@ module FolderHelper |
19 | 19 | def display_article_in_listing(article, recursive = false, level = 0) |
20 | 20 | result = content_tag( |
21 | 21 | 'tr', |
22 | - content_tag('td', link_to((' ' * (level * 4) ) + image_tag(icon_for_article(article)) + article.name, article.url.merge(:view => true)))+ | |
22 | + content_tag('td', link_to((' ' * (level * 4) ) + image_tag(icon_for_article(article)) + short_filename(article.name), article.url.merge(:view => true)))+ | |
23 | 23 | content_tag('td', show_date(article.updated_at), :class => 'last-update'), |
24 | 24 | :class => 'sitemap-item' |
25 | 25 | ) |
... | ... | @@ -69,4 +69,11 @@ module FolderHelper |
69 | 69 | _('Edit folder') |
70 | 70 | end |
71 | 71 | |
72 | + def short_filename(filename, limit_chars = 43) | |
73 | + return filename if filename.size <= limit_chars | |
74 | + extname = File.extname(filename) | |
75 | + basename = File.basename(filename,extname) | |
76 | + str_complement = '(...)' | |
77 | + return basename[0..(limit_chars - extname.size - str_complement.size - 1)] + str_complement + extname | |
78 | + end | |
72 | 79 | end | ... | ... |
app/views/cms/view.rhtml
... | ... | @@ -72,7 +72,7 @@ |
72 | 72 | <tr> |
73 | 73 | <td> |
74 | 74 | <%= image_tag(icon_for_article(item)) %> |
75 | - <%= link_to item.name, :action => 'edit', :id => item.id %> | |
75 | + <%= link_to short_filename(item.name,30), :action => 'edit', :id => item.id %> | |
76 | 76 | </td> |
77 | 77 | <td> |
78 | 78 | <%= item.class.short_description %> | ... | ... |
... | ... | @@ -0,0 +1,21 @@ |
1 | +Feature: sitemap | |
2 | + As a noosfero user | |
3 | + I want to list articles | |
4 | + | |
5 | + Background: | |
6 | + Given I am on the homepage | |
7 | + And the following users | |
8 | + | login | name | | |
9 | + | joaosilva | Joao Silva | | |
10 | + And the following files | |
11 | + | owner | file | mime | | |
12 | + | joaosilva | AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.txt | text/plain | | |
13 | + | |
14 | + Scenario: view a folder page | |
15 | + When I am on /profile/joaosilva/sitemap | |
16 | + Then I should see "AGENDA_CULTURA_-_FESTA_DE_VAQUEIRO(...).txt" | |
17 | + | |
18 | + Scenario: view a folder page | |
19 | + Given I am logged in as "joaosilva" | |
20 | + When I am on /myprofile/joaosilva/cms | |
21 | + Then I should see "AGENDA_CULTURA_-_FEST(...).txt" | ... | ... |
test/unit/application_helper_test.rb
... | ... | @@ -558,6 +558,18 @@ class ApplicationHelperTest < Test::Unit::TestCase |
558 | 558 | assert_equal environment.theme, current_theme |
559 | 559 | end |
560 | 560 | |
561 | + should 'trunc to 15 chars the big filename' do | |
562 | + assert_equal 'AGENDA(...).mp3', short_filename('AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.mp3',15) | |
563 | + end | |
564 | + | |
565 | + should 'trunc to default limit the big filename' do | |
566 | + assert_equal 'AGENDA_CULTURA_-_FESTA_DE_VAQUEIRO(...).mp3', short_filename('AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.mp3') | |
567 | + end | |
568 | + | |
569 | + should 'does not trunc short filename' do | |
570 | + assert_equal 'filename.mp3', short_filename('filename.mp3') | |
571 | + end | |
572 | + | |
561 | 573 | protected |
562 | 574 | |
563 | 575 | def url_for(args = {}) | ... | ... |