Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
This commit is contained in:
commit
c470072523
12 changed files with 112 additions and 75 deletions
|
@ -20,6 +20,7 @@ v 7.7.0
|
||||||
- Add alert message in case of outdated browser (IE < 10)
|
- Add alert message in case of outdated browser (IE < 10)
|
||||||
-
|
-
|
||||||
- Added API support for sorting projects
|
- Added API support for sorting projects
|
||||||
|
- Update gitlab_git to version 7.0.0.rc13
|
||||||
|
|
||||||
v 7.6.0
|
v 7.6.0
|
||||||
- Fork repository to groups
|
- Fork repository to groups
|
||||||
|
|
2
Gemfile
2
Gemfile
|
@ -37,7 +37,7 @@ gem "browser"
|
||||||
|
|
||||||
# Extracting information from a git repository
|
# Extracting information from a git repository
|
||||||
# Provide access to Gitlab::Git library
|
# Provide access to Gitlab::Git library
|
||||||
gem "gitlab_git", '7.0.0.rc12'
|
gem "gitlab_git", '7.0.0.rc13'
|
||||||
|
|
||||||
# Ruby/Rack Git Smart-HTTP Server Handler
|
# Ruby/Rack Git Smart-HTTP Server Handler
|
||||||
gem 'gitlab-grack', '~> 2.0.0.pre', require: 'grack'
|
gem 'gitlab-grack', '~> 2.0.0.pre', require: 'grack'
|
||||||
|
|
|
@ -183,7 +183,7 @@ GEM
|
||||||
mime-types (~> 1.19)
|
mime-types (~> 1.19)
|
||||||
gitlab_emoji (0.0.1.1)
|
gitlab_emoji (0.0.1.1)
|
||||||
emoji (~> 1.0.1)
|
emoji (~> 1.0.1)
|
||||||
gitlab_git (7.0.0.rc12)
|
gitlab_git (7.0.0.rc13)
|
||||||
activesupport (~> 4.0)
|
activesupport (~> 4.0)
|
||||||
charlock_holmes (~> 0.6)
|
charlock_holmes (~> 0.6)
|
||||||
gitlab-linguist (~> 3.0)
|
gitlab-linguist (~> 3.0)
|
||||||
|
@ -643,7 +643,7 @@ DEPENDENCIES
|
||||||
gitlab-grack (~> 2.0.0.pre)
|
gitlab-grack (~> 2.0.0.pre)
|
||||||
gitlab-linguist (~> 3.0.0)
|
gitlab-linguist (~> 3.0.0)
|
||||||
gitlab_emoji (~> 0.0.1.1)
|
gitlab_emoji (~> 0.0.1.1)
|
||||||
gitlab_git (= 7.0.0.rc12)
|
gitlab_git (= 7.0.0.rc13)
|
||||||
gitlab_meta (= 7.0)
|
gitlab_meta (= 7.0)
|
||||||
gitlab_omniauth-ldap (= 1.2.0)
|
gitlab_omniauth-ldap (= 1.2.0)
|
||||||
gollum-lib (~> 3.0.0)
|
gollum-lib (~> 3.0.0)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
xml.instruct!
|
xml.instruct!
|
||||||
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlnsmedia" => "http://search.yahoo.com/mrss/" do
|
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
|
||||||
xml.title "#{current_user.name} issues"
|
xml.title "#{current_user.name} issues"
|
||||||
xml.link href: issues_dashboard_url(:atom, private_token: current_user.private_token), rel: "self", type: "application/atom+xml"
|
xml.link href: issues_dashboard_url(:atom, private_token: current_user.private_token), rel: "self", type: "application/atom+xml"
|
||||||
xml.link href: issues_dashboard_url(private_token: current_user.private_token), rel: "alternate", type: "text/html"
|
xml.link href: issues_dashboard_url(private_token: current_user.private_token), rel: "alternate", type: "text/html"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
xml.instruct!
|
xml.instruct!
|
||||||
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlnsmedia" => "http://search.yahoo.com/mrss/" do
|
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
|
||||||
xml.title "Dashboard feed#{" - #{current_user.name}" if current_user.name.present?}"
|
xml.title "Dashboard feed#{" - #{current_user.name}" if current_user.name.present?}"
|
||||||
xml.link href: dashboard_url(:atom), rel: "self", type: "application/atom+xml"
|
xml.link href: dashboard_url(:atom), rel: "self", type: "application/atom+xml"
|
||||||
xml.link href: dashboard_url, rel: "alternate", type: "text/html"
|
xml.link href: dashboard_url, rel: "alternate", type: "text/html"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
xml.instruct!
|
xml.instruct!
|
||||||
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlnsmedia" => "http://search.yahoo.com/mrss/" do
|
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
|
||||||
xml.title "Group feed - #{@group.name}"
|
xml.title "Group feed - #{@group.name}"
|
||||||
xml.link href: group_path(@group, :atom), rel: "self", type: "application/atom+xml"
|
xml.link href: group_path(@group, :atom), rel: "self", type: "application/atom+xml"
|
||||||
xml.link href: group_path(@group), rel: "alternate", type: "text/html"
|
xml.link href: group_path(@group), rel: "alternate", type: "text/html"
|
||||||
|
|
|
@ -52,10 +52,11 @@
|
||||||
- else
|
- else
|
||||||
%span.light No open milestones available.
|
%span.light No open milestones available.
|
||||||
|
|
||||||
= link_to 'Create new milestone', new_project_milestone_path(issuable.project), target: :blank
|
- if can? current_user, :admin_milestone, issuable.project
|
||||||
|
= link_to 'Create new milestone', new_project_milestone_path(issuable.project), target: :blank
|
||||||
.form-group
|
.form-group
|
||||||
= f.label :label_ids, class: 'control-label' do
|
= f.label :label_ids, class: 'control-label' do
|
||||||
%i.icon-tag
|
%i.fa.fa-tag
|
||||||
Labels
|
Labels
|
||||||
.col-sm-10
|
.col-sm-10
|
||||||
- if issuable.project.labels.any?
|
- if issuable.project.labels.any?
|
||||||
|
@ -64,9 +65,15 @@
|
||||||
- else
|
- else
|
||||||
%span.light No labels yet.
|
%span.light No labels yet.
|
||||||
|
|
||||||
= link_to 'Create new label', new_project_label_path(issuable.project), target: :blank
|
- if can? current_user, :admin_label, issuable.project
|
||||||
|
= link_to 'Create new label', new_project_label_path(issuable.project), target: :blank
|
||||||
|
|
||||||
.form-actions
|
.form-actions
|
||||||
|
- if !issuable.project.empty_repo? && contribution_guide_url(issuable.project) && !issuable.persisted?
|
||||||
|
%p
|
||||||
|
Please review the
|
||||||
|
%strong #{link_to 'guidelines for contribution', contribution_guide_url(issuable.project)}
|
||||||
|
to this repository.
|
||||||
- if issuable.new_record?
|
- if issuable.new_record?
|
||||||
= f.submit "Submit new #{issuable.class.model_name.human.downcase}", class: 'btn btn-create'
|
= f.submit "Submit new #{issuable.class.model_name.human.downcase}", class: 'btn btn-create'
|
||||||
- else
|
- else
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
.diff-file{id: "diff-#{i}", data: {blob_diff_path: blob_diff_path }}
|
.diff-file{id: "diff-#{i}", data: {blob_diff_path: blob_diff_path }}
|
||||||
.diff-header{id: "file-path-#{hexdigest(diff_file.new_path || diff_file.old_path)}"}
|
.diff-header{id: "file-path-#{hexdigest(diff_file.new_path || diff_file.old_path)}"}
|
||||||
- if diff_file.deleted_file
|
- if diff_file.deleted_file
|
||||||
%span= diff_file.old_path
|
%span="#{diff_file.old_path} deleted"
|
||||||
|
|
||||||
.diff-btn-group
|
.diff-btn-group
|
||||||
- if @commit.parent_ids.present?
|
- if @commit.parent_ids.present?
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
%div.issue-form-holder
|
%div.issue-form-holder
|
||||||
%h3.page-title= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.iid}"
|
%h3.page-title= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.iid}"
|
||||||
%hr
|
%hr
|
||||||
- if @repository.exists? && !@repository.empty? && @repository.contribution_guide && !@issue.persisted?
|
|
||||||
- contribution_guide_url = project_blob_path(@project, tree_join(@repository.root_ref, @repository.contribution_guide.name))
|
|
||||||
.row
|
|
||||||
.col-sm-10.col-sm-offset-2
|
|
||||||
.alert.alert-info
|
|
||||||
= "Please review the <strong>#{link_to "guidelines for contribution", contribution_guide_url}</strong> to this repository.".html_safe
|
|
||||||
|
|
||||||
= form_for [@project, @issue], html: { class: 'form-horizontal issue-form gfm-form' } do |f|
|
= form_for [@project, @issue], html: { class: 'form-horizontal issue-form gfm-form' } do |f|
|
||||||
= render 'projects/issuable_form', f: f, issuable: @issue
|
= render 'projects/issuable_form', f: f, issuable: @issue
|
||||||
|
|
|
@ -9,74 +9,103 @@
|
||||||
%span.pull-right
|
%span.pull-right
|
||||||
= link_to 'Change branches', new_project_merge_request_path(@project)
|
= link_to 'Change branches', new_project_merge_request_path(@project)
|
||||||
|
|
||||||
= form_for [@project, @merge_request], html: { class: "merge-request-form gfm-form" } do |f|
|
= form_for [@project, @merge_request], html: { class: "merge-request-form form-horizontal gfm-form" } do |f|
|
||||||
.panel.panel-default
|
.merge-request-form-info
|
||||||
|
.form-group
|
||||||
.panel-body
|
= f.label :title, class: 'control-label' do
|
||||||
.form-group
|
%strong Title *
|
||||||
.light
|
.col-sm-10
|
||||||
= f.label :title do
|
= f.text_field :title, maxlength: 255, autofocus: true, class: 'form-control pad js-gfm-input', required: true
|
||||||
Title *
|
.form-group.issuable-description
|
||||||
= f.text_field :title, class: "form-control input-lg js-gfm-input", maxlength: 255, rows: 5, required: true
|
= f.label :description, 'Description', class: 'control-label'
|
||||||
.form-group
|
.col-sm-10
|
||||||
.light
|
|
||||||
= f.label :description, "Description"
|
|
||||||
= render layout: 'projects/md_preview' do
|
= render layout: 'projects/md_preview' do
|
||||||
= render 'projects/zen', f: f, attr: :description,
|
= render 'projects/zen', f: f, attr: :description, classes: 'description form-control'
|
||||||
classes: 'description form-control'
|
|
||||||
.clearfix.hint
|
|
||||||
.pull-left Description is parsed with #{link_to "GitLab Flavored Markdown", help_page_path("markdown", "markdown"), target: '_blank'}.
|
|
||||||
.pull-right Attach images (JPG, PNG, GIF) by dragging & dropping or #{link_to "selecting them", '#', class: 'markdown-selector' }.
|
|
||||||
.error-alert
|
|
||||||
.form-group
|
|
||||||
.issue-assignee
|
|
||||||
= f.label :assignee_id do
|
|
||||||
%i.fa.fa-user
|
|
||||||
Assign to
|
|
||||||
%div
|
|
||||||
= project_users_select_tag('merge_request[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @merge_request.assignee_id, project_id: @merge_request.target_project_id)
|
|
||||||
|
|
||||||
= link_to 'Assign to me', '#', class: 'btn assign-to-me-link'
|
|
||||||
.form-group
|
|
||||||
.issue-milestone
|
|
||||||
= f.label :milestone_id do
|
|
||||||
%i.fa.fa-clock-o
|
|
||||||
Milestone
|
|
||||||
%div= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'select2'})
|
|
||||||
.form-group
|
|
||||||
= f.label :label_ids do
|
|
||||||
%i.fa.fa-tag
|
|
||||||
Labels
|
|
||||||
%div
|
|
||||||
= f.collection_select :label_ids, @merge_request.target_project.labels.all, :id, :name, { selected: @merge_request.label_ids }, multiple: true, class: 'select2'
|
|
||||||
|
|
||||||
.panel-footer
|
.col-sm-12-hint
|
||||||
|
.pull-left
|
||||||
|
Parsed with
|
||||||
|
#{link_to 'Gitlab Flavored Markdown', help_page_path('markdown', 'markdown'), target: '_blank'}.
|
||||||
|
.pull-right
|
||||||
|
Attach images (JPG, PNG, GIF) by dragging & dropping
|
||||||
|
or #{link_to 'selecting them', '#', class: 'markdown-selector'}.
|
||||||
|
|
||||||
|
.clearfix
|
||||||
|
.error-alert
|
||||||
|
%hr
|
||||||
|
.form-group
|
||||||
|
.issue-assignee
|
||||||
|
= f.label :assignee_id, class: 'control-label' do
|
||||||
|
%i.fa.fa-user
|
||||||
|
Assign to
|
||||||
|
.col-sm-10
|
||||||
|
= project_users_select_tag('merge_request[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @merge_request.assignee_id, project_id: @merge_request.target_project_id)
|
||||||
|
|
||||||
|
= link_to 'Assign to me', '#', class: 'btn assign-to-me-link'
|
||||||
|
.form-group
|
||||||
|
.issue-milestone
|
||||||
|
= f.label :milestone_id, class: 'control-label' do
|
||||||
|
%i.fa.fa-clock-o
|
||||||
|
Milestone
|
||||||
|
.col-sm-10
|
||||||
|
- if milestone_options(@merge_request).present?
|
||||||
|
= f.select(:milestone_id, milestone_options(@merge_request), {include_blank: 'Select milestone'}, {class: 'select2'})
|
||||||
|
- else
|
||||||
|
%span.light No open milestones available.
|
||||||
|
|
||||||
|
- if can? current_user, :admin_milestone, @merge_request.target_project
|
||||||
|
= link_to 'Create new milestone', new_project_milestone_path(@merge_request.target_project), target: :blank
|
||||||
|
.form-group
|
||||||
|
= f.label :label_ids, class: 'control-label' do
|
||||||
|
%i.fa.fa-tag
|
||||||
|
Labels
|
||||||
|
.col-sm-10
|
||||||
|
- if @merge_request.target_project.labels.any?
|
||||||
|
= f.collection_select :label_ids, @merge_request.target_project.labels.all, :id, :name, {selected: @merge_request.label_ids}, multiple: true, class: 'select2'
|
||||||
|
- else
|
||||||
|
%span.light No labels yet.
|
||||||
|
|
||||||
|
- if can? current_user, :admin_label, @merge_request.target_project
|
||||||
|
= link_to 'Create new label', new_project_label_path(@merge_request.target_project), target: :blank
|
||||||
|
|
||||||
|
.form-actions
|
||||||
- if contribution_guide_url(@target_project)
|
- if contribution_guide_url(@target_project)
|
||||||
%p
|
%p
|
||||||
Please review the
|
Please review the
|
||||||
%strong #{link_to "guidelines for contribution", contribution_guide_url(@target_project)}
|
%strong #{link_to 'guidelines for contribution', contribution_guide_url(@target_project)}
|
||||||
to this repository.
|
to this repository.
|
||||||
= f.hidden_field :source_project_id
|
= f.hidden_field :source_project_id
|
||||||
|
= f.hidden_field :source_branch
|
||||||
= f.hidden_field :target_project_id
|
= f.hidden_field :target_project_id
|
||||||
= f.hidden_field :target_branch
|
= f.hidden_field :target_branch
|
||||||
= f.hidden_field :source_branch
|
= f.submit 'Submit merge request', class: 'btn btn-create'
|
||||||
= f.submit 'Submit merge request', class: "btn btn-create"
|
|
||||||
|
|
||||||
.mr-compare
|
.mr-compare.merge-request
|
||||||
= render "projects/commits/commit_list"
|
%ul.nav.nav-tabs.merge-request-tabs
|
||||||
|
%li.commits-tab{data: {action: 'commits'}}
|
||||||
%h4 Changes
|
= link_to url_for(params) do
|
||||||
- if @diffs.present?
|
%i.fa.fa-history
|
||||||
= render "projects/diffs/diffs", diffs: @diffs, project: @project
|
Commits
|
||||||
- elsif @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
%span.badge= @commits.size
|
||||||
.bs-callout.bs-callout-danger
|
%li.diffs-tab{data: {action: 'diffs'}}
|
||||||
%h4 This comparison includes more than #{MergeRequestDiff::COMMITS_SAFE_SIZE} commits.
|
= link_to url_for(params) do
|
||||||
%p To preserve performance the line changes are not shown.
|
%i.fa.fa-list-alt
|
||||||
- else
|
Changes
|
||||||
.bs-callout.bs-callout-danger
|
%span.badge= @diffs.size
|
||||||
%h4 This comparison includes huge diff.
|
|
||||||
%p To preserve performance the line changes are not shown.
|
|
||||||
|
|
||||||
|
.commits.tab-content
|
||||||
|
= render "projects/commits/commits"
|
||||||
|
.diffs.tab-content
|
||||||
|
- if @diffs.present?
|
||||||
|
= render "projects/diffs/diffs", diffs: @diffs, project: @project
|
||||||
|
- elsif @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
||||||
|
.bs-callout.bs-callout-danger
|
||||||
|
%h4 This comparison includes more than #{MergeRequestDiff::COMMITS_SAFE_SIZE} commits.
|
||||||
|
%p To preserve performance the line changes are not shown.
|
||||||
|
- else
|
||||||
|
.bs-callout.bs-callout-danger
|
||||||
|
%h4 This comparison includes a huge diff.
|
||||||
|
%p To preserve performance the line changes are not shown.
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
$('.assign-to-me-link').on('click', function(e){
|
$('.assign-to-me-link').on('click', function(e){
|
||||||
|
@ -85,3 +114,9 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
window.project_image_path_upload = "#{upload_image_project_path @project}";
|
window.project_image_path_upload = "#{upload_image_project_path @project}";
|
||||||
|
|
||||||
|
:javascript
|
||||||
|
var merge_request
|
||||||
|
merge_request = new MergeRequest({
|
||||||
|
action: 'commits'
|
||||||
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
xml.instruct!
|
xml.instruct!
|
||||||
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlnsmedia" => "http://search.yahoo.com/mrss/" do
|
xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
|
||||||
xml.title "Activity feed for #{@user.name}"
|
xml.title "Activity feed for #{@user.name}"
|
||||||
xml.link href: user_url(@user, :atom), rel: "self", type: "application/atom+xml"
|
xml.link href: user_url(@user, :atom), rel: "self", type: "application/atom+xml"
|
||||||
xml.link href: user_url(@user), rel: "alternate", type: "text/html"
|
xml.link href: user_url(@user), rel: "alternate", type: "text/html"
|
||||||
|
|
|
@ -49,4 +49,4 @@ If a user is a GitLab administrator they receive all permissions.
|
||||||
| Manage group members | | | | | ✓ |
|
| Manage group members | | | | | ✓ |
|
||||||
| Remove group | | | | | ✓ |
|
| Remove group | | | | | ✓ |
|
||||||
|
|
||||||
Any user can remove himself from a group, unless he is the last Owner of the group.
|
Any user can remove themselves from a group, unless they are the last Owner of the group.
|
||||||
|
|
Loading…
Reference in a new issue