Commit 6c532f5dfb7d278f3c53ffde6d911bdab2ff790b

Authored by Italo Valcy
Committed by Antonio Terceiro
1 parent 688faaee

fixing big file names liting in layout

(ActionItem1299)
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 %>
... ...
features/short_filename.feature 0 → 100644
... ... @@ -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 &lt; 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 = {})
... ...