From 13d6b3129b941bfb269e9927aacf8a919afc4fe9 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 28 Mar 2011 21:45:30 +0000 Subject: [PATCH] Adds support for preview when editing an issue note (#5520). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5246 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/previews_controller.rb | 17 ++++++++++++++ app/views/journals/_notes_form.rhtml | 10 ++++++++ test/functional/previews_controller_test.rb | 26 +++++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/app/controllers/previews_controller.rb b/app/controllers/previews_controller.rb index 612025cb8..f1dbedf7b 100644 --- a/app/controllers/previews_controller.rb +++ b/app/controllers/previews_controller.rb @@ -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 diff --git a/app/views/journals/_notes_form.rhtml b/app/views/journals/_notes_form.rhtml index da0f44fa0..7e44f4a91 100644 --- a/app/views/journals/_notes_form.rhtml +++ b/app/views/journals/_notes_form.rhtml @@ -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}) %>

<%= 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;" %>

+ +
<% end %> <%= wikitoolbar_for "journal_#{@journal.id}_notes" %> diff --git a/test/functional/previews_controller_test.rb b/test/functional/previews_controller_test.rb index 45f51f61d..c5261d549 100644 --- a/test/functional/previews_controller_test.rb +++ b/test/functional/previews_controller_test.rb @@ -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, -- 2.39.5