diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-09-01 15:23:39 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-09-07 10:22:57 +0300 |
commit | 96b83a58cc7f9a8c5b3fdf2396f5188029a4f280 (patch) | |
tree | d6caa07c4efda1efd01c3be2034fc67b7393f496 /app | |
parent | 8b2e065b7b878b27f0494248b3734381291a67bd (diff) | |
download | gitlab-ce-96b83a58cc7f9a8c5b3fdf2396f5188029a4f280.tar.gz |
Improve merge request version switch/compare dropdown
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/stylesheets/pages/merge_requests.scss | 6 | ||||
-rw-r--r-- | app/helpers/git_helper.rb | 4 | ||||
-rw-r--r-- | app/views/projects/merge_requests/show/_versions.html.haml | 69 |
3 files changed, 44 insertions, 35 deletions
diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss index 7fdd79fa8b9..dd3e79b37af 100644 --- a/app/assets/stylesheets/pages/merge_requests.scss +++ b/app/assets/stylesheets/pages/merge_requests.scss @@ -375,7 +375,7 @@ } } -.mr-version-switch { +.mr-version-controls { background: $background-color; padding: $gl-btn-padding; color: $gl-placeholder-color; @@ -383,6 +383,10 @@ a.btn-link { color: $gl-dark-link-color; } + + .compare-dots { + margin: 0 $btn-side-margin; + } } .merge-request-details { diff --git a/app/helpers/git_helper.rb b/app/helpers/git_helper.rb index 09684955233..9d7982e169c 100644 --- a/app/helpers/git_helper.rb +++ b/app/helpers/git_helper.rb @@ -2,4 +2,8 @@ module GitHelper def strip_gpg_signature(text) text.gsub(/-----BEGIN PGP SIGNATURE-----(.*)-----END PGP SIGNATURE-----/m, "") end + + def short_sha(text) + text[0...8] + end end diff --git a/app/views/projects/merge_requests/show/_versions.html.haml b/app/views/projects/merge_requests/show/_versions.html.haml index 13bec019988..bdedaa31e12 100644 --- a/app/views/projects/merge_requests/show/_versions.html.haml +++ b/app/views/projects/merge_requests/show/_versions.html.haml @@ -1,57 +1,58 @@ - merge_request_diffs = @merge_request.merge_request_diffs.select_without_diff +- compareable_diffs = merge_request_diffs.select { |diff| diff.id < @merge_request_diff.id } - if merge_request_diffs.size > 1 - .mr-version-switch - Version: - %span.dropdown.inline + .mr-version-controls + Version + %span.dropdown.inline.mr-version-dropdown %a.btn-link.dropdown-toggle{ data: {toggle: :dropdown} } %strong.monospace< - if @merge_request_diff.latest? - #{"latest"} + Latest: #{short_sha(@merge_request_diff.head_commit_sha)} - else - #{@merge_request_diff.head_commit.short_id} + #{short_sha(@merge_request_diff.head_commit_sha)} %span.caret %ul.dropdown-menu.dropdown-menu-selectable - - merge_request_diffs.each do |merge_request_diff| + - merge_request_diffs.each_with_index do |merge_request_diff, i| %li = link_to diffs_namespace_project_merge_request_path(@project.namespace, @project, @merge_request, diff_id: merge_request_diff.id), class: ('is-active' if merge_request_diff == @merge_request_diff) do %strong.monospace + - if i.zero? + Latest: + - else + #{merge_request_diffs.size - i}. #{merge_request_diff.head_commit.short_id} %br %small #{number_with_delimiter(merge_request_diff.commits.count)} #{'commit'.pluralize(merge_request_diff.commits.count)}, = time_ago_with_tooltip(merge_request_diff.created_at) - %span.prepend-left-default - Compared with: - %span.dropdown.inline - %a.btn-link.dropdown-toggle{ data: {toggle: :dropdown} } - %strong.monospace< - - if params[:start_sha].present? - #{params[:start_sha][0...8]} - - else - #{"base"} - %span.caret - %ul.dropdown-menu.dropdown-menu-selectable - - merge_request_diffs.each do |merge_request_diff| - - next if merge_request_diff.id >= @merge_request_diff.id - %li - = link_to mr_version_path(@project, @merge_request, @merge_request_diff, merge_request_diff.head_commit_sha), class: ('is-active' if merge_request_diff.head_commit_sha == params[:start_sha]) do - %strong.monospace - #{merge_request_diff.head_commit.short_id} - %br - %small - = time_ago_with_tooltip(merge_request_diff.created_at) + %span.compare-dots ... + + Compared with + %span.dropdown.inline.mr-version-compare-dropdown + %a.btn-link.dropdown-toggle{ data: {toggle: :dropdown} } + %strong.monospace< + - if params[:start_sha].present? + #{short_sha(params[:start_sha])} + - else + Base: #{short_sha(@merge_request_diff.base_commit_sha)} + %span.caret + %ul.dropdown-menu.dropdown-menu-selectable + - compareable_diffs.each_with_index do |merge_request_diff, i| %li - = link_to mr_version_path(@project, @merge_request, @merge_request_diff), class: ('is-active' unless params[:start_sha].present?) do + = link_to mr_version_path(@project, @merge_request, @merge_request_diff, merge_request_diff.head_commit_sha), class: ('is-active' if merge_request_diff.head_commit_sha == params[:start_sha]) do %strong.monospace - base - + #{compareable_diffs.size - i}. #{short_sha(merge_request_diff.head_commit_sha)} + %br + %small + = time_ago_with_tooltip(merge_request_diff.created_at) + %li + = link_to mr_version_path(@project, @merge_request, @merge_request_diff), class: ('is-active' unless params[:start_sha].present?) do + %strong.monospace + Base: #{short_sha(@merge_request_diff.base_commit_sha)} - unless @merge_request_diff.latest? && params[:start_sha].blank? - .pull-right + .prepend-top-10 = icon('info-circle') - - if params[:start_sha].present? - Comments are disabled when compare with version different from base - - else - This version is not the latest one. Comments are disabled + Comments are disabled while viewing outdated merge versions or comparing to versions other than base. |