diff --git a/app/helpers/comment_helper.rb b/app/helpers/comment_helper.rb index e6095a7..7122e81 100644 --- a/app/helpers/comment_helper.rb +++ b/app/helpers/comment_helper.rb @@ -2,7 +2,6 @@ module CommentHelper def article_title(article, args = {}) title = article.title - title = article.display_title if article.kind_of?(UploadedFile) && article.image? title = content_tag('h1', h(title), :class => 'title') if article.belongs_to_blog? unless args[:no_link] diff --git a/app/helpers/content_viewer_helper.rb b/app/helpers/content_viewer_helper.rb index 5119817..6a895bb 100644 --- a/app/helpers/content_viewer_helper.rb +++ b/app/helpers/content_viewer_helper.rb @@ -14,8 +14,7 @@ module ContentViewerHelper end def article_title(article, args = {}) - title = article.display_title if article.kind_of?(UploadedFile) && article.image? - title = article.title if title.blank? + title = article.title title = content_tag('h1', h(title), :class => 'title') if article.belongs_to_blog? || article.belongs_to_forum? unless args[:no_link] diff --git a/app/models/uploaded_file.rb b/app/models/uploaded_file.rb index 27917fe..bd3c42f 100644 --- a/app/models/uploaded_file.rb +++ b/app/models/uploaded_file.rb @@ -12,15 +12,12 @@ class UploadedFile < Article include ShortFilename - settings_items :title, :type => 'string' - xss_terminate :only => [ :title ] - - def title_with_default - title_without_default || short_filename(name, 60) + def title + if self.name.present? then self.name else self.filename end + end + def title= value + self.name = value end - alias_method_chain :title, :default - - validates_size_of :title, :maximum => 60, :if => (lambda { |file| !file.title.blank? }) sanitize_filename @@ -32,10 +29,6 @@ class UploadedFile < Article self.image? ? self.full_filename(:display).gsub(File.join(RAILS_ROOT, 'public'), '') : nil end - def display_title - title.blank? ? name : title - end - def first_paragraph '' end diff --git a/db/migrate/20140221142304_move_title_virtual_field_to_name_in_uploaded_file.rb b/db/migrate/20140221142304_move_title_virtual_field_to_name_in_uploaded_file.rb new file mode 100644 index 0000000..2f2a632 --- /dev/null +++ b/db/migrate/20140221142304_move_title_virtual_field_to_name_in_uploaded_file.rb @@ -0,0 +1,12 @@ +class MoveTitleVirtualFieldToNameInUploadedFile < ActiveRecord::Migration + def self.up + UploadedFile.find_each do |uploaded_file| + uploaded_file.name = uploaded_file.setting.delete :title + uploaded_file.send :update_without_callbacks + end + end + + def self.down + say "this migration can't be reverted" + end +end diff --git a/test/unit/uploaded_file_test.rb b/test/unit/uploaded_file_test.rb index 13a836f..d1a9d3a 100644 --- a/test/unit/uploaded_file_test.rb +++ b/test/unit/uploaded_file_test.rb @@ -119,24 +119,13 @@ class UploadedFileTest < ActiveSupport::TestCase assert_equal 'my title', UploadedFile.new(:title => 'my title').title end - should 'limit title to 140 characters' do - upload = UploadedFile.new - - upload.title = '+' * 61; upload.valid? - assert upload.errors[:title] - - upload.title = '+' * 60; upload.valid? - assert !upload.errors[:title] - - end - should 'always provide a display title' do upload = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain')) - assert_equal 'test.txt', upload.display_title + assert_equal 'test.txt', upload.title upload.title = 'My text file' - assert_equal 'My text file', upload.display_title + assert_equal 'My text file', upload.title upload.title = '' - assert_equal 'test.txt', upload.display_title + assert_equal 'test.txt', upload.title end should 'use name as title by default' do -- libgit2 0.21.2