tracker_templates_redmine_1.2-stable.diff

Tracker dependent Issue Description templates for Redmine 1.2-stable - Martin Corino, 2011-09-20 09:37

Download (3.21 KB)

View differences:

app/controllers/issues_controller.rb
304 304
    @issue.project = @project
305 305
    @issue.author = User.current
306 306
    # Tracker must be set before custom field values
307
    @issue.tracker ||= @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
307
    @issue.tracker = @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
308 308
    if @issue.tracker.nil?
309 309
      render_error l(:error_no_tracker_in_project)
310 310
      return false
311
    else
312
      params[:issue].delete :tracker_id if params[:issue]   # tracker has been set, prevent #safe_attributes= to set it again
313
      _prev_tracker = nil
314
      unless params[:prev_tracker_id] && params[:issue] && 
315
              (_prev_tracker = @project.trackers.find(params[:prev_tracker_id])) &&                         # previous tracker (+ template)
316
              (params[:issue][:description].gsub(/\r|\n/, '') != _prev_tracker.template.gsub(/\r|\n/, ''))  # description changed
317
        params[:issue] ||= {} 
318
        params[:issue][:description] = @issue.tracker.template
319
      end
311 320
    end
312 321
    @issue.start_date ||= Date.today
313 322
    if params[:issue].is_a?(Hash)
app/views/issues/_attributes.rhtml
1
<%= hidden_field_tag :prev_tracker_id, @issue.tracker.id %>
2

  
1 3
<% fields_for :issue, @issue, :builder => TabularFormBuilder do |f| %>
2 4

  
5
<p><%= f.text_area :description,
6
                   :cols => 60,
7
                   :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
8
                   :accesskey => accesskey(:edit),
9
                   :class => 'wiki-edit' %></p>
10

  
3 11
<div class="splitcontentleft">
4 12
<% if @issue.new_record? || @allowed_statuses.any? %>
5 13
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), :required => true %></p>
......
48 56
<%= render :partial => 'issues/form_custom_fields' %>
49 57

  
50 58
<% end %>
59

  
60
<%= wikitoolbar_for 'issue_description' %>
app/views/issues/_form.rhtml
12 12
                                     :with => "Form.serialize('issue-form')" %>
13 13

  
14 14
<p><%= f.text_field :subject, :size => 80, :required => true %></p>
15
<p><%= f.text_area :description,
16
                   :cols => 60,
17
                   :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
18
                   :accesskey => accesskey(:edit),
19
                   :class => 'wiki-edit' %></p>
20 15
</div>
21

  
16
                                     
22 17
<div id="attributes" class="attributes">
23 18
	<%= render :partial => 'issues/attributes' %>
24 19
</div>
......
37 32

  
38 33
<%= call_hook(:view_issues_form_details_bottom, { :issue => @issue, :form => f }) %>
39 34

  
40
<%= wikitoolbar_for 'issue_description' %>