Merge branch 'remove-gray-bg'
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
commit
620d8b68a1
85 changed files with 399 additions and 564 deletions
|
@ -1,5 +1,8 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.5.0 (unreleased)
|
||||
- Remove gray background from layout in UI
|
||||
|
||||
v 8.4.0 (unreleased)
|
||||
- Improve the consistency of commit titles, branch names, tag names, issue/MR titles, on their respective project pages
|
||||
- Autocomplete data is now always loaded, instead of when focusing a comment text area (Yorick Peterse)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class @Activities
|
||||
constructor: ->
|
||||
Pager.init 20, true
|
||||
$(".event-filter .btn").bind "click", (event) =>
|
||||
$(".event-filter a").bind "click", (event) =>
|
||||
event.preventDefault()
|
||||
@toggleFilter($(event.currentTarget))
|
||||
@reloadActivities()
|
||||
|
@ -12,7 +12,7 @@ class @Activities
|
|||
|
||||
|
||||
toggleFilter: (sender) ->
|
||||
sender.toggleClass "active"
|
||||
sender.closest('li').toggleClass "active"
|
||||
event_filters = $.cookie("event_filter")
|
||||
filter = sender.attr("id").split("_")[0]
|
||||
if event_filters
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#
|
||||
# ### Example Markup
|
||||
#
|
||||
# <ul class="nav nav-tabs merge-request-tabs">
|
||||
# <ul class="nav-links merge-request-tabs">
|
||||
# <li class="notes-tab active">
|
||||
# <a data-action="notes" data-target="#notes" data-toggle="tab" href="/foo/bar/merge_requests/1">
|
||||
# Discussion
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
@import "framework/lists.scss";
|
||||
@import "framework/markdown_area.scss";
|
||||
@import "framework/mobile.scss";
|
||||
@import "framework/nav.scss";
|
||||
@import "framework/pagination.scss";
|
||||
@import "framework/panels.scss";
|
||||
@import "framework/selects.scss";
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
line-height: 36px;
|
||||
}
|
||||
|
||||
.content-block,
|
||||
.gray-content-block {
|
||||
margin: -$gl-padding;
|
||||
margin-top: 0;
|
||||
margin-bottom: -$gl-padding;
|
||||
background-color: $background-color;
|
||||
padding: $gl-padding;
|
||||
margin-bottom: 0px;
|
||||
|
@ -86,10 +86,7 @@
|
|||
.cover-block {
|
||||
text-align: center;
|
||||
background: $background-color;
|
||||
margin: -$gl-padding;
|
||||
margin-bottom: 0;
|
||||
padding: 44px $gl-padding;
|
||||
border-bottom: 1px solid $border-color;
|
||||
padding-top: 44px;
|
||||
position: relative;
|
||||
|
||||
.avatar-holder {
|
||||
|
@ -136,3 +133,23 @@
|
|||
.block-connector {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.nav-block {
|
||||
.controls {
|
||||
float: right;
|
||||
|
||||
.btn {
|
||||
padding: 7px 10px;
|
||||
margin-top: 11px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content-block {
|
||||
padding: $gl-padding 0;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
&.oneline-block {
|
||||
line-height: 42px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,33 +159,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.btn-group-next {
|
||||
.btn {
|
||||
padding: 9px 0px;
|
||||
font-size: 15px;
|
||||
color: #7f8fa4;
|
||||
border-color: #e7e9ed;
|
||||
width: 140px;
|
||||
|
||||
.badge {
|
||||
font-weight: normal;
|
||||
background-color: #eee;
|
||||
color: #78a;
|
||||
}
|
||||
|
||||
&.active {
|
||||
border-color: $gl-info;
|
||||
background: $gl-info;
|
||||
color: #fff;
|
||||
|
||||
.badge {
|
||||
color: $gl-info;
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-clipboard {
|
||||
border: none;
|
||||
}
|
||||
|
|
|
@ -374,75 +374,6 @@ table {
|
|||
}
|
||||
}
|
||||
|
||||
.center-top-menu, .left-top-menu {
|
||||
@include nav-menu;
|
||||
text-align: center;
|
||||
margin-top: 5px;
|
||||
margin-bottom: $gl-padding;
|
||||
height: auto;
|
||||
margin-top: -$gl-padding;
|
||||
|
||||
&.no-bottom {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.no-top {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
li a {
|
||||
display: inline-block;
|
||||
padding-top: $gl-padding;
|
||||
padding-bottom: 11px;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
&.bottom-border {
|
||||
border-bottom: 1px solid $border-color;
|
||||
height: 57px;
|
||||
}
|
||||
|
||||
&.wide {
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
}
|
||||
}
|
||||
|
||||
.left-top-menu {
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #EEE;
|
||||
}
|
||||
|
||||
.center-middle-menu {
|
||||
@include nav-menu;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
margin: -$gl-padding;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
height: 58px;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
li {
|
||||
&:after {
|
||||
content: "|";
|
||||
color: $border-gray-light;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
&:after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
> a {
|
||||
display: inline-block;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropzone .dz-preview .dz-progress {
|
||||
border-color: $border-color !important;
|
||||
}
|
||||
|
|
|
@ -3,11 +3,8 @@
|
|||
*
|
||||
*/
|
||||
.file-holder {
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border: none;
|
||||
border-top: 1px solid #E7E9EE;
|
||||
border-bottom: 1px solid #E7E9EE;
|
||||
border: 1px solid $border-color;
|
||||
|
||||
&.readme-holder {
|
||||
border-bottom: 0;
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
.flash-notice {
|
||||
@extend .alert;
|
||||
@extend .alert-info;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.flash-alert {
|
||||
@extend .alert;
|
||||
@extend .alert-danger;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ header {
|
|||
min-height: $header-height;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #EEE;
|
||||
|
||||
.container-fluid {
|
||||
width: 100% !important;
|
||||
|
|
|
@ -5,8 +5,6 @@ html {
|
|||
}
|
||||
|
||||
body {
|
||||
background-color: #F3F3F3 !important;
|
||||
|
||||
&.navless {
|
||||
background-color: white !important;
|
||||
}
|
||||
|
|
|
@ -109,10 +109,8 @@ ul.content-list {
|
|||
padding: 0;
|
||||
|
||||
> li {
|
||||
padding: $gl-padding;
|
||||
padding: $gl-padding 0;
|
||||
border-color: $table-border-color;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
color: $gl-gray;
|
||||
|
||||
.avatar {
|
||||
|
@ -133,6 +131,7 @@ ul.content-list {
|
|||
.panel > .content-list {
|
||||
li {
|
||||
margin: 0;
|
||||
padding: $gl-padding;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,7 +147,7 @@ ul.controls {
|
|||
> li {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
|
|
@ -65,13 +65,6 @@
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.md-header {
|
||||
ul {
|
||||
float: left;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.referenced-users {
|
||||
color: #4c4e54;
|
||||
padding-top: 10px;
|
||||
|
@ -85,23 +78,6 @@
|
|||
box-shadow: none;
|
||||
}
|
||||
|
||||
.new_note,
|
||||
.edit_note,
|
||||
.detail-page-description,
|
||||
.milestone-description,
|
||||
.wiki-content,
|
||||
.merge-request-form {
|
||||
.nav-tabs {
|
||||
margin-bottom: 0;
|
||||
border: none;
|
||||
|
||||
li a,
|
||||
li.active a {
|
||||
border: 1px solid #DDD;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.markdown-area {
|
||||
@include border-radius(0);
|
||||
background: #FFF;
|
||||
|
|
|
@ -118,38 +118,3 @@
|
|||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
@mixin nav-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
height: 56px;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
|
||||
a {
|
||||
padding: 14px;
|
||||
font-size: 15px;
|
||||
line-height: 28px;
|
||||
color: #959494;
|
||||
border-bottom: 2px solid transparent;
|
||||
|
||||
&:hover, &:active, &:focus {
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.active a {
|
||||
color: #616060;
|
||||
border-bottom: 2px solid #4688f1;
|
||||
}
|
||||
|
||||
.badge {
|
||||
font-weight: normal;
|
||||
background-color: #eee;
|
||||
color: #78a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.nav.nav-tabs > li > a {
|
||||
.nav-links > li > a {
|
||||
padding: 10px;
|
||||
font-size: 12px;
|
||||
margin-right: 3px;
|
||||
|
@ -81,7 +81,7 @@
|
|||
display: none;
|
||||
}
|
||||
|
||||
.center-top-menu, .left-top-menu {
|
||||
.nav-links, .nav-links {
|
||||
li a {
|
||||
font-size: 14px;
|
||||
padding: 19px 10px;
|
||||
|
|
39
app/assets/stylesheets/framework/nav.scss
Normal file
39
app/assets/stylesheets/framework/nav.scss
Normal file
|
@ -0,0 +1,39 @@
|
|||
.nav-links {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
height: auto;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
padding: 14px;
|
||||
padding-top: $gl-padding;
|
||||
padding-bottom: 11px;
|
||||
margin-bottom: -1px;
|
||||
font-size: 15px;
|
||||
line-height: 28px;
|
||||
color: #959494;
|
||||
border-bottom: 2px solid transparent;
|
||||
|
||||
&:hover, &:active, &:focus {
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.active a {
|
||||
color: #000000;
|
||||
border-bottom: 2px solid #4688f1;
|
||||
}
|
||||
|
||||
.badge {
|
||||
font-weight: normal;
|
||||
background-color: #eee;
|
||||
color: #78a;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,11 +21,10 @@
|
|||
|
||||
.content-wrapper {
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
|
||||
.container-fluid {
|
||||
background: #FFF;
|
||||
padding: $gl-padding;
|
||||
padding: 0 $gl-padding;
|
||||
|
||||
&.container-blank {
|
||||
background: none;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
.table-holder {
|
||||
margin: -$gl-padding;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
&.table {
|
||||
margin-bottom: $gl-padding;
|
||||
|
||||
|
||||
.dropdown-menu a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
@ -32,6 +30,7 @@ table {
|
|||
}
|
||||
|
||||
th {
|
||||
background-color: $background-color;
|
||||
font-weight: normal;
|
||||
font-size: 15px;
|
||||
border-bottom: 1px solid $border-color !important;
|
||||
|
|
|
@ -5,10 +5,8 @@
|
|||
padding: 0;
|
||||
|
||||
.timeline-entry {
|
||||
padding: $gl-padding;
|
||||
padding: $gl-padding 0;
|
||||
border-color: $table-border-color;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
color: $gl-gray;
|
||||
border-bottom: 1px solid $border-white-light;
|
||||
|
||||
|
|
|
@ -99,47 +99,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
// Nav tabs
|
||||
.nav.nav-tabs {
|
||||
margin-bottom: 15px;
|
||||
|
||||
li {
|
||||
> a {
|
||||
margin-right: 5px;
|
||||
line-height: 20px;
|
||||
border-color: #EEE;
|
||||
color: #888;
|
||||
border-bottom: 1px solid #ddd;
|
||||
.badge {
|
||||
background-color: #eee;
|
||||
color: #888;
|
||||
text-shadow: 0 1px 1px #fff;
|
||||
}
|
||||
i.fa {
|
||||
line-height: 14px;
|
||||
}
|
||||
}
|
||||
&.active {
|
||||
> a {
|
||||
border-color: #CCC;
|
||||
border-bottom: 1px solid #fff;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-tabs > li > a,
|
||||
.nav-pills > li > a {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.nav-pills > .active > a > span > .badge {
|
||||
background-color: #fff;
|
||||
color: $gl-primary;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* fix to keep tooltips position in top navigation bar
|
||||
|
|
|
@ -177,7 +177,7 @@ body {
|
|||
}
|
||||
|
||||
.page-title {
|
||||
margin-top: 0px;
|
||||
margin-top: $gl-padding;
|
||||
line-height: 1.3;
|
||||
font-size: 1.25em;
|
||||
font-weight: 600;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
position: absolute;
|
||||
top: 0px;
|
||||
right: 4px;
|
||||
line-height: 40px;
|
||||
line-height: 56px;
|
||||
}
|
||||
|
||||
a.js-zen-leave {
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
}
|
||||
|
||||
.commit-box {
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
.commit-title {
|
||||
margin: 0;
|
||||
font-size: 23px;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
.detail-page-header {
|
||||
margin: -$gl-padding;
|
||||
padding: 7px $gl-padding;
|
||||
margin-bottom: 0px;
|
||||
padding: 11px 0;
|
||||
border-bottom: 1px solid $border-color;
|
||||
color: #5c5d5e;
|
||||
font-size: 16px;
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Common
|
||||
.diff-file {
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border: none;
|
||||
border-bottom: 1px solid #E7E9EE;
|
||||
border: 1px solid $border-color;
|
||||
border-top: none;
|
||||
|
||||
.diff-header {
|
||||
position: relative;
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
*/
|
||||
.event-item {
|
||||
font-size: $gl-font-size;
|
||||
padding: $gl-padding $gl-padding $gl-padding ($gl-padding + $gl-avatar-size + 15px);
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
padding: $gl-padding 0 $gl-padding ($gl-avatar-size + 15px);
|
||||
border-bottom: 1px solid $table-border-color;
|
||||
color: #7f8fa4;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
margin-top: 7px;
|
||||
}
|
||||
|
||||
.center-top-menu {
|
||||
.nav-links {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
*/
|
||||
.mr-state-widget {
|
||||
background: #F7F8FA;
|
||||
background: $background-color;
|
||||
color: $gl-gray;
|
||||
border: 1px solid #dce0e6;
|
||||
border: 1px solid $border-color;
|
||||
@include border-radius(2px);
|
||||
|
||||
form {
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
}
|
||||
|
||||
.project-home-panel {
|
||||
padding-bottom: 40px;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
.cover-controls {
|
||||
.project-settings-dropdown {
|
||||
|
@ -226,7 +228,6 @@
|
|||
}
|
||||
|
||||
.projects-search-form {
|
||||
|
||||
.input-group .form-control {
|
||||
height: 42px;
|
||||
}
|
||||
|
@ -351,28 +352,6 @@
|
|||
color: #555;
|
||||
}
|
||||
|
||||
ul.nav.nav-projects-tabs {
|
||||
@extend .nav-tabs;
|
||||
|
||||
padding-left: 8px;
|
||||
|
||||
li {
|
||||
a {
|
||||
padding: 6px 25px;
|
||||
margin-top: 2px;
|
||||
border-color: #DDD;
|
||||
background-color: #EEE;
|
||||
text-shadow: 0 1px 1px white;
|
||||
color: #555;
|
||||
}
|
||||
&.active {
|
||||
a {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.project_member_row form {
|
||||
margin: 0px;
|
||||
}
|
||||
|
@ -416,11 +395,8 @@ ul.nav.nav-projects-tabs {
|
|||
|
||||
.top-area {
|
||||
border-bottom: 1px solid #EEE;
|
||||
margin: 0 -16px;
|
||||
padding: 0 $gl-padding;
|
||||
height: 42px;
|
||||
|
||||
ul.left-top-menu {
|
||||
ul.nav-links {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
margin-bottom: 0px;
|
||||
|
@ -482,11 +458,11 @@ table.table.protected-branches-list tr.no-border {
|
|||
padding-top: 10px;
|
||||
padding-bottom: 4px;
|
||||
|
||||
ul.nav-pills {
|
||||
ul.nav {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.nav-pills li {
|
||||
.nav li {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
|
@ -523,8 +499,7 @@ pre.light-well {
|
|||
}
|
||||
|
||||
.projects-search-form {
|
||||
margin: -$gl-padding;
|
||||
padding: $gl-padding;
|
||||
padding: $gl-padding 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0px;
|
||||
|
||||
|
@ -574,10 +549,8 @@ pre.light-well {
|
|||
@include basic-list;
|
||||
|
||||
.project-row {
|
||||
padding: $gl-padding;
|
||||
padding: $gl-padding 0;
|
||||
border-color: $table-border-color;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
|
||||
&.no-description {
|
||||
.project {
|
||||
|
@ -631,8 +604,6 @@ pre.light-well {
|
|||
}
|
||||
|
||||
.project-last-commit {
|
||||
margin: 0 7px;
|
||||
|
||||
.ci-status {
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
@ -662,9 +633,7 @@ pre.light-well {
|
|||
}
|
||||
|
||||
.project-show-readme .readme-holder {
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
padding: ($gl-padding + 7px);
|
||||
padding: $gl-padding 0;
|
||||
border-top: 0;
|
||||
|
||||
.edit-project-readme {
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
.tree-holder {
|
||||
> .nav-block {
|
||||
margin: 11px 0;
|
||||
}
|
||||
|
||||
.file-finder {
|
||||
width: 50%;
|
||||
|
@ -13,7 +16,7 @@
|
|||
|
||||
tr {
|
||||
> td, > th {
|
||||
line-height: 28px;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
|
@ -86,12 +89,14 @@
|
|||
|
||||
.blob-commit-info {
|
||||
list-style: none;
|
||||
padding: $gl-padding;
|
||||
background: $background-color;
|
||||
border: 1px solid $border-color;
|
||||
border-bottom: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.commit {
|
||||
padding: $gl-padding 0;
|
||||
padding: 0;
|
||||
|
||||
.commit-row-title {
|
||||
.commit-row-message {
|
||||
|
@ -115,3 +120,8 @@
|
|||
font-weight: normal;
|
||||
color: $md-link-color;
|
||||
}
|
||||
|
||||
.tree-controls {
|
||||
float: right;
|
||||
margin-top: 11px;
|
||||
}
|
||||
|
|
|
@ -27,13 +27,15 @@ module EventsHelper
|
|||
key = key.to_s
|
||||
active = 'active' if @event_filter.active?(key)
|
||||
link_opts = {
|
||||
class: "event-filter-link btn btn-default #{active}",
|
||||
class: "event-filter-link",
|
||||
id: "#{key}_event_filter",
|
||||
title: "Filter by #{tooltip.downcase}",
|
||||
}
|
||||
|
||||
link_to request.path, link_opts do
|
||||
content_tag(:span, ' ' + tooltip)
|
||||
content_tag :li, class: active do
|
||||
link_to request.path, link_opts do
|
||||
content_tag(:span, ' ' + tooltip)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
- if @all_builds.running_or_pending.any?
|
||||
= link_to 'Cancel all', cancel_all_admin_builds_path, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger', method: :post
|
||||
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li{class: ('active' if @scope.nil?)}
|
||||
= link_to admin_builds_path do
|
||||
All
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
- page_title "Logs"
|
||||
- loggers = [Gitlab::GitLogger, Gitlab::AppLogger,
|
||||
Gitlab::ProductionLogger, Gitlab::SidekiqLogger]
|
||||
%ul.nav.nav-tabs.log-tabs
|
||||
%ul.nav-links.log-tabs
|
||||
- loggers.each do |klass|
|
||||
%li{ class: (klass == Gitlab::GitLogger ? 'active' : '') }
|
||||
= link_to klass::file_name, "##{klass::file_name_noext}",
|
||||
'data-toggle' => 'tab'
|
||||
%p.light To prevent performance issues admin logs output the last 2000 lines
|
||||
.gray-content-block
|
||||
To prevent performance issues admin logs output the last 2000 lines
|
||||
.tab-content
|
||||
- loggers.each do |klass|
|
||||
.tab-pane{ class: (klass == Gitlab::GitLogger ? 'active' : ''),
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
%i.fa.fa-pencil-square-o
|
||||
Edit
|
||||
%hr
|
||||
%ul.nav.nav-tabs
|
||||
%ul.nav-links
|
||||
= nav_link(path: 'users#show') do
|
||||
= link_to "Account", admin_user_path(@user)
|
||||
= nav_link(path: 'users#groups') do
|
||||
|
@ -23,3 +23,4 @@
|
|||
= link_to "SSH keys", keys_admin_user_path(@user)
|
||||
= nav_link(controller: :identities) do
|
||||
= link_to "Identities", admin_user_identities_path(@user)
|
||||
.append-bottom-default
|
||||
|
|
|
@ -1,106 +1,101 @@
|
|||
- page_title "Users"
|
||||
= render 'shared/show_aside'
|
||||
|
||||
.row
|
||||
%aside.col-md-3
|
||||
.admin-filter
|
||||
%ul.nav.nav-pills.nav-stacked
|
||||
%li{class: "#{'active' unless params[:filter]}"}
|
||||
= link_to admin_users_path do
|
||||
Active
|
||||
%small.pull-right= number_with_delimiter(User.active.count)
|
||||
%li{class: "#{'active' if params[:filter] == "admins"}"}
|
||||
= link_to admin_users_path(filter: "admins") do
|
||||
Admins
|
||||
%small.pull-right= number_with_delimiter(User.admins.count)
|
||||
%li.filter-two-factor-enabled{class: "#{'active' if params[:filter] == 'two_factor_enabled'}"}
|
||||
= link_to admin_users_path(filter: 'two_factor_enabled') do
|
||||
2FA Enabled
|
||||
%small.pull-right= number_with_delimiter(User.with_two_factor.count)
|
||||
%li.filter-two-factor-disabled{class: "#{'active' if params[:filter] == 'two_factor_disabled'}"}
|
||||
= link_to admin_users_path(filter: 'two_factor_disabled') do
|
||||
2FA Disabled
|
||||
%small.pull-right= number_with_delimiter(User.without_two_factor.count)
|
||||
%li{class: "#{'active' if params[:filter] == "blocked"}"}
|
||||
= link_to admin_users_path(filter: "blocked") do
|
||||
Blocked
|
||||
%small.pull-right= number_with_delimiter(User.blocked.count)
|
||||
%li{class: "#{'active' if params[:filter] == "wop"}"}
|
||||
= link_to admin_users_path(filter: "wop") do
|
||||
Without projects
|
||||
%small.pull-right= number_with_delimiter(User.without_projects.count)
|
||||
%hr
|
||||
= form_tag admin_users_path, method: :get, class: 'form-inline' do
|
||||
.form-group
|
||||
= search_field_tag :name, params[:name], placeholder: 'Name, email or username', class: 'form-control', spellcheck: false
|
||||
= hidden_field_tag "filter", params[:filter]
|
||||
= button_tag class: 'btn btn-primary' do
|
||||
%i.fa.fa-search
|
||||
%hr
|
||||
= link_to 'Reset', admin_users_path, class: "btn btn-cancel"
|
||||
.admin-filter
|
||||
%ul.nav-links
|
||||
%li{class: "#{'active' unless params[:filter]}"}
|
||||
= link_to admin_users_path do
|
||||
Active
|
||||
%small.badge= number_with_delimiter(User.active.count)
|
||||
%li{class: "#{'active' if params[:filter] == "admins"}"}
|
||||
= link_to admin_users_path(filter: "admins") do
|
||||
Admins
|
||||
%small.badge= number_with_delimiter(User.admins.count)
|
||||
%li.filter-two-factor-enabled{class: "#{'active' if params[:filter] == 'two_factor_enabled'}"}
|
||||
= link_to admin_users_path(filter: 'two_factor_enabled') do
|
||||
2FA Enabled
|
||||
%small.badge= number_with_delimiter(User.with_two_factor.count)
|
||||
%li.filter-two-factor-disabled{class: "#{'active' if params[:filter] == 'two_factor_disabled'}"}
|
||||
= link_to admin_users_path(filter: 'two_factor_disabled') do
|
||||
2FA Disabled
|
||||
%small.badge= number_with_delimiter(User.without_two_factor.count)
|
||||
%li{class: "#{'active' if params[:filter] == "blocked"}"}
|
||||
= link_to admin_users_path(filter: "blocked") do
|
||||
Blocked
|
||||
%small.badge= number_with_delimiter(User.blocked.count)
|
||||
%li{class: "#{'active' if params[:filter] == "wop"}"}
|
||||
= link_to admin_users_path(filter: "wop") do
|
||||
Without projects
|
||||
%small.badge= number_with_delimiter(User.without_projects.count)
|
||||
|
||||
%section.col-md-9
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
Users (#{number_with_delimiter(@users.total_count)})
|
||||
.panel-head-actions
|
||||
.dropdown.inline
|
||||
%a.dropdown-toggle.btn.btn-sm{href: '#', "data-toggle" => "dropdown"}
|
||||
%span.light sort:
|
||||
- if @sort.present?
|
||||
= sort_options_hash[@sort]
|
||||
- else
|
||||
= sort_title_name
|
||||
%b.caret
|
||||
%ul.dropdown-menu
|
||||
%li
|
||||
= link_to admin_users_path(sort: sort_value_name, filter: params[:filter]) do
|
||||
= sort_title_name
|
||||
= link_to admin_users_path(sort: sort_value_recently_signin, filter: params[:filter]) do
|
||||
= sort_title_recently_signin
|
||||
= link_to admin_users_path(sort: sort_value_oldest_signin, filter: params[:filter]) do
|
||||
= sort_title_oldest_signin
|
||||
= link_to admin_users_path(sort: sort_value_recently_created, filter: params[:filter]) do
|
||||
= sort_title_recently_created
|
||||
= link_to admin_users_path(sort: sort_value_oldest_created, filter: params[:filter]) do
|
||||
= sort_title_oldest_created
|
||||
= link_to admin_users_path(sort: sort_value_recently_updated, filter: params[:filter]) do
|
||||
= sort_title_recently_updated
|
||||
= link_to admin_users_path(sort: sort_value_oldest_updated, filter: params[:filter]) do
|
||||
= sort_title_oldest_updated
|
||||
|
||||
= link_to 'New User', new_admin_user_path, class: "btn btn-new btn-sm"
|
||||
%ul.well-list
|
||||
- @users.each do |user|
|
||||
.gray-content-block.second-block
|
||||
.pull-right
|
||||
.dropdown.inline
|
||||
%a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"}
|
||||
%span.light sort:
|
||||
- if @sort.present?
|
||||
= sort_options_hash[@sort]
|
||||
- else
|
||||
= sort_title_name
|
||||
%b.caret
|
||||
%ul.dropdown-menu
|
||||
%li
|
||||
.list-item-name
|
||||
- if user.blocked?
|
||||
%i.fa.fa-lock.cred
|
||||
= link_to admin_users_path(sort: sort_value_name, filter: params[:filter]) do
|
||||
= sort_title_name
|
||||
= link_to admin_users_path(sort: sort_value_recently_signin, filter: params[:filter]) do
|
||||
= sort_title_recently_signin
|
||||
= link_to admin_users_path(sort: sort_value_oldest_signin, filter: params[:filter]) do
|
||||
= sort_title_oldest_signin
|
||||
= link_to admin_users_path(sort: sort_value_recently_created, filter: params[:filter]) do
|
||||
= sort_title_recently_created
|
||||
= link_to admin_users_path(sort: sort_value_oldest_created, filter: params[:filter]) do
|
||||
= sort_title_oldest_created
|
||||
= link_to admin_users_path(sort: sort_value_recently_updated, filter: params[:filter]) do
|
||||
= sort_title_recently_updated
|
||||
= link_to admin_users_path(sort: sort_value_oldest_updated, filter: params[:filter]) do
|
||||
= sort_title_oldest_updated
|
||||
|
||||
= link_to 'New User', new_admin_user_path, class: "btn btn-new"
|
||||
= form_tag admin_users_path, method: :get, class: 'form-inline' do
|
||||
.form-group
|
||||
= search_field_tag :name, params[:name], placeholder: 'Name, email or username', class: 'form-control', spellcheck: false
|
||||
= hidden_field_tag "filter", params[:filter]
|
||||
= button_tag class: 'btn btn-primary' do
|
||||
%i.fa.fa-search
|
||||
|
||||
|
||||
.panel.panel-default
|
||||
%ul.well-list
|
||||
- @users.each do |user|
|
||||
%li
|
||||
.list-item-name
|
||||
- if user.blocked?
|
||||
%i.fa.fa-lock.cred
|
||||
- else
|
||||
%i.fa.fa-user.cgreen
|
||||
= link_to user.name, [:admin, user]
|
||||
- if user.admin?
|
||||
%strong.cred (Admin)
|
||||
- if user == current_user
|
||||
%span.cred It's you!
|
||||
.pull-right
|
||||
%span.light
|
||||
%i.fa.fa-envelope
|
||||
= mail_to user.email, user.email, class: 'light'
|
||||
|
||||
.pull-right
|
||||
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn-grouped btn btn-xs'
|
||||
- unless user == current_user
|
||||
- if user.ldap_blocked?
|
||||
= link_to '#', title: 'Cannot unblock LDAP blocked users', data: {toggle: 'tooltip'}, class: 'btn-grouped btn btn-xs btn-success disabled' do
|
||||
%i.fa.fa-lock
|
||||
Unblock
|
||||
- elsif user.blocked?
|
||||
= link_to 'Unblock', unblock_admin_user_path(user), method: :put, class: 'btn-grouped btn btn-xs btn-success'
|
||||
- else
|
||||
%i.fa.fa-user.cgreen
|
||||
= link_to user.name, [:admin, user]
|
||||
- if user.admin?
|
||||
%strong.cred (Admin)
|
||||
- if user == current_user
|
||||
%span.cred It's you!
|
||||
.pull-right
|
||||
%span.light
|
||||
%i.fa.fa-envelope
|
||||
= mail_to user.email, user.email, class: 'light'
|
||||
|
||||
.pull-right
|
||||
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn-grouped btn btn-xs'
|
||||
- unless user == current_user
|
||||
- if user.ldap_blocked?
|
||||
= link_to '#', title: 'Cannot unblock LDAP blocked users', data: {toggle: 'tooltip'}, class: 'btn-grouped btn btn-xs btn-success disabled' do
|
||||
%i.fa.fa-lock
|
||||
Unblock
|
||||
- elsif user.blocked?
|
||||
= link_to 'Unblock', unblock_admin_user_path(user), method: :put, class: 'btn-grouped btn btn-xs btn-success'
|
||||
- else
|
||||
= link_to 'Block', block_admin_user_path(user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: 'btn-grouped btn btn-xs btn-warning'
|
||||
- if user.access_locked?
|
||||
= link_to 'Unlock', unlock_admin_user_path(user), method: :put, class: 'btn-grouped btn btn-xs btn-success', data: { confirm: 'Are you sure?' }
|
||||
- if user.can_be_removed?
|
||||
= link_to 'Destroy', [:admin, user], data: { confirm: "USER #{user.name} WILL BE REMOVED! All issues, merge requests and groups linked to this user will also be removed! Maybe block the user instead? Are you sure?" }, method: :delete, class: 'btn-grouped btn btn-xs btn-remove'
|
||||
= paginate @users, theme: "gitlab"
|
||||
= link_to 'Block', block_admin_user_path(user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: 'btn-grouped btn btn-xs btn-warning'
|
||||
- if user.access_locked?
|
||||
= link_to 'Unlock', unlock_admin_user_path(user), method: :put, class: 'btn-grouped btn btn-xs btn-success', data: { confirm: 'Are you sure?' }
|
||||
- if user.can_be_removed?
|
||||
= link_to 'Destroy', [:admin, user], data: { confirm: "USER #{user.name} WILL BE REMOVED! All issues, merge requests and groups linked to this user will also be removed! Maybe block the user instead? Are you sure?" }, method: :delete, class: 'btn-grouped btn btn-xs btn-remove'
|
||||
= paginate @users, theme: "gitlab"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.hidden-xs
|
||||
= render "events/event_last_push", event: @last_push
|
||||
|
||||
.gray-content-block
|
||||
.nav-block
|
||||
- if current_user
|
||||
.pull-right
|
||||
.controls
|
||||
= link_to dashboard_projects_path(:atom, { private_token: current_user.private_token }), class: 'btn rss-btn' do
|
||||
%i.fa.fa-rss
|
||||
= render 'shared/event_filter'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li{ class: ("active" unless params[:filter]) }
|
||||
= link_to activity_dashboard_path, class: 'shortcuts-activity', data: {placement: 'right'} do
|
||||
Your Projects
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(page: dashboard_groups_path) do
|
||||
= link_to dashboard_groups_path, title: 'Your groups', data: {placement: 'right'} do
|
||||
Your Groups
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
= content_for :flash_message do
|
||||
= render 'shared/project_limit'
|
||||
.top-area
|
||||
%ul.left-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(page: [dashboard_projects_path, root_path]) do
|
||||
= link_to dashboard_projects_path, title: 'Home', class: 'shortcuts-activity', data: {placement: 'right'} do
|
||||
Your Projects
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(page: dashboard_snippets_path, html_options: {class: 'home'}) do
|
||||
= link_to dashboard_snippets_path, title: 'Your snippets', data: {placement: 'right'} do
|
||||
Your Snippets
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
#{@milestone.open_items_count} open
|
||||
= milestone_progress_bar(@milestone)
|
||||
|
||||
%ul.center-top-menu.no-top.no-bottom
|
||||
%ul.nav-links.no-top.no-bottom
|
||||
%li.active
|
||||
= link_to '#tab-issues', 'data-toggle' => 'tab' do
|
||||
Issues
|
||||
|
|
|
@ -3,32 +3,36 @@
|
|||
|
||||
= render 'dashboard/snippets_head'
|
||||
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
.nav-block
|
||||
.controls
|
||||
= link_to new_snippet_path, class: "btn btn-new", title: "New Snippet" do
|
||||
= icon('plus')
|
||||
New Snippet
|
||||
|
||||
.btn-group.btn-group-next.snippet-scope-menu
|
||||
= link_to dashboard_snippets_path, class: "btn btn-default #{"active" unless params[:scope]}" do
|
||||
All
|
||||
%span.badge
|
||||
= current_user.snippets.count
|
||||
.nav-links.snippet-scope-menu
|
||||
%li{ class: ("active" unless params[:scope]) }
|
||||
= link_to dashboard_snippets_path do
|
||||
All
|
||||
%span.badge
|
||||
= current_user.snippets.count
|
||||
|
||||
= link_to dashboard_snippets_path(scope: 'are_private'), class: "btn btn-default #{"active" if params[:scope] == "are_private"}" do
|
||||
Private
|
||||
%span.badge
|
||||
= current_user.snippets.are_private.count
|
||||
%li{ class: ("active" if params[:scope] == "are_private") }
|
||||
= link_to dashboard_snippets_path(scope: 'are_private') do
|
||||
Private
|
||||
%span.badge
|
||||
= current_user.snippets.are_private.count
|
||||
|
||||
= link_to dashboard_snippets_path(scope: 'are_internal'), class: "btn btn-default #{"active" if params[:scope] == "are_internal"}" do
|
||||
Internal
|
||||
%span.badge
|
||||
= current_user.snippets.are_internal.count
|
||||
%li{ class: ("active" if params[:scope] == "are_internal") }
|
||||
= link_to dashboard_snippets_path(scope: 'are_internal') do
|
||||
Internal
|
||||
%span.badge
|
||||
= current_user.snippets.are_internal.count
|
||||
|
||||
= link_to dashboard_snippets_path(scope: 'are_public'), class: "btn btn-default #{"active" if params[:scope] == "are_public"}" do
|
||||
Public
|
||||
%span.badge
|
||||
= current_user.snippets.are_public.count
|
||||
%li{ class: ("active" if params[:scope] == "are_public") }
|
||||
= link_to dashboard_snippets_path(scope: 'are_public') do
|
||||
Public
|
||||
%span.badge
|
||||
= current_user.snippets.are_public.count
|
||||
|
||||
= render 'snippets/snippets'
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
%h3 Sign in
|
||||
.login-body
|
||||
- if form_based_providers.any?
|
||||
%ul.nav.nav-tabs
|
||||
%ul.nav-links
|
||||
- if crowd_enabled?
|
||||
%li.active
|
||||
= link_to "Crowd", "#tab-crowd", 'data-toggle' => 'tab'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- header_title group_title(@group, "Settings", edit_group_path(@group))
|
||||
- @blank_container = true
|
||||
|
||||
.panel.panel-default
|
||||
.panel.panel-default.prepend-top-default
|
||||
.panel-heading
|
||||
Group settings
|
||||
.panel-body
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- header_title group_title(@group, "Members", group_group_members_path(@group))
|
||||
- @blank_container = true
|
||||
|
||||
.group-members-page
|
||||
.group-members-page.prepend-top-default
|
||||
- if current_user && current_user.can?(:admin_group_member, @group)
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#{@milestone.open_items_count} open
|
||||
= milestone_progress_bar(@milestone)
|
||||
|
||||
%ul.center-top-menu.no-top.no-bottom
|
||||
%ul.nav-links.no-top.no-bottom
|
||||
%li.active
|
||||
= link_to '#tab-issues', 'data-toggle' => 'tab' do
|
||||
Issues
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- page_title "Projects"
|
||||
- header_title group_title(@group, "Projects", projects_group_path(@group))
|
||||
|
||||
.panel.panel-default
|
||||
.panel.panel-default.prepend-top-default
|
||||
.panel-heading
|
||||
%strong= @group.name
|
||||
projects:
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
- @no_container = true
|
||||
- @blank_container = true
|
||||
|
||||
- unless can?(current_user, :read_group, @group)
|
||||
- @disable_search_panel = true
|
||||
|
||||
|
@ -25,8 +28,8 @@
|
|||
.cover-desc.description
|
||||
= markdown(@group.description, pipeline: :description)
|
||||
|
||||
- if can?(current_user, :read_group, @group)
|
||||
%ul.center-top-menu.no-top
|
||||
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
= link_to "#activity", 'data-toggle' => 'tab' do
|
||||
Activity
|
||||
|
@ -35,20 +38,22 @@
|
|||
= link_to "#projects", 'data-toggle' => 'tab' do
|
||||
Projects
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active#activity
|
||||
.gray-content-block.activity-filter-block
|
||||
- if current_user
|
||||
= render "events/event_last_push", event: @last_push
|
||||
- if can?(current_user, :read_group, @group)
|
||||
%div{ class: container_class }
|
||||
.tab-content
|
||||
.tab-pane.active#activity
|
||||
.activity-filter-block
|
||||
- if current_user
|
||||
= render "events/event_last_push", event: @last_push
|
||||
|
||||
= render 'shared/event_filter'
|
||||
= render 'shared/event_filter'
|
||||
|
||||
.content_list
|
||||
= spinner
|
||||
.content_list
|
||||
= spinner
|
||||
|
||||
.tab-pane#projects
|
||||
= render "projects", projects: @projects
|
||||
.tab-pane#projects
|
||||
= render "projects", projects: @projects
|
||||
|
||||
- else
|
||||
%p.center-top-menu.no-top
|
||||
%p.nav-links.no-top
|
||||
No projects to show
|
||||
|
|
|
@ -139,26 +139,9 @@
|
|||
%h2#navs Navigation
|
||||
|
||||
%h4
|
||||
%code .center-top-menu
|
||||
%code .nav-links
|
||||
.example
|
||||
%ul.center-top-menu
|
||||
%li.active
|
||||
%a Open
|
||||
%li
|
||||
%a Closed
|
||||
|
||||
%h4
|
||||
%code .btn-group.btn-group-next
|
||||
.example
|
||||
%div.btn-group.btn-group-next
|
||||
%a.btn.active Open
|
||||
%a.btn Closed
|
||||
|
||||
|
||||
%h4
|
||||
%code .nav.nav-tabs
|
||||
.example
|
||||
%ul.nav.nav-tabs
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
%a Open
|
||||
%li
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.content-wrapper
|
||||
= render "layouts/flash"
|
||||
= yield :flash_message
|
||||
%div{ class: container_class }
|
||||
%div{ class: (container_class unless @no_container) }
|
||||
.content
|
||||
.clearfix
|
||||
= yield
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
.alert.alert-info
|
||||
Some options are unavailable for LDAP accounts
|
||||
|
||||
.account-page
|
||||
.account-page.prepend-top-default
|
||||
.panel.panel-default.update-token
|
||||
.panel-heading
|
||||
Reset Private token
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.gray-content-block.activity-filter-block
|
||||
.nav-block.activity-filter-block
|
||||
- if current_user
|
||||
.pull-right
|
||||
.controls
|
||||
= link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "Feed", class: 'btn rss-btn' do
|
||||
%i.fa.fa-rss
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#tree-holder.tree-holder.clearfix
|
||||
.gray-content-block.second-block
|
||||
.nav-block
|
||||
= render 'projects/tree/tree_header', tree: @tree
|
||||
|
||||
= render 'projects/tree/tree_content', tree: @tree
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.md-area
|
||||
.md-header.clearfix
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
%a.js-md-write-button(href="#md-write-holder" tabindex="-1")
|
||||
Write
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.gray-content-block.top-block
|
||||
.nav-block
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'blob', path: @path
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
= render "header_title"
|
||||
|
||||
.file-editor
|
||||
%ul.center-top-menu.no-bottom.js-edit-mode
|
||||
%ul.nav-links.no-bottom.js-edit-mode
|
||||
%li.active
|
||||
= link_to '#editor' do
|
||||
= icon('edit')
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
- if @all_builds.running_or_pending.any?
|
||||
= link_to 'Cancel running', cancel_all_namespace_project_builds_path(@project.namespace, @project), data: { confirm: 'Are you sure?' }, class: 'btn btn-danger', method: :post
|
||||
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li{class: ('active' if @scope.nil?)}
|
||||
= link_to project_builds_path(@project) do
|
||||
All
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
#up-build-trace
|
||||
- if @commit.matrix_for_ref?(@build.ref)
|
||||
%ul.center-top-menu.no-top.no-bottom
|
||||
%ul.nav-links.no-top.no-bottom
|
||||
- @commit.latest_builds_for_ref(@build.ref).each do |build|
|
||||
%li{class: ('active' if build == @build) }
|
||||
= link_to namespace_project_build_path(@project.namespace, @project, build) do
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu.no-top.no-bottom.commit-ci-menu
|
||||
%ul.nav-links.no-top.no-bottom.commit-ci-menu
|
||||
= nav_link(path: 'commit#show') do
|
||||
= link_to namespace_project_commit_path(@project.namespace, @project, @commit.id) do
|
||||
Changes
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
.commit-info-row.branches
|
||||
%i.fa.fa-spinner.fa-spin
|
||||
|
||||
.commit-box.gray-content-block.middle-block
|
||||
.commit-box.content-block
|
||||
%h3.commit-title
|
||||
= markdown escape_once(@commit.title), pipeline: :single_line
|
||||
- if @commit.description.present?
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
- page_description @commit.description
|
||||
|
||||
= render "projects/commits/header_title"
|
||||
= render "commit_box"
|
||||
|
||||
.prepend-top-default
|
||||
= render "commit_box"
|
||||
- if @ci_commit
|
||||
= render "ci_menu"
|
||||
- else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(controller: [:commit, :commits]) do
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do
|
||||
Commits
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
= render "head"
|
||||
|
||||
.gray-content-block
|
||||
.gray-content-block.second-block
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'commits'
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
- diff_files = safe_diff_files(diffs)
|
||||
|
||||
.gray-content-block.middle-block.oneline-block
|
||||
.content-block.oneline-block
|
||||
.inline-parallel-buttons
|
||||
.btn-group
|
||||
= inline_diff_btn
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- @blank_container = true
|
||||
|
||||
.project-edit-container
|
||||
.project-edit-container.prepend-top-default
|
||||
.project-edit-errors
|
||||
.project-edit-content
|
||||
.panel.panel-default
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(action: :show) do
|
||||
= link_to 'Contributors', namespace_project_graph_path
|
||||
= nav_link(action: :commits) do
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
= f.hidden_field :target_branch
|
||||
|
||||
.mr-compare.merge-request
|
||||
%ul.merge-request-tabs.center-top-menu.no-top.no-bottom
|
||||
%ul.merge-request-tabs.nav-links.no-top.no-bottom
|
||||
%li.commits-tab
|
||||
= link_to url_for(params), data: {target: 'div#commits', action: 'commits', toggle: 'tab'} do
|
||||
Commits
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
= link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
|
||||
|
||||
- if @commits.present?
|
||||
%ul.merge-request-tabs.center-top-menu.no-top.no-bottom
|
||||
%ul.merge-request-tabs.nav-links.no-top.no-bottom
|
||||
%li.notes-tab
|
||||
= link_to namespace_project_merge_request_path(@project.namespace, @project, @merge_request), data: {target: 'div#notes', action: 'notes', toggle: 'tab'} do
|
||||
Discussion
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
%span.pull-right= @milestone.expires_at
|
||||
= milestone_progress_bar(@milestone)
|
||||
|
||||
%ul.center-top-menu.no-top.no-bottom
|
||||
%ul.nav-links.no-top.no-bottom
|
||||
%li.active
|
||||
= link_to '#tab-issues', 'data-toggle' => 'tab' do
|
||||
Issues
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
= render "header_title"
|
||||
- @blank_container = true
|
||||
|
||||
.project-members-page
|
||||
.project-members-page.prepend-top-default
|
||||
- if can?(current_user, :admin_project_member, @project)
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- page_title "Runners"
|
||||
.light
|
||||
|
||||
.light.prepend-top-default
|
||||
%p
|
||||
A 'runner' is a process which runs a build.
|
||||
You can setup as many runners as you need.
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
- @no_container = true
|
||||
- @blank_container = true
|
||||
|
||||
= content_for :meta_tags do
|
||||
- if current_user
|
||||
= auto_discovery_link_tag(:atom, namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "#{@project.name} activity")
|
||||
|
@ -8,11 +11,10 @@
|
|||
= render 'shared/no_password'
|
||||
|
||||
= render 'projects/last_push'
|
||||
|
||||
= render "home_panel"
|
||||
|
||||
.project-stats.gray-content-block.second-block
|
||||
%ul.nav.nav-pills
|
||||
%ul.nav
|
||||
%li
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do
|
||||
= pluralize(number_with_delimiter(@project.commit_count), 'commit')
|
||||
|
@ -57,15 +59,17 @@
|
|||
= link_to add_contribution_guide_path(@project) do
|
||||
Add Contribution guide
|
||||
|
||||
- if @project.archived?
|
||||
.text-warning.center.prepend-top-20
|
||||
%p
|
||||
= icon("exclamation-triangle fw")
|
||||
Archived project! Repository is read-only
|
||||
|
||||
- if @repository.commit
|
||||
.content-block.second-block.white
|
||||
= render 'projects/last_commit', commit: @repository.commit, project: @project
|
||||
%div{ class: container_class }
|
||||
= render 'projects/last_commit', commit: @repository.commit, project: @project
|
||||
|
||||
%div{class: "project-show-#{default_project_view}"}
|
||||
= render default_project_view
|
||||
%div{ class: container_class }
|
||||
- if @project.archived?
|
||||
.text-warning.center.prepend-top-20
|
||||
%p
|
||||
= icon("exclamation-triangle fw")
|
||||
Archived project! Repository is read-only
|
||||
|
||||
%div{class: "project-show-#{default_project_view}"}
|
||||
= render default_project_view
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%div.tree-content-holder
|
||||
.table-holder
|
||||
%table.table#tree-slider{class: "table_#{@hex_path} tree-table table-striped" }
|
||||
%table.table#tree-slider{class: "table_#{@hex_path} tree-table" }
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
= auto_discovery_link_tag(:atom, namespace_project_commits_url(@project.namespace, @project, @ref, format: :atom, private_token: current_user.private_token), title: "#{@project.name}:#{@ref} commits")
|
||||
= render 'projects/last_push'
|
||||
|
||||
.pull-right
|
||||
.tree-controls
|
||||
= render 'projects/find_file_link'
|
||||
- if can? current_user, :download_code, @project
|
||||
= render 'projects/repositories/download_archive', ref: @ref, btn_class: 'hidden-xs hidden-sm btn-grouped', split_button: true
|
||||
|
||||
#tree-holder.tree-holder.clearfix
|
||||
.gray-content-block.top-block
|
||||
.nav-block
|
||||
= render 'projects/tree/tree_header', tree: @tree
|
||||
|
||||
= render 'projects/tree/tree_content', tree: @tree
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
= render 'projects/wikis/new'
|
||||
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
= nav_link(html_options: {class: params[:id] == 'home' ? 'active' : '' }) do
|
||||
= link_to 'Home', namespace_project_wiki_path(@project.namespace, @project, :home)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%ul.nav.nav-tabs.search-filter
|
||||
%ul.nav-links.search-filter
|
||||
- if @project
|
||||
%li{class: ("active" if @scope == 'blobs')}
|
||||
= link_to search_filter_path(scope: 'blobs') do
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- if @search_results.empty?
|
||||
= render partial: "search/results/empty"
|
||||
- else
|
||||
%p.light
|
||||
.gray-content-block
|
||||
Search results for
|
||||
%code
|
||||
= @search_term
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
- page_title @search_term
|
||||
= render 'search/form'
|
||||
|
||||
.prepend-top-default
|
||||
= render 'search/form'
|
||||
- if @search_term
|
||||
= render 'search/category'
|
||||
= render 'search/results'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.btn-group.btn-group-next.event-filter
|
||||
%ul.nav-links.event-filter
|
||||
= event_filter_link EventFilter.push, 'Push events'
|
||||
= event_filter_link EventFilter.merged, 'Merge events'
|
||||
= event_filter_link EventFilter.comments, 'Comments'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.milestones-filters
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li{class: ("active" if params[:state].blank? || params[:state] == 'opened')}
|
||||
= link_to milestones_filter_path(state: 'opened') do
|
||||
Open
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.issues-filters
|
||||
.issues-state-filters
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
- if defined?(type) && type == :merge_requests
|
||||
- page_context_word = 'merge requests'
|
||||
- else
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- page_title t('sherlock.title'), t('sherlock.transaction'), t('sherlock.query')
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
%a(href="#tab-general" data-toggle="tab")
|
||||
= t('sherlock.general')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- page_title t('sherlock.title'), t('sherlock.transaction')
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
%ul.center-top-menu
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
%a(href="#tab-general" data-toggle="tab")
|
||||
= t('sherlock.general')
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
- page_title @user.name
|
||||
- page_description @user.bio
|
||||
- header_title @user.name, user_path(@user)
|
||||
- @no_container = true
|
||||
- @blank_container = true
|
||||
|
||||
= content_for :meta_tags do
|
||||
= auto_discovery_link_tag(:atom, user_url(@user, format: :atom), title: "#{@user.name} activity")
|
||||
|
@ -8,6 +10,25 @@
|
|||
= render 'shared/show_aside'
|
||||
|
||||
.cover-block
|
||||
.cover-controls
|
||||
- if @user == current_user
|
||||
= link_to profile_path, class: 'btn btn-gray' do
|
||||
= icon('pencil')
|
||||
- elsif current_user
|
||||
%span.report-abuse
|
||||
- if @user.abuse_report
|
||||
%button.btn.btn-danger{ title: 'Already reported for abuse',
|
||||
data: { toggle: 'tooltip', placement: 'left', container: 'body' }}
|
||||
= icon('exclamation-circle')
|
||||
- else
|
||||
= link_to new_abuse_report_path(user_id: @user.id), class: 'btn btn-gray',
|
||||
title: 'Report abuse', data: {toggle: 'tooltip', placement: 'left', container: 'body'} do
|
||||
= icon('exclamation-circle')
|
||||
- if current_user
|
||||
|
||||
= link_to user_path(@user, :atom, { private_token: current_user.private_token }), class: 'btn btn-gray' do
|
||||
= icon('rss')
|
||||
|
||||
.avatar-holder
|
||||
= link_to avatar_icon(@user, 400), target: '_blank' do
|
||||
= image_tag avatar_icon(@user, 90), class: "avatar s90", alt: ''
|
||||
|
@ -47,74 +68,56 @@
|
|||
= icon('map-marker')
|
||||
= @user.location
|
||||
|
||||
%ul.nav-links.center
|
||||
%li.active
|
||||
= link_to "#activity", 'data-toggle' => 'tab' do
|
||||
Activity
|
||||
- if @groups.any?
|
||||
%li
|
||||
= link_to "#groups", 'data-toggle' => 'tab' do
|
||||
Groups
|
||||
- if @contributed_projects.present?
|
||||
%li
|
||||
= link_to "#contributed", 'data-toggle' => 'tab' do
|
||||
Contributed projects
|
||||
- if @projects.present?
|
||||
%li
|
||||
= link_to "#personal", 'data-toggle' => 'tab' do
|
||||
Personal projects
|
||||
|
||||
.cover-controls
|
||||
- if @user == current_user
|
||||
= link_to profile_path, class: 'btn btn-gray' do
|
||||
= icon('pencil')
|
||||
- elsif current_user
|
||||
%span.report-abuse
|
||||
- if @user.abuse_report
|
||||
%button.btn.btn-danger{ title: 'Already reported for abuse',
|
||||
data: { toggle: 'tooltip', placement: 'left', container: 'body' }}
|
||||
= icon('exclamation-circle')
|
||||
- else
|
||||
= link_to new_abuse_report_path(user_id: @user.id), class: 'btn btn-gray',
|
||||
title: 'Report abuse', data: {toggle: 'tooltip', placement: 'left', container: 'body'} do
|
||||
= icon('exclamation-circle')
|
||||
- if current_user
|
||||
|
||||
= link_to user_path(@user, :atom, { private_token: current_user.private_token }), class: 'btn btn-gray' do
|
||||
= icon('rss')
|
||||
|
||||
.gray-content-block.second-block
|
||||
.user-calendar
|
||||
%h4.center.light
|
||||
%i.fa.fa-spinner.fa-spin
|
||||
.user-calendar-activities
|
||||
%div{ class: container_class }
|
||||
.tab-content
|
||||
.tab-pane.active#activity
|
||||
.gray-content-block.white.second-block
|
||||
%div{ class: container_class }
|
||||
.user-calendar
|
||||
%h4.center.light
|
||||
%i.fa.fa-spinner.fa-spin
|
||||
.user-calendar-activities
|
||||
|
||||
|
||||
%ul.center-top-menu.no-top.no-bottom.bottom-border.wide
|
||||
%li.active
|
||||
= link_to "#activity", 'data-toggle' => 'tab' do
|
||||
Activity
|
||||
- if @groups.any?
|
||||
%li
|
||||
= link_to "#groups", 'data-toggle' => 'tab' do
|
||||
Groups
|
||||
- if @contributed_projects.present?
|
||||
%li
|
||||
= link_to "#contributed", 'data-toggle' => 'tab' do
|
||||
Contributed projects
|
||||
- if @projects.present?
|
||||
%li
|
||||
= link_to "#personal", 'data-toggle' => 'tab' do
|
||||
Personal projects
|
||||
.content_list
|
||||
= spinner
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active#activity
|
||||
.content_list
|
||||
= spinner
|
||||
- if @groups.any?
|
||||
.tab-pane#groups
|
||||
%ul.content-list
|
||||
- @groups.each do |group|
|
||||
= render 'shared/groups/group', group: group
|
||||
|
||||
- if @groups.any?
|
||||
.tab-pane#groups
|
||||
%ul.content-list
|
||||
- @groups.each do |group|
|
||||
= render 'shared/groups/group', group: group
|
||||
- if @contributed_projects.present?
|
||||
.tab-pane#contributed
|
||||
.contributed-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @contributed_projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 10, stars: true, avatar: true
|
||||
|
||||
- if @contributed_projects.present?
|
||||
.tab-pane#contributed
|
||||
.contributed-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @contributed_projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 5, stars: true, avatar: true
|
||||
|
||||
- if @projects.present?
|
||||
.tab-pane#personal
|
||||
.personal-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 10, stars: true, avatar: true
|
||||
- if @projects.present?
|
||||
.tab-pane#personal
|
||||
.personal-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 10, stars: true, avatar: true
|
||||
|
||||
:javascript
|
||||
$(".user-calendar").load("#{user_calendar_path}");
|
||||
|
|
|
@ -6,7 +6,7 @@ module SharedActiveTab
|
|||
end
|
||||
|
||||
def ensure_active_sub_tab(content)
|
||||
expect(find('div.content ul.center-top-menu li.active')).to have_content(content)
|
||||
expect(find('div.content ul.nav-links 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.center-top-menu li.active', count: 1)
|
||||
expect(page).to have_selector('div.content ul.nav-links li.active', count: 1)
|
||||
end
|
||||
|
||||
step 'no other sub navs should be active' do
|
||||
|
|
Loading…
Reference in a new issue