diff --git a/app/models/wiki.rb b/app/models/wiki.rb index e362273a..8233c3d4 100644 --- a/app/models/wiki.rb +++ b/app/models/wiki.rb @@ -20,6 +20,7 @@ class Wiki < ActiveRecord::Base has_many :pages, :class_name => 'WikiPage', :dependent => :destroy validates_presence_of :start_page + validates_format_of :start_page, :with => /^[^,\.\/\?\;\|]*$/ # find the page with the given title # if page doesn't exist, return a new page @@ -36,7 +37,7 @@ class Wiki < ActiveRecord::Base # turn a string into a valid page title def self.titleize(title) # replace spaces with _ and remove unwanted caracters - title = title.gsub(/\s+/, '_').delete(',;|') if title + title = title.gsub(/\s+/, '_').delete(',./?;|') if title # upcase the first letter title = title[0..0].upcase + title[1..-1] if title title diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index f2ea8fd5..b7964a11 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -20,7 +20,7 @@ class WikiPage < ActiveRecord::Base has_one :content, :class_name => 'WikiContent', :foreign_key => 'page_id', :dependent => :destroy validates_presence_of :title - validates_format_of :title, :with => /^[^,\s]*$/ + validates_format_of :title, :with => /^[^,\.\/\?\;\|\s]*$/ validates_uniqueness_of :title, :scope => :wiki_id, :case_sensitive => false validates_associated :content diff --git a/app/views/projects/_form.rhtml b/app/views/projects/_form.rhtml index 03a757d7..5f253d40 100644 --- a/app/views/projects/_form.rhtml +++ b/app/views/projects/_form.rhtml @@ -44,7 +44,7 @@ <%= hidden_field_tag "wiki_enabled", 0 %>
<% fields_for :wiki, @project.wiki, { :builder => TabularFormBuilder, :lang => current_language} do |wiki| %> -

<%= wiki.text_field :start_page, :size => 60, :required => true %>

+

<%= wiki.text_field :start_page, :size => 60, :required => true %>
<%= l(:text_unallowed_characters) %>: , . / ? ; |

<% # content_tag("div", "", :id => "wiki_start_page_auto_complete", :class => "auto_complete") + # auto_complete_field("wiki_start_page", { :url => { :controller => 'wiki', :action => 'auto_complete_for_wiki_page', :id => @project } }) %> diff --git a/lang/de.yml b/lang/de.yml index 9ef10cae..f8b7bc0d 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Lower case letters (a-z), numbers and dashes allo text_caracters_maximum: %d characters maximum. text_length_between: Length between %d and %d characters. text_tracker_no_workflow: No workflow defined for this tracker +text_unallowed_characters: Unallowed characters default_role_manager: Manager default_role_developper: Developer diff --git a/lang/en.yml b/lang/en.yml index 69070679..d26bb8a7 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Lower case letters (a-z), numbers and dashes allo text_caracters_maximum: %d characters maximum. text_length_between: Length between %d and %d characters. text_tracker_no_workflow: No workflow defined for this tracker +text_unallowed_characters: Unallowed characters default_role_manager: Manager default_role_developper: Developer diff --git a/lang/es.yml b/lang/es.yml index 026f5ddb..0e31980f 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Lower case letters (a-z), numbers and dashes allo text_caracters_maximum: %d characters maximum. text_length_between: Length between %d and %d characters. text_tracker_no_workflow: No workflow defined for this tracker +text_unallowed_characters: Unallowed characters default_role_manager: Manager default_role_developper: Desarrollador diff --git a/lang/fr.yml b/lang/fr.yml index 45d24caf..42b46eeb 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Lettres minuscules (a-z), chiffres et tirets auto text_caracters_maximum: %d caractères maximum. text_length_between: Longueur comprise entre %d et %d caractères. text_tracker_no_workflow: Aucun worflow n'est défini pour ce tracker +text_unallowed_characters: Caractères non autorisés default_role_manager: Manager default_role_developper: Développeur diff --git a/lang/it.yml b/lang/it.yml index 0bd9c1b1..49c04a6a 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Lower case letters (a-z), numbers and dashes allo text_caracters_maximum: %d characters maximum. text_length_between: Length between %d and %d characters. text_tracker_no_workflow: No workflow defined for this tracker +text_unallowed_characters: Unallowed characters default_role_manager: Manager default_role_developper: Sviluppatore diff --git a/lang/ja.yml b/lang/ja.yml index 235bf1be..66accb7f 100644 --- a/lang/ja.yml +++ b/lang/ja.yml @@ -408,6 +408,7 @@ text_project_identifier_info: '英小文字(a-z)と数字とダッシュ(-)が text_caracters_maximum: 最大 %d 文字です。 text_length_between: 長さは %d から %d 文字までです。 text_tracker_no_workflow: このトラッカーにワークフローが定義されていません +text_unallowed_characters: Unallowed characters default_role_manager: 管理者 default_role_developper: 開発者 diff --git a/lang/pt.yml b/lang/pt.yml index e107c2b3..0bb4156a 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -407,6 +407,7 @@ text_project_identifier_info: 'Letras minusculas (a-z), numeros e tracos permiti text_caracters_maximum: %d maximo de caracteres text_length_between: Tamanho entre %d e %d caracteres. text_tracker_no_workflow: Sem workflow definido para este tipo. +text_unallowed_characters: Unallowed characters default_role_manager: Analista de Negocio ou Gerente de Projeto default_role_developper: Desenvolvedor diff --git a/lang/zh.yml b/lang/zh.yml index 03ff2bc6..493838dc 100644 --- a/lang/zh.yml +++ b/lang/zh.yml @@ -410,6 +410,7 @@ text_project_identifier_info: 'Lower case letters (a-z), numbers and dashes allo text_caracters_maximum: %d characters maximum. text_length_between: Length between %d and %d characters. text_tracker_no_workflow: No workflow defined for this tracker +text_unallowed_characters: Unallowed characters default_role_manager: 管理员 default_role_developper: 开发人员