Commit 5b9a1d6781613e3420575b3440e7ffe92cbb5c8f
- Date: Wed Apr 02 05:15:23 +0000 2008
- Committer: David A. Cuadrado (krawek@gmail.com)
- Author: David A. Cuadrado (krawek@gmail.com)
- Commit SHA1: 5b9a1d6781613e3420575b3440e7ffe92cbb5c8f
- Tree SHA1: 1bbed624f439104309cced9f23783aa52dc21e02
allow to create merge request using post method
Commit diff
| |   |
| 26 | 26 | def create |
| 27 | 27 | @merge_request = @repository.proposed_merge_requests.new(params[:merge_request]) |
| 28 | 28 | @merge_request.user = current_user |
| 29 | | if @merge_request.save |
| 30 | | flash[:success] = %Q{You sent a merge request to "#{@merge_request.target_repository.name}"} |
| 31 | | redirect_to project_repository_path(@project, @repository) and return |
| 32 | | else |
| 33 | | @repositories = @project.repositories.find(:all, :conditions => ["id != ?", @repository.id]) |
| 34 | | render :action => "new" |
| 29 | respond_to do |format| |
| 30 | if @merge_request.save |
| 31 | format.html { |
| 32 | flash[:success] = %Q{You sent a merge request to "#{@merge_request.target_repository.name}"} |
| 33 | redirect_to project_repository_path(@project, @repository) and return |
| 34 | } |
| 35 | format.xml { render :xml => @merge_request, :status => :created } |
| 36 | else |
| 37 | format.html { |
| 38 | @repositories = @project.repositories.find(:all, :conditions => ["id != ?", @repository.id]) |
| 39 | render :action => "new" |
| 40 | } |
| 41 | format.xml { render :xml => @merge_request.errors, :status => :unprocessable_entity } |
| 42 | end |
| 35 | 43 | end |
| 36 | 44 | end |
| 37 | 45 | |
| toggle raw diff |
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -26,12 +26,20 @@ class MergeRequestsController < ApplicationController
def create
@merge_request = @repository.proposed_merge_requests.new(params[:merge_request])
@merge_request.user = current_user
- if @merge_request.save
- flash[:success] = %Q{You sent a merge request to "#{@merge_request.target_repository.name}"}
- redirect_to project_repository_path(@project, @repository) and return
- else
- @repositories = @project.repositories.find(:all, :conditions => ["id != ?", @repository.id])
- render :action => "new"
+ respond_to do |format|
+ if @merge_request.save
+ format.html {
+ flash[:success] = %Q{You sent a merge request to "#{@merge_request.target_repository.name}"}
+ redirect_to project_repository_path(@project, @repository) and return
+ }
+ format.xml { render :xml => @merge_request, :status => :created }
+ else
+ format.html {
+ @repositories = @project.repositories.find(:all, :conditions => ["id != ?", @repository.id])
+ render :action => "new"
+ }
+ format.xml { render :xml => @merge_request.errors, :status => :unprocessable_entity }
+ end
end
end
|
| |   |
| 109 | 109 | builder.repositories :type => "array" do |
| 110 | 110 | repositories.each { |repo| |
| 111 | 111 | builder.repository do |
| 112 | builder.id repo.id |
| 112 | 113 | builder.name repo.name |
| 113 | 114 | builder.owner repo.user.login |
| 114 | 115 | end |
| toggle raw diff |
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -109,6 +109,7 @@ class Project < ActiveRecord::Base
builder.repositories :type => "array" do
repositories.each { |repo|
builder.repository do
+ builder.id repo.id
builder.name repo.name
builder.owner repo.user.login
end |
| |   |
| 38 | 38 | }, :as => "repos") do |repo| |
| 39 | 39 | repo.resources :committers, :name_prefix => nil, :collection => {:auto_complete_for_user_login => :post, :list => :get, :create => :post} |
| 40 | 40 | repo.resources :comments, :member => { :commmit => :get } |
| 41 | | repo.resources :merge_requests, :member => { :resolve => :put } |
| 41 | repo.resources :merge_requests, :member => { :resolve => :put }, :collection => { :create => :post } |
| 42 | 42 | repo.commit_comment "comments/commit/:sha", :controller => "comments", |
| 43 | 43 | :action => "commit", :conditions => { :method => :get } |
| 44 | 44 | |
| toggle raw diff |
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -38,7 +38,7 @@ ActionController::Routing::Routes.draw do |map|
}, :as => "repos") do |repo|
repo.resources :committers, :name_prefix => nil, :collection => {:auto_complete_for_user_login => :post, :list => :get, :create => :post}
repo.resources :comments, :member => { :commmit => :get }
- repo.resources :merge_requests, :member => { :resolve => :put }
+ repo.resources :merge_requests, :member => { :resolve => :put }, :collection => { :create => :post }
repo.commit_comment "comments/commit/:sha", :controller => "comments",
:action => "commit", :conditions => { :method => :get }
|