]> source.dussan.org Git - redmine.git/commitdiff
Added preview on add/edit issue form.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 6 Oct 2007 08:54:05 +0000 (08:54 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 6 Oct 2007 08:54:05 +0000 (08:54 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@812 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
app/controllers/wiki_controller.rb
app/views/common/_preview.rhtml [new file with mode: 0644]
app/views/issues/_form.rhtml
app/views/issues/edit.rhtml
app/views/projects/add_issue.rhtml
app/views/wiki/_preview.rhtml [deleted file]
public/stylesheets/application.css

index d8fd95b6a50f8f1643421982056d9b6e553048e5..1f983419f952c604d2579482e49a800e18cd868e 100644 (file)
@@ -17,7 +17,7 @@
 
 class IssuesController < ApplicationController
   layout 'base', :except => :export_pdf
-  before_filter :find_project, :authorize, :except => :index
+  before_filter :find_project, :authorize, :except => [:index, :preview]
   accept_key_auth :index
   
   cache_sweeper :issue_sweeper, :only => [ :edit, :change_status, :destroy ]
@@ -167,6 +167,13 @@ class IssuesController < ApplicationController
     redirect_to :action => 'show', :id => @issue
   end
 
+  def preview
+    issue = Issue.find_by_id(params[:id])
+    @attachements = issue.attachments if issue
+    @text = params[:issue][:description]
+    render :partial => 'common/preview'
+  end
+  
 private
   def find_project
     @issue = Issue.find(params[:id], :include => [:project, :tracker, :status, :author, :priority, :category])
index e3c9ed20248a17b5b41fad2c6bf21748b3bc4c35..fe53e63f28d1b7a666db86c3a504d3ce4ba48728 100644 (file)
@@ -144,7 +144,7 @@ class WikiController < ApplicationController
     page = @wiki.find_page(params[:page])
     @attachements = page.attachments if page
     @text = params[:content][:text]
-    render :partial => 'preview'
+    render :partial => 'common/preview'
   end
 
   def add_attachment
diff --git a/app/views/common/_preview.rhtml b/app/views/common/_preview.rhtml
new file mode 100644 (file)
index 0000000..e3bfc3a
--- /dev/null
@@ -0,0 +1,3 @@
+<fieldset class="preview"><legend><%= l(:label_preview) %></legend>
+<%= textilizable @text, :attachments => @attachements %>
+</fieldset>
index 28d2b97ec56a9ff9ca7a8b583d724019db99d97c..203d1cca3483b7640c746d14b2c0cc81b2bec3e2 100644 (file)
 </div>
 
 <p><%= f.text_field :subject, :size => 80, :required => true %></p>
-<p><%= f.text_area :description, :required => true, :cols => 60, :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min), :class => 'wiki-edit' %></p>
+<p><%= f.text_area :description, :required => true,
+                   :cols => 60,
+                   :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
+                   :accesskey => accesskey(:edit),
+                   :class => 'wiki-edit' %></p>
 <p><%= f.select :fixed_version_id, (@project.versions.sort.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
 <% for @custom_value in @custom_values %>
        <p><%= custom_field_tag_with_label @custom_value %></p>
index 9efaeb2e466e8acb533553f86ee7706bf0c747aa..1577216edeea82f0761a7d689626453ce5d9b63e 100644 (file)
@@ -1,7 +1,19 @@
 <h2><%=h "#{@issue.tracker.name} ##{@issue.id}" %></h2>
 
-<% labelled_tabular_form_for :issue, @issue, :url => {:action => 'edit'} do |f| %>
+<% labelled_tabular_form_for :issue, @issue,
+                             :url => {:action => 'edit'},
+                             :html => {:id => 'issue-form'} do |f| %>
     <%= render :partial => 'form', :locals => {:f => f} %>
     <%= f.hidden_field :lock_version %>
     <%= submit_tag l(:button_save) %>
+    <%= link_to_remote l(:label_preview), 
+                       { :url => { :controller => 'issues', :action => 'preview', :id => @issue },
+                         :method => 'post',
+                         :update => 'preview',
+                         :with => "Form.serialize('issue-form')",
+                         :complete => "location.href='#preview-top'"
+                       }, :accesskey => accesskey(:preview) %>
 <% end %>
+
+<a name="preview-top"></a>
+<div id="preview" class="wiki"></div>
index f0dbead947ab3c2ef7d936e3d468ccc72dbbf7f4..8382d6c9f7e74363c0fefee95110f3492960a482 100644 (file)
@@ -1,7 +1,19 @@
 <h2><%=l(:label_issue_new)%>: <%= @tracker.name %></h2>
 
-<% labelled_tabular_form_for :issue, @issue, :url => {:action => 'add_issue'}, :html => {:multipart => true} do |f| %>
+<% labelled_tabular_form_for :issue, @issue, 
+                             :url => {:action => 'add_issue'},
+                             :html => {:multipart => true, :id => 'issue-form'} do |f| %>
     <%= hidden_field_tag 'tracker_id', @tracker.id %>
     <%= render :partial => 'issues/form', :locals => {:f => f} %>    
     <%= submit_tag l(:button_create) %>
+    <%= link_to_remote l(:label_preview), 
+                       { :url => { :controller => 'issues', :action => 'preview', :id => @issue },
+                         :method => 'post',
+                         :update => 'preview',
+                         :with => "Form.serialize('issue-form')",
+                         :complete => "location.href='#preview-top'"
+                       }, :accesskey => accesskey(:preview) %>
 <% end %>
+
+<a name="preview-top"></a>
+<div id="preview" class="wiki"></div>
diff --git a/app/views/wiki/_preview.rhtml b/app/views/wiki/_preview.rhtml
deleted file mode 100644 (file)
index e3bfc3a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<fieldset class="preview"><legend><%= l(:label_preview) %></legend>
-<%= textilizable @text, :attachments => @attachements %>
-</fieldset>
index 8f0064a22948933410c8f2336d35d92e9c39f2fa..fdeec2bbc7703d7e0598289a264626dd0503b9ca 100644 (file)
@@ -139,6 +139,8 @@ text-align: left;
 width: 200px;
 }
 
+#preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
+
 #settings .tabular p{ padding-left: 300px; }
 #settings .tabular label{ margin-left: -300px; width: 295px; }