Commit 6886fab4 authored by Annabel Dunstone Gray's avatar Annabel Dunstone Gray

Merge branch 'master' into 'remove-pages-css'

# Conflicts:
#   app/assets/stylesheets/framework.scss
parents bdd1193f 50c38980
...@@ -21,6 +21,8 @@ logs, and code as it's very hard to read otherwise.) ...@@ -21,6 +21,8 @@ logs, and code as it's very hard to read otherwise.)
### Output of checks ### Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
#### Results of GitLab application Check #### Results of GitLab application Check
(For installations with omnibus-gitlab package run and paste the output of: (For installations with omnibus-gitlab package run and paste the output of:
......
...@@ -42,3 +42,4 @@ ...@@ -42,3 +42,4 @@
@import "framework/page-header.scss"; @import "framework/page-header.scss";
@import "framework/awards.scss"; @import "framework/awards.scss";
@import "framework/images.scss"; @import "framework/images.scss";
@import "framework/broadcast-messages";
.light-well {
background-color: $background-color;
padding: 15px;
}
.centered-light-block { .centered-light-block {
text-align: center; text-align: center;
color: $gl-gray; color: $gl-gray;
...@@ -274,6 +269,10 @@ ...@@ -274,6 +269,10 @@
} }
} }
.emoji-icon {
display: inline-block;
}
@media(max-width: $screen-xs-max) { @media(max-width: $screen-xs-max) {
margin-top: 50px; margin-top: 50px;
text-align: center; text-align: center;
......
.broadcast-message {
@extend .alert-warning;
padding: 10px;
text-align: center;
div,
p {
display: inline;
margin: 0;
a {
color: inherit;
text-decoration: underline;
}
}
}
.broadcast-message-preview {
@extend .broadcast-message;
margin-bottom: 20px;
}
...@@ -379,7 +379,9 @@ table { ...@@ -379,7 +379,9 @@ table {
border-top: 1px solid $border-color; border-top: 1px solid $border-color;
} }
.hide-bottom-border { border-bottom: none !important; } .hide-bottom-border {
border-bottom: none !important;
}
.gl-accessibility { .gl-accessibility {
&:focus { &:focus {
...@@ -396,3 +398,13 @@ table { ...@@ -396,3 +398,13 @@ table {
z-index: 1; z-index: 1;
} }
} }
.str-truncated {
&-60 {
@include str-truncated(60%);
}
&-100 {
@include str-truncated(100%);
}
}
...@@ -106,13 +106,13 @@ ul.task-list { ...@@ -106,13 +106,13 @@ ul.task-list {
} }
} }
// Generic content list
ul.content-list { ul.content-list {
@include basic-list; @include basic-list;
margin: 0; margin: 0;
padding: 0; padding: 0;
> li { li {
border-color: $table-border-color; border-color: $table-border-color;
font-size: $list-font-size; font-size: $list-font-size;
color: $list-text-color; color: $list-text-color;
...@@ -193,6 +193,41 @@ ul.content-list { ...@@ -193,6 +193,41 @@ ul.content-list {
} }
} }
// Content list using flexbox
.flex-list {
.flex-row {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
white-space: nowrap;
}
.row-main-content {
flex: 1 1 auto;
overflow: hidden;
padding-right: 8px;
}
.row-title {
font-weight: 600;
}
.row-second-line {
display: block;
}
.dropdown {
.btn-block {
margin-bottom: 0;
line-height: inherit;
}
}
.label-default {
color: $btn-transparent-color;
}
}
.panel > .content-list > li { .panel > .content-list > li {
padding: $gl-padding-top $gl-padding; padding: $gl-padding-top $gl-padding;
......
...@@ -268,6 +268,16 @@ ...@@ -268,6 +268,16 @@
width: auto; width: auto;
} }
} }
&.multi-line {
.nav-text {
line-height: 20px;
}
.nav-controls {
padding: 17px 0;
}
}
} }
.layout-nav { .layout-nav {
......
...@@ -34,6 +34,10 @@ table { ...@@ -34,6 +34,10 @@ table {
background-color: $background-color; background-color: $background-color;
font-weight: normal; font-weight: normal;
border-bottom: none; border-bottom: none;
&.wide {
width: 55%;
}
} }
td { td {
...@@ -42,3 +46,16 @@ table { ...@@ -42,3 +46,16 @@ table {
} }
} }
} }
.responsive-table {
@media (max-width: $screen-sm-max) {
th {
width: 100%;
}
td {
width: 100%;
float: left;
}
}
}
...@@ -43,3 +43,16 @@ ...@@ -43,3 +43,16 @@
background-color: $well-expand-item; background-color: $well-expand-item;
} }
} }
.light-well {
background-color: $background-color;
padding: 15px;
}
.well-centered {
h1 {
font-weight: normal;
text-align: center;
font-size: 48px;
}
}
/**
* Admin area
*
*/
.admin-dashboard {
.data {
a {
h1 {
line-height: 48px;
font-size: 48px;
padding: 20px;
text-align: center;
font-weight: normal;
}
}
}
.str-truncated {
max-width: 60%;
}
}
.admin-filter form {
.select2-container {
width: 100%;
}
.controls {
margin-left: 130px;
}
.form-actions {
padding-left: 130px;
background: $white-light;
}
.visibility-levels {
.controls {
margin-bottom: 9px;
}
i {
color: inherit;
}
}
}
.broadcast-messages {
.message {
line-height: 2;
}
}
.broadcast-message {
@extend .alert-warning;
padding: 10px;
text-align: center;
> div,
p {
display: inline;
margin: 0;
a {
color: inherit;
text-decoration: underline;
}
}
}
.broadcast-message-preview {
@extend .broadcast-message;
margin-bottom: 20px;
}
// Users List
.users-list {
.user-row {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
white-space: nowrap;
}
.user-details {
flex: 1 1 auto;
overflow: hidden;
padding-right: 8px;
}
.user-name {
display: inline-block;
font-weight: 600;
}
.user-name,
.user-email {
overflow: hidden;
text-overflow: ellipsis;
}
.dropdown {
.btn-block {
margin-bottom: 0;
line-height: inherit;
}
}
.label-default {
color: $btn-transparent-color;
}
}
.abuse-reports {
.table {
table-layout: fixed;
}
.subheading {
padding-bottom: $gl-padding;
}
.message {
word-wrap: break-word;
}
.btn {
white-space: normal;
padding: $gl-btn-padding;
}
th {
width: 15%;
&.wide {
width: 55%;
}
}
@media (max-width: $screen-sm-max) {
th {
width: 100%;
}
td {
width: 100%;
float: left;
}
}
.no-reports {
.emoji-icon {
margin-left: $btn-side-margin;
margin-top: 3px;
}
span {
font-size: 18px;
}
}
}
.admin-builds-table {
.ci-table td:last-child {
min-width: 120px;
}
}
...@@ -280,6 +280,12 @@ ...@@ -280,6 +280,12 @@
} }
} }
.admin-builds-table {
.ci-table td:last-child {
min-width: 120px;
}
}
// Pipeline visualization // Pipeline visualization
.toggle-pipeline-btn { .toggle-pipeline-btn {
......
.tag-buttons {
line-height: 40px;
.btn:not(.dropdown-toggle) {
margin-left: 10px;
}
}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
.abuse-reports .abuse-reports
- if @abuse_reports.present? - if @abuse_reports.present?
.table-holder .table-holder
%table.table %table.table.responsive-table
%thead.hidden-sm.hidden-xs %thead.hidden-sm.hidden-xs
%tr %tr
%th User %th User
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
%th Action %th Action
= render @abuse_reports = render @abuse_reports
- else - else
.no-reports .empty-state
%span.pull-left .text-center
There are no abuse reports! %h4 There are no abuse reports! #{emoji_icon 'tada'}
.pull-left
= emoji_icon 'tada'
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
%hr %hr
.row .row
.col-sm-4 .col-sm-4
.light-well .light-well.well-centered
%h4 Projects %h4 Projects
.data .data
= link_to admin_namespaces_projects_path do = link_to admin_namespaces_projects_path do
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
%hr %hr
= link_to('New Project', new_project_path, class: "btn btn-new") = link_to('New Project', new_project_path, class: "btn btn-new")
.col-sm-4 .col-sm-4
.light-well .light-well.well-centered
%h4 Users %h4 Users
.data .data
= link_to admin_users_path do = link_to admin_users_path do
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
%hr %hr
= link_to 'New User', new_admin_user_path, class: "btn btn-new" = link_to 'New User', new_admin_user_path, class: "btn btn-new"
.col-sm-4 .col-sm-4
.light-well .light-well.well-centered
%h4 Groups %h4 Groups
.data .data
= link_to admin_groups_path do = link_to admin_groups_path do
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
%hr %hr
- @projects.each do |project| - @projects.each do |project|
%p %p
= link_to project.name_with_namespace, [:admin, project.namespace.becomes(Namespace), project], class: 'str-truncated' = link_to project.name_with_namespace, [:admin, project.namespace.becomes(Namespace), project], class: 'str-truncated-60'
%span.light.pull-right %span.light.pull-right
#{time_ago_with_tooltip(project.created_at)} #{time_ago_with_tooltip(project.created_at)}
...@@ -152,7 +152,7 @@ ...@@ -152,7 +152,7 @@
%hr %hr
- @users.each do |user| - @users.each do |user|
%p %p
= link_to [:admin, user], class: 'str-truncated' do = link_to [:admin, user], class: 'str-truncated-60' do
= user.name = user.name
%span.light.pull-right %span.light.pull-right
#{time_ago_with_tooltip(user.created_at)} #{time_ago_with_tooltip(user.created_at)}
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
%hr %hr
- @groups.each do |group| - @groups.each do |group|
%p %p
= link_to [:admin, group], class: 'str-truncated' do = link_to [:admin, group], class: 'str-truncated-60' do
= group.name = group.name
%span.light.pull-right %span.light.pull-right
#{time_ago_with_tooltip(group.created_at)} #{time_ago_with_tooltip(group.created_at)}
%li.user-row %li.flex-row
.user-avatar .user-avatar
= image_tag avatar_icon(user), class: "avatar", alt: '' = image_tag avatar_icon(user), class: "avatar", alt: ''
.user-details .row-main-content
.user-name .user-name.row-title.str-truncated-100
= link_to user.name, [:admin, user] = link_to user.name, [:admin, user]
- if user.blocked? - if user.blocked?
%span.label.label-danger blocked %span.label.label-danger blocked
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
%span.label.label-default External %span.label.label-default External
- if user == current_user - if user == current_user
%span It's you! %span It's you!
.user-email .row-second-line.str-truncated-100
= mail_to user.email, user.email = mail_to user.email, user.email
.controls .controls
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn' = link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn'
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
%small.badge= number_with_delimiter(User.without_projects.count) %small.badge= number_with_delimiter(User.without_projects.count)
.fade-right .fade-right
%ul.users-list.content-list %ul.flex-list.content-list
- if @users.empty? - if @users.empty?
%li %li
.nothing-here-block No users found. .nothing-here-block No users found.
......
- if !project.empty_repo? && can?(current_user, :download_code, project) - if !project.empty_repo? && can?(current_user, :download_code, project)
%span{class: 'download-button'} .dropdown.inline.download-button
.dropdown.inline %button.btn{ 'data-toggle' => 'dropdown' }
%button.btn{ 'data-toggle' => 'dropdown' } = icon('download')
= icon('download') = icon("caret-down")
= icon("caret-down") %span.sr-only
%span.sr-only Select Archive Format
Select Archive Format %ul.dropdown-menu.dropdown-menu-align-right{ role: 'menu' }
%ul.dropdown-menu.dropdown-menu-align-right{ role: 'menu' } %li.dropdown-header Source code
%li.dropdown-header Source code %li
%li = link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'zip'), rel: 'nofollow' do
= link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'zip'), rel: 'nofollow' do %i.fa.fa-download
%i.fa.fa-download %span Download zip
%span Download zip %li
%li = link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar.gz'), rel: 'nofollow' do
= link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar.gz'), rel: 'nofollow' do %i.fa.fa-download
%i.fa.fa-download %span Download tar.gz
%span Download tar.gz %li
%li = link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar.bz2'), rel: 'nofollow' do
= link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar.bz2'), rel: 'nofollow' do %i.fa.fa-download
%i.fa.fa-download %span Download tar.bz2
%span Download tar.bz2 %li
%li = link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar'), rel: 'nofollow' do
= link_to archive_namespace_project_repository_path(project.namespace, project, ref: ref, format: 'tar'), rel: 'nofollow' do %i.fa.fa-download
%i.fa.fa-download %span Download tar
%span Download tar
- pipeline = project.pipelines.latest_successful_for(ref) - pipeline = project.pipelines.latest_successful_for(ref)
- if pipeline - if pipeline
- artifacts = pipeline.builds.latest.with_artifacts - artifacts = pipeline.builds.latest.with_artifacts
- if artifacts.any? - if artifacts.any?
%li.dropdown-header Artifacts %li.dropdown-header Artifacts
- unless pipeline.latest? - unless pipeline.latest?
- latest_pipeline = project.pipeline_for(ref) - latest_pipeline = project.pipeline_for(ref)
%li %li
.unclickable= ci_status_for_statuseable(latest_pipeline) .unclickable= ci_status_for_statuseable(latest_pipeline)
%li.dropdown-header Previous Artifacts %li.dropdown-header Previous Artifacts
- artifacts.each do |job| - artifacts.each do |job|
%li %li
= link_to latest_succeeded_namespace_project_artifacts_path(project.namespace, project, "#{ref}/download", job: job.name), rel: 'nofollow' do = link_to latest_succeeded_namespace_project_artifacts_path(project.namespace, project, "#{ref}/download", job: job.name), rel: 'nofollow' do
%i.fa.fa-download %i.fa.fa-download
%span Download '#{job.name}' %span Download '#{job.name}'
...@@ -3,8 +3,16 @@ ...@@ -3,8 +3,16 @@
= render "projects/commits/head" = render "projects/commits/head"
%div{ class: container_class } %div{ class: container_class }
.sub-header-block .top-area.multi-line
.pull-right.tag-buttons .nav-text
.title
%span.item-title= @tag.name
- if @commit
= render 'projects/branches/commit', commit: @commit, project: @project
- else
Cant find HEAD commit for this tag
.nav-controls
- if can?(current_user, :push_code, @project) - if can?(current_user, :push_code, @project)
= link_to edit_namespace_project_tag_release_path(@project.namespace, @project, @tag.name), class: 'btn has-tooltip', title: 'Edit release notes' do = link_to edit_namespace_project_tag_release_path(@project.namespace, @project, @tag.name), class: 'btn has-tooltip', title: 'Edit release notes' do
= icon("pencil") = icon("pencil")
...@@ -15,15 +23,8 @@ ...@@ -15,15 +23,8 @@
= render 'projects/buttons/download', project: @project, ref: @tag.name = render 'projects/buttons/download', project: @project, ref: @tag.name
- if can?(current_user, :admin_project, @project) - if can?(current_user, :admin_project, @project)
.pull-right .pull-right
= link_to namespace_project_tag_path(@project.namespace, @project, @tag.name), class: 'btn btn-remove remove-row grouped has-tooltip', title: "Delete tag", method: :delete, data: { confirm: "Deleting the '#{@tag.name}' tag cannot be undone. Are you sure?" } do = link_to namespace_project_tag_path(@project.namespace, @project, @tag.name), class: 'btn btn-remove remove-row has-tooltip', title: "Delete tag", method: :delete, data: { confirm: "Deleting the '#{@tag.name}' tag cannot be undone. Are you sure?" } do
%i.fa.fa-trash-o %i.fa.fa-trash-o
.tag-info.append-bottom-10
.title
%span.item-title= @tag.name
- if @commit
= render 'projects/branches/commit', commit: @commit, project: @project
- else
Cant find HEAD commit for this tag
- if @tag.message.present? - if @tag.message.present?
%pre.body %pre.body
= strip_gpg_signature(@tag.message) = strip_gpg_signature(@tag.message)
......
require 'spec_helper' require 'spec_helper'
# This test serves as a regression test for a bug that caused an error
# message to be shown by JavaScript when the source branch was deleted.
# Please do not remove "js: true".
describe 'Deleted source branch', feature: true, js: true do describe 'Deleted source branch', feature: true, js: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:merge_request) { create(:merge_request) } let(:merge_request) { create(:merge_request) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment