OSDN Git Service

Adds support for preview when editing an issue note (#5520).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Mar 2011 21:45:30 +0000 (21:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Mar 2011 21:45:30 +0000 (21:45 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5246 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/previews_controller.rb
app/views/journals/_notes_form.rhtml
test/functional/previews_controller_test.rb

index 612025c..f1dbedf 100644 (file)
@@ -1,3 +1,20 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
 class PreviewsController < ApplicationController
   before_filter :find_project
 
index da0f44f..7e44f4a 100644 (file)
@@ -5,7 +5,17 @@
           :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %>
     <%= call_hook(:view_journals_notes_form_after_notes, { :journal => @journal}) %>
     <p><%= submit_tag l(:button_save) %>
+    <%= link_to_remote l(:label_preview), 
+                       { :url => preview_issue_path(:project_id => @project, :id => @journal.issue),
+                         :method => 'post',
+                         :update => "journal_#{@journal.id}_preview",
+                         :with => "Form.serialize('journal-#{@journal.id}-form')",
+                         :complete => "Element.scrollTo('journal_#{@journal.id}_preview')"
+                       }, :accesskey => accesskey(:preview) %>
+    |
     <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " +
                                                     "Element.show('journal-#{@journal.id}-notes'); return false;" %></p>
+
+    <div id="journal_<%= @journal.id %>_preview" class="wiki"></div>
 <% end %>
 <%= wikitoolbar_for "journal_#{@journal.id}_notes" %>
index 45f51f6..c5261d5 100644 (file)
@@ -1,3 +1,20 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
 require File.expand_path('../../test_helper', __FILE__)
 
 class PreviewsControllerTest < ActionController::TestCase
@@ -18,6 +35,15 @@ class PreviewsControllerTest < ActionController::TestCase
     assert_template 'preview'
     assert_not_nil assigns(:notes)
   end
+  
+  def test_preview_journal_notes_for_update
+    @request.session[:user_id] = 2
+    post :issue, :project_id => '1', :id => 1, :notes => 'Foo'
+    assert_response :success
+    assert_template 'preview'
+    assert_not_nil assigns(:notes)
+    assert_tag :p, :content => 'Foo'
+  end
 
   def test_news
     get :news, :project_id => 1,