Feature #8095 » per-project-formatting.diff
| app/controllers/wiki_controller.rb Tue May 03 07:33:46 2011 +0000 → app/controllers/wiki_controller.rb Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 273 | 273 | |
| 274 | 274 |
# Returns the default content of a new wiki page |
| 275 | 275 |
def initial_page_content(page) |
| 276 |
helper = Redmine::WikiFormatting.helper_for(Setting.text_formatting)
|
|
| 276 |
helper = Redmine::WikiFormatting.helper_for_project(@project)
|
|
| 277 | 277 |
extend helper unless self.instance_of?(helper) |
| 278 | 278 |
helper.instance_method(:initial_page_content).bind(self).call(page) |
| 279 | 279 |
end |
| app/helpers/application_helper.rb Tue May 03 07:33:46 2011 +0000 → app/helpers/application_helper.rb Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 456 | 456 |
project = options[:project] || @project || (obj && obj.respond_to?(:project) ? obj.project : nil) |
| 457 | 457 |
only_path = options.delete(:only_path) == false ? false : true |
| 458 | 458 | |
| 459 |
text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) }
|
|
| 459 |
text = Redmine::WikiFormatting.to_html(Redmine::WikiFormatting.text_formatting_of(project), text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) }
|
|
| 460 | 460 |
|
| 461 | 461 |
@parsed_headings = [] |
| 462 | 462 |
text = parse_non_pre_blocks(text) do |text| |
| ... | ... | |
| 931 | 931 |
private |
| 932 | 932 | |
| 933 | 933 |
def wiki_helper |
| 934 |
helper = Redmine::WikiFormatting.helper_for(Setting.text_formatting)
|
|
| 934 |
helper = Redmine::WikiFormatting.helper_for_project(@project)
|
|
| 935 | 935 |
extend helper |
| 936 | 936 |
return self |
| 937 | 937 |
end |
| app/models/project.rb Tue May 03 07:33:46 2011 +0000 → app/models/project.rb Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 78 | 78 |
validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-]*$/, :if => Proc.new { |p| p.identifier_changed? }
|
| 79 | 79 |
# reserved words |
| 80 | 80 |
validates_exclusion_of :identifier, :in => %w( new ) |
| 81 |
validates_inclusion_of :text_formatting, :in => Redmine::WikiFormatting.format_names, :allow_blank => true |
|
| 81 | 82 | |
| 82 | 83 |
before_destroy :delete_all_members |
| 83 | 84 | |
| ... | ... | |
| 553 | 554 |
'custom_field_values', |
| 554 | 555 |
'custom_fields', |
| 555 | 556 |
'tracker_ids', |
| 557 |
'text_formatting', |
|
| 556 | 558 |
'issue_custom_field_ids' |
| 557 | 559 | |
| 558 | 560 |
safe_attributes 'enabled_module_names', |
| app/views/projects/_form.rhtml Tue May 03 07:33:46 2011 +0000 → app/views/projects/_form.rhtml Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 17 | 17 |
<p><%= f.check_box :is_public %></p> |
| 18 | 18 |
<%= wikitoolbar_for 'project_description' %> |
| 19 | 19 | |
| 20 |
<p><%= f.select :text_formatting, Redmine::WikiFormatting.format_names, :include_blank => l(:label_default), :label => :setting_text_formatting %></p> |
|
| 21 | ||
| 20 | 22 |
<% @project.custom_field_values.each do |value| %> |
| 21 | 23 |
<p><%= custom_field_tag_with_label :project, value %></p> |
| 22 | 24 |
<% end %> |
| /dev/null Thu Jan 01 00:00:00 1970 +0000 → db/migrate/20110502193152_add_text_formatting_to_projects.rb Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 1 |
class AddTextFormattingToProjects < ActiveRecord::Migration |
|
| 2 |
def self.up |
|
| 3 |
add_column :projects, :text_formatting, :string |
|
| 4 |
end |
|
| 5 | ||
| 6 |
def self.down |
|
| 7 |
remove_column :projects, :text_formatting |
|
| 8 |
end |
|
| 9 |
end |
|
| lib/redmine/wiki_formatting.rb Tue May 03 07:33:46 2011 +0000 → lib/redmine/wiki_formatting.rb Wed May 04 02:08:42 2011 +0430 | ||
|---|---|---|
| 39 | 39 |
(entry && entry[:helper]) || Redmine::WikiFormatting::NullFormatter::Helper |
| 40 | 40 |
end |
| 41 | 41 |
|
| 42 |
def text_formatting_of(project) |
|
| 43 |
project && project.text_formatting && !project.text_formatting.empty? && project.text_formatting || Setting.text_formatting |
|
| 44 |
end |
|
| 45 | ||
| 46 |
def helper_for_project(project) |
|
| 47 |
helper_for(text_formatting(project)) |
|
| 48 |
end |
|
| 49 | ||
| 42 | 50 |
def format_names |
| 43 | 51 |
@@formatters.keys.map |
| 44 | 52 |
end |