Commit bbcc0618868a795d73c5a2ef8928e272824be3ea
Committed by
Rodrigo Souto
1 parent
69d6da5c
Exists in
master
and in
22 other branches
Improvments on folder visualization
- Refactoring CSS to better display folder itens - Creating method to display uploaded file names with extension in upper case Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com> Signed-off-by: André Bernardes <andrebsguedes@gmail.com> Signed-off-by: Tallys Martins <tallysmartins@gmail.com>
Showing
10 changed files
with
221 additions
and
56 deletions
Show diff stats
app/helpers/folder_helper.rb
@@ -25,39 +25,22 @@ module FolderHelper | @@ -25,39 +25,22 @@ module FolderHelper | ||
25 | articles.select {|article| article.display_to?(user)} | 25 | articles.select {|article| article.display_to?(user)} |
26 | end | 26 | end |
27 | 27 | ||
28 | - def display_content_in_listing(configure={}) | ||
29 | - recursive = configure[:recursive] || false | ||
30 | - list_type = configure[:list_type] || :folder | ||
31 | - level = configure[:level] || 0 | ||
32 | - content = FilePresenter.for configure[:content] | 28 | + def display_content_icon(content_item) |
29 | + content = FilePresenter.for content_item | ||
33 | content_link = if content.image? | 30 | content_link = if content.image? |
34 | - link_to(' ' * (level * 4) + | ||
35 | - image_tag(icon_for_article(content)) + short_filename(content.name), | 31 | + link_to( |
32 | + image_tag(icon_for_article(content, :bigicon)), | ||
36 | content.url.merge(:view => true) | 33 | content.url.merge(:view => true) |
37 | ) | 34 | ) |
38 | else | 35 | else |
39 | - link_to(' ' * (level * 4) + | ||
40 | - short_filename(content.name), | ||
41 | - content.url.merge(:view => true), :class => icon_for_article(content) | 36 | + link_to('', |
37 | + content.url.merge(:view => true), | ||
38 | + :class => icon_for_article(content, :bigicon) | ||
42 | ) | 39 | ) |
43 | end | 40 | end |
44 | - result = content_tag( | ||
45 | - 'tr', | ||
46 | - content_tag('td', content_link ) + | ||
47 | - content_tag('td', show_date(content.updated_at), :class => 'last-update'), | ||
48 | - :class => "#{list_type}-item" | ||
49 | - ) | ||
50 | - if recursive | ||
51 | - result + content.children.map {|item| | ||
52 | - display_content_in_listing :content=>item, :recursive=>recursive, | ||
53 | - :list_type=>list_type, :level=>level+1 | ||
54 | - }.join("\n") | ||
55 | - else | ||
56 | - result | ||
57 | - end | ||
58 | end | 41 | end |
59 | 42 | ||
60 | - def icon_for_article(article) | 43 | + def icon_for_article(article, size = 'icon') |
61 | article = FilePresenter.for article | 44 | article = FilePresenter.for article |
62 | icon = article.respond_to?(:icon_name) ? | 45 | icon = article.respond_to?(:icon_name) ? |
63 | article.icon_name : | 46 | article.icon_name : |
app/models/uploaded_file.rb
@@ -65,7 +65,7 @@ class UploadedFile < Article | @@ -65,7 +65,7 @@ class UploadedFile < Article | ||
65 | # :min_size => 2.megabytes | 65 | # :min_size => 2.megabytes |
66 | # :max_size => 5.megabytes | 66 | # :max_size => 5.megabytes |
67 | has_attachment :storage => :file_system, | 67 | has_attachment :storage => :file_system, |
68 | - :thumbnails => { :icon => [24,24], :thumb => '130x130>', :slideshow => '320x240>', :display => '640X480>' }, | 68 | + :thumbnails => { :icon => [24,24], :bigicon => [50,50], :thumb => '130x130>', :slideshow => '320x240>', :display => '640X480>' }, |
69 | :thumbnail_class => Thumbnail, | 69 | :thumbnail_class => Thumbnail, |
70 | :max_size => self.max_size | 70 | :max_size => self.max_size |
71 | 71 |
app/views/content_viewer/folder.html.erb
@@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
1 | +<div id="list-item"> | ||
2 | + <div class="item-info"> | ||
3 | + <div class="item-icon" > | ||
4 | + <%= display_content_icon(content) %> | ||
5 | + </div> | ||
6 | + <span class="item-description"> | ||
7 | + <%= link_to(short_filename_upper_ext(content.name), content.url) %> | ||
8 | + </span> | ||
9 | + <span class="item-date"><%= _("Published at: #{show_date(content.updated_at)}") %></span> | ||
10 | + </div> | ||
11 | +</div> | ||
0 | \ No newline at end of file | 12 | \ No newline at end of file |
app/views/shared/content_list.html.erb
1 | -<table class="<%= list_type %>-content"> | ||
2 | - <tr> | ||
3 | - <th><%= _('Title') %></th> | ||
4 | - <th><%= _('Last update') %></th> | ||
5 | - </tr> | 1 | +<ul class="<%= list_type %>-content"> |
6 | <% contents.each do |content| %> | 2 | <% contents.each do |content| %> |
7 | - <% if content.display_to?(user) %> | ||
8 | - <%= display_content_in_listing :content=>content, :list_type=>list_type, :recursive=>recursive %> | ||
9 | - <% end %> | 3 | + <li class="<%= list_type %>-item"> |
4 | + <% if content.display_to?(user) %> | ||
5 | + <%= render :partial => 'shared/content_item', :locals => { :content => content } %> | ||
6 | + <% end %> | ||
7 | + </li> | ||
10 | <% end %> | 8 | <% end %> |
11 | -</table> | 9 | +</ul> |
12 | 10 | ||
13 | <p><%= pagination_links contents, :param_name => 'npage', :page_links => true %></p> | 11 | <p><%= pagination_links contents, :param_name => 'npage', :page_links => true %></p> |
lib/short_filename.rb
1 | module ShortFilename | 1 | module ShortFilename |
2 | 2 | ||
3 | def short_filename(filename, limit_chars = 43) | 3 | def short_filename(filename, limit_chars = 43) |
4 | - return filename if filename.size <= limit_chars | ||
5 | extname = File.extname(filename) | 4 | extname = File.extname(filename) |
6 | basename = File.basename(filename,extname) | 5 | basename = File.basename(filename,extname) |
6 | + return shrink(basename, extname, limit_chars) + extname | ||
7 | + end | ||
8 | + | ||
9 | + def short_filename_upper_ext(filename, limit_chars = 43) | ||
10 | + extname = File.extname(filename) | ||
11 | + display_name = shrink(File.basename(filename, extname), extname, limit_chars) | ||
12 | + return display_name + " - " + extname.upcase.delete(".") if not extname.empty? else display_name | ||
13 | + end | ||
14 | + | ||
15 | + def shrink(filename, extname, limit_chars) | ||
16 | + return filename if filename.size <= limit_chars | ||
7 | str_complement = '(...)' | 17 | str_complement = '(...)' |
8 | - return basename[0..(limit_chars - extname.size - str_complement.size - 1)] + str_complement + extname | 18 | + return filename[0..(limit_chars - extname.size - str_complement.size - 1)] + str_complement |
9 | end | 19 | end |
10 | 20 | ||
11 | end | 21 | end |
public/designs/icons/tango/style.css
@@ -116,6 +116,107 @@ | @@ -116,6 +116,107 @@ | ||
116 | .icon-clock { background-image: url(Tango/16x16/actions/appointment.png) } | 116 | .icon-clock { background-image: url(Tango/16x16/actions/appointment.png) } |
117 | .icon-fullscreen { background-image: url(Tango/16x16/actions/view-fullscreen.png) } | 117 | .icon-fullscreen { background-image: url(Tango/16x16/actions/view-fullscreen.png) } |
118 | 118 | ||
119 | +/******************BIG ICONS************************/ | ||
120 | +.bigicon-embed { background-image: url(Tango/scalable/apps/utilities-terminal.svg) } | ||
121 | +.bigicon-edit { background-image: url(Tango/scalable/apps/text-editor.svg) } | ||
122 | +.bigicon-undo { background-image: url(Tango/scalable/actions/edit-undo.svg) } | ||
123 | +.bigicon-home { background-image: url(Tango/scalable/actions/go-home.svg) } | ||
124 | +.bigicon-home-not { background-image: url(mod/scalable/actions/go-home-not.svg) } | ||
125 | +.bigicon-new, | ||
126 | +.bigicon-suggest { background-image: url(Tango/scalable/actions/filenew.svg) } | ||
127 | +.bigicon-close { background-image: url(Tango/scalable/actions/gtk-cancel.svg) } | ||
128 | +.bigicon-newfolder { background-image: url(Tango/scalable/actions/folder-new.svg) } | ||
129 | +.bigicon-folder { background-image: url(Tango/scalable/places/folder.svg) } | ||
130 | +.bigicon-parent-folder { background-image: url(Tango/scalable/places/folder_home.svg) } | ||
131 | +.bigicon-newblog { background-image: url(mod/scalable/apps/text-editor.svg) } | ||
132 | +.bigicon-blog { background-image: url(mod/scalable/apps/text-editor.svg) } | ||
133 | +.bigicon-save { background-image: url(Tango/scalable/actions/filesave.svg) } | ||
134 | +.bigicon-send { background-image: url(Tango/scalable/actions/stock_mail-forward.svg) } | ||
135 | +.bigicon-cancel { background-image: url(Tango/scalable/actions/gtk-cancel.svg) } | ||
136 | +.bigicon-person { background-image: url(Tango/scalable/apps/system-config-users.svg) } | ||
137 | +.bigicon-product { background-image: url(Tango/scalable/mimetypes/package.svg) } | ||
138 | +.bigicon-delete { background-image: url(Tango/scalable/places/user-trash.svg) } | ||
139 | +.bigicon-back { background-image: url(Tango/scalable/actions/back.svg) } | ||
140 | +.bigicon-next { background-image: url(Tango/scalable/actions/go-next.svg) } | ||
141 | +.bigicon-add { background-image: url(Tango/scalable/actions/add.svg) } | ||
142 | +.bigicon-remove { background-image: url(Tango/scalable/actions/gtk-remove.svg) } | ||
143 | +.bigicon-more { background-image: url(Tango/scalable/actions/add.svg) } | ||
144 | +.bigicon-up { background-image: url(Tango/scalable/actions/go-up.svg) } | ||
145 | +.bigicon-down { background-image: url(Tango/scalable/actions/go-down.svg) } | ||
146 | +.bigicon-left { background-image: url(Tango/scalable/actions/go-previous.svg) } | ||
147 | +.bigicon-right { background-image: url(Tango/scalable/actions/go-next.svg) } | ||
148 | +.bigicon-up-disabled { background-image: url(Tango/scalable/actions/go-up.svg); opacity: 0.25; filter:alpha(opacity=25); } | ||
149 | +.bigicon-down-disabled { background-image: url(Tango/scalable/actions/go-down.svg); opacity: 0.25; filter:alpha(opacity=25); } | ||
150 | +.bigicon-left-disabled { background-image: url(Tango/scalable/actions/go-previous.svg); opacity: 0.25; filter:alpha(opacity=25); } | ||
151 | +.bigicon-right-disabled { background-image: url(Tango/scalable/actions/go-next.svg); opacity: 0.25; filter:alpha(opacity=25); } | ||
152 | +.bigicon-up-red { background-image: url(mod/scalable/actions/go-up-red.svg) } | ||
153 | +.bigicon-forward { background-image: url(Tango/scalable/actions/go-next.svg) } | ||
154 | +.bigicon-search { background-image: url(Tango/scalable/actions/search.svg) } | ||
155 | +.bigicon-ok { background-image: url(Tango/scalable/actions/media-playback-start.svg) } | ||
156 | +.bigicon-login { background-image: url(mod/scalable/actions/log-in.svg) } | ||
157 | +.bigicon-help { background-image: url(Tango/scalable/apps/gnome-help.svg) } | ||
158 | +.bigicon-help32on { background-image: url(Tango/scalable/apps/gnome-help.svg) } | ||
159 | +.bigicon-help32off { background-image: url(mod/scalable/apps/gnome-help-red.svg) } | ||
160 | +.bigicon-spread { background-image: url(mod/scalable/actions/spread.svg) } | ||
161 | +.bigicon-todo { background-image: url(Tango/scalable/actions/stock_paste.svg) } | ||
162 | +.bigicon-eyes { background-image: url(Tango/scalable/actions/find.svg) } | ||
163 | +.bigicon-menu-home { background-image: url(Tango/scalable/actions/go-home.svg) } | ||
164 | +.bigicon-menu-product { background-image: url(Tango/scalable/mimetypes/package.svg) } | ||
165 | +.bigicon-menu-enterprise { background-image: url(Tango/scalable/actions/go-home.svg) } | ||
166 | +.bigicon-menu-community { background-image: url(Tango/scalable/apps/system-config-users.svg) } | ||
167 | +.bigicon-menu-ctrl-panel { background-image: url(Tango/scalable/categories/preferences-desktop.svg) } | ||
168 | +.bigicon-menu-admin { background-image: url(Tango/scalable/categories/preferences-system.svg) } | ||
169 | +.bigicon-menu-my-groups { background-image: url(Tango/scalable/apps/system-config-users.svg) } | ||
170 | +.bigicon-menu-login { background-image: url(mod/scalable/actions/log-in.svg) } | ||
171 | +.bigicon-menu-logout { background-image: url(mod/scalable/actions/log-out.svg) } | ||
172 | +.bigicon-menu-search { background-image: url(Tango/scalable/actions/search.svg) } | ||
173 | +.bigicon-menu-events { background-image: url(Tango/scalable/mimetypes/stock_calendar.svg) } | ||
174 | +.bigicon-event { background-image: url(Tango/scalable/mimetypes/stock_calendar.svg) } | ||
175 | +.bigicon-newevent { background-image: url(Tango/scalable/mimetypes/stock_calendar.svg) } | ||
176 | +.bigicon-menu-articles { background-image: url(Tango/scalable/apps/text-editor.svg) } | ||
177 | +.bigicon-menu-people { background-image: url(mod/scalable/apps/user.svg) } | ||
178 | +.bigicon-menu-mail { background-image: url(Tango/scalable/apps/email.svg) } | ||
179 | +.bigicon-upload-file { background-image: url(Tango/scalable/actions/filesave.svg) } | ||
180 | +.bigicon-newupload-file { background-image: url(Tango/scalable/actions/filesave.svg) } | ||
181 | +.bigicon-slideshow { background-image: url(Tango/scalable/mimetypes/x-office-presentation.svg) } | ||
182 | +.bigicon-photos { background-image: url(Tango/scalable/devices/camera-photo.svg) } | ||
183 | +.bigicon-vertical-toggle { background-image: url(Tango/scalable/actions/mail-send-receive.svg) } | ||
184 | +.bigicon-text-html { background-image: url(Tango/scalable/mimetypes/text-html.svg) } | ||
185 | +.bigicon-text-plain { background-image: url(Tango/scalable/mimetypes/text-x-generic.svg) } | ||
186 | +.bigicon-image-svg-xml { background-image: url(Tango/scalable/mimetypes/image-x-generic.svg) } | ||
187 | +.bigicon-application-octet-stream { background-image: url(Tango/scalable/mimetypes/binary.svg) } | ||
188 | +.bigicon-application-x-gzip { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-x-gzip.svg) } | ||
189 | +.bigicon-application-postscript { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-postscript.svg) } | ||
190 | +.bigicon-application-pdf { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-pdf.svg) } | ||
191 | +.bigicon-application-ogg { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-ogg.svg) } | ||
192 | +.bigicon-video, .icon-video-mpeg { background-image: url(Tango/scalable/mimetypes/video-x-generic.svg) } | ||
193 | +.bigicon-application-vnd-oasis-opendocument-text { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.text.svg) } | ||
194 | +.bigicon-application-vnd-oasis-opendocument-spreadsheet { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.spreadsheet.svg) } | ||
195 | +.bigicon-application-vnd-oasis-opendocument-presentation { background-image: url(Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.presentation.svg) } | ||
196 | +.bigicon-welcome-page { background-image: url(mod/scalable/mimetypes/welcome-page.svg) } | ||
197 | +.bigicon-blocks { background-image: url(mod/scalable/mimetypes/blocks.svg) } | ||
198 | +.bigicon-header-footer { background-image: url(mod/scalable/mimetypes/header-footer.svg) } | ||
199 | +.bigicon-appearance { background-image: url(Tango/scalable/apps/preferences-desktop-wallpaper.svg) } | ||
200 | +.bigicon-media-pause { background-image: url(Tango/scalable/actions/media-playback-pause.svg) } | ||
201 | +.bigicon-media-play { background-image: url(Tango/scalable/actions/media-playback-start.svg) } | ||
202 | +.bigicon-media-prev { background-image: url(Tango/scalable/actions/media-skip-backward.svg) } | ||
203 | +.bigicon-media-next { background-image: url(Tango/scalable/actions/media-skip-forward.svg) } | ||
204 | +.bigicon-lock { background-image: url(Tango/scalable/actions/lock.svg) } | ||
205 | +.bigicon-chat { background-image: url(Tango/scalable/apps/internet-group-chat.svg); background-repeat: no-repeat } | ||
206 | +.bigicon-reply { background-image: url(Tango/scalable/actions/mail-reply-sender.svg) } | ||
207 | +.bigicon-newforum { background-image: url(Tango/scalable/apps/internet-group-chat.svg) } | ||
208 | +.bigicon-forum { background-image: url(Tango/scalable/apps/system-users.svg) } | ||
209 | +.bigicon-gallery { background-image: url(Tango/scalable/mimetypes/image-x-generic.svg) } | ||
210 | +.bigicon-newgallery { background-image: url(Tango/scalable/mimetypes/image-x-generic.svg) } | ||
211 | +.bigicon-locale { background-image: url(Tango/scalable/apps/preferences-desktop-locale.svg) } | ||
212 | +.bigicon-user-removed { background-image: url(Tango/scalable/actions/gtk-cancel.svg) } | ||
213 | +.bigicon-user-unknown { background-image: url(Tango/scalable/status/dialog-error.svg) } | ||
214 | +.bigicon-alert { background-image: url(Tango/scalable/status/dialog-warning.svg) } | ||
215 | +.bigicon-clone { background-image: url(Tango/scalable/actions/edit-copy.svg) } | ||
216 | +.bigicon-activate-user { background-image: url(Tango/scalable/emblems/emblem-system.svg) } | ||
217 | +.bigicon-deactivate-user { background-image: url(Tango/scalable/emblems/emblem-unreadable.svg) } | ||
218 | +.bigicon-clock { background-image: url(Tango/scalable/actions/appointment.svg) } | ||
219 | + | ||
119 | /******************LARGE ICONS********************/ | 220 | /******************LARGE ICONS********************/ |
120 | .image-gallery-item .folder { background-image: url(mod/96x96/places/folder.png) } | 221 | .image-gallery-item .folder { background-image: url(mod/96x96/places/folder.png) } |
121 | .image-gallery-item .gallery { background-image: url(mod/96x96/mimetypes/image-x-generic.png) } | 222 | .image-gallery-item .gallery { background-image: url(mod/96x96/mimetypes/image-x-generic.png) } |
public/stylesheets/application.css
@@ -3830,6 +3830,11 @@ table.cms-articles .icon:hover { | @@ -3830,6 +3830,11 @@ table.cms-articles .icon:hover { | ||
3830 | 3830 | ||
3831 | /* Folders */ | 3831 | /* Folders */ |
3832 | 3832 | ||
3833 | +.article-body ul.folder-content { | ||
3834 | + list-style-type: none; | ||
3835 | + padding: 0; | ||
3836 | +} | ||
3837 | + | ||
3833 | .folder-content .folder-item img { | 3838 | .folder-content .folder-item img { |
3834 | vertical-align: middle; | 3839 | vertical-align: middle; |
3835 | position: relative; | 3840 | position: relative; |
@@ -3895,6 +3900,63 @@ table.cms-articles .icon:hover { | @@ -3895,6 +3900,63 @@ table.cms-articles .icon:hover { | ||
3895 | right: auto; | 3900 | right: auto; |
3896 | left: auto; | 3901 | left: auto; |
3897 | } | 3902 | } |
3903 | + | ||
3904 | +/**************Folder Style**********************/ | ||
3905 | + | ||
3906 | +.list-item{ | ||
3907 | + font-family: arial; | ||
3908 | + color: #172738; | ||
3909 | +} | ||
3910 | + | ||
3911 | +div.folder-description { | ||
3912 | + padding-bottom: 15px; | ||
3913 | + border-bottom: 1px solid #CCCCCC; | ||
3914 | +} | ||
3915 | + | ||
3916 | +.list-item h2{ | ||
3917 | + border-bottom:1px solid #ccc; | ||
3918 | + margin:0px; | ||
3919 | +} | ||
3920 | + | ||
3921 | +.item-info{ | ||
3922 | + border-bottom: 1px solid #ccc; | ||
3923 | + line-height: 25px; | ||
3924 | + padding:25px 20px; | ||
3925 | +} | ||
3926 | + | ||
3927 | +.item-info a{ | ||
3928 | + text-decoration: none !important; | ||
3929 | + font-size: 16px; | ||
3930 | + font-weight: bold; | ||
3931 | +} | ||
3932 | + | ||
3933 | +.item-icon a { | ||
3934 | + float: left; | ||
3935 | + width: 50px; | ||
3936 | + height: 50px; | ||
3937 | + background-repeat: no-repeat; | ||
3938 | + background-position: center center; | ||
3939 | +} | ||
3940 | + | ||
3941 | +span.item-type { | ||
3942 | + font-size: 12px; | ||
3943 | +} | ||
3944 | + | ||
3945 | +.item-description{ | ||
3946 | + display: block; | ||
3947 | + position:relative; | ||
3948 | + margin-left: 15%; | ||
3949 | + padding-left: 10px; | ||
3950 | +} | ||
3951 | + | ||
3952 | +.item-date{ | ||
3953 | + display:block; | ||
3954 | + position:relative; | ||
3955 | + font-size: 12px; | ||
3956 | + margin-left: 15%; | ||
3957 | + padding-left: 10px; | ||
3958 | +} | ||
3959 | + | ||
3898 | /************* enterprise homepage style *****************/ | 3960 | /************* enterprise homepage style *****************/ |
3899 | 3961 | ||
3900 | div.event-info { | 3962 | div.event-info { |
test/unit/folder_helper_test.rb
@@ -89,27 +89,14 @@ class FolderHelperTest < ActionView::TestCase | @@ -89,27 +89,14 @@ class FolderHelperTest < ActionView::TestCase | ||
89 | assert_not_includes result, article | 89 | assert_not_includes result, article |
90 | end | 90 | end |
91 | 91 | ||
92 | - should 'list subitems as HTML content' do | 92 | + should 'display the proper content icon' do |
93 | profile = create_user('folder-owner').person | 93 | profile = create_user('folder-owner').person |
94 | folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id}) | 94 | folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id}) |
95 | article1 = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id, :updated_at => DateTime.now }) | 95 | article1 = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id, :updated_at => DateTime.now }) |
96 | article2 = fast_create(Article, {:name => 'Article2', :parent_id => folder.id, :profile_id => profile.id, :updated_at => DateTime.now }) | 96 | article2 = fast_create(Article, {:name => 'Article2', :parent_id => folder.id, :profile_id => profile.id, :updated_at => DateTime.now }) |
97 | - self.stubs(:params).returns({:npage => nil}) | ||
98 | - | ||
99 | - contents = folder.children.order('updated_at DESC').paginate(:per_page => 10, :page => params[:npage]) | ||
100 | - expects(:user).returns(profile).at_least_once | ||
101 | - expects(:list_type).returns(:folder).at_least_once | ||
102 | - expects(:recursive).returns(false).at_least_once | ||
103 | - expects(:pagination_links).with(anything, anything).returns('') | ||
104 | - list = render 'shared/content_list', binding | ||
105 | - expects(:render).with(:file => 'shared/content_list', | ||
106 | - :locals => { :contents => contents, :recursive => false, :list_type => :folder } | ||
107 | - ).returns(list) | ||
108 | - | ||
109 | - result = list_contents(:contents=>contents) | ||
110 | - | ||
111 | - assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article1/ | ||
112 | - assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article2/ | 97 | + |
98 | + assert_tag_in_string display_content_icon(article1), :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } | ||
99 | + assert_tag_in_string display_content_icon(article2), :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } | ||
113 | end | 100 | end |
114 | 101 | ||
115 | should 'explictly advise if empty' do | 102 | should 'explictly advise if empty' do |
test/unit/short_filename_test.rb
@@ -16,5 +16,19 @@ class NoosferoFilenamesTest < ActiveSupport::TestCase | @@ -16,5 +16,19 @@ class NoosferoFilenamesTest < ActiveSupport::TestCase | ||
16 | assert_equal 'filename.mp3', short_filename('filename.mp3') | 16 | assert_equal 'filename.mp3', short_filename('filename.mp3') |
17 | end | 17 | end |
18 | 18 | ||
19 | + should 'highlight the file extansion' do | ||
20 | + assert_equal 'AGENDA(...) - MP3', short_filename_upper_ext('AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.mp3',15) | ||
21 | + | ||
22 | + assert_equal 'AGENDA - MP3', short_filename_upper_ext('AGENDA.mp3',15) | ||
23 | + end | ||
24 | + | ||
25 | + should 'return the full filename if its size is smaller than the limit' do | ||
26 | + assert_equal 'AGENDA', shrink('AGENDA', 'mp3', 15) | ||
27 | + end | ||
28 | + | ||
29 | + should 'shrink the filename if its size is bigger than the limit' do | ||
30 | + assert_equal 'AGENDA(...)', shrink('AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA', 'mp3', 14) | ||
31 | + end | ||
32 | + | ||
19 | end | 33 | end |
20 | 34 |