--- /dev/null
+<%= error_messages_for 'issue' %>
+<div class="box">
+
+<div class="splitcontentleft">
+<% if @issue.new_record? %>
+<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), :required => true %></p>
+<% else %>
+<p><label><%= l(:field_status) %></label> <%= @issue.status.name %></p>
+<% end %>
+
+<p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p>
+<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
+<p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %>
+<%= prompt_to_remote(l(:label_issue_category_new),
+ l(:label_issue_category_new), 'category[name]',
+ {:controller => 'projects', :action => 'add_issue_category', :id => @project},
+ :class => 'small') if authorize_for('projects', 'add_issue_category') %></p>
+</div>
+
+<div class="splitcontentright">
+<p><%= f.text_field :start_date, :size => 10 %><%= calendar_for('issue_start_date') %></p>
+<p><%= f.text_field :due_date, :size => 10 %><%= calendar_for('issue_due_date') %></p>
+<p><%= f.text_field :estimated_hours, :size => 3 %> <%= l(:field_hours) %></p>
+<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p>
+</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.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>
+<% end %>
+
+<% if @issue.new_record? %>
+<p id="attachments_p"><label for="attachment_file"><%=l(:label_attachment)%>
+<%= image_to_function "add.png", "addFileField();return false" %></label>
+<%= file_field_tag 'attachments[]', :size => 30 %> <em>(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)</em></p>
+<% end %>
+</div>
+
+<%= wikitoolbar_for 'issue_description' %>
+
+<% content_for :header_tags do %>
+ <%= javascript_include_tag 'calendar/calendar' %>
+ <%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %>
+ <%= javascript_include_tag 'calendar/calendar-setup' %>
+ <%= stylesheet_link_tag 'calendar' %>
+<% end %>
-<h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
+<h2><%=h "#{@issue.tracker.name} ##{@issue.id}" %></h2>
<% labelled_tabular_form_for :issue, @issue, :url => {:action => 'edit'} do |f| %>
-<%= error_messages_for 'issue' %>
-<div class="box">
-<!--[form:issue]-->
-<div class="splitcontentleft">
-<p><label><%=l(:field_status)%></label> <%= @issue.status.name %></p>
-<p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p>
-<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
-<p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %>
-<%= prompt_to_remote(l(:label_issue_category_new),
- l(:label_issue_category_new), 'category[name]',
- {:controller => 'projects', :action => 'add_issue_category', :id => @project},
- :class => 'small') if authorize_for('projects', 'add_issue_category') %></p>
-</div>
-
-<div class="splitcontentright">
-<p><%= f.text_field :start_date, :size => 10 %><%= calendar_for('issue_start_date') %></p>
-<p><%= f.text_field :due_date, :size => 10 %><%= calendar_for('issue_due_date') %></p>
-<p><%= f.text_field :estimated_hours, :size => 3 %> <%= l(:field_hours) %></p>
-<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p>
-</div>
-
-<div class="clear">
-<p><%= f.text_field :subject, :size => 80, :required => true %></p>
-<p><%= f.text_area :description, :required => true, :cols => 60, :rows => [[10, @issue.description.length / 50].max, 100].min, :class => 'wiki-edit' %></p>
-
-<% for @custom_value in @custom_values %>
- <p><%= custom_field_tag_with_label @custom_value %></p>
+ <%= render :partial => 'form', :locals => {:f => f} %>
+ <%= f.hidden_field :lock_version %>
+ <%= submit_tag l(:button_save) %>
<% end %>
-
-<p><%= f.select :fixed_version_id, (@project.versions.sort.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
-</div>
-<!--[eoform:issue]-->
-</div>
-<%= f.hidden_field :lock_version %>
-<%= submit_tag l(:button_save) %>
-<% end %>
-
-<%= wikitoolbar_for 'issue_description' %>
-
-<% content_for :header_tags do %>
-<%= javascript_include_tag 'calendar/calendar' %>
-<%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %>
-<%= javascript_include_tag 'calendar/calendar-setup' %>
-<%= stylesheet_link_tag 'calendar' %>
-<% end %>
\ No newline at end of file
<h2><%=l(:label_issue_new)%>: <%= @tracker.name %></h2>
<% labelled_tabular_form_for :issue, @issue, :url => {:action => 'add_issue'}, :html => {:multipart => true} do |f| %>
-<%= error_messages_for 'issue' %>
-<div class="box">
-<!--[form:issue]-->
-<%= hidden_field_tag 'tracker_id', @tracker.id %>
-
-<div class="splitcontentleft">
-<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), :required => true %></p>
-<p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p>
-<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
-<p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %>
-<%= prompt_to_remote(l(:label_issue_category_new),
- l(:label_issue_category_new), 'category[name]',
- {:controller => 'projects', :action => 'add_issue_category', :id => @project},
- :class => 'small') if authorize_for('projects', 'add_issue_category') %></p>
-</div>
-<div class="splitcontentright">
-<p><%= f.text_field :start_date, :size => 10 %><%= calendar_for('issue_start_date') %></p>
-<p><%= f.text_field :due_date, :size => 10 %><%= calendar_for('issue_due_date') %></p>
-<p><%= f.text_field :estimated_hours, :size => 3 %> <%= l(:field_hours) %></p>
-<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p>
-</div>
-
-<div style="clear: left;">
-<p><%= f.text_field :subject, :size => 80, :required => true %></p>
-<p><%= f.text_area :description, :cols => 60, :rows => 10, :required => true, :class => 'wiki-edit' %></p>
-
-<% for @custom_value in @custom_values %>
- <p><%= custom_field_tag_with_label @custom_value %></p>
-<% end %>
-
-<p><%= f.select :fixed_version_id, (@project.versions.sort.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
-
-<p id="attachments_p"><label for="attachment_file"><%=l(:label_attachment)%>
-<%= image_to_function "add.png", "addFileField();return false" %></label>
-<%= file_field_tag 'attachments[]', :size => 30 %> <em>(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)</em></p>
-</div>
-<!--[eoform:issue]-->
-</div>
-<%= submit_tag l(:button_create) %>
+ <%= hidden_field_tag 'tracker_id', @tracker.id %>
+ <%= render :partial => 'issues/form', :locals => {:f => f} %>
+ <%= submit_tag l(:button_create) %>
<% end %>
-
-<%= wikitoolbar_for 'issue_description' %>
-
-<% content_for :header_tags do %>
-<%= javascript_include_tag 'calendar/calendar' %>
-<%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %>
-<%= javascript_include_tag 'calendar/calendar-setup' %>
-<%= stylesheet_link_tag 'calendar' %>
-<% end %>
\ No newline at end of file