Commit 7617ff56 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'bootstrap3' of /home/git/repositories/gitlab/gitlabhq

parents a2355c52 3567107c
......@@ -151,7 +151,7 @@ gem "jquery-rails", "2.1.3"
gem "jquery-ui-rails", "2.0.2"
gem "modernizr", "2.6.2"
gem "raphael-rails", "~> 2.1.2"
gem 'bootstrap-sass', '~> 2.3'
gem 'bootstrap-sass', '~> 3.0'
gem "font-awesome-rails", '~> 3.2'
gem "gemoji", "~> 1.3.0"
gem "gon", git: "https://github.com/gitlabhq/gon.git", ref: '58ca8e17273051cb370182cabd3602d1da6783ab'
......
......@@ -64,7 +64,7 @@ GEM
erubis (>= 2.6.6)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
bootstrap-sass (2.3.2.2)
bootstrap-sass (3.0.3.0)
sass (~> 3.2)
builder (3.1.4)
capybara (2.1.0)
......@@ -575,7 +575,7 @@ DEPENDENCIES
awesome_print
better_errors
binding_of_caller
bootstrap-sass (~> 2.3)
bootstrap-sass (~> 3.0)
capybara
carrierwave
chosen-rails (= 1.0.1)
......
......@@ -3,7 +3,7 @@ $ ->
container = $(@).closest(".js-toggler-container")
container.toggleClass("on")
$("body").on "click", ".js-toggle-visibility-link", (e) ->
$(@).find('i').
toggleClass('icon-chevron-down').
......@@ -11,7 +11,7 @@ $ ->
container = $(".js-toggle-visibility-container")
container.toggleClass("hide")
e.preventDefault()
$("body").on "click", ".js-toggle-button", (e) ->
$(@).closest(".js-toggle-container").find(".js-toggle-content").toggle()
e.preventDefault()
......@@ -9,36 +9,41 @@
*= require_self
*/
@import "main/variables.scss";
@import "main/mixins.scss";
@import "main/fonts.scss";
/**
* GitLab bootstrap:
* Customized Twitter bootstrap
*/
@import "gitlab_bootstrap.scss";
@import 'gl_bootstrap';
/**
* Font icons
*
*/
@import "font-awesome";
/**
* Generic css (forms, nav etc):
*/
@import "generic.scss";
/**
* Unrefactored css
*/
@import "common.scss";
@import "selects.scss";
@import "sections/header.scss";
@import "sections/nav.scss";
@import "sections/commits.scss";
@import "sections/issues.scss";
@import "sections/projects.scss";
@import "sections/snippets.scss";
@import "sections/votes.scss";
@import "sections/merge_requests.scss";
@import "sections/graph.scss";
@import "sections/events.scss";
@import "sections/themes.scss";
@import "sections/tree.scss";
@import "sections/notes.scss";
@import "sections/profile.scss";
@import "sections/login.scss";
@import "sections/editor.scss";
@import "sections/admin.scss";
@import "sections/wiki.scss";
@import "sections/wall.scss";
@import "sections/dashboard.scss";
@import "sections/stat_graph.scss";
/**
* Page specific styles (issues, projects etc):
*/
@import "sections.scss";
/**
* Code ighlight
*/
@import "highlight/white.scss";
@import "highlight/dark.scss";
@import "highlight/solarized_dark.scss";
......@@ -57,4 +62,3 @@
* Styles for JS behaviors.
*/
@import "behaviors.scss";
......@@ -119,18 +119,6 @@ p.time {
margin: 30px 3px 3px 2px;
}
.search-holder {
label, input {
height: 30px;
padding: 0;
font-size: 14px;
}
label {
line-height: 30px;
color: #666;
}
}
.highlight {
text-shadow: none;
}
......@@ -209,7 +197,7 @@ li.note {
}
.git_error_tips {
@extend .span6;
@extend .col-md-6;
text-align: left;
margin-top: 40px;
pre {
......@@ -395,3 +383,9 @@ table {
font-weight: bolder;
}
}
.side-filters {
fieldset {
margin-bottom: 15px;
}
}
@import "generic/avatar.scss";
@import "generic/nav.scss";
@import "generic/common.scss";
@import "generic/typography.scss";
@import "generic/buttons.scss";
@import "generic/blocks.scss";
@import "generic/ui_box.scss";
@import "generic/issue_box.scss";
@import "generic/files.scss";
@import "generic/lists.scss";
@import "generic/forms.scss";
@import "generic/selects.scss";
......@@ -20,6 +20,7 @@
.append-right-10 { margin-right:10px }
.append-right-20 { margin-right:20px }
.append-bottom-10 { margin-bottom:10px }
.append-bottom-15 { margin-bottom:15px }
.append-bottom-20 { margin-bottom:20px }
.inline { display: inline-block }
......@@ -69,12 +70,6 @@
}
}
.pagination ul > li > a, .pagination ul > li >span {
@include linear-gradient(#f1f1f1, #e1e1e1);
color: #333;
text-shadow: 0 1px 1px #FFF;
}
pre.well-pre {
border: 1px solid #EEE;
background: #f9f9f9;
......@@ -101,6 +96,10 @@ pre.well-pre {
color: #999;
text-shadow: none;
}
&.label-inverse {
background-color: #333333;
}
}
/** Big Labels **/
......@@ -131,3 +130,9 @@ pre.well-pre {
.dropdown-menu > li > a:focus {
background: #29b;
}
.breadcrumb > li + li:before {
content: "/";
padding: 0;
color: #666;
}
......@@ -20,7 +20,6 @@
text-align: left;
color: $style_color;
padding: 9px 10px;
height: 18px;
.options {
float: right;
......
form {
@extend .form-horizontal;
label {
@extend .control-label;
&.radio-label {
text-align: left;
width: 100%;
margin-left: 0;
input[type="radio"] {
margin-top: 1px !important;
}
}
&.list-label {
float: none;
padding: 0 !important;
margin: 0;
text-align: left;
}
}
&.form-tiny {
margin: 0;
}
}
input.input-xpadding,
.add-on.input-xpadding {
padding: 6px 10px;
}
.control-group {
.control-label {
padding-top: 6px;
}
.controls {
input, textarea {
padding: 6px 10px;
}
input[type="radio"], input[type="checkbox"] {
margin-top: 6px;
}
.add-on {
padding: 6px;
}
}
}
input[type='search'].search-text-input {
background-image: url("icon-search.png");
background-repeat: no-repeat;
background-position: 10px;
padding-left: 25px;
@include border-radius(4px);
border: 1px solid #ccc;
}
input[type='text'].danger {
......@@ -68,7 +13,6 @@ input[type='text'].danger {
fieldset legend {
font-size: 16px;
margin-bottom: 10px;
}
.datetime-controls {
......@@ -76,3 +20,20 @@ fieldset legend {
width: 100px;
}
}
.form-actions {
padding: 17px 20px 18px;
margin-top: 18px;
margin-bottom: 18px;
background-color: whitesmoke;
border-top: 1px solid #e5e5e5;
padding-left: 17%;
}
label.control-label {
@extend .col-sm-2;
}
.inline-input-group {
width: 250px;
}
......@@ -4,7 +4,9 @@
*/
.well-list {
margin: 0;
padding: 0;
list-style: none;
li {
padding: 10px;
min-height: 20px;
......
......@@ -3,6 +3,7 @@
min-width: 100px;
.chosen-single {
height: 26px;
background: #EEE !important;
border: 1px solid #DDD !important;
@include box-shadow(none !important);
......@@ -55,3 +56,13 @@
.chosen-compact {
max-width: 170px !important;
}
select {
&.chosen {
min-width: 200px;
}
&.chosen-sm {
min-width: 100px;
}
}
......@@ -2,11 +2,6 @@
* Headers
*
*/
h1, h2, h3, h4, h5, h6 {
font-weight: 500;
line-height: 1.1;
}
h1.page-title {
@include page-title;
font-size: 28px;
......@@ -99,6 +94,7 @@ a:focus {
background: #f5f5f5;
}
ul {
padding: 0;
margin: 0 0 9px 25px !important;
}
}
......
......@@ -43,6 +43,7 @@
ul {
margin: 0;
padding: 0;
}
.title {
......@@ -157,7 +158,8 @@
.title {
background: #D65;
color: #fff;
text-shadow: 0 1px 1px #900;
text-shadow: none;
font-weight: 500;
}
}
......
/** Override bootstrap variables **/
$baseFontSize: 13px !default;
$baseLineHeight: 18px !default;
/**
* BOOTSTRAP
*/
// Core variables and mixins
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/reset";
// Reset
@import "bootstrap/normalize";
@import "bootstrap/print";
// Core CSS
@import "bootstrap/scaffolding";
@import "bootstrap/grid";
@import "bootstrap/layouts";
@import "bootstrap/type";
@import "bootstrap/code";
@import "bootstrap/forms";
@import "bootstrap/grid";
@import "bootstrap/tables";
@import "bootstrap/sprites";
@import "bootstrap/dropdowns";
@import "bootstrap/wells";
@import "bootstrap/forms";
// Components
@import "bootstrap/component-animations";
@import "bootstrap/close";
@import "bootstrap/dropdowns";
@import "bootstrap/button-groups";
@import "bootstrap/alerts";
@import "bootstrap/input-groups";
@import "bootstrap/navs";
@import "bootstrap/navbar";
@import "bootstrap/breadcrumbs";
@import "bootstrap/pagination";
@import "bootstrap/pager";
@import "bootstrap/labels";
@import "bootstrap/badges";
@import "bootstrap/jumbotron";
@import "bootstrap/thumbnails";
@import "bootstrap/alerts";
@import "bootstrap/progress-bars";
@import "bootstrap/list-group";
@import "bootstrap/wells";
@import "bootstrap/close";
// Components w/ JavaScript
@import "bootstrap/modals";
@import "bootstrap/tooltip";
@import "bootstrap/popovers";
@import "bootstrap/thumbnails";
@import "bootstrap/media";
@import "bootstrap/labels-badges";
@import "bootstrap/progress-bars";
@import "bootstrap/accordion";
@import "bootstrap/carousel";
@import "bootstrap/hero-unit";
@import "bootstrap/utilities";
@import "bootstrap/responsive-utilities";
@import "bootstrap/responsive-1200px-min";
/**
* Font icons
*
*/
@import "font-awesome";
// Utility classes
.clearfix {
@include clearfix();
}
.center-block {
@include center-block();
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
.hide {
display: none;
}
.show {
display: block !important;
}
.invisible {
visibility: hidden;
}
.text-hide {
@include text-hide();
}
.hidden {
display: none !important;
visibility: hidden !important;
}
.affix {
position: fixed;
}
/**
* GitLab bootstrap.
* Overrides some styles of twitter bootstrap.
* Also give some common classes for GitLab app
*/
@import "gitlab_bootstrap/variables.scss";
@import "gitlab_bootstrap/fonts.scss";
@import "gitlab_bootstrap/mixins.scss";
@import "gitlab_bootstrap/avatar.scss";
@import "gitlab_bootstrap/nav.scss";
@import "gitlab_bootstrap/common.scss";
@import "gitlab_bootstrap/typography.scss";
@import "gitlab_bootstrap/buttons.scss";
@import "gitlab_bootstrap/blocks.scss";
@import "gitlab_bootstrap/ui_box.scss";
@import "gitlab_bootstrap/issue_box.scss";
@import "gitlab_bootstrap/files.scss";
@import "gitlab_bootstrap/lists.scss";
@import "gitlab_bootstrap/forms.scss";
@import "bootstrap/responsive-utilities";
......@@ -79,11 +79,15 @@
color: $style_color;
text-shadow: 0 1px 1px #FFF;
font-size: 16px;
line-height: 40px;
line-height: 44px;
font-weight: normal;
}
@mixin md-typography {
img {
max-width: 100%;
}
*:first-child {
margin-top: 0;
}
......
/** Override bootstrap variables **/
$font-size-base: 13px !default;
/**
* General Colors
*/
......
@import "sections/header.scss";
@import "sections/nav.scss";
@import "sections/commits.scss";
@import "sections/issues.scss";
@import "sections/projects.scss";
@import "sections/snippets.scss";
@import "sections/votes.scss";
@import "sections/merge_requests.scss";
@import "sections/graph.scss";
@import "sections/events.scss";
@import "sections/themes.scss";
@import "sections/tree.scss";
@import "sections/notes.scss";
@import "sections/profile.scss";
@import "sections/login.scss";
@import "sections/editor.scss";
@import "sections/admin.scss";
@import "sections/wiki.scss";
@import "sections/wall.scss";
@import "sections/dashboard.scss";
@import "sections/stat_graph.scss";
......@@ -80,7 +80,7 @@
border-right: 1px solid #ccc;
text-align: right;
min-width: 35px;
max-width: 35px;
max-width: 50px;
width: 35px;
@include user-select(none);
a {
......@@ -399,8 +399,8 @@
.commits-compare-switch{
background: url("switch_icon.png") no-repeat center center;
width: 22px;
height: 22px;
width: 32px;
height: 32px;
text-indent: -9999px;
float: left;
margin-right: 9px;
......
.dashboard {
@extend .row;
.activities {
}
.side {
@extend .pull-right;
.ui-box {
margin: 0px;
box-shadow: none;
......@@ -20,7 +14,7 @@
.search-text-input {
float:left;
@extend .span2;
@extend .col-md-2;
}
.btn {
margin-left: 5px;
......@@ -32,14 +26,15 @@
.dash-filter {
margin: 7px 0;
padding: 4px 6px;
width: 202px;
width: 220px;
float: left;
height: inherit;
}
}
@media (max-width: 1200px) {
.dashboard .dash-filter {
width: 132px;
width: 150px;
}
}
......@@ -107,7 +102,6 @@
padding: 8px 12px;
border-radius: 50px;
background: #f5f5f5;
width: 16px;
text-align: center;
i {
......
......@@ -42,7 +42,7 @@
line-height: 20px;
}
textarea {
@extend .span8;
@extend .col-md-8;
}
}
}
......@@ -75,6 +75,7 @@
margin-top: 4px;
margin-left: 0px;
max-width: 200px;
float: none;
}
p:last-child {
......@@ -147,7 +148,7 @@
float: left;
padding: 9px 6px;
font-size: 18px;
width: 26px;
width: 40px;
@include border-radius(3px);
}
......
......@@ -4,17 +4,24 @@
*/
header {
&.navbar-gitlab {
margin-bottom: 0;
min-height: 40px;
.navbar-inner {
height: 40px;
padding: 3px;
background: #F1F1F1;
border-bottom: 1px solid #DDD;
filter: none;
.nav > li > a {
color: $style_color;
text-shadow: 0 1px 0 #fff;
font-size: 14px;
padding: 10px;
line-height: 32px;
padding: 6px 10px;
&:hover {
background: none;
}
}
/** NAV block with links and profile **/
......@@ -35,9 +42,6 @@ header {
.app_logo {
float: left;
margin-right: 9px;
position: relative;
top: -3px;
padding-top: 3px;
a {
float: left;
......@@ -49,7 +53,7 @@ header {
background: url('logo-black.png') no-repeat center center;
background-size: 32px;
float: left;
height: 40px;
height: 46px;
width: 40px;
@include header-font;
text-indent: -9999px;
......@@ -75,7 +79,7 @@ header {
.profile-pic {
position: relative;
top: -4px;
top: -1px;
img {
width: 26px;
height: 26px;
......@@ -91,21 +95,25 @@ header {
.search {
margin-right: 10px;
margin-left: 10px;
margin-top: 8px;
form {
margin: 0;
padding: 0;
}
.search-input {
@extend .span3;
background-image: url("icon-search.png");
background-repeat: no-repeat;
background-position: 10px;
height: inherit;
padding: 4px 6px;
padding-left: 25px;
font-size: 13px;
@include border-radius(3px);
border: 1px solid #c6c6c6;
box-shadow: none;
@include transition(all 0.15s ease-in 0s);
&:focus {
@extend .span4;
}
}
}
......@@ -181,12 +189,26 @@ header {
.separator {
float: left;
height: 46px;
width: 1px;
width: 2px;
background: white;
border-left: 1px solid #DDD;
margin-top: -3px;
margin-left: 10px;
margin-right: 10px;
}
}
.search .search-input {
width: 300px;
&:focus {
width: 400px;
}
}
@media (max-width: 1200px) {
.search .search-input {
width: 200px;
&:focus {
width: 300px;
}
}
}
/* Login Page */
body.login-page{
.container > .content {
padding-top: 20px;
.login-page {
h1 {
font-size: 3em;
font-weight: 200;
}
}
.login-box{
width: 304px;
position: relative;
@include border-radius(5px);
margin: auto;
padding: 20px;
background: white;
}
.login-box .login-logo{
margin: 10px 0 30px 0;
display: block;
}
.login-box input.text{background-color: #f1f1f1; font-size: 16px; @include border-radius(0); padding: 14px 10px; width: 280px}
.login-box input.text.top{
@include border-radius(5px 5px 0 0);
margin-bottom: 0px;
}
.login-box input.text.bottom{
@include border-radius(0 0 5px 5px);
border-top: 0;
margin-bottom: 20px;
}
.login-box input.text.middle{
border-top: 0;
margin-bottom:0px;
}
.login-box{
width: 304px;
position: relative;
@include border-radius(5px);
margin: auto;
padding: 20px;
background: white;
}
.login-box a.forgot{float: right; padding-top: 6px}
.login-logo{
margin: 10px 0 30px 0;
display: block;
}
.remember_me {
text-align: left;
.form-control {
background-color: #f1f1f1;
font-size: 16px;
padding: 14px 10px;
width: 280px;
height: auto;
&.top {
@include border-radius(5px 5px 0 0);
margin-bottom: 0px;
}
&.bottom {
@include border-radius(0 0 5px 5px);
border-top: 0;
margin-bottom: 20px;
}
&.middle {
border-top: 0;
margin-bottom:0px;
@include border-radius(0);
}
}
input {
margin: 2px;
.login-box a.forgot {
float: right;
padding-top: 6px
}
}
.devise-errors {
h2 {
font-size: 14px;
color: #a00;
.devise-errors {
h2 {
font-size: 14px;
color: #a00;
}
}
}
......@@ -15,29 +15,9 @@
}
}
.accept_group {
float: left;
border: 1px solid #ADA;
padding: 2px;
@include border-radius(5px);
background: #CEB;
.accept_merge_request {
font-size: 13px;
float: left;
}
.remove_branch_holder {
margin-left: 20px;
margin-right: 10px;
float: left;
}
label {
color: #444;
text-align: left
}
.accept-group {
}
.how_to_merge_link {
@extend .primary;
}
......@@ -111,12 +91,8 @@
.merge-request-angle {
text-align: center;
margin: 0 auto;
background: #eee;
border-radius: 100px;
width: 60px;
line-height: 60px;
color: #777;
text-shadow: 0 1px 2px #FFF;
font-size: 2em;
line-height: 1.1;
}
.merge-request-form-info {
......@@ -129,7 +105,6 @@
}
.chosen-container .chosen-single {
padding: 2px 0 2px 10px;
span {
font-weight: bold;
color: #555;
......
......@@ -6,6 +6,7 @@
border-bottom: 1px solid #E1E1E1;
ul {
padding: 0;
margin: auto;
height: 40px;
overflow: hidden;
......
......@@ -2,7 +2,7 @@
* Notes
*/
@-webkit-keyframes target-note {
@-webkit-keyframes targe3-note {
from { background:#fffff0; }
50% { background:#ffffd3; }
to { background:#fffff0; }
......@@ -119,9 +119,9 @@ ul.notes {
}
.file .notes_holder {
font-family: $sansFontFamily;
font-size: 13px;
line-height: 18px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
td {
border: 1px solid #ddd;
......@@ -138,7 +138,7 @@ ul.notes {
border-left: 1px solid #ddd !important;
}
&.notes_content {
background-color: $white;
background-color: #fff;
border-width: 1px 0;
padding-top: 0;
......@@ -303,7 +303,7 @@ ul.notes {
}
.note-image-attach {
@extend .span4;
@extend .col-md-4;
@extend .thumbnail;
margin-left: 45px;
}
......
.update-notifications {
margin-bottom: 0;
label {
margin-bottom: 0;
.radio-inline {
margin-right: 30px;
}
}
......@@ -17,7 +16,7 @@
legend {
border: none;
margin: 0;
margin-bottom: 10px;
}
}
}
......
......@@ -52,13 +52,16 @@
}
.visibility-level-label {
font-size: 14px;
font-size: 17px;
background: #f1f1f1;
padding: 8px 10px;
border-radius: 4px;
margin-left: 10px;
color: #888;
position: absolute;
margin-left: -55px;
text-shadow: 0 1px 1px #FFF;
width: 40px;
text-align: center;
padding: 6px;
i {
color: inherit;
......@@ -67,7 +70,7 @@
}
.git-clone-holder {
float: right;
margin-right: 45px;
border: 1px solid #E1E1E1;
@include border-radius(4px);
......@@ -100,6 +103,11 @@
cursor: auto;
@extend .monospace;
background: #FAFAFA;
width: 100%;
}
.protocol-clone {
overflow: hidden;
}
}
......
......@@ -24,10 +24,10 @@
th {
font-weight: normal;
font-size: 15px;
border-bottom: 1px solid #CCC;
border-bottom: 1px solid #CCC !important;
}
td {
border-color: #F1F1F1;
border-color: #F1F1F1 !important;
}
&:hover {
td {
......@@ -111,7 +111,7 @@
.tree-ref-holder {
float: left;
margin-top: 5px;
margin-top: 8px;
}
.readme-holder {
......
......@@ -36,3 +36,8 @@
display: inline-block;
margin: 0 8px;
}
.votes-holder {
float: right;
width: 250px;
}
.wall-page {
.wall-note-form {
@extend .span12;
@extend .col-md-12;
margin: 0;
height: 140px;
......
......@@ -8,33 +8,33 @@
= form_for [:admin, @broadcast_message] do |f|
-if @broadcast_message.errors.any?
.alert.alert-error
.alert.alert-danger
- @broadcast_message.errors.full_messages.each do |msg|
%p= msg
.control-group
.form-group
= f.label :message
.controls
= f.text_area :message, class: "input-xxlarge", rows: 2, required: true
.col-sm-10
= f.text_area :message, class: "form-control", rows: 2, required: true
%div
= link_to '#', class: 'js-toggle-colors-link' do
Customize colors
.control-group.js-toggle-colors-container.hide
.form-group.js-toggle-colors-container.hide
= f.label :color, "Background Color"
.controls
.col-sm-10
= f.text_field :color, placeholder: "#AA33EE"
.light Hex values as 3 double digit numbers, starting with a # sign.
.control-group.js-toggle-colors-container.hide
.form-group.js-toggle-colors-container.hide
= f.label :font, "Font Color"
.controls
.col-sm-10
= f.text_field :font, placeholder: "#224466"
.light Hex values as 3 double digit numbers, starting with a # sign.
.control-group
.form-group
= f.label :starts_at
.controls.datetime-controls
.col-sm-10.datetime-controls
= f.datetime_select :starts_at
.control-group
.form-group
= f.label :ends_at
.controls.datetime-controls
.col-sm-10.datetime-controls
= f.datetime_select :ends_at
.form-actions
= f.submit "Add broadcast message", class: "btn btn-create"
......
......@@ -4,7 +4,7 @@
You can manage projects, users and other GitLab data from here.
%hr
.admin_dash.row
.span4
.col-md-4
.light-well
%h4 Projects
.data
......@@ -12,7 +12,7 @@
%h1= Project.count
%hr
= link_to 'New Project', new_project_path, class: "btn btn-new"
.span4
.col-md-4
.light-well
%h4 Users
.data
......@@ -20,7 +20,7 @@
%h1= User.count
%hr
= link_to 'New User', new_admin_user_path, class: "btn btn-new"
.span4
.col-md-4
.light-well
%h4 Groups
.data
......@@ -30,7 +30,7 @@
= link_to 'New Group', new_admin_group_path, class: "btn btn-new"
.row.prepend-top-10
.span4
.col-md-4
%h4 Latest projects
%hr
- @projects.each do |project|
......@@ -39,7 +39,7 @@
%span.light.pull-right
#{time_ago_with_tooltip(project.created_at)}
.span4
.col-md-4
%h4 Latest users
%hr
- @users.each do |user|
......@@ -49,7 +49,7 @@
%span.light.pull-right
#{time_ago_with_tooltip(user.created_at)}
.span4
.col-md-4
%h4 Latest groups
%hr
- @groups.each do |group|
......@@ -61,7 +61,7 @@
%br
.row
.span4
.col-md-4
%h4 Stats
%hr
%p
......@@ -92,7 +92,7 @@
Milestones
%span.light.pull-right
= Milestone.count
.span4
.col-md-4
%h4
Features
%hr
......@@ -112,7 +112,7 @@
OmniAuth
%span.light.pull-right
= boolean_to_icon Gitlab.config.omniauth.enabled
.span4
.col-md-4
%h4 Components
%hr
%p
......
......@@ -2,24 +2,24 @@
%hr
= form_for [:admin, @group] do |f|
- if @group.errors.any?
.alert.alert-error
.alert.alert-danger
%span= @group.errors.full_messages.first
.control-group.group_name_holder
.form-group.group_name_holder
= f.label :name do
Group name
.controls
= f.text_field :name, placeholder: "Example Group", class: "input-xxlarge"
.col-sm-10
= f.text_field :name, placeholder: "Example Group", class: "form-control"
.control-group.group-description-holder
.form-group.group-description-holder
= f.label :description, "Details"
.controls
= f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
.col-sm-10
= f.text_area :description, maxlength: 250, class: "form-control js-gfm-input", rows: 4
.control-group.group_name_holder
.form-group.group_name_holder
= f.label :path do
%span.cred Group path
.controls
= f.text_field :path, placeholder: "example-group", class: "input-xxlarge danger"
.col-sm-10
= f.text_field :path, placeholder: "example-group", class: "form-control danger"
%ul.cred
%li Changing group path can have unintended side effects.
%li Renaming group path will rename directory for all related projects
......
......@@ -2,17 +2,17 @@
%hr
= form_for [:admin, @group] do |f|
- if @group.errors.any?
.alert.alert-error
.alert.alert-danger
%span= @group.errors.full_messages.first
.control-group
.form-group
= f.label :name do
Group name
.controls
= f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
.control-group.group-description-holder
.col-sm-10
= f.text_field :name, placeholder: "Ex. OpenSource", class: "form-control left"
.form-group.group-description-holder
= f.label :description, "Details"
.controls
= f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
.col-sm-10
= f.text_area :description, maxlength: 250, class: "form-control js-gfm-input", rows: 4
.form-actions
= f.submit 'Create group', class: "btn btn-create"
......
......@@ -6,7 +6,7 @@
Edit
%hr
.row
.span6
.col-md-6
.ui-box
.title
Group info:
......@@ -44,7 +44,7 @@
%span.pull-right.light
%span.monospace= project.path_with_namespace + ".git"
.span6
.col-md-6
.ui-box
.title
Add user(s) to the group:
......
......@@ -10,13 +10,13 @@
= form_for @hook, as: :hook, url: admin_hooks_path, html: { class: 'form-inline' } do |f|
-if @hook.errors.any?
.alert.alert-error
.alert.alert-danger
- @hook.errors.full_messages.each do |msg|
%p= msg
.control-group
.form-group
= f.label :url, "URL:"
.controls
= f.text_field :url, class: "text_field input-xxlarge input-xpadding"
.col-sm-10
= f.text_field :url, class: "text_field form-control input-xpadding"
 
= f.submit "Add System Hook", class: "btn btn-create"
%hr
......
.row
.span4
.col-md-4
.admin-filter
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
.control-group
.form-group
= label_tag :name, 'Name:', class: 'control-label'
.controls
.col-sm-10
= text_field_tag :name, params[:name], class: "span2"
.control-group
.form-group
= label_tag :owner_id, 'Owner:', class: 'control-label'
.controls
.col-sm-10
= users_select_tag :owner_id, selected: params[:owner_id], class: 'input-large input-clamp'
.control-group.visibility-levels
.form-group.visibility-levels
= label_tag :visibility_level, 'Visibility Levels', class: 'control-label'
- Project.visibility_levels.each do |label, level|
.controls
.col-sm-10
= check_box_tag 'visibility_levels[]', level, params[:visibility_levels].present? && params[:visibility_levels].include?(level.to_s)
%span.descr
= visibility_level_icon(level)
= label
.control-group
.form-group
= label_tag :with_push, 'Not empty', class: 'control-label'
.controls
.col-sm-10
= check_box_tag :with_push, 1, params[:with_push]
 
%span.light Projects with push events
.control-group
.form-group
= label_tag :abandoned, 'Abandoned', class: 'control-label'
.controls
.col-sm-10
= check_box_tag :abandoned, 1, params[:abandoned]
 
%span.light No activity over 6 month
......@@ -37,7 +37,7 @@
.form-actions
= submit_tag "Search", class: "btn submit btn-primary"
= link_to "Reset", admin_projects_path, class: "btn"
.span8
.col-md-8
.ui-box
.title
Projects (#{@projects.total_count})
......
......@@ -5,7 +5,7 @@
Edit
%hr
.row
.span6
.col-md-6
.ui-box
.title
Project info:
......@@ -80,16 +80,16 @@
Transfer project
.body
= form_for @project, url: transfer_admin_project_path(@project), method: :put do |f|
.control-group
.form-group
= f.label :namespace_id, "Namespace"
.controls
.col-sm-10
= namespace_select_tag :namespace_id, selected: params[:namespace_id], class: 'input-large'
.control-group
.controls
.form-group
.col-sm-10
= f.submit 'Transfer', class: 'btn btn-primary'
.span6
.col-md-6
- if @group
.ui-box
.title
......
......@@ -2,34 +2,34 @@
= form_for [:admin, @user] do |f|
-if @user.errors.any?
#error_explanation
%ul.unstyled.alert.alert-error
%ul.unstyled.alert.alert-danger
- @user.errors.full_messages.each do |msg|
%li= msg
%fieldset
%legend Account
.control-group
.form-group
= f.label :name
.controls
.col-sm-10
= f.text_field :name, required: true, autocomplete: "off"
%span.help-inline * required
.control-group
.form-group
= f.label :username
.controls
.col-sm-10
= f.text_field :username, required: true, autocomplete: "off"
%span.help-inline * required
.control-group
.form-group
= f.label :email
.controls
.col-sm-10
= f.text_field :email, required: true, autocomplete: "off"
%span.help-inline * required
- if @user.new_record?
%fieldset
%legend Password
.control-group
.form-group
= f.label :password
.controls
.col-sm-10
%strong
A temporary password will be generated and sent to user.
%br
......@@ -37,32 +37,32 @@
- else
%fieldset
%legend Password
.control-group
.form-group
= f.label :password
.controls= f.password_field :password, disabled: f.object.force_random_password
.control-group
.col-sm-10= f.password_field :password, disabled: f.object.force_random_password
.form-group
= f.label :password_confirmation
.controls= f.password_field :password_confirmation, disabled: f.object.force_random_password
.col-sm-10= f.password_field :password_confirmation, disabled: f.object.force_random_password
%fieldset
%legend Access
.row
.span8
.control-group
.col-md-8
.form-group
= f.label :projects_limit
.controls= f.number_field :projects_limit
.col-sm-10= f.number_field :projects_limit
.control-group
.form-group
= f.label :can_create_group
.controls= f.check_box :can_create_group
.col-sm-10= f.check_box :can_create_group
.control-group
.form-group
= f.label :admin do
%strong.cred Administrator
.controls= f.check_box :admin
.span4
.col-sm-10= f.check_box :admin
.col-md-4
- unless @user.new_record?
.alert.alert-error
.alert.alert-danger
- if @user.blocked?
%p This user is blocked and is not able to login to GitLab
= link_to 'Unblock User', unblock_admin_user_path(@user), method: :put, class: "btn btn-small"
......@@ -71,15 +71,15 @@
= link_to 'Block User', block_admin_user_path(@user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: "btn btn-small btn-remove"
%fieldset
%legend Profile
.control-group
.form-group
= f.label :skype
.controls= f.text_field :skype
.control-group
.col-sm-10= f.text_field :skype
.form-group
= f.label :linkedin
.controls= f.text_field :linkedin
.control-group
.col-sm-10= f.text_field :linkedin
.form-group
= f.label :twitter
.controls= f.text_field :twitter
.col-sm-10= f.text_field :twitter
.form-actions
- if @user.new_record?
......
.row
.span3
.col-md-3
.admin-filter
= form_tag admin_users_path, method: :get, class: 'form-inline' do
= search_field_tag :name, params[:name], placeholder: 'Name, email or username', class: 'input-xpadding span2'
......@@ -25,7 +25,7 @@
%hr
= link_to 'Reset', admin_users_path, class: "btn btn-cancel"
.span9
.col-md-9
.ui-box
.title
Users (#{@users.total_count})
......
......@@ -13,7 +13,7 @@
%hr
.row
.span6
.col-md-6
.ui-box
.title
Account:
......@@ -100,7 +100,7 @@
%li Owned groups will be left
= link_to 'Block user', block_admin_user_path(@user), data: { confirm: 'USER WILL BE BLOCKED! Are you sure?' }, method: :put, class: "btn btn-remove"
.alert.alert-error
.alert.alert-danger
%h4
Remove user
%br
......@@ -116,7 +116,7 @@
%strong #{@user.solo_owned_groups.map(&:name).join(', ')}
= link_to 'Remove user', [:admin, @user], data: { confirm: "USER #{@user.name} WILL BE REMOVED! Are you sure?" }, method: :delete, class: "btn btn-remove"
.span6
.col-md-6
- if @user.users_groups.present?
.ui-box
.title Groups:
......
.ui-box
.title.clearfix
= search_field_tag :filter_group, nil, placeholder: 'Filter by name', class: 'dash-filter'
= search_field_tag :filter_group, nil, placeholder: 'Filter by name', class: 'dash-filter form-control'
- if current_user.can_create_group?
%span.pull-right
= link_to new_group_path, class: "btn btn-new" do
......
.ui-box
.title.clearfix
= search_field_tag :filter_projects, nil, placeholder: 'Filter by name', class: 'dash-filter'
= search_field_tag :filter_projects, nil, placeholder: 'Filter by name', class: 'dash-filter form-control'
- if current_user.can_create_project?
%span.pull-right
= link_to new_project_path, class: "btn btn-new" do
......
......@@ -7,7 +7,7 @@
%hr
.row
.span3
.col-md-3
= render 'shared/filter', entity: 'issue'
.span9
.col-md-9
= render 'shared/issues'
......@@ -7,7 +7,7 @@
List all merge requests from all project's you have access to.
%hr
.row
.span3
.col-md-3
= render 'shared/filter', entity: 'merge_request'
.span9
.col-md-9
= render 'shared/merge_requests'
......@@ -25,28 +25,29 @@
All projects you have access to are listed here. Public projects are not included here unless you are a member
%hr
.row
.span3
%ul.nav.nav-pills.nav-stacked
= nav_tab :scope, nil do
= link_to projects_dashboard_filter_path(scope: nil) do
All
%span.pull-right
= current_user.authorized_projects.count
= nav_tab :scope, 'personal' do
= link_to projects_dashboard_filter_path(scope: 'personal') do
Personal
%span.pull-right
= current_user.personal_projects.count
= nav_tab :scope, 'joined' do
= link_to projects_dashboard_filter_path(scope: 'joined') do
Joined
%span.pull-right
= current_user.authorized_projects.joined(current_user).count
= nav_tab :scope, 'owned' do
= link_to projects_dashboard_filter_path(scope: 'owned') do
Owned
%span.pull-right
= current_user.owned_projects.count
.col-md-3.hidden-sm.hidden-xs.side-filters
%fieldset
%ul.nav.nav-pills.nav-stacked
= nav_tab :scope, nil do
= link_to projects_dashboard_filter_path(scope: nil) do
All
%span.pull-right
= current_user.authorized_projects.count
= nav_tab :scope, 'personal' do
= link_to projects_dashboard_filter_path(scope: 'personal') do
Personal
%span.pull-right
= current_user.personal_projects.count
= nav_tab :scope, 'joined' do
= link_to projects_dashboard_filter_path(scope: 'joined') do
Joined
%span.pull-right
= current_user.authorized_projects.joined(current_user).count
= nav_tab :scope, 'owned' do
= link_to projects_dashboard_filter_path(scope: 'owned') do
Owned
%span.pull-right
= current_user.owned_projects.count
%fieldset
%legend Visibility
......@@ -81,7 +82,7 @@
%i.icon-tag
= label.name
.span9
.col-md-9
%ul.bordered-list.my-projects.top-list
- @projects.each do |project|
%li.my-project-row
......
- if @has_authorized_projects
.dashboard
.activities.span8
.dashboard.row
.activities.col-md-8
= render 'activities'
.side.span4
.side.col-md-4.hidden-sm
= render 'sidebar'
- else
......
......@@ -3,7 +3,7 @@
= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
.devise-errors
= devise_error_messages!
= f.email_field :email, placeholder: 'Email', class: "text", required: true
= f.email_field :email, placeholder: 'Email', class: "form-control", required: true
.clearfix.append-bottom-10
= f.submit "Resend confirmation instructions", class: 'btn btn-success'
%hr
......
......@@ -4,9 +4,9 @@
= devise_error_messages!
= f.hidden_field :reset_password_token
%div
= f.password_field :password, class: "text top", placeholder: "New password", required: true
= f.password_field :password, class: "form-control top", placeholder: "New password", required: true
%div
= f.password_field :password_confirmation, class: "text bottom", placeholder: "Confirm new password", required: true
= f.password_field :password_confirmation, class: "form-control bottom", placeholder: "Confirm new password", required: true
%div
.clearfix.append-bottom-10
= f.submit "Change my password", class: "btn btn-primary"
......
......@@ -2,7 +2,7 @@
%h3.page-title Reset password
.devise-errors
= devise_error_messages!
= f.email_field :email, placeholder: "Email", class: "text", required: true
= f.email_field :email, placeholder: "Email", class: "form-control", required: true
.clearfix.append-bottom-10
= f.submit "Reset password", class: "btn-primary btn"
%hr
......
......@@ -3,15 +3,15 @@
.devise-errors
= devise_error_messages!
%div
= f.text_field :name, class: "text top", placeholder: "Name", required: true
= f.text_field :name, class: "form-control top", placeholder: "Name", required: true
%div
= f.text_field :username, class: "text middle", placeholder: "Username", required: true
= f.text_field :username, class: "form-control middle", placeholder: "Username", required: true
%div
= f.email_field :email, class: "text middle", placeholder: "Email", required: true
= f.email_field :email, class: "form-control middle", placeholder: "Email", required: true
%div
= f.password_field :password, class: "text middle", placeholder: "Password", required: true
= f.password_field :password, class: "form-control middle", placeholder: "Password", required: true
%div
= f.password_field :password_confirmation, class: "text bottom", placeholder: "Confirm password", required: true
= f.password_field :password_confirmation, class: "form-control bottom", placeholder: "Confirm password", required: true
%div
= f.submit "Sign up", class: "btn-create btn"
%hr
......
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
= f.text_field :login, class: "text top", placeholder: "Username or Email", autofocus: "autofocus"
= f.password_field :password, class: "text bottom", placeholder: "Password"
= f.text_field :login, class: "form-control top", placeholder: "Username or Email", autofocus: "autofocus"
= f.password_field :password, class: "form-control bottom", placeholder: "Password"
- if devise_mapping.rememberable?
.clearfix.append-bottom-10
%label.checkbox.remember_me{for: "user_remember_me"}
......
= form_tag(user_omniauth_callback_path(:ldap), id: 'new_ldap_user' ) do
= text_field_tag :username, nil, {class: "text top", placeholder: "LDAP Login", autofocus: "autofocus"}
= password_field_tag :password, nil, {class: "text bottom", placeholder: "Password"}
= text_field_tag :username, nil, {class: "form-control top", placeholder: "LDAP Login", autofocus: "autofocus"}
= password_field_tag :password, nil, {class: "form-control bottom", placeholder: "Password"}
%br/
= submit_tag "LDAP Sign in", class: "btn-create btn"
.login-box
%h3.page-title Sign in
- if ldap_enabled?
%ul.nav.nav-tabs
%ul.nav.nav-tabs.append-bottom-20
%li.active
= link_to 'LDAP', '#tab-ldap', 'data-toggle' => 'tab'
%li
......
......@@ -6,14 +6,14 @@
group
%p 1. Choose users you want in the group
.control-group
.form-group
= f.label :user_ids, "People"
.controls= users_select_tag(:user_ids, multiple: true, class: 'input-large')
.col-sm-10= users_select_tag(:user_ids, multiple: true, class: 'input-large')
%p 2. Set access level for them
.control-group
.form-group
= f.label :group_access, "Group Access"
.controls= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select chosen"
.col-sm-10= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select chosen"
.form-actions
= f.submit 'Add users into group', class: "btn btn-create"
......
.row
.span2
.col-md-2
%ul.nav.nav-pills.nav-stacked.nav-stacked-menu
%li.active
= link_to '#tab-edit', 'data-toggle' => 'tab' do
......@@ -12,7 +12,7 @@
%li
= link_to 'Remove', '#tab-remove', 'data-toggle' => 'tab'
.span10
.col-md-10
.tab-content
.tab-pane.active#tab-edit
.ui-box
......@@ -22,18 +22,18 @@
%div.form-holder
= form_for @group do |f|
- if @group.errors.any?
.alert.alert-error
.alert.alert-danger
%span= @group.errors.full_messages.first
.control-group
.form-group
= f.label :name do
Group name
.controls
= f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
.col-sm-10
= f.text_field :name, placeholder: "Ex. OpenSource", class: "form-control left"
.control-group.group-description-holder
.form-group.group-description-holder
= f.label :description, "Details"
.controls
= f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
.col-sm-10
= f.text_area :description, maxlength: 250, class: "form-control js-gfm-input", rows: 4
.form-actions
= f.submit 'Save group', class: "btn btn-save"
......
......@@ -9,7 +9,7 @@
%hr
.row
.span3
.col-md-3
= render 'shared/filter', entity: 'issue'
.span9
.col-md-9
= render 'shared/issues'
......@@ -8,7 +8,7 @@
group. To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page.
%hr
.row
.span3
.col-md-3
= render 'shared/filter', entity: 'merge_request'
.span9
.col-md-9
= render 'shared/merge_requests'
= form_for @group do |f|
- if @group.errors.any?
.alert.alert-error
.alert.alert-danger
%span= @group.errors.full_messages.first
.control-group
.form-group
= f.label :name do
Group name
.controls
= f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
.col-sm-10
= f.text_field :name, placeholder: "Ex. OpenSource", class: "form-control left"
.control-group.group-description-holder
.form-group.group-description-holder
= f.label :description, "Details"
.controls
= f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
.col-sm-10
= f.text_area :description, maxlength: 250, class: "form-control js-gfm-input", rows: 4
.control-group
.controls
.form-group
.col-sm-10
%ul
%li A group is a collection of several projects
%li Groups are private by default
......
.dashboard
.activities.span8
.activities.col-md-8
= render "events/event_last_push", event: @last_push
= link_to dashboard_path, class: 'btn btn-tiny' do
← To dashboard
......@@ -12,7 +12,7 @@
- else
%p.nothing_here_message Project activity will be displayed here
.loading.hide
.side.span4
.side.col-md-4
- if @group.description.present?
.description-block
= @group.description
......
.row
.span3
.col-md-3
.append-bottom-20
= link_to help_path, class: 'btn btn-small' do
%i.icon-angle-left
......@@ -9,5 +9,5 @@
%li{class: file == @category ? 'active' : nil}
= link_to file.titleize, help_api_file_path(file)
.span9.pull-right
.col-md-9.pull-right
= yield
.row
.span3{:"data-spy" => 'affix'}
.col-md-3{:"data-spy" => 'affix'}
%h3.page-title Help
%ul.nav.nav-pills.nav-stacked
- links = {:"Workflow" => help_workflow_path, :"SSH Keys" => help_ssh_path, :"GitLab Markdown" => help_markdown_path, :"Permissions" => help_permissions_path, :"API" => help_api_path, :"Web Hooks" => help_web_hooks_path, :"Rake Tasks" => help_raketasks_path, :"System Hooks" => help_system_hooks_path, :"Public Access" => help_public_access_path, :"Security" => help_security_path}
......@@ -7,5 +7,5 @@
%li{class: current_page?(path) ? 'active' : nil}
= link_to title, path
.span9.pull-right
.col-md-9.pull-right
= yield
#modal-shortcuts.modal.hide
.modal-header
%a.close{href: "#", "data-dismiss" => "modal"} ×
%h3 Keyboard Shortcuts
.modal-body
%h5 Global Shortcuts
%p
%span.label.label-inverse s
–
Focus Search
%p
%span.label.label-inverse ?
–
Show this dialog
.modal-dialog
.modal-content
.modal-header
%a.close{href: "#", "data-dismiss" => "modal"} ×
%h3 Keyboard Shortcuts
.modal-body
%h5 Global Shortcuts
%p
%span.label.label-inverse s
–
Focus Search
%p
%span.label.label-inverse ?
–
Show this dialog
%h5 Project Files browsing
%p
%span.label.label-inverse
%i.icon-arrow-up
–
Move selection up
%p
%span.label.label-inverse
%i.icon-arrow-down
–
Move selection down
%p
%span.label.label-inverse Enter
–
Open selection
%h5 Project Files browsing
%p
%span.label.label-inverse
%i.icon-arrow-up
–
Move selection up
%p
%span.label.label-inverse
%i.icon-arrow-down
–
Move selection down
%p
%span.label.label-inverse Enter
–
Open selection
.hero-unit
.jumbotron
%h2
GitLab
%span= Gitlab::VERSION
......@@ -11,7 +11,7 @@
Read more about GitLab at #{link_to "gitlab.org", "http://gitlab.org/", target: "_blank"}.
.row
.span4
.col-md-4
.ui-box
.title
Quick help
......@@ -35,7 +35,7 @@
Browse our
= link_to "issue tracker", "https://github.com/gitlabhq/gitlabhq/issues"
.span4
.col-md-4
.ui-box
.title
User documentation
......@@ -64,7 +64,7 @@
%strong= link_to "Web Hooks", help_web_hooks_path
%p Let GitLab notify you when new code has been pushed to your project.
.span4
.col-md-4
.ui-box
.title
Admin documentation
......
......@@ -6,8 +6,8 @@
-# remote: data-remote
-# paginator: the paginator that renders the pagination tags inside
= paginator.render do
%div.pagination
%ul
%div.gl-pagination
%ul.pagination
= prev_page_tag unless current_page.first?
- each_page do |page|
- if page.left_outer? || page.right_outer? || page.inside_window?
......
......@@ -8,6 +8,8 @@
= javascript_include_tag "application"
= csrf_meta_tags
= include_gon
:erb
<meta name="viewport" content="width=device-width, initial-scale=1.0">
= render 'layouts/google_analytics' if extra_config.has_key?('google_analytics_id')
......
......@@ -7,34 +7,36 @@
%h1 GITLAB
%span.separator
%h1.project_name= title
%ul.nav
%li
%a
%div.hide.turbolink-spinner
%i.icon-refresh.icon-spin
Loading...
%li
= render "layouts/search"
%li
= link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
%i.icon-globe
%li
= link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
%i.icon-paste
- if current_user.is_admin?
.navbar-collapse.collapse
%ul.nav.navbar-nav
%li
= link_to admin_root_path, title: "Admin area", class: 'has_bottom_tooltip', 'data-original-title' => 'Admin area' do
%i.icon-cogs
- if current_user.can_create_project?
%a
%div.hide.turbolink-spinner
%i.icon-refresh.icon-spin
Loading...
%li.hidden-sm
= render "layouts/search"
%li
= link_to new_project_path, title: "New project", class: 'has_bottom_tooltip', 'data-original-title' => 'New project' do
%i.icon-plus
%li
= link_to profile_path, title: "Profile settings", class: 'has_bottom_tooltip', 'data-original-title' => 'Profile settings"' do
%i.icon-user
%li
= link_to destroy_user_session_path, class: "logout", method: :delete, title: "Logout", class: 'has_bottom_tooltip', 'data-original-title' => 'Logout' do
%i.icon-signout
%li
= link_to current_user, class: "profile-pic", id: 'profile-pic' do
= image_tag avatar_icon(current_user.email, 26), alt: 'User activity'
= link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
%i.icon-globe
%li
= link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do
%i.icon-paste
- if current_user.is_admin?
%li
= link_to admin_root_path, title: "Admin area", class: 'has_bottom_tooltip', 'data-original-title' => 'Admin area' do
%i.icon-cogs
- if current_user.can_create_project?
%li
= link_to new_project_path, title: "New project", class: 'has_bottom_tooltip', 'data-original-title' => 'New project' do
%i.icon-plus
%li
= link_to profile_path, title: "Profile settings", class: 'has_bottom_tooltip', 'data-original-title' => 'Profile settings"' do
%i.icon-user
%li
= link_to destroy_user_session_path, class: "logout", method: :delete, title: "Logout", class: 'has_bottom_tooltip', 'data-original-title' => 'Logout' do
%i.icon-signout
%li
= link_to current_user, class: "profile-pic", id: 'profile-pic' do
= image_tag avatar_icon(current_user.email, 26), alt: 'User activity'
......@@ -15,7 +15,7 @@
.container
.content
.row
.span2
.col-md-2
= render "projects/settings_nav"
.span10
.col-md-10
= yield
......@@ -23,8 +23,9 @@
%p.cgray
- if current_user.private_token
= text_field_tag "token", current_user.private_token, class: "input-xlarge input-xpadding pull-left"
= f.submit 'Reset', data: { confirm: "Are you sure?" }, class: "btn btn-primary btn-build-token prepend-left-10"
= text_field_tag "token", current_user.private_token, class: "form-control"
%div
= f.submit 'Reset', data: { confirm: "Are you sure?" }, class: "btn btn-primary btn-build-token"
- else
%span You don`t have one yet. Click generate to fix it.
= f.submit 'Generate', class: "btn success btn-build-token"
......@@ -47,7 +48,7 @@
%p
Changing your username will change path to all personal projects!
%div
= f.text_field :username, required: true, class: 'input-xlarge input-xpadding'
= f.text_field :username, required: true, class: 'form-control'
&nbsp;
%span.loading-gif.hide= image_tag "ajax_loader.gif"
%p.light
......
%div
= form_for [:profile, @key] do |f|
= form_for [:profile, @key], html: { class: 'form-horizontal' } do |f|
- if @key.errors.any?
.alert.alert-error
.alert.alert-danger
%ul
- @key.errors.full_messages.each do |msg|
%li= msg
.control-group
= f.label :title
.controls= f.text_field :title, class: "input-xlarge"
.control-group
= f.label :key
.controls
%p.light
Paste your public key here. Read more about how to generate a key on #{link_to "the SSH help page", help_ssh_path}.
= f.text_area :key, class: "input-xxlarge thin_area"
.form-group
= f.label :title, class: 'control-label'
.col-sm-10= f.text_field :title, class: "form-control"
.form-group
= f.label :key, class: 'control-label'
.col-sm-10
= f.text_area :key, class: "form-control", rows: 8
.form-actions
......
%h3.page-title Add an SSH Key
%p.light
Paste your public key here. Read more about how to generate a key on #{link_to "the SSH help page", help_ssh_path}.
%hr
= render 'form'
......
.row
.span4
.col-md-4
.ui-box
.title
SSH Key
......@@ -11,7 +11,7 @@
%span.light Created on:
%strong= @key.created_at.stamp("Aug 21, 2011")
.span8
.col-md-8
%p
%span.light Fingerprint:
%strong= @key.fingerprint
......
%li
.row
.span4
.col-md-4
%span
= notification_icon(notification)
......@@ -8,24 +8,24 @@
= link_to membership.group.name, membership.group
- else
= link_to_project(membership.project)
.span7
.col-md-7
= form_tag profile_notifications_path, method: :put, remote: true, class: 'update-notifications' do
= hidden_field_tag :notification_type, type, id: dom_id(membership, 'notification_type')
= hidden_field_tag :notification_id, membership.id, id: dom_id(membership, 'notification_id')
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_GLOBAL, notification.global?, id: dom_id(membership, 'notification_level'), class: 'trigger-submit'
%span Use global setting
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_DISABLED, notification.disabled?, id: dom_id(membership, 'notification_level'), class: 'trigger-submit'
%span Disabled
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_PARTICIPATING, notification.participating?, id: dom_id(membership, 'notification_level'), class: 'trigger-submit'
%span Participating
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_WATCH, notification.watch?, id: dom_id(membership, 'notification_level'), class: 'trigger-submit'
%span Watch
......@@ -18,23 +18,23 @@
&ndash; You will receive all notifications from projects in which you participate
.row
.span4
.col-md-4
%h4
= notification_icon(@notification)
Global setting
.span7
.col-md-7
= form_tag profile_notifications_path, method: :put, remote: true, class: 'update-notifications' do
= hidden_field_tag :notification_type, 'global'
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_DISABLED, @notification.disabled?, class: 'trigger-submit'
%span Disabled
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_PARTICIPATING, @notification.participating?, class: 'trigger-submit'
%span Participating
= label_tag do
= label_tag nil, class: 'radio-inline' do
= radio_button_tag :notification_level, Notification::N_WATCH, @notification.watch?, class: 'trigger-submit'
%span Watch
......
......@@ -3,30 +3,30 @@
Change your password or recover your current one.
%hr
.update-password
= form_for @user, url: profile_password_path, method: :put do |f|
= form_for @user, url: profile_password_path, method: :put, html: { class: 'form-horizontal' } do |f|
%div
%p.slead
You must provide current password in order to change it.
%br
After a successful password update you will be redirected to login page where you should login with your new password
-if @user.errors.any?
.alert.alert-error
.alert.alert-danger
%ul
- @user.errors.full_messages.each do |msg|
%li= msg
.control-group
= f.label :current_password
.controls
= f.password_field :current_password, required: true
.form-group
= f.label :current_password, class: 'control-label'
.col-sm-10
= f.password_field :current_password, required: true, class: 'form-control'
%div
= link_to "Forgot your password?", reset_profile_password_path, method: :put
.control-group
= f.label :password, 'New password'
.controls= f.password_field :password, required: true
.control-group
= f.label :password_confirmation
.controls
= f.password_field :password_confirmation, required: true
.form-group
= f.label :password, 'New password', class: 'control-label'
.col-sm-10= f.password_field :password, required: true, class: 'form-control'
.form-group
= f.label :password_confirmation, class: 'control-label'
.col-sm-10
= f.password_field :password_confirmation, required: true, class: 'form-control'
.form-actions
= f.submit 'Save password', class: "btn btn-save"
......@@ -5,18 +5,18 @@
%br
After successful password update you will be redirected to login screen
-if @user.errors.any?
.alert.alert-error
.alert.alert-danger
%ul
- @user.errors.full_messages.each do |msg|
%li= msg
.control-group
.form-group
= f.label :password
.controls= f.password_field :password, required: true
.control-group
.col-sm-10= f.password_field :password, required: true
.form-group
= f.label :password_confirmation
.controls
.col-sm-10
= f.password_field :password_confirmation, required: true
.control-group
.controls
.form-group
.col-sm-10
= f.submit 'Set new password', class: "btn btn-create"
......@@ -10,49 +10,49 @@
= form_for @user, url: profile_path, method: :put, html: { multipart: true, class: "edit_user form-horizontal" }, authenticity_token: true do |f|
-if @user.errors.any?
%div.alert.alert-error
%div.alert.alert-danger
%ul
- @user.errors.full_messages.each do |msg|
%li= msg
.row
.span7
.control-group
.col-md-7
.form-group
= f.label :name, class: "control-label"
.controls
= f.text_field :name, class: "input-xlarge", required: true
.col-sm-10
= f.text_field :name, class: "form-control", required: true
%span.help-block Enter your name, so people you know can recognize you.
.control-group
.form-group
= f.label :email, class: "control-label"
.controls
.col-sm-10
- if @user.ldap_user?
= f.text_field :email, class: "input-xlarge", required: true, readonly: true
= f.text_field :email, class: "form-control", required: true, readonly: true
%span.help-block.light
Email is read-only for LDAP user
- else
= f.text_field :email, class: "input-xlarge", required: true
= f.text_field :email, class: "form-control", required: true
- if @user.unconfirmed_email.present?
%span.help-block
We sent confirmation email to
%strong #{@user.unconfirmed_email}
- else
%span.help-block We also use email for avatar detection if no avatar is uploaded.
.control-group
.form-group
= f.label :skype, class: "control-label"
.controls= f.text_field :skype, class: "input-xlarge"
.control-group
.col-sm-10= f.text_field :skype, class: "form-control"
.form-group
= f.label :linkedin, class: "control-label"
.controls= f.text_field :linkedin, class: "input-xlarge"
.control-group
.col-sm-10= f.text_field :linkedin, class: "form-control"
.form-group
= f.label :twitter, class: "control-label"
.controls= f.text_field :twitter, class: "input-xlarge"
.control-group
.col-sm-10= f.text_field :twitter, class: "form-control"
.form-group
= f.label :bio, class: "control-label"
.controls
= f.text_area :bio, rows: 6, class: "input-xlarge", maxlength: 250
.col-sm-10
= f.text_area :bio, rows: 6, class: "form-control", maxlength: 250
%span.help-block Tell us about yourself in fewer than 250 characters.
.span5.pull-right
.col-md-5
.light-well
= image_tag avatar_icon(@user.email, 160), alt: '', class: 'avatar s160'
......@@ -73,7 +73,7 @@
%span Choose File ...
&nbsp;
%span.file_name.js-avatar-filename File name...
= f.file_field :avatar, class: "js-user-avatar-input hide"
= f.file_field :avatar, class: "js-user-avatar-input hidden"
.light The maximum file size allowed is 100KB.
- if @user.avatar?
%hr
......
- if @project.errors.any?
.alert.alert-error
.alert.alert-danger
%button{ type: "button", class: "close", "data-dismiss" => "alert"} &times;
= @project.errors.full_messages.first
- empty_repo = @project.empty_repo?
.project-home-panel{:class => ("empty-project" if empty_repo)}
.visibility-level-label.has_tooltip{'data-title' => "#{visibility_level_label(@project.visibility_level)} project" }
= visibility_level_icon(@project.visibility_level)
.row
.span6
.col-sm-6
%h4.project-home-title
= @project.name_with_namespace
%span.visibility-level-label
= visibility_level_icon(@project.visibility_level)
= visibility_level_label(@project.visibility_level)
.span6
.col-sm-6
- unless empty_repo
.project-home-dropdown
= render "dropdown"
......@@ -16,7 +15,7 @@
= render "shared/clone_panel"
.project-home-extra.clearfix.row
.project-home-desc.span8
.project-home-desc.col-md-8
- if @project.description.present?
= @project.description
- if can?(current_user, :admin_project, @project)
......
.control-group.project-visibility-level-holder
= f.label :visibility_level do
.form-group.project-visibility-level-holder
= f.label :visibility_level, class: 'control-label' do
Visibility Level
= link_to "(?)", help_public_access_path
- if can_change_visibility_level
- Gitlab::VisibilityLevel.values.each do |level|
- restricted = restricted_visibility_levels.include?(level)
.controls
= f.radio_button :visibility_level, level, checked: (visibility_level == level), disabled: restricted
%span.descr{:class => ("restricted" if restricted)}
= label :project_visibility_level, level do
= visibility_level_icon(level)
%strong
= visibility_level_label(level)
.light= visibility_level_description(level)
- unless restricted_visibility_levels.empty?
.controls
.col-sm-10
- if can_change_visibility_level
- Gitlab::VisibilityLevel.values.each do |level|
.append-bottom-10
- restricted = restricted_visibility_levels.include?(level)
= f.radio_button :visibility_level, level, checked: (visibility_level == level), disabled: restricted
%span.descr{:class => ("restricted" if restricted)}
= label :project_visibility_level, level do
= visibility_level_icon(level)
%strong
= visibility_level_label(level)
.light.prepend-left-20= visibility_level_description(level)
- unless restricted_visibility_levels.empty?
.col-sm-10
%span.info
Some visibility level settings have been restricted by the administrator.
- else
.col-sm-10
%span.info
Some visibility level settings have been restricted by the administrator.
- else
.controls
%span.info
= visibility_level_icon(visibility_level)
%strong
= visibility_level_label(visibility_level)
.light= visibility_level_description(visibility_level)
= visibility_level_icon(visibility_level)
%strong
= visibility_level_label(visibility_level)
.light= visibility_level_description(visibility_level)
......@@ -4,7 +4,6 @@
= link_to project_tree_path(@project, @ref) do
= @project.path
- tree_breadcrumbs(@tree, 6) do |title, path|
\/
%li
- if path
- if path.end_with?(@path)
......
%div#modal-remove-blob.modal.hide
.modal-header
%a.close{href: "#", "data-dismiss" => "modal"} ×
%h3.page-title Remove #{@blob.name}
%p.light
From branch
%strong= @ref
#modal-remove-blob.modal.hide
.modal-dialog
.modal-content
.modal-header
%a.close{href: "#", "data-dismiss" => "modal"} ×
%h3.page-title Remove #{@blob.name}
%p.light
From branch
%strong= @ref
.modal-body
= form_tag project_blob_path(@project, @id), method: :delete do
.control-group.commit_message-group
= label_tag 'commit_message', class: "control-label" do
Commit message
.controls
= text_area_tag 'commit_message', params[:commit_message], placeholder: "Removed this file because...", required: true, rows: 3
.control-group
.controls
= submit_tag 'Remove file', class: 'btn btn-remove'
= link_to "Cancel", '#', class: "btn btn-cancel", "data-dismiss" => "modal"
.modal-body
= form_tag project_blob_path(@project, @id), method: :delete do
.form-group.commit_message-group
= label_tag 'commit_message', class: "control-label" do
Commit message
.col-sm-10
= text_area_tag 'commit_message', params[:commit_message], placeholder: "Removed this file because...", required: true, rows: 3
.form-group
.col-sm-10
= submit_tag 'Remove file', class: 'btn btn-remove'
= link_to "Cancel", '#', class: "btn btn-cancel", "data-dismiss" => "modal"
= render "projects/commits/head"
.row
.span3
.col-md-3
= render "filter"
.span9
.col-md-9
- unless @branches.empty?
%ul.bordered-list.top-list
- @branches.each do |branch|
= render "projects/branches/branch", branch: branch
= paginate @branches, theme: 'gitlab'
\ No newline at end of file
= paginate @branches, theme: 'gitlab'
%h3.page-title
%i.icon-code-fork
New branch
= form_tag project_branches_path, method: :post do
.control-group
= form_tag project_branches_path, method: :post, class: "form-horizontal" do
.form-group
= label_tag :branch_name, 'Name for new branch', class: 'control-label'
.controls
= text_field_tag :branch_name, nil, placeholder: 'feature/dashboard', required: true, tabindex: 1
.control-group
.col-sm-10
= text_field_tag :branch_name, nil, placeholder: 'feature/dashboard', required: true, tabindex: 1, class: 'form-control'
.form-group
= label_tag :ref, 'Create from', class: 'control-label'
.controls
= text_field_tag :ref, nil, placeholder: 'master', required: true, tabindex: 2
.col-sm-10
= text_field_tag :ref, nil, placeholder: 'master', required: true, tabindex: 2, class: 'form-control'
.light branch name or commit SHA
.form-actions
= submit_tag 'Create branch', class: 'btn btn-create', tabindex: 3
......
= render "projects/commits/head"
.row
.span3
.col-md-3
= render "filter"
.span9
.col-md-9
%ul.bordered-list.top-list
- @branches.each do |branch|
= render "projects/branches/branch", branch: branch
\ No newline at end of file
= render "projects/branches/branch", branch: branch
= render "projects/commit/commit_box"
.alert.alert-error
.alert.alert-danger
%h4 Commit diffs are too big to be displayed
- @commits.group_by { |c| c.committed_date.to_date }.sort.reverse.each do |day, commits|
.row.commits-row
.span2
.col-md-2
%h4
%i.icon-calendar
%span= day.stamp("28 Aug, 2010")
%p= pluralize(commits.count, 'commit')
.span10
.col-md-10
%ul.well-list
= render commits, project: @project
%hr.lists-separator
%ul.nav.nav-tabs
%ul.nav.nav-tabs.append-bottom-15
%li= render partial: 'shared/ref_switcher', locals: {destination: 'commits'}
= nav_link(controller: [:commit, :commits]) do
......
......@@ -49,7 +49,7 @@
%img{src: "data:#{old_file.mime_type};base64,#{Base64.encode64(old_file.data)}"}
.frame.added
%img{src: "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
.controls
.col-sm-10
.transparent
.drag-track
.dragger{:style => "left: 0px;"}
......@@ -60,4 +60,4 @@
%ul.view-modes-menu
%li.two-up{data: {mode: 'two-up'}} 2-up
%li.swipe{data: {mode: 'swipe'}} Swipe
%li.onion-skin{data: {mode: 'onion-skin'}} Onion skin
\ No newline at end of file
%li.onion-skin{data: {mode: 'onion-skin'}} Onion skin
= form_tag project_compare_index_path(@project), method: :post do
.clearfix
.pull-left
- 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'}
.input-prepend
%span.add-on.input-xpadding from
= text_field_tag :from, params[:from], class: "span3 input-xpadding"
= "..."
.input-prepend
%span.add-on.input-xpadding to
= text_field_tag :to, params[:to], class: "span3 input-xpadding"
.pull-left
&nbsp;
= submit_tag "Compare", class: "btn btn-create commits-compare-btn"
- if compare_to_mr_button?
= link_to compare_mr_path, class: 'prepend-left-10' do
%strong Make a merge request
= form_tag project_compare_index_path(@project), method: :post, class: 'form-inline' do
.clearfix.append-bottom-20
- 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
.input-group.inline-input-group
%span.input-group-addon from
= text_field_tag :from, params[:from], class: "form-control"
= "..."
.form-group
.input-group.inline-input-group
%span.input-group-addon to
= text_field_tag :to, params[:to], class: "form-control"
&nbsp;
= submit_tag "Compare", class: "btn btn-create commits-compare-btn"
- if compare_to_mr_button?
= link_to compare_mr_path, class: 'prepend-left-10' do
%strong Make a merge request
:javascript
......
......@@ -6,7 +6,7 @@
= render "form"
- if @commits.size > 100
.alert.alert-block
.alert.alert-warning
%p
%strong Warning! This comparison includes more than 100 commits.
%p To preserve performance the line diff is not shown.
......
%div
= form_for [@project, @key], url: project_deploy_keys_path do |f|
= form_for [@project, @key], url: project_deploy_keys_path, html: { class: 'deploy-key-form form-horizontal' } do |f|
-if @key.errors.any?
.alert.alert-error
.alert.alert-danger
%ul
- @key.errors.full_messages.each do |msg|
%li= msg
.control-group
= f.label :title
.controls= f.text_field :title, class: 'input-xlarge'
.control-group
= f.label :key
.controls
.form-group
= f.label :title, class: "control-label"
.col-sm-10= f.text_field :title, class: 'form-control'
.form-group
= f.label :key, class: "control-label"
.col-sm-10
%p.light
Paste a machine public key here. Read more about how to generate it
= link_to "here", help_ssh_path
= f.text_area :key, class: "input-xxlarge thin_area"
= f.text_area :key, class: "form-control thin_area", rows: 5
.form-actions
= f.submit 'Create', class: "btn-create btn"
......
......@@ -12,7 +12,7 @@
%hr.clearfix
.row
.span5.enabled-keys
.col-md-5.enabled-keys
%h5
%strong.cgreen Enabled deploy keys
for this project
......@@ -21,7 +21,7 @@
- if @enabled_keys.blank?
.light-well
%p.nothing_here_message Create a #{link_to 'new deploy key', new_project_deploy_key_path(@project)} or add an existing one
.span5.available-keys
.col-md-5.available-keys
%h5
%strong Deploy keys
from projects available to you
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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