Commit 9ad5d9a4c6a3e292ddde7e46949f739eb63c746e

Authored by Dmitriy Zaporozhets
2 parents 1f81c008 e0ca2ada

Merge branch 'feature/mr_description' of /home/git/repositories/gitlab/gitlabhq

app/assets/javascripts/dispatcher.js.coffee
... ... @@ -18,6 +18,8 @@ class Dispatcher
18 18 switch page
19 19 when 'projects:issues:index'
20 20 Issues.init()
  21 + when 'projects:issues:new', 'projects:merge_requests:new'
  22 + GitLab.GfmAutoComplete.setup()
21 23 when 'dashboard:show'
22 24 new Dashboard()
23 25 new Activities()
... ...
app/assets/stylesheets/sections/merge_requests.scss
... ... @@ -117,7 +117,7 @@
117 117  
118 118 .merge-request-angle {
119 119 text-align: center;
120   - margin-top: 45px;
  120 + margin: 0;
121 121 }
122 122  
123 123 .merge-request-form-info {
... ...
app/models/concerns/issuable.rb
... ... @@ -37,6 +37,8 @@ module Issuable
37 37 prefix: true
38 38  
39 39 attr_accessor :author_id_of_changes
  40 +
  41 + attr_mentionable :title, :description
40 42 end
41 43  
42 44 module ClassMethods
... ...
app/models/issue.rb
... ... @@ -32,7 +32,6 @@ class Issue < ActiveRecord::Base
32 32 attr_accessible :title, :assignee_id, :position, :description,
33 33 :milestone_id, :label_list, :author_id_of_changes,
34 34 :state_event
35   - attr_mentionable :title, :description
36 35  
37 36 acts_as_taggable_on :labels
38 37  
... ...
app/models/merge_request.rb
... ... @@ -30,8 +30,7 @@ class MergeRequest < ActiveRecord::Base
30 30 belongs_to :target_project, foreign_key: :target_project_id, class_name: "Project"
31 31 belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project"
32 32  
33   - attr_accessible :title, :assignee_id, :source_project_id, :source_branch, :target_project_id, :target_branch, :milestone_id, :author_id_of_changes, :state_event
34   - attr_mentionable :title
  33 + attr_accessible :title, :assignee_id, :source_project_id, :source_branch, :target_project_id, :target_branch, :milestone_id, :author_id_of_changes, :state_event, :description
35 34  
36 35 attr_accessor :should_remove_source_branch
37 36  
... ...
app/views/projects/merge_requests/_form.html.haml
... ... @@ -5,41 +5,32 @@
5 5 - @merge_request.errors.full_messages.each do |msg|
6 6 %li= msg
7 7  
8   - %h3.page-title
9   - Branches
10 8 .merge-request-branches
11   - .row
12   - .span5
13   - .ui-box
14   - .title From
15   - .ui-box-head
16   - Project:
17   - = f.select(:source_project_id,[[@merge_request.source_project.path_with_namespace,@merge_request.source_project.id]] , {}, {class: 'source_project chosen span4'})
18   - .prepend-top-10
  9 + .row
  10 + .span5
  11 + .clearfix
  12 + .pull-left
  13 + = f.select(:source_project_id,[[@merge_request.source_project.path_with_namespace,@merge_request.source_project.id]] , {}, {class: 'source_project chosen span3'})
  14 + .pull-left
  15 +  
19 16 %i.icon-code-fork
20   - Branch:
21   - = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch chosen span3'})
22   - .mr_source_commit.prepend-top-10
23   - .span2
24   - %h1.merge-request-angle
25   - %i.icon-angle-right
26   - .span5
27   - .ui-box
28   - .title To
29   - .ui-box-head
30   - - projects = @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project]
31   - Project:
32   - = f.select(:target_project_id, projects.map { |proj| [proj.path_with_namespace,proj.id] }, {include_blank: "Select Target Project" }, {class: 'target_project chosen span4'})
33   - .prepend-top-10
  17 + = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch chosen span2'})
  18 + .mr_source_commit.prepend-top-10
  19 + .span2
  20 + %h2.merge-request-angle.light
  21 + %i.icon-long-arrow-right
  22 + .span5
  23 + .clearfix
  24 + .pull-left
  25 + - projects = @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project]
  26 + = f.select(:target_project_id, projects.map { |proj| [proj.path_with_namespace,proj.id] }, {include_blank: "Select Target Project" }, {class: 'target_project chosen span3'})
  27 + .pull-left
  28 +  
34 29 %i.icon-code-fork
35   - Branch:
36   - = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch chosen span3'})
37   - .mr_target_commit.prepend-top-10
  30 + = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch chosen span2'})
  31 + .mr_target_commit.prepend-top-10
38 32  
39 33 %hr
40   -
41   - %h3.page-title
42   - Details
43 34 .merge-request-form-info
44 35 .control-group
45 36 = f.label :title do
... ... @@ -56,6 +47,12 @@
56 47 %i.icon-time
57 48 Milestone
58 49 .controls= f.select(:milestone_id, @project.milestones.active.all.map {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
  50 + .control-group
  51 + = f.label :description, "Description"
  52 + .controls
  53 + = f.text_area :description, class: "input-xxlarge js-gfm-input", rows: 14
  54 + %p.hint Description is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
  55 +
59 56  
60 57 .form-actions
61 58 - if @merge_request.new_record?
... ...
app/views/projects/merge_requests/show/_mr_box.html.haml
... ... @@ -21,6 +21,12 @@
21 21 %strong= link_to_gfm truncate(milestone.title, length: 20), project_milestone_path(milestone.project, milestone)
22 22  
23 23  
  24 + - if @merge_request.description.present?
  25 + .ui-box-bottom
  26 + .wiki
  27 + = preserve do
  28 + = markdown @merge_request.description
  29 +
24 30 - if @merge_request.closed?
25 31 .ui-box-bottom.alert-error
26 32 %span
... ...
db/migrate/20130909132950_add_description_to_merge_request.rb 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +class AddDescriptionToMergeRequest < ActiveRecord::Migration
  2 + def change
  3 + add_column :merge_requests, :description, :text, null: true
  4 + end
  5 +end
... ...
db/schema.rb
... ... @@ -11,7 +11,7 @@
11 11 #
12 12 # It's strongly recommended to check this file into your version control system.
13 13  
14   -ActiveRecord::Schema.define(:version => 20130821090531) do
  14 +ActiveRecord::Schema.define(:version => 20130909132950) do
15 15  
16 16 create_table "deploy_keys_projects", :force => true do |t|
17 17 t.integer "deploy_key_id", :null => false
... ... @@ -100,6 +100,7 @@ ActiveRecord::Schema.define(:version =&gt; 20130821090531) do
100 100 t.string "merge_status"
101 101 t.integer "target_project_id", :null => false
102 102 t.integer "iid"
  103 + t.text "description"
103 104 end
104 105  
105 106 add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id"
... ...