From 46b13d9f4a66200cea17603c09bad9694971dcbd Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 6 Mar 2007 20:23:42 +0000 Subject: [PATCH] added "preview" functionality when editing wiki page git-svn-id: http://redmine.rubyforge.org/svn/branches/work@306 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- wiki/app/controllers/wiki_controller.rb | 7 ++++++- wiki/app/helpers/application_helper.rb | 8 ++++++-- wiki/app/views/wiki/_preview.rhtml | 3 +++ wiki/app/views/wiki/edit.rhtml | 19 +++++++++++++++---- wiki/lang/de.yml | 1 + wiki/lang/en.yml | 1 + wiki/lang/es.yml | 1 + wiki/lang/fr.yml | 1 + wiki/lang/ja.yml | 1 + 9 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 wiki/app/views/wiki/_preview.rhtml diff --git a/wiki/app/controllers/wiki_controller.rb b/wiki/app/controllers/wiki_controller.rb index 23d10c869..e47962033 100644 --- a/wiki/app/controllers/wiki_controller.rb +++ b/wiki/app/controllers/wiki_controller.rb @@ -17,7 +17,7 @@ class WikiController < ApplicationController layout 'base' - before_filter :find_wiki, :check_project_privacy + before_filter :find_wiki, :check_project_privacy, :except => [:preview] # display a page (in editing mode if it doesn't exist) def index @@ -88,6 +88,11 @@ class WikiController < ApplicationController end render :action => "special_#{page_title}" end + + def preview + @text = params[:content][:text] + render :partial => 'preview' + end private diff --git a/wiki/app/helpers/application_helper.rb b/wiki/app/helpers/application_helper.rb index 16ade7b9d..46eb12dd4 100644 --- a/wiki/app/helpers/application_helper.rb +++ b/wiki/app/helpers/application_helper.rb @@ -100,10 +100,14 @@ module ApplicationHelper when :anchor wiki_link_format = '"#" + Wiki.titleize($1)' else - wiki_link_format = '"/wiki/#{@project.id}/#{Wiki.titleize($1)}"' + if @project.nil? + wiki_link_format = 'Wiki.titleize($1)' + else + wiki_link_format = '"/wiki/#{@project.id}/#{Wiki.titleize($1)}"' + end end # turn wiki links in textile links: "text":url - text = text.gsub(/\[\[([^\]\|]+)(\|([^\]\|]+))?\]\]/) {|m| "\"#{$3 || $1}\":" + (eval wiki_link_format) } if @project + text = text.gsub(/\[\[([^\]\|]+)(\|([^\]\|]+))?\]\]/) {|m| "\"#{$3 || $1}\":" + (eval wiki_link_format) } text = (Setting.text_formatting == 'textile') && (ActionView::Helpers::TextHelper.method_defined? "textilize") ? auto_link(RedCloth.new(text, [:filter_html]).to_html) : simple_format(auto_link(h(text))) # turn "#id" patterns into links to issues text = text.gsub(/#(\d+)([^;\d])/, "#\\1\\2") diff --git a/wiki/app/views/wiki/_preview.rhtml b/wiki/app/views/wiki/_preview.rhtml new file mode 100644 index 000000000..42f638a7e --- /dev/null +++ b/wiki/app/views/wiki/_preview.rhtml @@ -0,0 +1,3 @@ +
<%= l(:label_preview) %> +<%= textilizable @text %> +
diff --git a/wiki/app/views/wiki/edit.rhtml b/wiki/app/views/wiki/edit.rhtml index f8f2ea041..6dba85adb 100644 --- a/wiki/app/views/wiki/edit.rhtml +++ b/wiki/app/views/wiki/edit.rhtml @@ -4,11 +4,20 @@

<%= @page.pretty_title %>

-<% form_for :content, @content, :url => {:action => 'edit', :page => @page.title} do |f| %> +<% form_for :content, @content, :url => {:action => 'edit', :page => @page.title}, :html => {:id => 'wiki_form'} do |f| %> <%= error_messages_for 'content' %> -

<%= f.text_area :text, :cols => 100, :rows => 25 %>

+

<%= f.text_area :text, :cols => 100, :rows => 25, :style => "width:99%;" %>


<%= f.text_field :comment, :size => 120 %>

-

<%= submit_tag l(:button_save) %>

+

<%= submit_tag l(:button_save) %> + <%= link_to_remote l(:label_preview), + { :url => { :controller => 'wiki', :action => 'preview' }, + :method => 'get', + :update => 'preview', + :with => "Form.serialize('wiki_form')", + :complete => visual_effect(:highlight, 'preview') + } %> +

+ <% end %> <% if Setting.text_formatting == 'textile' %> @@ -23,4 +32,6 @@ if (document.getElementById) { } //]]> -<% end %> \ No newline at end of file +<% end %> + +
\ No newline at end of file diff --git a/wiki/lang/de.yml b/wiki/lang/de.yml index 094d736a2..2f47486e7 100644 --- a/wiki/lang/de.yml +++ b/wiki/lang/de.yml @@ -323,6 +323,7 @@ label_result_plural: %d Resultate label_wiki: Wiki label_page_index: Index label_current_version: Gegenwärtige Version +label_preview: Vorbetrachtung button_login: Einloggen button_submit: Einreichen diff --git a/wiki/lang/en.yml b/wiki/lang/en.yml index dabf75e8b..92bfb2878 100644 --- a/wiki/lang/en.yml +++ b/wiki/lang/en.yml @@ -323,6 +323,7 @@ label_result_plural: %d results label_wiki: Wiki label_page_index: Index label_current_version: Current version +label_preview: Preview button_login: Login button_submit: Submit diff --git a/wiki/lang/es.yml b/wiki/lang/es.yml index f471ac66f..1c1251931 100644 --- a/wiki/lang/es.yml +++ b/wiki/lang/es.yml @@ -323,6 +323,7 @@ label_result_plural: %d resultados label_wiki: Wiki label_page_index: Índice label_current_version: Versión actual +label_preview: Previo button_login: Conexión button_submit: Someter diff --git a/wiki/lang/fr.yml b/wiki/lang/fr.yml index 399bd4756..41034be12 100644 --- a/wiki/lang/fr.yml +++ b/wiki/lang/fr.yml @@ -323,6 +323,7 @@ label_result_plural: %d résultats label_wiki: Wiki label_page_index: Index label_current_version: Version actuelle +label_preview: Prévisualisation button_login: Connexion button_submit: Soumettre diff --git a/wiki/lang/ja.yml b/wiki/lang/ja.yml index 734510f5a..c9e69969d 100644 --- a/wiki/lang/ja.yml +++ b/wiki/lang/ja.yml @@ -324,6 +324,7 @@ label_result_plural: %d results label_wiki: Wiki label_page_index: 索引 label_current_version: 最近版 +label_preview: 下検分 button_login: ログイン button_submit: 変更