]> source.dussan.org Git - redmine.git/commitdiff
Preview description if it was edited while updating an issue (#741).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 28 Mar 2010 15:17:46 +0000 (15:17 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 28 Mar 2010 15:17:46 +0000 (15:17 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3623 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
app/views/issues/preview.html.erb [new file with mode: 0644]
test/functional/issues_controller_test.rb

index 10c8aebc11a86d277773e6b8b2c1851e2f2bd4bf..b97937a484e629679c621d595009e3f155231510 100644 (file)
@@ -453,9 +453,17 @@ class IssuesController < ApplicationController
   
   def preview
     @issue = @project.issues.find_by_id(params[:id]) unless params[:id].blank?
-    @attachements = @issue.attachments if @issue
-    @text = params[:notes] || (params[:issue] ? params[:issue][:description] : nil)
-    render :partial => 'common/preview'
+    if @issue
+      @attachements = @issue.attachments
+      @description = params[:issue] && params[:issue][:description]
+      if @description && @description.gsub(/(\r?\n|\n\r?)/, "\n") == @issue.description.to_s.gsub(/(\r?\n|\n\r?)/, "\n")
+        @description = nil
+      end
+      @notes = params[:notes]
+    else
+      @description = (params[:issue] ? params[:issue][:description] : nil)
+    end
+    render :layout => false
   end
   
   def auto_complete
diff --git a/app/views/issues/preview.html.erb b/app/views/issues/preview.html.erb
new file mode 100644 (file)
index 0000000..2377285
--- /dev/null
@@ -0,0 +1,11 @@
+<% if @notes %>
+       <fieldset class="preview"><legend><%= l(:field_notes) %></legend>
+               <%= textilizable @notes, :attachments => @attachements, :object => @issue %>
+       </fieldset>
+<% end %>
+
+<% if @description %>
+       <fieldset class="preview"><legend><%= l(:field_description) %></legend>
+               <%= textilizable @description, :attachments => @attachements, :object => @issue %>
+       </fieldset>
+<% end %>
index 23d09152cbe260e773cbed07f79da3c41ea6a222..757f36c19b387dfaec83d3c84b9a9ffe68ffafd9 100644 (file)
@@ -1271,6 +1271,22 @@ class IssuesControllerTest < ActionController::TestCase
                             :attributes => { :href => '#',
                                              :class => 'icon-del disabled' }
   end
+  
+  def test_preview_new_issue
+    @request.session[:user_id] = 2
+    post :preview, :project_id => '1', :issue => {:description => 'Foo'}
+    assert_response :success
+    assert_template 'preview'
+    assert_not_nil assigns(:description)
+  end
+                              
+  def test_preview_notes
+    @request.session[:user_id] = 2
+    post :preview, :project_id => '1', :id => 1, :issue => {:description => Issue.find(1).description}, :notes => 'Foo'
+    assert_response :success
+    assert_template 'preview'
+    assert_not_nil assigns(:notes)
+  end
 
   def test_auto_complete_routing
     assert_routing(