1e950e3148
Groups tree enhancements Closes #40533 See merge request gitlab-org/gitlab-ce!15980
526 lines
8.2 KiB
SCSS
526 lines
8.2 KiB
SCSS
/**
|
|
* Well styled list
|
|
*
|
|
*/
|
|
.well-list {
|
|
position: relative;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
|
|
> li {
|
|
padding: 10px 15px;
|
|
min-height: 20px;
|
|
border-bottom: 1px solid $list-border;
|
|
word-wrap: break-word;
|
|
|
|
&::after {
|
|
content: " ";
|
|
display: table;
|
|
clear: both;
|
|
}
|
|
|
|
&.disabled {
|
|
color: $list-text-disabled-color;
|
|
}
|
|
|
|
&.unstyled {
|
|
&:hover {
|
|
background: none;
|
|
}
|
|
}
|
|
|
|
&.warning-row {
|
|
background-color: $list-warning-row-bg;
|
|
border-color: $list-warning-row-border;
|
|
color: $list-warning-row-color;
|
|
}
|
|
|
|
&.smoke { background-color: $gray-light; }
|
|
|
|
&:not(.ui-sort-disabled):hover {
|
|
background: $row-hover;
|
|
}
|
|
|
|
&:last-child {
|
|
border-bottom: 0;
|
|
|
|
&.bottom {
|
|
background: $gray-light;
|
|
}
|
|
}
|
|
|
|
.list-item-name {
|
|
float: left;
|
|
position: relative;
|
|
top: 3px;
|
|
}
|
|
|
|
p {
|
|
padding-top: 1px;
|
|
margin: 0;
|
|
color: $white-normal;
|
|
|
|
img {
|
|
position: relative;
|
|
top: 3px;
|
|
}
|
|
}
|
|
|
|
.well-title {
|
|
font-size: $list-font-size;
|
|
line-height: 18px;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/** light list with border-bottom between li **/
|
|
ul.bordered-list,
|
|
ul.unstyled-list {
|
|
@include basic-list;
|
|
|
|
&.top-list {
|
|
li:first-child {
|
|
padding-top: 0;
|
|
|
|
h4,
|
|
h5 {
|
|
margin-top: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ul.unstyled-list > li {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
// Generic content list
|
|
ul.content-list {
|
|
@include basic-list;
|
|
margin: 0;
|
|
padding: 0;
|
|
|
|
li {
|
|
border-color: $white-normal;
|
|
font-size: $list-font-size;
|
|
color: $list-text-color;
|
|
|
|
&.no-description {
|
|
.title {
|
|
line-height: $list-text-height;
|
|
}
|
|
}
|
|
|
|
.title {
|
|
font-weight: $gl-font-weight-bold;
|
|
}
|
|
|
|
a {
|
|
color: $gl-text-color;
|
|
}
|
|
|
|
.member-group-link {
|
|
color: $blue-600;
|
|
}
|
|
|
|
.description {
|
|
@include str-truncated;
|
|
color: $gl-text-color-secondary;
|
|
}
|
|
|
|
.controls {
|
|
float: right;
|
|
|
|
> .control-text {
|
|
margin-right: $gl-padding-top;
|
|
line-height: $list-text-height;
|
|
|
|
&:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
> .btn,
|
|
> .btn-group,
|
|
> .dropdown.inline {
|
|
margin-right: $gl-padding-top;
|
|
display: inline-block;
|
|
margin-top: 3px;
|
|
margin-bottom: 4px;
|
|
|
|
&.has-tooltip,
|
|
&:last-child {
|
|
margin-right: 0;
|
|
|
|
@media(max-width: $screen-xs-max) {
|
|
margin: 0 auto;
|
|
}
|
|
}
|
|
}
|
|
|
|
.no-comments {
|
|
opacity: .5;
|
|
}
|
|
}
|
|
|
|
.member-controls {
|
|
float: none;
|
|
|
|
@media (min-width: $screen-sm-min) {
|
|
float: right;
|
|
}
|
|
}
|
|
|
|
// When dragging a list item
|
|
&.ui-sortable-helper {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
&.list-placeholder {
|
|
background-color: $gray-light;
|
|
border: dotted 1px $white-normal;
|
|
margin: 1px 0;
|
|
min-height: 52px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Content list using flexbox
|
|
.flex-list {
|
|
.flex-row {
|
|
display: -webkit-flex;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
align-items: center;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.row-main-content {
|
|
flex: 1 1 auto;
|
|
overflow: hidden;
|
|
padding-right: 8px;
|
|
}
|
|
|
|
.row-fixed-content {
|
|
flex: 0 0 auto;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.row-title {
|
|
font-weight: $gl-font-weight-bold;
|
|
}
|
|
|
|
.row-second-line {
|
|
display: block;
|
|
}
|
|
|
|
.dropdown {
|
|
.btn-block {
|
|
margin-bottom: 0;
|
|
line-height: inherit;
|
|
}
|
|
}
|
|
|
|
.label-default {
|
|
color: $gl-text-color-secondary;
|
|
}
|
|
|
|
.avatar-cell {
|
|
align-self: flex-start;
|
|
}
|
|
}
|
|
|
|
.panel > .content-list > li {
|
|
padding: $gl-padding-top $gl-padding;
|
|
}
|
|
|
|
ul.controls {
|
|
float: right;
|
|
list-style: none;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.btn {
|
|
padding: 10px 14px;
|
|
}
|
|
|
|
> li {
|
|
float: left;
|
|
margin-right: 10px;
|
|
|
|
&:last-child {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.author_link {
|
|
display: inline-block;
|
|
|
|
.avatar-inline {
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.issuable-pipeline-broken a,
|
|
.issuable-pipeline-status a,
|
|
.author_link {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
ul.indent-list {
|
|
padding: 10px 0 0 30px;
|
|
}
|
|
|
|
|
|
// Specific styles for tree list
|
|
@keyframes spin-avatar {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
.groups-list-tree-container {
|
|
.has-no-search-results {
|
|
text-align: center;
|
|
padding: $gl-padding;
|
|
font-style: italic;
|
|
color: $well-light-text-color;
|
|
}
|
|
|
|
> .group-list-tree > .group-row.has-children:first-child {
|
|
border-top: 0;
|
|
}
|
|
}
|
|
|
|
.group-list-tree {
|
|
.avatar-container.content-loading {
|
|
position: relative;
|
|
|
|
> a,
|
|
> a .avatar {
|
|
height: 100%;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
> a {
|
|
padding: 2px;
|
|
|
|
.avatar {
|
|
border: 2px solid $white-normal;
|
|
|
|
&.identicon {
|
|
line-height: 15px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&::after {
|
|
content: "";
|
|
position: absolute;
|
|
height: 100%;
|
|
width: 100%;
|
|
background-color: transparent;
|
|
border: 2px outset $kdb-border;
|
|
border-radius: 50%;
|
|
animation: spin-avatar 3s infinite linear;
|
|
}
|
|
}
|
|
|
|
.folder-toggle-wrap {
|
|
float: left;
|
|
line-height: $list-text-height;
|
|
font-size: 0;
|
|
|
|
span {
|
|
font-size: $gl-font-size;
|
|
}
|
|
}
|
|
|
|
.folder-caret,
|
|
.item-type-icon {
|
|
display: inline-block;
|
|
}
|
|
|
|
.folder-caret {
|
|
width: 15px;
|
|
|
|
svg {
|
|
margin-bottom: 2px;
|
|
}
|
|
}
|
|
|
|
.item-type-icon {
|
|
margin-top: 2px;
|
|
width: 20px;
|
|
}
|
|
|
|
> .group-row:not(.has-children) {
|
|
.folder-caret {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.content-list li:last-child {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.group-list-tree {
|
|
margin-bottom: 0;
|
|
margin-left: 30px;
|
|
position: relative;
|
|
|
|
&::before {
|
|
content: '';
|
|
display: block;
|
|
width: 0;
|
|
position: absolute;
|
|
top: 5px;
|
|
bottom: 0;
|
|
left: -16px;
|
|
border-left: 2px solid $border-white-normal;
|
|
}
|
|
|
|
.group-row {
|
|
position: relative;
|
|
|
|
&::before {
|
|
content: "";
|
|
display: block;
|
|
width: 10px;
|
|
height: 0;
|
|
border-top: 2px solid $border-white-normal;
|
|
position: absolute;
|
|
top: 30px;
|
|
left: -16px;
|
|
}
|
|
|
|
&:last-child::before {
|
|
background: $white-light;
|
|
height: auto;
|
|
top: 30px;
|
|
bottom: 0;
|
|
}
|
|
|
|
&.being-removed {
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
}
|
|
|
|
.group-row {
|
|
padding: 0;
|
|
|
|
&.has-children {
|
|
border-top: 0;
|
|
}
|
|
|
|
&:first-child {
|
|
border-top: 1px solid $white-normal;
|
|
}
|
|
|
|
&:last-of-type {
|
|
.group-row-contents:not(:hover) {
|
|
border-bottom: 1px solid transparent;
|
|
}
|
|
}
|
|
}
|
|
|
|
.group-row-contents {
|
|
padding: 10px 10px 8px;
|
|
border-top: solid 1px transparent;
|
|
border-bottom: solid 1px $white-normal;
|
|
|
|
&:hover {
|
|
border-color: $row-hover-border;
|
|
background-color: $row-hover;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.avatar-container > a {
|
|
width: 100%;
|
|
text-decoration: none;
|
|
}
|
|
|
|
&.has-more-items {
|
|
display: block;
|
|
padding: 20px 10px;
|
|
}
|
|
|
|
.stats {
|
|
position: relative;
|
|
line-height: 46px;
|
|
|
|
> span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
height: 16px;
|
|
min-width: 30px;
|
|
}
|
|
|
|
> span:last-child {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.stat-value {
|
|
margin: 2px 0 0 5px;
|
|
}
|
|
}
|
|
|
|
.controls {
|
|
margin-left: 5px;
|
|
|
|
> .btn {
|
|
margin-right: $btn-xs-side-margin;
|
|
}
|
|
}
|
|
}
|
|
|
|
.project-row-contents .stats {
|
|
line-height: inherit;
|
|
|
|
> span:first-child {
|
|
margin-left: 25px;
|
|
}
|
|
|
|
.item-visibility {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.last-updated {
|
|
position: absolute;
|
|
right: 12px;
|
|
min-width: 250px;
|
|
text-align: right;
|
|
color: $gl-text-color-secondary;
|
|
}
|
|
}
|
|
}
|
|
|
|
.namespace-title {
|
|
.tooltip-inner {
|
|
max-width: 350px;
|
|
}
|
|
}
|
|
|
|
ul.group-list-tree {
|
|
li.group-row {
|
|
> .group-row-contents .title {
|
|
line-height: $list-text-height;
|
|
}
|
|
|
|
&.has-description > .group-row-contents .title {
|
|
line-height: inherit;
|
|
}
|
|
}
|
|
}
|
|
|
|
.js-groups-list-holder {
|
|
.groups-list-loading {
|
|
font-size: 34px;
|
|
text-align: center;
|
|
}
|
|
}
|