Merge branch 'ui-improvements' into 'master'
Ui improvements * fix project home page when activity set as default * style commits, branches and tags pages to new style * render flash message outside of content block * style group pages See merge request !1255
This commit is contained in:
commit
e0da2c3523
27 changed files with 135 additions and 117 deletions
|
@ -169,7 +169,7 @@
|
|||
padding: 0px;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
> li {
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px solid #EEE;
|
||||
overflow: hidden;
|
||||
|
|
|
@ -27,6 +27,11 @@
|
|||
border-bottom: 1px solid #e7e9ed;
|
||||
color: $gl-gray;
|
||||
|
||||
&.second-block {
|
||||
margin-top: -1px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.footer-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: -$gl-padding;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
/** COMMON CLASSES **/
|
||||
.prepend-top-10 { margin-top:10px }
|
||||
.prepend-top-default { margin-top: $gl-padding; }
|
||||
.prepend-top-20 { margin-top:20px }
|
||||
.prepend-left-10 { margin-left:10px }
|
||||
.prepend-left-20 { margin-left:20px }
|
||||
|
|
|
@ -105,7 +105,7 @@ ul.content-list {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
> li {
|
||||
padding: $gl-padding;
|
||||
border-color: #f1f2f4;
|
||||
margin-left: -$gl-padding;
|
||||
|
|
|
@ -193,8 +193,9 @@ ul.nav.nav-projects-tabs {
|
|||
.breadcrumb.repo-breadcrumb {
|
||||
padding: 0;
|
||||
line-height: 42px;
|
||||
background: white;
|
||||
background: transparent;
|
||||
border: none;
|
||||
margin: 0;
|
||||
|
||||
> li + li:before {
|
||||
padding: 0 3px;
|
||||
|
@ -331,3 +332,9 @@ pre.light-well {
|
|||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.project-show-activity {
|
||||
.activity-filter-block {
|
||||
margin-top: -1px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,4 +30,13 @@ module GroupsHelper
|
|||
image_path('no_group_avatar.png')
|
||||
end
|
||||
end
|
||||
|
||||
def group_title(group, name, url)
|
||||
content_tag :span do
|
||||
link_to(
|
||||
simple_sanitize(group.name), group_path(group)
|
||||
) + ' · '.html_safe +
|
||||
link_to(simple_sanitize(name), url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,25 +1,24 @@
|
|||
- page_title "Issues"
|
||||
- header_title group_title(@group, "Issues", issues_group_path(@group))
|
||||
= content_for :meta_tags do
|
||||
- if current_user
|
||||
= auto_discovery_link_tag(:atom, issues_group_url(@group, format: :atom, private_token: current_user.private_token), title: "#{@group.name} issues")
|
||||
|
||||
%h3.page-title
|
||||
Issues
|
||||
|
||||
%p.light
|
||||
Only issues from
|
||||
%strong #{@group.name}
|
||||
group are listed here.
|
||||
- if current_user
|
||||
To see all issues you should visit #{link_to 'dashboard', issues_dashboard_path} page.
|
||||
%hr
|
||||
|
||||
.append-bottom-20
|
||||
= render 'shared/issuable/filter', type: :issues
|
||||
.gray-content-block.second-block
|
||||
.pull-right
|
||||
- if current_user
|
||||
.hidden-xs.pull-left
|
||||
= link_to issues_group_url(@group, format: :atom, private_token: current_user.private_token), class: 'btn' do
|
||||
= link_to issues_group_url(@group, format: :atom, private_token: current_user.private_token) do
|
||||
%i.fa.fa-rss
|
||||
%div
|
||||
Only issues from
|
||||
%strong #{@group.name}
|
||||
group are listed here.
|
||||
- if current_user
|
||||
To see all issues you should visit #{link_to 'dashboard', issues_dashboard_path} page.
|
||||
|
||||
= render 'shared/issuable/filter', type: :issues
|
||||
= render 'shared/issues'
|
||||
.prepend-top-default
|
||||
= render 'shared/issues'
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
- page_title "Merge Requests"
|
||||
%h3.page-title
|
||||
Merge Requests
|
||||
- header_title group_title(@group, "Merge Requests", merge_requests_group_path(@group))
|
||||
|
||||
%p.light
|
||||
Only merge requests from
|
||||
%strong #{@group.name}
|
||||
group are listed here.
|
||||
- if current_user
|
||||
To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page.
|
||||
%hr
|
||||
.append-bottom-20
|
||||
= render 'shared/issuable/filter', type: :merge_requests
|
||||
= render 'shared/merge_requests'
|
||||
= render 'shared/issuable/filter', type: :merge_requests
|
||||
.gray-content-block.second-block
|
||||
%div
|
||||
Only merge requests from
|
||||
%strong #{@group.name}
|
||||
group are listed here.
|
||||
- if current_user
|
||||
To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page.
|
||||
.prepend-top-default
|
||||
= render 'shared/merge_requests'
|
||||
|
|
|
@ -1,23 +1,17 @@
|
|||
- page_title "Milestones"
|
||||
%h3.page-title
|
||||
Milestones
|
||||
%span.pull-right #{@group_milestones.count} milestones
|
||||
- header_title group_title(@group, "Milestones", group_milestones_path(@group))
|
||||
|
||||
%p.light
|
||||
= render 'shared/milestones_filter'
|
||||
.gray-content-block
|
||||
Only milestones from
|
||||
%strong #{@group.name}
|
||||
group are listed here.
|
||||
|
||||
%hr
|
||||
|
||||
= render 'shared/milestones_filter'
|
||||
.milestones
|
||||
.panel.panel-default
|
||||
%ul.well-list
|
||||
- if @group_milestones.blank?
|
||||
%li
|
||||
.nothing-here-block No milestones to show
|
||||
- else
|
||||
- @group_milestones.each do |milestone|
|
||||
= render 'milestone', milestone: milestone
|
||||
%ul.content-list
|
||||
- if @group_milestones.blank?
|
||||
%li
|
||||
.nothing-here-block No milestones to show
|
||||
- else
|
||||
- @group_milestones.each do |milestone|
|
||||
= render 'milestone', milestone: milestone
|
||||
= paginate @group_milestones, theme: "gitlab"
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
.username
|
||||
= current_user.username
|
||||
.content-wrapper
|
||||
= render "layouts/flash"
|
||||
%div{ class: fluid_layout ? "container-fluid" : "container-fluid container-limited" }
|
||||
.content
|
||||
= render "layouts/flash"
|
||||
.clearfix
|
||||
= yield
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- page_title @group.name
|
||||
- header_title @group.name, group_path(@group)
|
||||
- unless @header_title
|
||||
- header_title @group.name, group_path(@group)
|
||||
- sidebar "group" unless sidebar
|
||||
|
||||
= render template: "layouts/application"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
= render 'projects/last_push'
|
||||
.gray-content-block
|
||||
.gray-content-block.activity-filter-block
|
||||
- if current_user
|
||||
%ul.nav.nav-pills.event_filter.pull-right
|
||||
%li
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
- commit = @repository.commit(branch.target)
|
||||
%li(class="js-branch-#{branch.name}")
|
||||
%h4
|
||||
%div
|
||||
= link_to namespace_project_tree_path(@project.namespace, @project, branch.name) do
|
||||
%strong.str-truncated= branch.name
|
||||
|
||||
- if branch.name == @repository.root_ref
|
||||
%span.label.label-info default
|
||||
%span.label.label-primary default
|
||||
- elsif @repository.merged_to_root_ref? branch.name
|
||||
%span.label.label-primary.has_tooltip(title="Merged into #{@repository.root_ref}")
|
||||
%i.fa.fa-check
|
||||
%span.label.label-info.has_tooltip(title="Merged into #{@repository.root_ref}")
|
||||
merged
|
||||
|
||||
- if @project.protected_branch? branch.name
|
||||
%span.label.label-success
|
||||
%i.fa.fa-lock
|
||||
protected
|
||||
.pull-right
|
||||
.controls.hidden-xs
|
||||
- if create_mr_button?(@repository.root_ref, branch.name)
|
||||
= link_to create_mr_path(@repository.root_ref, branch.name), class: 'btn btn-grouped btn-xs' do
|
||||
= icon('plus')
|
||||
|
@ -30,8 +30,7 @@
|
|||
= icon("trash-o")
|
||||
|
||||
- if commit
|
||||
%ul.list-unstyled
|
||||
= render 'projects/commits/inline_commit', commit: commit, project: @project
|
||||
= render 'projects/branches/commit', commit: commit, project: @project
|
||||
- else
|
||||
%p
|
||||
Cant find HEAD commit for this branch
|
||||
|
|
7
app/views/projects/branches/_commit.html.haml
Normal file
7
app/views/projects/branches/_commit.html.haml
Normal file
|
@ -0,0 +1,7 @@
|
|||
.branch-commit.light
|
||||
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id"
|
||||
·
|
||||
%span.str-truncated
|
||||
= link_to_gfm commit.title, namespace_project_commit_path(project.namespace, project, commit.id), class: "commit-row-message"
|
||||
·
|
||||
#{time_ago_with_tooltip(commit.committed_date)}
|
|
@ -1,7 +1,6 @@
|
|||
- page_title "Branches"
|
||||
= render "projects/commits/head"
|
||||
%h3.page-title
|
||||
Branches
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
- if can? current_user, :push_code, @project
|
||||
= link_to new_namespace_project_branch_path(@project.namespace, @project), class: 'btn btn-create' do
|
||||
|
@ -24,9 +23,10 @@
|
|||
= sort_title_recently_updated
|
||||
= link_to namespace_project_branches_path(sort: 'last_updated') do
|
||||
= sort_title_oldest_updated
|
||||
%hr
|
||||
.oneline
|
||||
Protected branches can be managed in project settings
|
||||
- unless @branches.empty?
|
||||
%ul.bordered-list.top-list.all-branches
|
||||
%ul.content-list.all-branches
|
||||
- @branches.each do |branch|
|
||||
= render "projects/branches/branch", branch: branch
|
||||
= paginate @branches, theme: 'gitlab'
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
%ul.nav.nav-tabs
|
||||
%ul.center-top-menu
|
||||
= nav_link(controller: [:commit, :commits]) do
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref) do
|
||||
= icon("history")
|
||||
Commits
|
||||
%span.badge= number_with_delimiter(@repository.commit_count)
|
||||
= nav_link(controller: :compare) do
|
||||
= link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: @ref || @repository.root_ref) do
|
||||
= icon("exchange")
|
||||
Compare
|
||||
|
||||
= nav_link(html_options: {class: branches_tab_class}) do
|
||||
= link_to namespace_project_branches_path(@project.namespace, @project) do
|
||||
= icon("code-fork")
|
||||
Branches
|
||||
%span.badge.js-totalbranch-count= @repository.branches.size
|
||||
|
||||
= nav_link(controller: :tags) do
|
||||
= link_to namespace_project_tags_path(@project.namespace, @project) do
|
||||
= icon("tags")
|
||||
Tags
|
||||
%span.badge.js-totaltags-count= @repository.tags.length
|
||||
|
|
|
@ -5,22 +5,23 @@
|
|||
|
||||
= render "head"
|
||||
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'commits'
|
||||
.gray-content-block
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'commits'
|
||||
|
||||
.commits-feed-holder.hidden-xs.hidden-sm
|
||||
- if create_mr_button?(@repository.root_ref, @ref)
|
||||
= link_to create_mr_path(@repository.root_ref, @ref), class: 'btn btn-success' do
|
||||
= icon('plus')
|
||||
Create Merge Request
|
||||
.commits-feed-holder.hidden-xs.hidden-sm
|
||||
- if create_mr_button?(@repository.root_ref, @ref)
|
||||
= link_to create_mr_path(@repository.root_ref, @ref), class: 'btn btn-success' do
|
||||
= icon('plus')
|
||||
Create Merge Request
|
||||
|
||||
- if current_user && current_user.private_token
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Commits Feed", class: 'prepend-left-10 btn' do
|
||||
= icon("rss")
|
||||
- if current_user && current_user.private_token
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Commits Feed", class: 'prepend-left-10 btn' do
|
||||
= icon("rss")
|
||||
|
||||
|
||||
%ul.breadcrumb.repo-breadcrumb
|
||||
= commits_breadcrumbs
|
||||
%ul.breadcrumb.repo-breadcrumb
|
||||
= commits_breadcrumbs
|
||||
|
||||
%div{id: dom_id(@project)}
|
||||
#commits-list= render "commits", project: @project
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
= form_tag namespace_project_compare_index_path(@project.namespace, @project), method: :post, class: 'form-inline js-requires-input' do
|
||||
.clearfix.append-bottom-20
|
||||
.clearfix
|
||||
- if params[:to] && params[:from]
|
||||
= link_to 'switch', {from: params[:to], to: params[:from]}, {class: 'commits-compare-switch has_tooltip', title: 'Switch base of comparison'}
|
||||
.form-group
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
- page_title "Compare"
|
||||
= render "projects/commits/head"
|
||||
|
||||
%h3.page-title
|
||||
Compare View
|
||||
%p.slead
|
||||
.gray-content-block
|
||||
Compare branches, tags or commit ranges.
|
||||
%br
|
||||
Fill input field with commit id like
|
||||
|
@ -14,4 +12,5 @@
|
|||
%br
|
||||
Changes are shown <b>from</b> the version in the first field <b>to</b> the version in the second field.
|
||||
|
||||
= render "form"
|
||||
.prepend-top-20
|
||||
= render "form"
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
- page_title "#{params[:from]}...#{params[:to]}"
|
||||
= render "projects/commits/head"
|
||||
|
||||
%h3.page-title
|
||||
Compare View
|
||||
|
||||
= render "form"
|
||||
.gray-content-block
|
||||
= render "form"
|
||||
|
||||
- if @commits.present?
|
||||
= render "projects/commits/commit_list"
|
||||
= render "projects/diffs/diffs", diffs: @diffs, project: @project
|
||||
.prepend-top-20
|
||||
= render "projects/commits/commit_list"
|
||||
= render "projects/diffs/diffs", diffs: @diffs, project: @project
|
||||
- else
|
||||
.light-well
|
||||
.light-well.prepend-top-20
|
||||
.center
|
||||
%h4
|
||||
There isn't anything to compare.
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
- page_title "Milestones"
|
||||
.pull-right
|
||||
- if can? current_user, :admin_milestone, @project
|
||||
= link_to new_namespace_project_milestone_path(@project.namespace, @project), class: "pull-right btn btn-new", title: "New Milestone" do
|
||||
%i.fa.fa-plus
|
||||
New Milestone
|
||||
= render 'shared/milestones_filter'
|
||||
|
||||
.milestones
|
||||
.panel.panel-default
|
||||
%ul.well-list
|
||||
= render @milestones
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
- if can? current_user, :admin_milestone, @project
|
||||
= link_to new_namespace_project_milestone_path(@project.namespace, @project), class: "pull-right btn btn-new", title: "New Milestone" do
|
||||
%i.fa.fa-plus
|
||||
New Milestone
|
||||
.oneline
|
||||
Milestone allows you to group issues and set due date for it
|
||||
|
||||
- if @milestones.blank?
|
||||
%li
|
||||
.nothing-here-block No milestones to show
|
||||
.milestones
|
||||
%ul.content-list
|
||||
= render @milestones
|
||||
|
||||
- if @milestones.blank?
|
||||
%li
|
||||
.nothing-here-block No milestones to show
|
||||
|
||||
= paginate @milestones, theme: "gitlab"
|
||||
|
|
|
@ -65,9 +65,11 @@
|
|||
|
||||
%section
|
||||
- if prefer_readme?
|
||||
= render 'projects/readme'
|
||||
.project-show-readme
|
||||
= render 'projects/readme'
|
||||
- else
|
||||
= render 'projects/activity'
|
||||
.project-show-activity
|
||||
= render 'projects/activity'
|
||||
|
||||
|
||||
- if current_user
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
- commit = @repository.commit(tag.target)
|
||||
%li
|
||||
%h4
|
||||
%div
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, tag.name), class: "" do
|
||||
%i.fa.fa-tag
|
||||
= tag.name
|
||||
%strong
|
||||
%i.fa.fa-tag
|
||||
= tag.name
|
||||
- if tag.message.present?
|
||||
|
||||
= strip_gpg_signature(tag.message)
|
||||
.pull-right
|
||||
.controls
|
||||
- if can? current_user, :download_code, @project
|
||||
= render 'projects/repositories/download_archive', ref: tag.name, btn_class: 'btn-grouped btn-group-xs'
|
||||
- if can?(current_user, :admin_project, @project)
|
||||
|
@ -15,8 +16,7 @@
|
|||
%i.fa.fa-trash-o
|
||||
|
||||
- if commit
|
||||
%ul.list-unstyled
|
||||
= render 'projects/commits/inline_commit', commit: commit, project: @project
|
||||
= render 'projects/branches/commit', commit: commit, project: @project
|
||||
- else
|
||||
%p
|
||||
Cant find HEAD commit for this tag
|
||||
|
|
|
@ -1,21 +1,18 @@
|
|||
- page_title "Tags"
|
||||
= render "projects/commits/head"
|
||||
|
||||
%h3.page-title
|
||||
Git Tags
|
||||
.gray-content-block
|
||||
- if can? current_user, :push_code, @project
|
||||
.pull-right
|
||||
= link_to new_namespace_project_tag_path(@project.namespace, @project), class: 'btn btn-create new-tag-btn' do
|
||||
%i.fa.fa-add-sign
|
||||
New tag
|
||||
|
||||
%p.light
|
||||
Tags give the ability to mark specific points in history as being important
|
||||
%hr
|
||||
.oneline
|
||||
Tags give the ability to mark specific points in history as being important
|
||||
|
||||
.tags
|
||||
- unless @tags.empty?
|
||||
%ul.bordered-list
|
||||
%ul.content-list
|
||||
- @tags.each do |tag|
|
||||
= render 'tag', tag: @repository.find_tag(tag)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
%small
|
||||
%i.fa.fa-plus
|
||||
|
||||
%div#tree-content-holder.tree-content-holder
|
||||
%div#tree-content-holder.tree-content-holder.prepend-top-20
|
||||
%table#tree-slider{class: "table_#{@hex_path} tree-table" }
|
||||
%thead
|
||||
%tr
|
||||
|
|
|
@ -52,7 +52,6 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I see compared refs' do
|
||||
expect(page).to have_content "Compare View"
|
||||
expect(page).to have_content "Commits (1)"
|
||||
expect(page).to have_content "Showing 2 changed files"
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ module SharedActiveTab
|
|||
end
|
||||
|
||||
def ensure_active_sub_tab(content)
|
||||
expect(find('div.content ul.nav-tabs li.active')).to have_content(content)
|
||||
expect(find('div.content ul.center-top-menu li.active')).to have_content(content)
|
||||
end
|
||||
|
||||
def ensure_active_sub_nav(content)
|
||||
|
@ -18,7 +18,7 @@ module SharedActiveTab
|
|||
end
|
||||
|
||||
step 'no other sub tabs should be active' do
|
||||
expect(page).to have_selector('div.content ul.nav-tabs li.active', count: 1)
|
||||
expect(page).to have_selector('div.content ul.center-top-menu li.active', count: 1)
|
||||
end
|
||||
|
||||
step 'no other sub navs should be active' do
|
||||
|
|
Loading…
Reference in a new issue