Commit bbd50ab9af163a7cccb24ee6d16329438221edc7

Authored by Daniela Feitosa
1 parent 9c58ba96

Added limit to names of articles

(ActionItem2522)
app/models/article.rb
... ... @@ -23,6 +23,8 @@ class Article < ActiveRecord::Base
23 23 validates_presence_of :profile_id, :name
24 24 validates_presence_of :slug, :path, :if => lambda { |article| !article.name.blank? }
25 25  
  26 + validates_length_of :name, :maximum => 150
  27 +
26 28 validates_uniqueness_of :slug, :scope => ['profile_id', 'parent_id'], :message => N_('The title (article name) is already being used by another article, please use another title.'), :if => lambda { |article| !article.slug.blank? }
27 29  
28 30 belongs_to :last_changed_by, :class_name => 'Person', :foreign_key => 'last_changed_by_id'
... ...
app/views/cms/_blog.rhtml
... ... @@ -4,7 +4,7 @@
4 4  
5 5 <%= render :file => 'shared/tiny_mce' %>
6 6  
7   -<%= required f.text_field(:name, :size => '64', :onchange => "updateUrlField(this, 'article_slug')") %>
  7 +<%= required f.text_field(:name, :size => '64', :maxlength => 150, :onchange => "updateUrlField(this, 'article_slug')") %>
8 8  
9 9 <%= render :partial => 'general_fields' %>
10 10  
... ...
app/views/cms/_event.rhtml
... ... @@ -3,7 +3,7 @@
3 3 <%# TODO add Textile help here %>
4 4 <%= render :file => 'shared/tiny_mce' %>
5 5  
6   -<%= required f.text_field('name', :size => '64') %>
  6 +<%= required f.text_field('name', :size => '64', :maxlength => 150) %>
7 7  
8 8 <%= render :partial => 'general_fields' %>
9 9 <%= render :partial => 'translatable' %>
... ...
app/views/cms/_folder.rhtml
1 1 <%= required_fields_message %>
2 2  
3   -<%= required f.text_field('name', :size => '64') %>
  3 +<%= required f.text_field('name', :size => '64', :maxlength => 150) %>
4 4 <%= render :partial => 'general_fields' %>
5 5  
6 6 <%= labelled_form_field(_('Description:'), text_area(:article, :body, :rows => 3, :cols => 64)) %>
... ...
app/views/cms/_forum.rhtml
... ... @@ -4,7 +4,7 @@
4 4  
5 5 <%= render :file => 'shared/tiny_mce' %>
6 6  
7   -<%= required f.text_field(:name, :size => '64', :onchange => "updateUrlField(this, 'article_slug')") %>
  7 +<%= required f.text_field(:name, :size => '64', :maxlength => 150, :onchange => "updateUrlField(this, 'article_slug')") %>
8 8  
9 9 <%= render :partial => 'general_fields' %>
10 10  
... ...
app/views/cms/_gallery.rhtml
1 1 <%= required_fields_message %>
2 2  
3   -<%= required f.text_field('name', :size => '64') %>
  3 +<%= required f.text_field('name', :size => '64', :maxlength => 150) %>
4 4  
5 5 <%= render :partial => 'general_fields' %>
6 6  
... ...
app/views/cms/_published_article.rhtml
1   -<%= f.text_field 'name', :size => '64' %>
  1 +<%= f.text_field 'name', :size => '64', :maxlength => 150 %>
2 2 <%= render :partial => 'general_fields' %>
3 3  
4 4 <p><%= _('This is a republication of "%s", by %s.') % [link_to(h(@article.reference_article.name), @article.reference_article.url), @article.reference_article.profile.name] %></p>
... ...
app/views/cms/_raw_html_article.rhtml
1 1 <%= required_fields_message %>
2 2  
3   -<%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64')) %>
  3 +<%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %>
4 4  
5 5 <%= render :partial => 'general_fields' %>
6 6 <%= render :partial => 'translatable' %>
... ...
app/views/cms/_textile_article.rhtml
... ... @@ -2,7 +2,7 @@
2 2  
3 3 <%# TODO add Textile help here %>
4 4  
5   -<%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '72')) %>
  5 +<%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '72', :maxlength => 150)) %>
6 6  
7 7 <%= render :partial => 'general_fields' %>
8 8 <%= render :partial => 'translatable' %>
... ...
app/views/cms/_tiny_mce_article.rhtml
... ... @@ -3,7 +3,7 @@
3 3 <%= render :file => 'shared/tiny_mce' %>
4 4  
5 5 <div>
6   - <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64')) %>
  6 + <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %>
7 7  
8 8 <%= render :partial => 'general_fields' %>
9 9 <%= render :partial => 'translatable' %>
... ...
test/unit/article_test.rb
... ... @@ -30,6 +30,16 @@ class ArticleTest &lt; ActiveSupport::TestCase
30 30 assert !a.errors.invalid?(:name)
31 31 end
32 32  
  33 + should 'limit length of names' do
  34 + a = Article.new(:name => 'a'*151)
  35 + a.valid?
  36 + assert a.errors.invalid?(:name)
  37 +
  38 + a.name = 'a'*150
  39 + a.valid?
  40 + assert !a.errors.invalid?(:name)
  41 + end
  42 +
33 43 should 'require value for slug and path if name is filled' do
34 44 a = Article.new(:name => 'test article')
35 45 a.slug = nil
... ...