Defect #10673 » commas.patch
| app/models/wiki.rb | ||
|---|---|---|
| 24 | 24 |
acts_as_watchable |
| 25 | 25 | |
| 26 | 26 |
validates_presence_of :start_page |
| 27 |
validates_format_of :start_page, :with => /^[^,\.\/\?\;\|\:]*$/
|
|
| 27 |
validates_format_of :start_page, :with => /^[^\.\/\;\|\:]*$/
|
|
| 28 | 28 | |
| 29 | 29 |
safe_attributes 'start_page' |
| 30 | 30 | |
| ... | ... | |
| 89 | 89 |
# turn a string into a valid page title |
| 90 | 90 |
def self.titleize(title) |
| 91 | 91 |
# replace spaces with _ and remove unwanted caracters |
| 92 |
title = title.gsub(/\s+/, '_').delete(',./?;|:') if title
|
|
| 92 |
title = title.gsub(/\s+/, '_').delete('./?;|:') if title
|
|
| 93 | 93 |
# upcase the first letter |
| 94 | 94 |
title = (title.slice(0..0).upcase + (title.slice(1..-1) || '')) if title |
| 95 | 95 |
title |
| app/models/wiki_page.rb | ||
|---|---|---|
| 40 | 40 |
attr_accessor :redirect_existing_links |
| 41 | 41 | |
| 42 | 42 |
validates_presence_of :title |
| 43 |
validates_format_of :title, :with => /^[^,\.\/\?\;\|\s]*$/
|
|
| 43 |
validates_format_of :title, :with => /^[^\.\/\?\;\|\s]*$/ |
|
| 44 | 44 |
validates_uniqueness_of :title, :scope => :wiki_id, :case_sensitive => false |
| 45 | 45 |
validates_associated :content |
| 46 | 46 | |
| app/views/projects/settings/_wiki.html.erb | ||
|---|---|---|
| 5 | 5 | |
| 6 | 6 |
<div class="box tabular"> |
| 7 | 7 |
<p><%= f.text_field :start_page, :size => 60, :required => true %> |
| 8 |
<em class="info"><%= l(:text_unallowed_characters) %>: , . / ? ; : |</em></p>
|
|
| 8 |
<em class="info"><%= l(:text_unallowed_characters) %>: . / ? ; : |</em></p> |
|
| 9 | 9 |
</div> |
| 10 | 10 | |
| 11 | 11 |
<div class="contextual"> |
| config/routes.rb | ||
|---|---|---|
| 20 | 20 |
:conditions => {:method => :get}
|
| 21 | 21 | |
| 22 | 22 |
map.connect 'projects/:id/wiki', :controller => 'wikis', |
| 23 |
:action => 'edit', :conditions => {:method => :post}
|
|
| 23 |
:action => 'edit', :conditions => {:method => :post}, :requirements => { :id => /.*/ }
|
|
| 24 | 24 |
map.connect 'projects/:id/wiki/destroy', :controller => 'wikis', |
| 25 |
:action => 'destroy', :conditions => {:method => [:get, :post]}
|
|
| 25 |
:action => 'destroy', :conditions => {:method => [:get, :post]}, :requirements => { :id => /.*/ }
|
|
| 26 | 26 | |
| 27 | 27 |
map.with_options :controller => 'messages' do |messages_routes| |
| 28 | 28 |
messages_routes.with_options :conditions => {:method => :get} do |messages_views|
|
| ... | ... | |
| 179 | 179 | |
| 180 | 180 |
project.wiki_start_page 'wiki', :controller => 'wiki', :action => 'show', :conditions => {:method => :get}
|
| 181 | 181 |
project.wiki_index 'wiki/index', :controller => 'wiki', :action => 'index', :conditions => {:method => :get}
|
| 182 |
project.wiki_diff 'wiki/:id/diff/:version', :controller => 'wiki', :action => 'diff', :version => nil |
|
| 183 |
project.wiki_diff 'wiki/:id/diff/:version/vs/:version_from', :controller => 'wiki', :action => 'diff' |
|
| 184 |
project.wiki_annotate 'wiki/:id/annotate/:version', :controller => 'wiki', :action => 'annotate' |
|
| 182 |
project.wiki_diff 'wiki/:id/diff/:version', :controller => 'wiki', :action => 'diff', :version => nil, :requirements => { :id => /.*/ }
|
|
| 183 |
project.wiki_diff 'wiki/:id/diff/:version/vs/:version_from', :controller => 'wiki', :action => 'diff', :requirements => { :id => /.*/ }
|
|
| 184 |
project.wiki_annotate 'wiki/:id/annotate/:version', :controller => 'wiki', :action => 'annotate', :requirements => { :id => /.*/ }
|
|
| 185 | 185 |
project.resources :wiki, :except => [:new, :create], :member => {
|
| 186 | 186 |
:rename => [:get, :post], |
| 187 | 187 |
:history => :get, |
| ... | ... | |
| 191 | 191 |
}, :collection => {
|
| 192 | 192 |
:export => :get, |
| 193 | 193 |
:date_index => :get |
| 194 |
} |
|
| 194 |
}, :requirements => { :id => /.*/ }
|
|
| 195 | 195 |
end |
| 196 | 196 | |
| 197 | 197 |
map.connect 'news', :controller => 'news', :action => 'index' |