diff -Naur -x .svn redmine/app/controllers/changeset_relations_controller.rb redmine-stable/app/controllers/changeset_relations_controller.rb --- redmine/app/controllers/changeset_relations_controller.rb 1970-01-01 01:00:00.000000000 +0100 +++ redmine-stable/app/controllers/changeset_relations_controller.rb 2009-09-30 20:10:44.000000000 +0200 @@ -0,0 +1,55 @@ +class ChangesetRelationsController < ApplicationController + + + before_filter :find_project, :authorize + + def new + @changeset = Changeset.find(:first, :conditions => {:revision => params[:changeset][:revision], :repository_id => @project.repository}) + if @changeset.nil? + @changeset = Changeset.new(:revision => params[:changeset][:revision]) + @changeset.errors.add l(:revision_not_found_error) + else + @changeset.issues << @issue + @changeset.save if request.post? + end + @issue.reload + respond_to do |format| + format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } + format.js do + render :update do |page| + page.replace_html "changeset_list", :partial => 'issues/changeset_list', :locals => { :changesets => @issue.changesets} + page.replace_html "issue-changesets-list", :partial => 'issues/changesets', :locals => { :changesets => @issue.changesets} + if @changeset.errors.empty? + page << "$('changeset_revision').value = ''" + end + end + end + end + end + + def destroy + changeset = Changeset.find(params[:id]) + if request.post? && ! changeset.nil? && changeset.issues.include?(@issue) + changeset.issues.delete(@issue) + @issue.reload + end + respond_to do |format| + format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } + format.js do + render(:update) do |page| + page.replace_html "changeset_list", :partial => 'issues/changeset_list', :locals => { :changesets => @issue.changesets} + page.replace_html "issue-changesets-list", :partial => 'issues/changesets', :locals => { :changesets => @issue.changesets} + end + end + end + end + + + private + def find_project + @issue = Issue.find(params[:issue_id]) + @project = @issue.project + rescue ActiveRecord::RecordNotFound + render_404 + end +end diff -Naur -x .svn redmine/app/controllers/issues_controller.rb redmine-stable/app/controllers/issues_controller.rb --- redmine/app/controllers/issues_controller.rb 2009-09-30 20:00:44.000000000 +0200 +++ redmine-stable/app/controllers/issues_controller.rb 2009-09-30 20:10:44.000000000 +0200 @@ -98,6 +98,8 @@ @journals = @issue.journals.find(:all, :include => [:user, :details], :order => "#{Journal.table_name}.created_on ASC") @journals.each_with_index {|j,i| j.indice = i+1} @journals.reverse! if User.current.wants_comments_in_reverse_order? + @changesets = @issue.changesets + @changesets.reverse! if User.current.wants_comments_in_reverse_order? @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @edit_allowed = User.current.allowed_to?(:edit_issues, @project) @priorities = Enumeration::get_values('IPRI') diff -Naur -x .svn redmine/app/helpers/changeset_relations_helper.rb redmine-stable/app/helpers/changeset_relations_helper.rb --- redmine/app/helpers/changeset_relations_helper.rb 1970-01-01 01:00:00.000000000 +0100 +++ redmine-stable/app/helpers/changeset_relations_helper.rb 2009-09-30 20:10:44.000000000 +0200 @@ -0,0 +1,2 @@ +module ChangesetRelationsHelper +end diff -Naur -x .svn redmine/app/views/changeset_relations/_form.html.erb redmine-stable/app/views/changeset_relations/_form.html.erb --- redmine/app/views/changeset_relations/_form.html.erb 1970-01-01 01:00:00.000000000 +0100 +++ redmine-stable/app/views/changeset_relations/_form.html.erb 2009-09-30 20:10:44.000000000 +0200 @@ -0,0 +1,8 @@ +<%= error_messages_for 'changeset' %> + +
<%= l(:label_revision) %> <%= f.text_field :revision, :size => 6 %> +<%= submit_tag l(:button_add) %> +<%= toggle_link l(:button_cancel), 'new-changeset-form'%> +
+ +<%= javascript_tag "setPredecessorFieldsVisibility();" %> diff -Naur -x .svn redmine/app/views/issues/_changeset_list.rhtml redmine-stable/app/views/issues/_changeset_list.rhtml --- redmine/app/views/issues/_changeset_list.rhtml 1970-01-01 01:00:00.000000000 +0100 +++ redmine-stable/app/views/issues/_changeset_list.rhtml 2009-09-30 20:10:44.000000000 +0200 @@ -0,0 +1,33 @@ +<%=l(:label_associated_revisions)%>
+ +<% if changesets.any? %> +<%= link_to("#{l(:label_revision)} #{changeset.revision}", + :controller => 'repositories', :action => 'revision', :id => changeset.project, :rev => changeset.revision) %> + | +<%= h changeset.author %> | +<%= h truncate(changeset.comments.split("\n").first, 60) %> | +<%= format_date(changeset.committed_on) %> | +<%= link_to_remote(image_tag('delete.png'), { :url => {:controller => 'changeset_relations', :action => 'destroy', :issue_id => @issue, :id => changeset}, + :method => :post + }, :title => l(:label_changeset_delete)) if authorize_for('changeset_relations', 'destroy') %> + | +