Merge branch 'bootstrap'
Conflicts: Gemfile app/views/commits/_commits.html.haml app/views/projects/empty.html.haml
This commit is contained in:
commit
8ebfae9a07
127 changed files with 2464 additions and 2991 deletions
1
Gemfile
1
Gemfile
|
@ -29,6 +29,7 @@ gem "httparty"
|
|||
gem "charlock_holmes"
|
||||
gem "foreman"
|
||||
gem "omniauth-ldap"
|
||||
gem 'bootstrap-sass'
|
||||
|
||||
group :assets do
|
||||
gem "sass-rails", "~> 3.1.0"
|
||||
|
|
10
Gemfile.lock
10
Gemfile.lock
|
@ -67,6 +67,8 @@ GEM
|
|||
awesome_print (0.4.0)
|
||||
bcrypt-ruby (3.0.1)
|
||||
blankslate (2.1.2.4)
|
||||
bootstrap-sass (1.4.4)
|
||||
sass-rails (~> 3.1)
|
||||
builder (3.0.0)
|
||||
capybara (1.1.2)
|
||||
mime-types (>= 1.16)
|
||||
|
@ -226,12 +228,11 @@ GEM
|
|||
blankslate (>= 2.1.2.3)
|
||||
ffi (~> 1.0.7)
|
||||
rubyzip (0.9.4)
|
||||
sass (3.1.10)
|
||||
sass-rails (3.1.4)
|
||||
sass (3.1.12)
|
||||
sass-rails (3.1.5)
|
||||
actionpack (~> 3.1.0)
|
||||
railties (~> 3.1.0)
|
||||
sass (>= 3.1.4)
|
||||
sprockets (~> 2.0.0)
|
||||
sass (~> 3.1.10)
|
||||
tilt (~> 1.3.2)
|
||||
seed-fu (2.1.0)
|
||||
activerecord (~> 3.1.0)
|
||||
|
@ -299,6 +300,7 @@ DEPENDENCIES
|
|||
autotest
|
||||
autotest-rails
|
||||
awesome_print
|
||||
bootstrap-sass
|
||||
capybara
|
||||
carrierwave
|
||||
charlock_holmes
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
function switchToNewIssue(form){
|
||||
$("#issues-table-holder").hide("slide", { direction: "left" }, 150, function(){
|
||||
$(".project-content").append(form);
|
||||
$(".issues_content").hide("fade", { direction: "left" }, 150, function(){
|
||||
$(".issues_content").after(form);
|
||||
$('select#issue_assignee_id').chosen();
|
||||
$("#new_issue_dialog").show("slide", { direction: "right" }, 150);
|
||||
$("#new_issue_dialog").show("fade", { direction: "right" }, 150);
|
||||
$('.top-tabs .add_new').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function switchToEditIssue(form){
|
||||
$("#issues-table-holder").hide("slide", { direction: "left" }, 150, function(){
|
||||
$(".project-content").append(form);
|
||||
$(".issues_content").hide("fade", { direction: "left" }, 150, function(){
|
||||
$(".issues_content").after(form);
|
||||
$('select#issue_assignee_id').chosen();
|
||||
$("#edit_issue_dialog").show("slide", { direction: "right" }, 150);
|
||||
$('.top-tabs .add_new').hide();
|
||||
$("#edit_issue_dialog").show("fade", { direction: "right" }, 150);
|
||||
$('.add_new').hide();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -25,11 +25,11 @@ function switchFromEditIssue(){
|
|||
}
|
||||
|
||||
function backToIssues(){
|
||||
$("#edit_issue_dialog, #new_issue_dialog").hide("slide", { direction: "right" }, 150, function(){
|
||||
$("#issues-table-holder").show("slide", { direction: "left" }, 150, function() {
|
||||
$("#edit_issue_dialog, #new_issue_dialog").hide("fade", { direction: "right" }, 150, function(){
|
||||
$(".issues_content").show("fade", { direction: "left" }, 150, function() {
|
||||
$("#edit_issue_dialog").remove();
|
||||
$("#new_issue_dialog").remove();
|
||||
$('.top-tabs .add_new').show();
|
||||
$('.add_new').show();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -4,17 +4,17 @@ var MergeRequest = {
|
|||
|
||||
init:
|
||||
function() {
|
||||
$(".merge-tabs a").live("click", function() {
|
||||
$(".merge-tabs a").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
$(".tabs a").live("click", function() {
|
||||
$(".tabs a").parent().removeClass("active");
|
||||
$(this).parent().addClass("active");
|
||||
});
|
||||
|
||||
$(".merge-tabs a.merge-notes-tab").live("click", function() {
|
||||
$(".tabs a.merge-notes-tab").live("click", function() {
|
||||
$(".merge-request-commits, .merge-request-diffs").hide();
|
||||
$(".merge-request-notes").show();
|
||||
});
|
||||
|
||||
$(".merge-tabs a.merge-commits-tab").live("click", function() {
|
||||
$(".tabs a.merge-commits-tab").live("click", function() {
|
||||
if(!MergeRequest.commits_loaded) {
|
||||
MergeRequest.loadCommits();
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ var MergeRequest = {
|
|||
$(".merge-request-commits").show();
|
||||
});
|
||||
|
||||
$(".merge-tabs a.merge-diffs-tab").live("click", function() {
|
||||
$(".tabs a.merge-diffs-tab").live("click", function() {
|
||||
if(!MergeRequest.diffs_loaded) {
|
||||
MergeRequest.loadDiff();
|
||||
}
|
||||
|
|
|
@ -5,21 +5,24 @@
|
|||
var Tree = {
|
||||
init:
|
||||
function() {
|
||||
(new Image).src = "ajax-loader-facebook.gif";
|
||||
|
||||
$('#tree-slider td.tree-item-file-name a, #tree-breadcrumbs a').live("click", function() {
|
||||
history.pushState({ path: this.path }, '', this.href)
|
||||
$('#tree-slider .tree-item-file-name a, .breadcrumb li > a').live("click", function() {
|
||||
$("#tree-content-holder").hide("slide", { direction: "left" }, 150)
|
||||
})
|
||||
|
||||
$("#tree-slider tr.tree-item").live('click', function(e){
|
||||
$('.project-refs-form').live({
|
||||
"ajax:beforeSend": function() {
|
||||
$("#tree-content-holder").hide("slide", { direction: "left" }, 150);
|
||||
}
|
||||
})
|
||||
|
||||
$("#tree-slider .tree-item").live('click', function(e){
|
||||
if(e.target.nodeName != "A") {
|
||||
link = $(this).find("td.tree-item-file-name a");
|
||||
link = $(this).find(".tree-item-file-name a");
|
||||
link.trigger("click");
|
||||
}
|
||||
});
|
||||
|
||||
$('#tree-slider td.tree-item-file-name a, #tree-breadcrumbs a').live({
|
||||
$('#tree-slider .tree-item-file-name a, .breadcrumb a, .project-refs-form').live({
|
||||
"ajax:beforeSend": function() { $('.tree_progress').addClass("loading"); },
|
||||
"ajax:complete": function() { $('.tree_progress').removeClass("loading"); }
|
||||
});
|
||||
|
|
|
@ -1,45 +1,10 @@
|
|||
/* Commit Page */
|
||||
body.project-page.commits-page .commit-info{float: right;}
|
||||
body.project-page.commits-page .commit-info data{
|
||||
padding: 4px 10px;
|
||||
font-size: 11px;
|
||||
}
|
||||
body.project-page.commits-page .commit-info data.commit-button{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4));
|
||||
background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
box-shadow: 0 -1px 0 white inset;
|
||||
display: block;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 2px;
|
||||
position: relative;
|
||||
padding-right: 20px;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* COMMIT SHOw
|
||||
*
|
||||
*/
|
||||
|
||||
body.project-page.commits-page .commit-button i{
|
||||
background: url('images.png') no-repeat -138px -27px;
|
||||
width: 6px;
|
||||
height: 9px;
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
body.project-page.commits-page .commits-date {display: block; width: 100%; margin-bottom: 20px}
|
||||
body.project-page.commits-page .commits-date .data {padding: 0}
|
||||
body.project-page.commits-page a.commit{padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.project-page.commits-page .commits-date a.commit {padding: 10px; border-bottom: none; overflow: hidden; display: block;}
|
||||
body.project-page.commits-page .commits-date a.commit:last-child{border-bottom: 0}
|
||||
body.project-page.commits-page .commits-date a.commit img{float: left; margin-right: 10px;}
|
||||
body.project-page.commits-page .commits-date a.commit span.commit-title{display: block;}
|
||||
body.project-page.commits-page .commits-date a.commit span.commit-title{margin-bottom: 10px}
|
||||
body.project-page.commits-page .commits-date a.commit span.commit-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
body.project-page.commits-page .commits-date a.commit span.commit-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
/* eo Commit Page */
|
||||
/** Commit diff view **/
|
||||
.diff_file {
|
||||
border:1px solid #CCC;
|
||||
margin-bottom:1em;
|
||||
|
@ -72,6 +37,11 @@ body.project-page.commits-page .commits-date a.commit span.commit-author strong{
|
|||
border:none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
tr {
|
||||
td {
|
||||
font-size:12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.old_line, .new_line {
|
||||
margin:0px;
|
||||
|
@ -110,14 +80,6 @@ body.project-page.commits-page .commits-date a.commit span.commit-author strong{
|
|||
}
|
||||
}
|
||||
|
||||
pre.commit_message {
|
||||
white-space: pre-wrap;
|
||||
font-family: "Helvetica", sans-serif;
|
||||
color: #555;
|
||||
font-weight:bold;
|
||||
font-size:15px;
|
||||
}
|
||||
|
||||
/** COMMIT BLOCK **/
|
||||
.commit-title{display: block;}
|
||||
.commit-title{margin-bottom: 10px}
|
||||
|
@ -147,45 +109,28 @@ ul.bordered-list li:last-child { border:none }
|
|||
}
|
||||
}
|
||||
|
||||
.per_line_form {
|
||||
font-family: "Helvetica", sans-serif;
|
||||
background: #2FA0BB;
|
||||
|
||||
td {
|
||||
padding:0;
|
||||
}
|
||||
|
||||
form {
|
||||
margin:5px;
|
||||
width: 756px;
|
||||
border: 1px solid #CCC;
|
||||
padding: 20px;
|
||||
background: white;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tr.line_notes_row {
|
||||
font-family: "Helvetica", sans-serif;
|
||||
&:hover {
|
||||
background:none;
|
||||
}
|
||||
td {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border-bottom:1px solid #DEE2E3;
|
||||
|
||||
border-bottom:1px solid #DDD;
|
||||
}
|
||||
|
||||
ul {
|
||||
display:block;
|
||||
list-style:none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
/** FLASH **/
|
||||
#flash_container {
|
||||
height:45px;
|
||||
position:fixed;
|
||||
z-index:10001;
|
||||
top:0px;
|
||||
width:100%;
|
||||
margin-bottom:15px;
|
||||
overflow:hidden;
|
||||
background:white;
|
||||
cursor:pointer;
|
||||
border-bottom:1px solid #777;
|
||||
|
||||
li {
|
||||
border-top:1px solid #DEE2E3;
|
||||
padding:10px;
|
||||
}
|
||||
}
|
||||
h4 {
|
||||
color:#444;
|
||||
font-size:22px;
|
||||
padding-top:5px;
|
||||
margin:2px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
@import "bootstrap";
|
||||
|
||||
/** GITLAB colors **/
|
||||
$text_color:#222;
|
||||
$lite_text_color: #666;
|
||||
$link_color:#111;
|
||||
|
@ -6,10 +9,13 @@ $active_bg_color:#79C3E0;
|
|||
$active_bd_color: #2FA0BB;
|
||||
$border_color:#CCC;
|
||||
$lite_border_color:#EEE;
|
||||
$app_width:980px;
|
||||
$min_app_width:980px;
|
||||
$max_app_width:980px;
|
||||
$app_padding:20px;
|
||||
$bg_color: #FFF;
|
||||
$styled_border_color: #2FA0BB;
|
||||
$color: "#4BB8D2";
|
||||
$blue_link: "#2fa0bb";
|
||||
|
||||
/** MIXINS **/
|
||||
@mixin round-borders-bottom($radius) {
|
||||
|
@ -81,36 +87,103 @@ $styled_border_color: #2FA0BB;
|
|||
.no-padding {
|
||||
padding:0 !important;
|
||||
}
|
||||
.underlined {
|
||||
border-bottom: 1px solid $border_color;
|
||||
}
|
||||
|
||||
/* General */
|
||||
/** LAYOUT **/
|
||||
|
||||
body.collapsed {
|
||||
background-color: $bg_color;
|
||||
.container-fluid {
|
||||
min-width:$min_app_width;
|
||||
max-width:$max_app_width;
|
||||
margin:auto;
|
||||
margin-top:51px;
|
||||
}
|
||||
|
||||
#container{
|
||||
margin: auto;
|
||||
margin-top:51px;
|
||||
width: $app_width;
|
||||
border-top: 0;
|
||||
background-color: $bg_color;
|
||||
.container-fluid > .sidebar {
|
||||
width: 140px;
|
||||
border-right: 1px solid $border_color;
|
||||
height:100%;
|
||||
min-height:450px;
|
||||
|
||||
.fixed {
|
||||
position:fixed;
|
||||
}
|
||||
|
||||
aside a {
|
||||
display:block;
|
||||
position:relative;
|
||||
padding:15px 10px;
|
||||
margin:10px 0 0 0;
|
||||
font-size:13px;
|
||||
font-weight:bold;
|
||||
color:#444;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: $link_color;
|
||||
.container-fluid > .content {
|
||||
margin-left: 160px;
|
||||
margin-top:20px;
|
||||
}
|
||||
|
||||
@import "style.scss";
|
||||
aside.projects,
|
||||
aside.project-side
|
||||
{
|
||||
margin-left: 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
float:left;
|
||||
margin-right:15px;
|
||||
width:40px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
img.lil_av {
|
||||
padding-left: 5px;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.media-grid {
|
||||
h3, h2 , h4 {
|
||||
&.media_h {
|
||||
padding-left:10px;
|
||||
float:left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.wll {
|
||||
background-color: #FFF;
|
||||
margin-bottom: 10px;
|
||||
padding: 5px;
|
||||
min-height: 20px;
|
||||
border-bottom: 1px solid #eee;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
||||
.author { color: #999; }
|
||||
&:last-child { border:none }
|
||||
p { padding-top:5px;}
|
||||
}
|
||||
|
||||
.author_link {
|
||||
color: $active_link_color;
|
||||
}
|
||||
|
||||
@import "reset_bootstrap.scss";
|
||||
@import "top_panel.scss";
|
||||
@import "projects.css.scss";
|
||||
@import "commits.css.scss";
|
||||
@import "notes.css.scss";
|
||||
@import "tree.scss";
|
||||
@import "issues.css.scss";
|
||||
@import "merge_requests.css.scss";
|
||||
@import "notes.css.scss";
|
||||
@import "login.scss";
|
||||
|
||||
/** CODE HIGHTLIGHT **/
|
||||
@import "highlight.css.scss";
|
||||
@import "highlight.black.css.scss";
|
||||
@import "issues.css.scss";
|
||||
@import "commits.css.scss";
|
||||
|
||||
@import "top_panel.scss";
|
||||
@import "dashboard.scss";
|
||||
@import "tree.scss";
|
||||
@import "tags.scss";
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
body.dashboard-page h2.icon span{ background-position: 9px -69px; }
|
||||
body.dashboard-page header{margin-bottom: 0}
|
||||
body.dashboard-page .news-feed{margin-left: 285px; min-height: 600px; margin-top: 20px; margin-right:2px; padding:20px;}
|
||||
body.dashboard-page .dashboard-content{ position: relative; float: left; width: 100%; height: 100%; }
|
||||
body.dashboard-page .news-feed h2{float: left;}
|
||||
|
||||
body.dashboard-page aside{
|
||||
min-height: 820px; position: relative; top: 0; bottom: 0; right: 0; width: 260px; float: left; border-right: 1px solid $border_color; padding:20px; padding-right:0;
|
||||
h4{margin: 0; border-bottom: 1px solid #ccc; padding: 20px 20px 20px 0px; font-size: 11px; font-weight: bold; text-transform: uppercase;}
|
||||
h4 a.button-small{float: right; text-transform: none; border-radius: 4px; margin-right: 2%; margin-top: -4px; display: block;}
|
||||
.project-list {list-style: none; margin: 0; padding: 0;}
|
||||
.project-list li a {background: white; color: #{$blue_link}; display: block; border-bottom: 1px solid $lite_border_color; padding: 14px 6% 14px 0px;}
|
||||
.project-list li a span.project-name{font-size: 14px; display: block; margin-bottom: 8px}
|
||||
.project-list li a span.time{color: #666; font-weight: normal; font-size: 11px}
|
||||
.project-list li a span.arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999}
|
||||
}
|
||||
|
||||
body.dashboard-page .news-feed .project-updates {
|
||||
margin-bottom: 20px; display: block; width: 100%;
|
||||
.data{ padding: 0}
|
||||
a.project-update {padding: 10px; overflow: hidden; display: block;}
|
||||
a.project-update:last-child{border-bottom: 0}
|
||||
a.project-update img{float: left; margin-right: 10px;}
|
||||
a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
a.project-update span.update-title{margin-bottom: 10px}
|
||||
a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
a.project-update span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
}
|
||||
/* eo Dashboard Page */
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
.black .highlighttable {
|
||||
background: #333;
|
||||
td.linenos { border:none; }
|
||||
pre { color: #eee }
|
||||
.highlight { background: #333; border-left:1px solid #555; }
|
||||
|
||||
|
|
|
@ -25,7 +25,13 @@ td.linenos{
|
|||
padding:10px 0px 0px 10px;
|
||||
margin-left:0px;
|
||||
}
|
||||
|
||||
.linenodiv pre,
|
||||
.highlight pre{
|
||||
margin:0;
|
||||
padding:0;
|
||||
background:none;
|
||||
border:none;
|
||||
}
|
||||
|
||||
.linenodiv pre {
|
||||
|
|
|
@ -1,84 +1,3 @@
|
|||
.issue-number {
|
||||
float: left;
|
||||
border-radius: 5px;
|
||||
text-shadow: none;
|
||||
background: rgba(0, 0, 0, 0.12);
|
||||
text-align: center;
|
||||
padding: 14px 8px;
|
||||
width: 40px;
|
||||
margin-right: 10px;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.issues_filter {
|
||||
margin:10px 0;
|
||||
.left {
|
||||
margin-right:15px;
|
||||
}
|
||||
}
|
||||
|
||||
.top_panel_issues{
|
||||
#issue_search_form {
|
||||
margin:5px 0;
|
||||
input {
|
||||
border:1px solid #D3D3D3;
|
||||
padding: 3px;
|
||||
height: 28px;
|
||||
width: 250px;
|
||||
-webkit-appearance:none;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
|
||||
&:focus {
|
||||
border-color:#c2e1ef;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** ISSUES LIST **/
|
||||
.issue .action-links {
|
||||
display:none;
|
||||
a {
|
||||
margin-left:10px;
|
||||
}
|
||||
}
|
||||
.issue:hover .action-links { display:block; }
|
||||
.issue-show-holder {
|
||||
width:100%;
|
||||
.data p { font-size:16px }
|
||||
}
|
||||
|
||||
#issue_assignee_id {
|
||||
width:300px;
|
||||
}
|
||||
|
||||
.issue-form-holder .ui-box .data {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body.project-page .merge-request-form-holder table.no-borders tr,
|
||||
body.project-page .merge-request-form-holder table.no-borders td,
|
||||
body.project-page .issue-form-holder table.no-borders tr,
|
||||
body.project-page .issue-form-holder table.no-borders td,
|
||||
body.project-page .new_snippet table tr,
|
||||
body.project-page .new_snippet table td,
|
||||
body.project-page .edit_snippet table tr,
|
||||
body.project-page .edit_snippet table td
|
||||
{
|
||||
&:hover {
|
||||
background:none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#issues-table {
|
||||
tr {
|
||||
border-top: 1px solid $lite_border_color;
|
||||
&:first-child {
|
||||
border:none;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
41
app/assets/stylesheets/login.scss
Normal file
41
app/assets/stylesheets/login.scss
Normal file
|
@ -0,0 +1,41 @@
|
|||
/* Login Page */
|
||||
body.login-page{ padding-top: 10%}
|
||||
|
||||
.login-box{
|
||||
width: 304px;
|
||||
position: relative;
|
||||
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; border-radius: 0; padding: 14px 10px; width: 280px}
|
||||
|
||||
.login-box input.text.top{
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.login-box input.text.bottom{
|
||||
-webkit-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top: 0;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.login-box a.forgot{float: right; padding-top: 6px}
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
// Place all the styles related to the MergeRequests controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
|
||||
|
||||
.merge-request-form-holder {
|
||||
select {
|
||||
width:300px;
|
||||
|
|
|
@ -32,13 +32,12 @@
|
|||
|
||||
#notes-list .note .delete-note { display:none; }
|
||||
#notes-list .note:hover .delete-note { display:block; }
|
||||
|
||||
body.project-page #notes-list .note {padding: 10px 0; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.project-page #notes-list .note img{float: left; margin-right: 10px;}
|
||||
body.project-page #notes-list .note span.note-title{display: block;}
|
||||
body.project-page #notes-list .note span.note-title{margin-bottom: 10px}
|
||||
body.project-page #notes-list .note span.note-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
body.project-page #notes-list .note span.note-author strong{font-weight: bold; font-style: normal;}
|
||||
#notes-list .note {padding: 10px 0; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
#notes-list .note img{float: left; margin-right: 10px;}
|
||||
#notes-list .note span.note-title{display: block;}
|
||||
#notes-list .note span.note-title{margin-bottom: 10px}
|
||||
#notes-list .note span.note-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
#notes-list .note span.note-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
|
||||
.note .note-title { margin-left:55px; }
|
||||
|
|
|
@ -1,518 +1,193 @@
|
|||
body.project-page h2.icon .project-name, body.project-page h2.icon d{border: 1px solid #eee; padding: 5px 30px 5px 10px; border-radius: 5px; position: relative;}
|
||||
body.project-page h2.icon .project-name i.arrow{float: right;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 13px;
|
||||
display: block;
|
||||
background: url('images.png') no-repeat -97px -29px;
|
||||
width: 4px;
|
||||
height: 5px;
|
||||
.git_url_wrapper {
|
||||
margin-right:50px
|
||||
}
|
||||
|
||||
body.project-page h2.icon span{ background-position: -78px -68px; }
|
||||
body.project-page .project-container{ position: relative; float: left; width: 100%; height: 100%; padding-bottom: 10px;}
|
||||
body.project-page .page-title{margin-bottom: 0}
|
||||
|
||||
body.project-page .project-sidebar {
|
||||
width: 110px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
float: left;
|
||||
display: inline-block;
|
||||
background: #FFF;
|
||||
padding: $app_padding;
|
||||
padding-right:0px;
|
||||
margin: 0;
|
||||
border-right: 1px solid $border_color;
|
||||
}
|
||||
|
||||
body.projects-page input.text.git-url { font-size: 12px; border-radius: 5px; color: #666; box-shadow: 0 1px 2px rgba(0,0,0,.2) inset; padding: 8px 0 8px 30px; margin-bottom: 20px; background: white url('images.png') no-repeat 8px -40px; width: 136px}
|
||||
body.projects-page input.text.git-url {margin:10px 0 0 }
|
||||
.git_url_wrapper { margin-right:50px }
|
||||
|
||||
.projects_selector:hover > .project-box{ -moz-box-shadow:0px 0px 10px rgba(0, 0, 0, .1); -webkit-box-shadow:0px 0px 10px rgba(0, 0, 0, .1); box-shadow:0px 0px 10px rgba(0, 0, 0, .1); }
|
||||
|
||||
|
||||
/* New project Page */
|
||||
.new-project-page .container table{background: white}
|
||||
body.project-page .project-sidebar aside{width: 109px}
|
||||
body.project-page .project-sidebar aside a{
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 15px 10px;
|
||||
margin: 10px 0 0 0;
|
||||
|
||||
|
||||
}
|
||||
body.project-page .project-sidebar aside a span.number{float: right; border-radius: 5px; text-shadow: none; background: rgba(0,0,0,.12); text-align: center; padding: 5px 8px; position: absolute; top: 10px; right: 10px}
|
||||
body.project-page .project-sidebar aside a.current {
|
||||
color: white;
|
||||
background: $active_bg_color;
|
||||
border: 1px solid $active_bd_color;
|
||||
border-radius:5px;
|
||||
|
||||
|
||||
-webkit-border-top-right-radius: 0;
|
||||
-webkit-border-bottom-right-radius: 0;
|
||||
-moz-border-radius-topright: 0px;
|
||||
-moz-border-radius-bottomright: 0px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-right: -1px;
|
||||
}
|
||||
body.project-page .project-content{ padding: $app_padding; display: block; margin-left: 130px; min-height: 600px}
|
||||
body.project-page .project-content h2{ margin-top: 6px}
|
||||
body.project-page .project-content .button.right{margin-left: 20px}
|
||||
body.project-page table .commit a{color: #{$blue_link}}
|
||||
body.project-page table th, body.project-page table td{ border-bottom: 1px solid #DEE2E3;}
|
||||
body.project-page .fixed{position: fixed; }
|
||||
|
||||
|
||||
|
||||
|
||||
/** File stat **/
|
||||
.file_stats {
|
||||
span {
|
||||
img {
|
||||
width:14px;
|
||||
float:left;
|
||||
margin-right: 6px;
|
||||
margin-right:6px;
|
||||
padding:2px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.round-borders {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 0px;
|
||||
.handle:hover {
|
||||
cursor:move;
|
||||
}
|
||||
|
||||
table.round-borders {
|
||||
/* Project Dashboard Page */
|
||||
.news-feed h2 {
|
||||
float:left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** PROJECTS **/
|
||||
input.ssh_project_url {
|
||||
padding:5px;
|
||||
margin:0px;
|
||||
float:right;
|
||||
width:400px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#projects-list .project {
|
||||
height:50px;
|
||||
}
|
||||
|
||||
#tree-slider .tree-item,
|
||||
#projects-list .project,
|
||||
#snippets-table .snippet,
|
||||
#issues-table .issue{
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
/** Buttons **/
|
||||
.lbutton,
|
||||
.lite_button {
|
||||
.news-feed .project-updates {
|
||||
margin-bottom:20px;
|
||||
display:block;
|
||||
width:100%;
|
||||
}
|
||||
.news-feed .project-updates .data {
|
||||
padding:0
|
||||
}
|
||||
.news-feed .project-updates a.project-update {
|
||||
padding:10px;
|
||||
border-bottom:1px solid #eee;
|
||||
overflow:hidden;
|
||||
display:block;
|
||||
}
|
||||
.news-feed .project-updates a.project-update:last-child {
|
||||
border-bottom:0
|
||||
}
|
||||
.news-feed .project-updates a.project-update img {
|
||||
float:left;
|
||||
margin: 0px 5px 0px 0px;
|
||||
padding:5px 10px;
|
||||
|
||||
font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
border:1px solid #D3D3D3;
|
||||
background:white;
|
||||
font-size:12px !important;
|
||||
line-height:130%;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
color:#565656;
|
||||
cursor:pointer;
|
||||
|
||||
&:hover {
|
||||
border:1px solid #C2E1EF;
|
||||
color: #0099FF;
|
||||
}
|
||||
|
||||
&.hm {
|
||||
margin: 0px 0px;
|
||||
}
|
||||
|
||||
&.vm {
|
||||
margin: 5px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
#user_projects_limit{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.handle:hover{
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.project-refs-form {
|
||||
span {
|
||||
background: none !important;
|
||||
position:static !important;
|
||||
width:auto !important;
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
.project-refs-select {
|
||||
width:200px;
|
||||
}
|
||||
|
||||
.filter .left { margin-right:15px; }
|
||||
|
||||
body.project-page table .commit {
|
||||
a.tree-commit-link {
|
||||
color:#444;
|
||||
&:hover {
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** NEW PROJECT **/
|
||||
.new-project-hodler {
|
||||
.icon span { background-position: -31px -70px; }
|
||||
td { border-bottom: 1px solid #DEE2E3; }
|
||||
}
|
||||
|
||||
/** Feed entry **/
|
||||
.commit,
|
||||
.snippet,
|
||||
.message {
|
||||
.title {
|
||||
color:#666;
|
||||
a { color:#666 !important; }
|
||||
p { margin-top:0px; }
|
||||
}
|
||||
.author { color: #999 }
|
||||
}
|
||||
|
||||
/** JQuery UI **/
|
||||
.ui-autocomplete { @include round-borders-all(5px); }
|
||||
.ui-menu-item { cursor: pointer }
|
||||
.ui-selectmenu{
|
||||
@include round-borders-all(4px);
|
||||
margin-right:10px;
|
||||
font-size:1.5em;
|
||||
height:auto;
|
||||
}
|
||||
span.update-title,
|
||||
span.update-author {
|
||||
display:block;
|
||||
}
|
||||
span.update-title {
|
||||
margin-bottom:10px
|
||||
}
|
||||
span.update-author {
|
||||
color:#999;
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
}
|
||||
span.update-author strong {
|
||||
font-weight:bold;
|
||||
.ui-selectmenu-status {
|
||||
padding:3px 10px;
|
||||
}
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/** Snippets **/
|
||||
.new_snippet textarea,
|
||||
.edit_snippet textarea {
|
||||
height:300px;
|
||||
padding: 8px;
|
||||
width: 95%;
|
||||
/** UPDATE ITEM **/
|
||||
.update-data {
|
||||
padding:0
|
||||
}
|
||||
.snippet .action-links {
|
||||
.update-data {
|
||||
width:100%;
|
||||
}
|
||||
a.update-item {
|
||||
padding:10px;
|
||||
border-bottom:1px solid #eee;
|
||||
overflow:hidden;
|
||||
display:block;
|
||||
}
|
||||
a.update-item:last-child {
|
||||
border-bottom:0
|
||||
}
|
||||
a.update-item img {
|
||||
float:left;
|
||||
margin-right:10px;
|
||||
}
|
||||
span.update-title,
|
||||
span.update-author {
|
||||
display:block;
|
||||
}
|
||||
a.update-item span.update-title {
|
||||
margin-bottom:10px
|
||||
}
|
||||
a.update-item span.update-author {
|
||||
color:#999;
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
}
|
||||
a.update-item span.update-author strong {
|
||||
font-weight:bold;
|
||||
font-style:normal;
|
||||
}
|
||||
/** END UPDATE ITEM **/
|
||||
.ajax-tab-loading {
|
||||
padding:40px;
|
||||
display:none;
|
||||
a {
|
||||
margin-left:10px;
|
||||
}
|
||||
#tree-content-holder {
|
||||
float:left;
|
||||
width:100%;
|
||||
}
|
||||
#tree-readme-holder {
|
||||
float:left;
|
||||
width:100%;
|
||||
.readme {
|
||||
@include round-borders-all(4px);
|
||||
padding:4px 15px;
|
||||
background: #F7F7F7;
|
||||
}
|
||||
}
|
||||
.snippet:hover .action-links { display:block; }
|
||||
|
||||
.dashboard-loader {
|
||||
float:left;
|
||||
margin:10px;
|
||||
display:none;
|
||||
}
|
||||
.user-mention {
|
||||
color:#2FA0BB;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
a.project-update.titled {
|
||||
position:relative;
|
||||
padding-left:35% !important;
|
||||
.title-block {
|
||||
padding:10px;
|
||||
width:35%;
|
||||
position:absolute;
|
||||
left:0;
|
||||
top:0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Project graph
|
||||
*/
|
||||
#holder {
|
||||
background:#FAFAFA;
|
||||
border: 1px solid #EEE;
|
||||
cursor: move;
|
||||
height: 70%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Project Dashboard Page */
|
||||
html, body { height: 100%; }
|
||||
|
||||
body.dashboard.project-page .news-feed h2{float: left;}
|
||||
body.dashboard.project-page .news-feed .project-updates {margin-bottom: 20px; display: block; width: 100%;}
|
||||
body.dashboard.project-page .news-feed .project-updates .data{ padding: 0}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update:last-child{border-bottom: 0}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update img{float: left; margin-right: 10px;}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update span.update-title{margin-bottom: 10px}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
body.dashboard.project-page .news-feed .project-updates a.project-update span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
/* eo Dashboard Page */
|
||||
|
||||
|
||||
/** Merge requests */
|
||||
body.project-page .merge-request-commits {margin-bottom: 20px; display: block; width: 100%;}
|
||||
body.project-page .merge-request-commits .data{ padding: 0}
|
||||
body.project-page .merge-request-commits a.commit {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.project-page .merge-request-commits a.commit:last-child{border-bottom: 0}
|
||||
body.project-page .merge-request-commits a.commit img{float: left; margin-right: 10px;}
|
||||
body.project-page .merge-request-commits a.commit span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
body.project-page .merge-request-commits a.commit span.update-title{margin-bottom: 10px}
|
||||
body.project-page .merge-request-commits a.commit span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
body.project-page .merge-request-commits a.commit span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
|
||||
/** Update entry **/
|
||||
.update-data { padding: 0 }
|
||||
.update-data { width:100%; }
|
||||
.update-data.ui-box .data { padding:0; }
|
||||
a.update-item {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
a.update-item:last-child{border-bottom: 0}
|
||||
a.update-item img{float: left; margin-right: 10px;}
|
||||
a.update-item span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
a.update-item span.update-title{margin-bottom: 10px}
|
||||
a.update-item span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
a.update-item span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
|
||||
body.project-page .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; }
|
||||
|
||||
body.projects-page input.text.git-url.project_list_url { width:165px; }
|
||||
|
||||
|
||||
body.project-page table.no-borders th {
|
||||
background:none;
|
||||
border-bottom:1px solid #CCC;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
body.project-page table.no-borders tr,
|
||||
body.project-page table.no-borders td{
|
||||
border:none;
|
||||
}
|
||||
|
||||
.ajax-tab-loading {
|
||||
padding:40px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#tree-content-holder { float:left; width:100%; }
|
||||
|
||||
#tree-readme-holder {
|
||||
float:left;
|
||||
width:100%;
|
||||
|
||||
.readme {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 15px;
|
||||
background:#F7F7F7;
|
||||
/** Branch/tag selector **/
|
||||
.project-refs-form {
|
||||
margin:0;
|
||||
span {
|
||||
background:none !important;
|
||||
position:static !important;
|
||||
width:auto !important;
|
||||
height:auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Commit Page */
|
||||
.entity-info {float: right;}
|
||||
.entity-button{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4));
|
||||
background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
box-shadow: 0 -1px 0 white inset;
|
||||
display: block;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 2px;
|
||||
position: relative;
|
||||
padding: 4px 10px;
|
||||
font-size: 11px;
|
||||
padding-right: 20px;
|
||||
.project-refs-select {
|
||||
width:120px;
|
||||
}
|
||||
|
||||
.entity-button i{
|
||||
background: url('images.png') no-repeat -138px -27px;
|
||||
width: 6px;
|
||||
height: 9px;
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
.box-arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999; margin: 1.5em 0;}
|
||||
|
||||
h4.dash-tabs {
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 10px 10px;
|
||||
font-size: 11px;
|
||||
padding-left:20px;
|
||||
font-weight: bold; text-transform: uppercase;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:13px;
|
||||
|
||||
}
|
||||
|
||||
.dash-button {
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px 15px;
|
||||
float:left;
|
||||
.project-refs-form .chzn-container {
|
||||
position:relative;
|
||||
top:-10px;
|
||||
left:0px;
|
||||
height:13px;
|
||||
top: -5px;
|
||||
left: -11px;
|
||||
|
||||
&:first-child {
|
||||
border-left: 1px solid #ddd;
|
||||
.chzn-drop {
|
||||
margin:7px 0;
|
||||
border: 1px solid #CCC;
|
||||
min-width: 300px;
|
||||
|
||||
.chzn-results {
|
||||
max-height:300px;
|
||||
}
|
||||
|
||||
.chzn-search input {
|
||||
min-width:200px;
|
||||
}
|
||||
}
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
|
||||
.chzn-single {
|
||||
background:#ddd;
|
||||
//border:none;
|
||||
//box-shadow:none;
|
||||
|
||||
.dashboard-loader {
|
||||
float:right;
|
||||
margin-right:30px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
||||
.merge-tabs {
|
||||
margin: 0;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:26px;
|
||||
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
.tab {
|
||||
font-weight: bold;
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px;
|
||||
min-width:60px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-5px;
|
||||
left:-5px;
|
||||
height:16px;
|
||||
padding-left:34px;
|
||||
div {
|
||||
background:transparent;
|
||||
border-left:none;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 8px;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
}
|
||||
.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; }
|
||||
.activities-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.stat-tab span,
|
||||
.team-tab span,
|
||||
.snippets-tab span { background: url("images.png") no-repeat -38px -77px; }
|
||||
.files-tab span { background: url("images.png") no-repeat -112px -23px; }
|
||||
|
||||
.merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; }
|
||||
.merge-diffs-tab span { background: url("images.png") no-repeat -118px 1px; }
|
||||
.merge-tabs .dashboard-loader { padding:8px; }
|
||||
|
||||
.user-mention {
|
||||
color: #2FA0BB;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.author {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
.red-button{
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
padding: 5px 17px;
|
||||
border: 1px solid #999;
|
||||
color: #666;
|
||||
display: inline-block;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.3);
|
||||
background: #D12F19;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.positive-button{
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
padding: 5px 17px;
|
||||
border: 1px solid #999;
|
||||
color: #666;
|
||||
display: inline-block;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.3);
|
||||
background: #4A2;
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
.dark_scheme_box {
|
||||
padding:20px 0;
|
||||
|
||||
label {
|
||||
float:left;
|
||||
box-shadow: 0 0px 5px rgba(0,0,0,.3);
|
||||
|
||||
img {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.project-update.titled {
|
||||
position: relative;
|
||||
padding-left: 235px !important;
|
||||
|
||||
.title-block {
|
||||
padding: 10px;
|
||||
width: 205px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.add_new {
|
||||
float: right;
|
||||
background: #A6B807;
|
||||
color: white;
|
||||
padding: 4px 10px;
|
||||
@include round-borders-all(4px);
|
||||
font-size:11px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.new-project-hodler {
|
||||
padding:20px;
|
||||
}
|
||||
|
|
384
app/assets/stylesheets/projects.css.scss.bak
Normal file
384
app/assets/stylesheets/projects.css.scss.bak
Normal file
|
@ -0,0 +1,384 @@
|
|||
.git_url_wrapper { margin-right:50px }
|
||||
|
||||
.sidebar aside a{
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 15px 10px;
|
||||
margin: 10px 0 0 0;
|
||||
|
||||
span.number{
|
||||
float: right; border-radius: 5px; text-shadow: none; background: rgba(0,0,0,.12); text-align: center; padding: 5px 8px; position: absolute; top: 10px; right: 10px;
|
||||
}
|
||||
&.current {
|
||||
color: white;
|
||||
background: $active_bg_color;
|
||||
border: 1px solid $active_bd_color;
|
||||
border-radius:5px;
|
||||
|
||||
-webkit-border-top-right-radius: 0;
|
||||
-webkit-border-bottom-right-radius: 0;
|
||||
-moz-border-radius-topright: 0px;
|
||||
-moz-border-radius-bottomright: 0px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-right: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
body table .commit a{color: #{$blue_link}}
|
||||
body table th, body table td{ border-bottom: 1px solid #DEE2E3;}
|
||||
body .fixed{position: fixed; }
|
||||
|
||||
/** File stat **/
|
||||
.file_stats {
|
||||
span {
|
||||
img {
|
||||
width:14px;
|
||||
float:left;
|
||||
margin-right: 6px;
|
||||
padding:2px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.round-borders {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 0px;
|
||||
}
|
||||
|
||||
table.round-borders {
|
||||
float:left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** PROJECTS **/
|
||||
input.ssh_project_url {
|
||||
padding:5px;
|
||||
margin:0px;
|
||||
float:right;
|
||||
width:400px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#projects-list .project {
|
||||
height:50px;
|
||||
}
|
||||
|
||||
#tree-slider .tree-item,
|
||||
#projects-list .project,
|
||||
#snippets-table .snippet,
|
||||
#issues-table .issue{
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#user_projects_limit{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.handle:hover{
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.project-refs-form {
|
||||
span {
|
||||
background: none !important;
|
||||
position:static !important;
|
||||
width:auto !important;
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
.project-refs-select {
|
||||
width:200px;
|
||||
}
|
||||
|
||||
.filter .left { margin-right:15px; }
|
||||
|
||||
body table .commit {
|
||||
a.tree-commit-link {
|
||||
color:#444;
|
||||
&:hover {
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** NEW PROJECT **/
|
||||
.new-project-hodler {
|
||||
.icon span { background-position: -31px -70px; }
|
||||
td { border-bottom: 1px solid #DEE2E3; }
|
||||
}
|
||||
|
||||
/** Feed entry **/
|
||||
.commit,
|
||||
.snippet,
|
||||
.message {
|
||||
.title {
|
||||
color:#666;
|
||||
a { color:#666 !important; }
|
||||
p { margin-top:0px; }
|
||||
}
|
||||
.author { color: #999 }
|
||||
}
|
||||
|
||||
/** JQuery UI **/
|
||||
.ui-autocomplete { @include round-borders-all(5px); }
|
||||
.ui-menu-item { cursor: pointer }
|
||||
.ui-selectmenu{
|
||||
@include round-borders-all(4px);
|
||||
margin-right:10px;
|
||||
font-size:1.5em;
|
||||
height:auto;
|
||||
font-weight:bold;
|
||||
.ui-selectmenu-status {
|
||||
padding:3px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
#holder {
|
||||
background:#FAFAFA;
|
||||
border: 1px solid #EEE;
|
||||
cursor: move;
|
||||
height: 70%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Project Dashboard Page */
|
||||
html, body { height: 100%; }
|
||||
|
||||
.news-feed h2{float: left;}
|
||||
.news-feed .project-updates {margin-bottom: 20px; display: block; width: 100%;}
|
||||
.news-feed .project-updates .data{ padding: 0}
|
||||
.news-feed .project-updates a.project-update {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
.news-feed .project-updates a.project-update:last-child{border-bottom: 0}
|
||||
.news-feed .project-updates a.project-update img{float: left; margin-right: 10px;}
|
||||
.news-feed .project-updates a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
.news-feed .project-updates a.project-update span.update-title{margin-bottom: 10px}
|
||||
.news-feed .project-updates a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
.news-feed .project-updates a.project-update span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
/* eo Dashboard Page */
|
||||
|
||||
|
||||
/** Update entry **/
|
||||
.update-data { padding: 0 }
|
||||
.update-data { width:100%; }
|
||||
.update-data.ui-box .data { padding:0; }
|
||||
a.update-item {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
a.update-item:last-child{border-bottom: 0}
|
||||
a.update-item img{float: left; margin-right: 10px;}
|
||||
a.update-item span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
a.update-item span.update-title{margin-bottom: 10px}
|
||||
a.update-item span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
a.update-item span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
|
||||
body .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; }
|
||||
|
||||
body.projects-page input.text.git-url.project_list_url { width:165px; }
|
||||
|
||||
|
||||
body table.no-borders th {
|
||||
background:none;
|
||||
border-bottom:1px solid #CCC;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
body table.no-borders tr,
|
||||
body table.no-borders td{
|
||||
border:none;
|
||||
}
|
||||
|
||||
.ajax-tab-loading {
|
||||
padding:40px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#tree-content-holder { float:left; width:100%; }
|
||||
|
||||
#tree-readme-holder {
|
||||
float:left;
|
||||
width:100%;
|
||||
|
||||
.readme {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 15px;
|
||||
background:#F7F7F7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Commit Page */
|
||||
.entity-info {float: right;}
|
||||
.entity-button{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4));
|
||||
background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
box-shadow: 0 -1px 0 white inset;
|
||||
display: block;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 2px;
|
||||
position: relative;
|
||||
padding: 4px 10px;
|
||||
font-size: 11px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.entity-button i{
|
||||
background: url('images.png') no-repeat -138px -27px;
|
||||
width: 6px;
|
||||
height: 9px;
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
.box-arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999; margin: 1.5em 0;}
|
||||
|
||||
h4.dash-tabs {
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 10px 10px;
|
||||
font-size: 11px;
|
||||
padding-left:20px;
|
||||
font-weight: bold; text-transform: uppercase;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:13px;
|
||||
|
||||
}
|
||||
|
||||
.dash-button {
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px 15px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-10px;
|
||||
left:0px;
|
||||
height:13px;
|
||||
|
||||
&:first-child {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dashboard-loader {
|
||||
float:right;
|
||||
margin-right:30px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
||||
.merge-tabs {
|
||||
margin: 0;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:26px;
|
||||
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
.tab {
|
||||
font-weight: bold;
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px;
|
||||
min-width:60px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-5px;
|
||||
left:-5px;
|
||||
height:16px;
|
||||
padding-left:34px;
|
||||
|
||||
span {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 8px;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
}
|
||||
.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; }
|
||||
.activities-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.stat-tab span,
|
||||
.team-tab span,
|
||||
.snippets-tab span { background: url("images.png") no-repeat -38px -77px; }
|
||||
.files-tab span { background: url("images.png") no-repeat -112px -23px; }
|
||||
|
||||
.merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; }
|
||||
.merge-diffs-tab span { background: url("images.png") no-repeat -118px 1px; }
|
||||
.merge-tabs .dashboard-loader { padding:8px; }
|
||||
|
||||
.user-mention {
|
||||
color: #2FA0BB;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.author {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.dark_scheme_box {
|
||||
padding:20px 0;
|
||||
|
||||
label {
|
||||
float:left;
|
||||
box-shadow: 0 0px 5px rgba(0,0,0,.3);
|
||||
|
||||
img {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.project-update.titled {
|
||||
position: relative;
|
||||
padding-left: 235px !important;
|
||||
|
||||
.title-block {
|
||||
padding: 10px;
|
||||
width: 205px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.add_new {
|
||||
float: right;
|
||||
background: #A6B807;
|
||||
color: white;
|
||||
padding: 4px 10px;
|
||||
@include round-borders-all(4px);
|
||||
font-size:11px;
|
||||
margin: 10px 0;
|
||||
}
|
385
app/assets/stylesheets/projects.css.scss~
Normal file
385
app/assets/stylesheets/projects.css.scss~
Normal file
|
@ -0,0 +1,385 @@
|
|||
.git_url_wrapper { margin-right:50px }
|
||||
|
||||
.sidebar aside a{
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 15px 10px;
|
||||
margin: 10px 0 0 0;
|
||||
|
||||
font-size:13px;
|
||||
font-weight:bold;
|
||||
color:#333;
|
||||
|
||||
&.current {
|
||||
color: white;
|
||||
background: $active_bg_color;
|
||||
border: 1px solid $active_bd_color;
|
||||
border-radius:5px;
|
||||
|
||||
-webkit-border-top-right-radius: 0;
|
||||
-webkit-border-bottom-right-radius: 0;
|
||||
-moz-border-radius-topright: 0px;
|
||||
-moz-border-radius-bottomright: 0px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-right: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
body table .commit a{color: #{$blue_link}}
|
||||
body table th, body table td{ border-bottom: 1px solid #DEE2E3;}
|
||||
body .fixed{position: fixed; }
|
||||
|
||||
/** File stat **/
|
||||
.file_stats {
|
||||
span {
|
||||
img {
|
||||
width:14px;
|
||||
float:left;
|
||||
margin-right: 6px;
|
||||
padding:2px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.round-borders {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 0px;
|
||||
}
|
||||
|
||||
table.round-borders {
|
||||
float:left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** PROJECTS **/
|
||||
input.ssh_project_url {
|
||||
padding:5px;
|
||||
margin:0px;
|
||||
float:right;
|
||||
width:400px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#projects-list .project {
|
||||
height:50px;
|
||||
}
|
||||
|
||||
#tree-slider .tree-item,
|
||||
#projects-list .project,
|
||||
#snippets-table .snippet,
|
||||
#issues-table .issue{
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#user_projects_limit{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.handle:hover{
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.project-refs-form {
|
||||
span {
|
||||
background: none !important;
|
||||
position:static !important;
|
||||
width:auto !important;
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
.project-refs-select {
|
||||
width:200px;
|
||||
}
|
||||
|
||||
.filter .left { margin-right:15px; }
|
||||
|
||||
body table .commit {
|
||||
a.tree-commit-link {
|
||||
color:#444;
|
||||
&:hover {
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** NEW PROJECT **/
|
||||
.new-project-hodler {
|
||||
.icon span { background-position: -31px -70px; }
|
||||
td { border-bottom: 1px solid #DEE2E3; }
|
||||
}
|
||||
|
||||
/** Feed entry **/
|
||||
.commit,
|
||||
.snippet,
|
||||
.message {
|
||||
.title {
|
||||
color:#666;
|
||||
a { color:#666 !important; }
|
||||
p { margin-top:0px; }
|
||||
}
|
||||
.author { color: #999 }
|
||||
}
|
||||
|
||||
/** JQuery UI **/
|
||||
.ui-autocomplete { @include round-borders-all(5px); }
|
||||
.ui-menu-item { cursor: pointer }
|
||||
.ui-selectmenu{
|
||||
@include round-borders-all(4px);
|
||||
margin-right:10px;
|
||||
font-size:1.5em;
|
||||
height:auto;
|
||||
font-weight:bold;
|
||||
.ui-selectmenu-status {
|
||||
padding:3px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
#holder {
|
||||
background:#FAFAFA;
|
||||
border: 1px solid #EEE;
|
||||
cursor: move;
|
||||
height: 70%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Project Dashboard Page */
|
||||
html, body { height: 100%; }
|
||||
|
||||
.news-feed h2{float: left;}
|
||||
.news-feed .project-updates {margin-bottom: 20px; display: block; width: 100%;}
|
||||
.news-feed .project-updates .data{ padding: 0}
|
||||
.news-feed .project-updates a.project-update {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
.news-feed .project-updates a.project-update:last-child{border-bottom: 0}
|
||||
.news-feed .project-updates a.project-update img{float: left; margin-right: 10px;}
|
||||
.news-feed .project-updates a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
.news-feed .project-updates a.project-update span.update-title{margin-bottom: 10px}
|
||||
.news-feed .project-updates a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
.news-feed .project-updates a.project-update span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
/* eo Dashboard Page */
|
||||
|
||||
|
||||
/** Update entry **/
|
||||
.update-data { padding: 0 }
|
||||
.update-data { width:100%; }
|
||||
.update-data.ui-box .data { padding:0; }
|
||||
a.update-item {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
a.update-item:last-child{border-bottom: 0}
|
||||
a.update-item img{float: left; margin-right: 10px;}
|
||||
a.update-item span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;}
|
||||
a.update-item span.update-title{margin-bottom: 10px}
|
||||
a.update-item span.update-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
a.update-item span.update-author strong{font-weight: bold; font-style: normal;}
|
||||
|
||||
|
||||
body .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; }
|
||||
|
||||
body.projects-page input.text.git-url.project_list_url { width:165px; }
|
||||
|
||||
|
||||
body table.no-borders th {
|
||||
background:none;
|
||||
border-bottom:1px solid #CCC;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
body table.no-borders tr,
|
||||
body table.no-borders td{
|
||||
border:none;
|
||||
}
|
||||
|
||||
.ajax-tab-loading {
|
||||
padding:40px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#tree-content-holder { float:left; width:100%; }
|
||||
|
||||
#tree-readme-holder {
|
||||
float:left;
|
||||
width:100%;
|
||||
|
||||
.readme {
|
||||
@include round-borders-all(4px);
|
||||
padding: 4px 15px;
|
||||
background:#F7F7F7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Commit Page */
|
||||
.entity-info {float: right;}
|
||||
.entity-button{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4));
|
||||
background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4);
|
||||
box-shadow: 0 -1px 0 white inset;
|
||||
display: block;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 2px;
|
||||
position: relative;
|
||||
padding: 4px 10px;
|
||||
font-size: 11px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.entity-button i{
|
||||
background: url('images.png') no-repeat -138px -27px;
|
||||
width: 6px;
|
||||
height: 9px;
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
.box-arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999; margin: 1.5em 0;}
|
||||
|
||||
h4.dash-tabs {
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 10px 10px;
|
||||
font-size: 11px;
|
||||
padding-left:20px;
|
||||
font-weight: bold; text-transform: uppercase;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:13px;
|
||||
|
||||
}
|
||||
|
||||
.dash-button {
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px 15px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-10px;
|
||||
left:0px;
|
||||
height:13px;
|
||||
|
||||
&:first-child {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dashboard-loader {
|
||||
float:right;
|
||||
margin-right:30px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
||||
.merge-tabs {
|
||||
margin: 0;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
background: #F7F7F7;
|
||||
margin-bottom:20px;
|
||||
height:26px;
|
||||
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
.tab {
|
||||
font-weight: bold;
|
||||
border-right: 1px solid #ddd;
|
||||
background:none;
|
||||
padding: 10px;
|
||||
min-width:60px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-5px;
|
||||
left:-5px;
|
||||
height:16px;
|
||||
padding-left:34px;
|
||||
|
||||
span {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 8px;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #eaeaea;
|
||||
}
|
||||
}
|
||||
}
|
||||
.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; }
|
||||
.activities-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.stat-tab span,
|
||||
.team-tab span,
|
||||
.snippets-tab span { background: url("images.png") no-repeat -38px -77px; }
|
||||
.files-tab span { background: url("images.png") no-repeat -112px -23px; }
|
||||
|
||||
.merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; }
|
||||
.merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; }
|
||||
.merge-diffs-tab span { background: url("images.png") no-repeat -118px 1px; }
|
||||
.merge-tabs .dashboard-loader { padding:8px; }
|
||||
|
||||
.user-mention {
|
||||
color: #2FA0BB;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.author {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.dark_scheme_box {
|
||||
padding:20px 0;
|
||||
|
||||
label {
|
||||
float:left;
|
||||
box-shadow: 0 0px 5px rgba(0,0,0,.3);
|
||||
|
||||
img {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.project-update.titled {
|
||||
position: relative;
|
||||
padding-left: 235px !important;
|
||||
|
||||
.title-block {
|
||||
padding: 10px;
|
||||
width: 205px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.add_new {
|
||||
float: right;
|
||||
background: #A6B807;
|
||||
color: white;
|
||||
padding: 4px 10px;
|
||||
@include round-borders-all(4px);
|
||||
font-size:11px;
|
||||
margin: 10px 0;
|
||||
}
|
38
app/assets/stylesheets/reset_bootstrap.scss
Normal file
38
app/assets/stylesheets/reset_bootstrap.scss
Normal file
|
@ -0,0 +1,38 @@
|
|||
a {
|
||||
color: $link_color;
|
||||
&:hover {
|
||||
text-decoration:none;
|
||||
color: $active_link_color;
|
||||
}
|
||||
}
|
||||
|
||||
.entry {
|
||||
position: relative;
|
||||
padding: 7px 15px;
|
||||
margin-bottom: 18px;
|
||||
color: #404040;
|
||||
background-color: #eedc94;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
|
||||
background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
|
||||
background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
|
||||
background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
|
||||
background-image: -o-linear-gradient(top, #fceec1, #eedc94);
|
||||
background-image: linear-gradient(top, #fceec1, #eedc94);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCEEC1', endColorstr='#FFEEDC94', GradientType=0);
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
border-color: #eedc94 #eedc94 #e4c652;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%);
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
||||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
||||
background:#F1F1F1;
|
||||
border-color:#ccc;
|
||||
}
|
|
@ -1,802 +0,0 @@
|
|||
/* HTML5 ✰ Boilerplate
|
||||
* ==|== normalize ==========================================================
|
||||
*/
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
|
||||
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
|
||||
audio:not([controls]) { display: none; }
|
||||
[hidden] { display: none; }
|
||||
|
||||
html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
||||
body { margin: 0; font-size: 13px; line-height: 1.231; }
|
||||
body, button, input, select, textarea {
|
||||
font-family: "helvetica", "arial", "freesans", "clean", sans-serif;
|
||||
color: #222; }
|
||||
|
||||
::-moz-selection { background: #79c3e0; color: #fff; text-shadow: none; }
|
||||
::selection { background: #79c3e0; color: #fff; text-shadow: none; }
|
||||
|
||||
a { color: #00e; }
|
||||
a:hover { color: #06e; }
|
||||
a:focus { outline: thin dotted; }
|
||||
a:hover, a:active { outline: 0; }
|
||||
|
||||
abbr[title] { border-bottom: 1px dotted; }
|
||||
b, strong { font-weight: bold; }
|
||||
blockquote { margin: 1em 40px; }
|
||||
dfn { font-style: italic; }
|
||||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
|
||||
ins { background: #ff9; color: #000; text-decoration: none; }
|
||||
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
|
||||
pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; }
|
||||
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
|
||||
q { quotes: none; }
|
||||
q:before, q:after { content: ""; content: none; }
|
||||
small { font-size: 85%; }
|
||||
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
|
||||
sup { top: -0.5em; }
|
||||
sub { bottom: -0.25em; }
|
||||
ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
|
||||
dd { margin: 0 0 0 40px; }
|
||||
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
|
||||
img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
|
||||
svg:not(:root) { overflow: hidden; }
|
||||
figure { margin: 0; }
|
||||
|
||||
form { margin: 0; }
|
||||
fieldset { border: 0; margin: 0; padding: 0; }
|
||||
label { cursor: pointer; }
|
||||
legend { border: 0; *margin-left: -7px; padding: 0; }
|
||||
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
|
||||
button, input { line-height: normal; *overflow: visible; }
|
||||
table button, table input { *overflow: auto; }
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; }
|
||||
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; }
|
||||
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
|
||||
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
|
||||
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
|
||||
textarea { overflow: auto; vertical-align: top; resize: vertical; }
|
||||
input:valid, textarea:valid { }
|
||||
input:invalid, textarea:invalid { background-color: #f0dddd; }
|
||||
|
||||
table { border-collapse: collapse; border-spacing: 0; }
|
||||
td { vertical-align: top; }
|
||||
|
||||
/* ==|== primary styles =====================================================
|
||||
Author: Ricardo Rauch
|
||||
========================================================================== */
|
||||
|
||||
/* 960gs */
|
||||
.container_4{width:98%;margin-left:1%;margin-right:1%}.grid_1,.grid_2,.grid_3,.grid_4{display:inline;float:left;position:relative;margin-left:1%;margin-right:1%}.alpha{margin-left:0}.omega{margin-right:0}.container_4 .grid_1{width:23.0%}.container_4 .grid_2{width:48.0%}.container_4 .grid_3{width:73.0%}.container_4 .grid_4{width:98.0%}.container_4 .prefix_1{padding-left:25.0%}.container_4 .prefix_2{padding-left:50.0%}.container_4 .prefix_3{padding-left:75.0%}.container_4 .suffix_1{padding-right:25.0%}.container_4 .suffix_2{padding-right:50.0%}.container_4 .suffix_3{padding-right:75.0%}.container_4 .push_1{left:25.0%}.container_4 .push_2{left:50.0%}.container_4 .push_3{left:75.0%}.container_4 .pull_1{left:-25.0%}.container_4 .pull_2{left:-50.0%}.container_4 .pull_3{left:-75.0%}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}.clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block}
|
||||
/* eo 960gs*/
|
||||
|
||||
/* Vars */
|
||||
$color: "#4BB8D2";
|
||||
$blue_link: "#2fa0bb";
|
||||
/* eo Vars */
|
||||
|
||||
html{ -webkit-font-smoothing:antialiased; }
|
||||
body {
|
||||
font-size: 12px;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
a{text-decoration: none; font-weight: bold; color: #444}
|
||||
a:hover{color: #555}
|
||||
/* Typography */
|
||||
h1,h2,h3,h4,h5{font-weight: normal; color: #666}
|
||||
h2{margin: 1.5em 0}
|
||||
/* eo Typography */
|
||||
|
||||
/* Forms */
|
||||
input[type="text"]:focus, input[type="password"]:focus { outline: none; }
|
||||
input.text{border: 1px solid #ccc; border-radius: 4px; display: block; padding: 10px}
|
||||
|
||||
.form-row{
|
||||
padding: 0px 0px 10px 0px;
|
||||
}
|
||||
|
||||
.form-row label{
|
||||
font-weight:bold;
|
||||
display: inline-block;
|
||||
padding: 0px 0px 5px 0px;
|
||||
}
|
||||
|
||||
/* eo Forms */
|
||||
|
||||
/* Tables */
|
||||
table {width:100%; border: 1px solid #DEE2E3; margin-bottom: 20px}
|
||||
table thead{
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
table thead th{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
|
||||
background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
color: #97A0A5;
|
||||
}
|
||||
td, th{ padding: .9em 1em; vertical-align: middle; }
|
||||
|
||||
table thead .image{width:100px}
|
||||
.listed_items tr.odd:hover{background-color:#FFFFCF}
|
||||
/* eo Tables */
|
||||
|
||||
/* Buttons */
|
||||
.grey-button{
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
padding: 5px 17px;
|
||||
border: 1px solid #999;
|
||||
color: #666;
|
||||
display: inline-block;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.3);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #f7f7f7), to(#d5d5d5));
|
||||
background-image: -webkit-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
background-image: -moz-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
background-image: -o-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
}
|
||||
|
||||
a.button, input.button {
|
||||
font-weight: bold;
|
||||
padding: 10px 20px;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
color: #578E91;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
border: 1px solid #8CE2E6;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #dbf5f6), to(#c5eef0));
|
||||
background-image: -webkit-linear-gradient(#dbf5f6 79.4%, #c5eef0);
|
||||
background-image: -moz-linear-gradient(#dbf5f6 79.4%, #c5eef0);
|
||||
background-image: -o-linear-gradient(#dbf5f6 79.4%, #c5eef0);
|
||||
}
|
||||
|
||||
input.button{margin-bottom: 1.5em}
|
||||
|
||||
.button:hover {color: rgba(0,0,0,.8)}
|
||||
|
||||
.button.green {margin-right: 0; }
|
||||
|
||||
.button.yellow{
|
||||
color: #908054;
|
||||
border-color: #DDCDA1;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #FFEFC3), to(#F3E3B7));
|
||||
background-image: -webkit-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
|
||||
background-image: -moz-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
|
||||
background-image: -o-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
|
||||
}
|
||||
|
||||
.button.blue{
|
||||
color: #417E97;
|
||||
border-color: #b2cdec;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #dbe8f6), to(#c7daf1));
|
||||
background-image: -webkit-linear-gradient(#dbe8f6 79.4%, #c7daf1);
|
||||
background-image: -moz-linear-gradient(#dbe8f6 79.4%, #c7daf1);
|
||||
background-image: -o-linear-gradient(#dbe8f6 79.4%, #c7daf1);
|
||||
}
|
||||
|
||||
.button-small{ text-shadow: none; padding: 4px 10px; }
|
||||
.button-green{background: #A6B807; color: white}
|
||||
|
||||
/* eo Buttons */
|
||||
|
||||
/* UI Box */
|
||||
//.ui-box{border: 1px solid #DEDFE1; float: left; border-radius: 5px}
|
||||
.ui-box{float: left;}
|
||||
.ui-box h3{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
|
||||
background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background:none;
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
border-bottom: 1px solid #DEDFE1;
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.ui-box.ui-box-small h3{
|
||||
padding: 8px 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.ui-box .data{padding: .5em 1em}
|
||||
|
||||
.ui-box .buttons{
|
||||
padding: 1em;
|
||||
border-top:1px solid $lite_border_color;
|
||||
}
|
||||
|
||||
.ui-box .buttons .button{padding: 8px 9px; font-size: 11px}
|
||||
|
||||
.ui-box.hover:hover{box-shadow: 0 0 10px rgba(0,0,0,.1); border: 1px solid #ccc;
|
||||
|
||||
-webkit-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
||||
-moz-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
||||
-o-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
||||
transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
||||
}
|
||||
|
||||
/* eo UI Box */
|
||||
|
||||
/* Login Page */
|
||||
body.login-page{background-color: #f1f1f1; padding-top: 10%}
|
||||
|
||||
.login-box{
|
||||
width: 304px;
|
||||
position: relative;
|
||||
border-radius: 5px;
|
||||
margin: auto;
|
||||
padding: 20px;
|
||||
background: white;
|
||||
box-shadow: rgba(0, 0, 0, 0.07) 0 1px 0,white 0 2px 0,rgba(0, 0, 0, 0.07) 0 3px 0,white 0 4px 0, rgba(0, 0, 0, 0.07) 0 5px 0;
|
||||
}
|
||||
|
||||
.login-box .login-logo{
|
||||
margin: 10px 0 30px 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.login-box input.text{background-color: #f1f1f1; font-size: 16px; border-radius: 0; padding: 14px 10px; width: 280px}
|
||||
|
||||
.login-box input.text.top{
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.login-box input.text.bottom{
|
||||
-webkit-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top: 0;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.login-box a.forgot{float: right; padding-top: 6px}
|
||||
|
||||
/* Icons */
|
||||
.directory, .file{
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
width: 14px;
|
||||
}
|
||||
|
||||
.directory{
|
||||
background: url('images.png') no-repeat -73px -26px;
|
||||
height: 11px;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.file{
|
||||
background: url('images.png') no-repeat -114px -24px;
|
||||
height: 16px;
|
||||
margin-bottom: -3px;
|
||||
}
|
||||
|
||||
/* eo Icons*/
|
||||
|
||||
/* Errors */
|
||||
#error_explanation{background: #ffe5eb; padding: 20px; margin-bottom: 20px; border-radius: 5px}
|
||||
#error_explanation h2{margin: 0; margin-bottom: 20px; color: red}
|
||||
#error_explanation ul li{margin-bottom: 10px}
|
||||
#error_explanation ul li:last-child{margin-bottom: 0}
|
||||
.field_with_errors {
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
textarea
|
||||
{
|
||||
border: 1px solid #D30 !important;
|
||||
}
|
||||
}
|
||||
/* eo Errors */
|
||||
|
||||
/* Notices */
|
||||
#notice{background: #dfffe1; padding: 20px; margin-bottom: 20px; border-radius: 5px; color: green; font-size: 1.3em;}
|
||||
/* eo Notices */
|
||||
|
||||
/* InfoBlock */
|
||||
#infoblock{
|
||||
background: #eeeeee;
|
||||
padding: 20px;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
/* eo InfoBlock */
|
||||
|
||||
/* Header */
|
||||
header{
|
||||
background: #474D57 url('bg-header.png') repeat-x bottom;
|
||||
z-index: 10000;
|
||||
height: 44px;
|
||||
padding: 10px 2% 6px 2%;
|
||||
}
|
||||
header a:hover{color: #f1f1f1}
|
||||
header h1{
|
||||
width: 65px;
|
||||
}
|
||||
header h1.logo{margin: 0; padding: 0}
|
||||
header h1.logo a{
|
||||
background: url('images.png') no-repeat -3px -7px;
|
||||
width: 65px;
|
||||
height: 26px;
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
float: left;
|
||||
text-indent: -1000em;
|
||||
}
|
||||
|
||||
header nav{border-radius: 4px; box-shadow: 0 1px 2px black; width: 294px; margin: auto;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#31363e));
|
||||
background-image: -webkit-linear-gradient(#595d63 6.6%, #31363e);
|
||||
background-image: -moz-linear-gradient(#595d63 6.6%, #31363e);
|
||||
background-image: -o-linear-gradient(#595d63 6.6%, #31363e);
|
||||
margin-top: 2px;
|
||||
height:30px
|
||||
}
|
||||
header nav.shorter_nav{
|
||||
width: 207px;
|
||||
}
|
||||
header nav a{padding: 8px 12px 8px 34px; display: inline-block; color: #D6DADF; border-right: 1px solid #31363E; position: relative; box-shadow: 1px 0 0 rgba(255,255,255,.1); margin: 0}
|
||||
header nav a span{width: 20px; height: 20px; display: inline-block; background: red; position: absolute; left: 8px; top: 6px;}
|
||||
header nav a:last-child {border: 0; box-shadow: none}
|
||||
header nav a:hover, header nav a.current{
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#2c2f35));
|
||||
background-image: -webkit-linear-gradient(#595d63 6.6%, #2c2f35);
|
||||
background-image: -moz-linear-gradient(#595d63 6.6%, #202227);
|
||||
background-image: -o-linear-gradient(#595d63 6.6%, #202227);
|
||||
}
|
||||
|
||||
header nav a:active{
|
||||
box-shadow: 0 1px 4px rgba(0,0,0,.8) inset;
|
||||
}
|
||||
|
||||
header nav a.dashboard {
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-moz-border-radius-bottomleft: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
header nav a.last_elem{
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-moz-border-radius-bottomright: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
header .search{ display: inline-block; float: right; margin-right: 90px}
|
||||
|
||||
header nav a span{width: 20px; height: 20px; display: inline-block; background: red; position: absolute; left: 8px; top: 6px;}
|
||||
|
||||
header nav a.dashboard span{background: url('images.png') no-repeat -161px 0;}
|
||||
header nav a.admin span{background: url('images.png') no-repeat -184px 0;}
|
||||
header nav a.project span{background: url('images.png') no-repeat -209px -1px; top: 7px}
|
||||
header nav a.issues span{background: url('images.png') no-repeat -209px -1px; top: 7px}
|
||||
|
||||
header .login-top{float: right; width: 180px;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 62, color-stop(0.032, #464c56), to(#363c45));
|
||||
background-image: -webkit-linear-gradient(#464c56 3.2%, #363c45);
|
||||
background-image: -moz-linear-gradient(#464c56 3.2%, #363c45);
|
||||
background-image: -o-linear-gradient(#464c56 3.2%, #363c45);
|
||||
padding: 0 10px;
|
||||
height: 44px;
|
||||
}
|
||||
header .login-top a{display: block;}
|
||||
header .login-top a.pic{float: left; margin-right: 10px;
|
||||
img{ height: 36px; width: 36px; border: 1px solid black}
|
||||
}
|
||||
header .login-top a.username{margin-bottom: 5px}
|
||||
header .login-top a.logout{color: #ccc}
|
||||
header{margin-bottom: 0; clear: both; position:relative;}
|
||||
|
||||
.page-title{background-color: #f1f1f1;display: block; float: left; clear: both; width: 98%; padding: 1% 1%; border-bottom: 1px solid #ccc; box-shadow: 0 -1px 0 white inset; margin-bottom: 1.5em}
|
||||
.page-title h1{font-size: 20px; width: 400px; margin: 0; padding-top: 8px }
|
||||
.page-title a.grey-button{float: right;}
|
||||
.right{float: right;}
|
||||
|
||||
/* Account box */
|
||||
header .account-box{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 8px;
|
||||
z-index: 10000;
|
||||
width: 128px;
|
||||
font-size: 11px;
|
||||
float: right;
|
||||
display: block;
|
||||
cursor: pointer;}
|
||||
header .account-box img{
|
||||
border-radius: 4px;
|
||||
right: 20px;
|
||||
position: absolute;
|
||||
width: 33px; height: 33px;
|
||||
display: block; top:0;}
|
||||
header .account-box img:after{
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
float: right;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(255, 255, 255, .1);
|
||||
border-bottom: 0;
|
||||
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 255, 255, .15)), to(rgba(0, 0, 0, .25))), -webkit-gradient(linear, left top, right bottom, color-stop(0, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, .1)), color-stop(0.501, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0)));
|
||||
background: -moz-linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .25)), -moz-linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
|
||||
background: linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .25)), linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
|
||||
-webkit-background-origin: border-box;
|
||||
-moz-background-origin: border;
|
||||
background-origin: border-box;
|
||||
}
|
||||
|
||||
.account-box.hover{height: 138px;}
|
||||
|
||||
.account-box:hover > .account-links{display: block;}
|
||||
header .account-links{
|
||||
background: #79C3E0; display: none; border-radius: 5px; width: 100px; margin-top: 0; float: right; box-shadow: 0 1px 1px rgba(0,0,0,.2); position:relative;}
|
||||
header .account-links:before {
|
||||
content: ".";
|
||||
width:0;
|
||||
height:0;
|
||||
position:absolute;
|
||||
border:5px solid transparent;
|
||||
border-color:rgba(255,255,255,0);
|
||||
border-bottom-color:#fafafa;
|
||||
text-indent:-9999px;
|
||||
top:-10px;
|
||||
line-height:0;
|
||||
right:10px;
|
||||
z-index:10;
|
||||
}
|
||||
|
||||
/* Inspired by http://maxvoltar.com/temp/nowplaying/ */
|
||||
header .account-links{background: white; display: none; z-index: 100000; border-radius: 5px; width: 100px; position: absolute; right: 20px; top: 46px; margin-top: 0; float: right; box-shadow: 0 1px 1px rgba(0,0,0,.2); }
|
||||
header .account-links a{color: #666; padding: 6px 10px; display: block; text-shadow: none; border-bottom: 1px solid #eee}
|
||||
header .account-links a:hover{
|
||||
background: #3aacec;
|
||||
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#39acec), to(#279ada), color-stop(.05, #4cbefe));
|
||||
background: -moz-linear-gradient(top, #39acec, #4cbefe 5%, #279ada);
|
||||
background: linear-gradient(top, #39acec, #4cbefe 5%, #279ada);
|
||||
color: #fff;
|
||||
text-shadow: #1488c8 0 -1px 0;
|
||||
}
|
||||
.account-box.hover .arrow-up{top: 41px; right: 6px; position: absolute}
|
||||
header .account-links a:first-child{
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
header .account-links a:last-child{
|
||||
-webkit-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.big-message{
|
||||
background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.041, #eccb40), to(#ffee4d));
|
||||
background-image: -webkit-linear-gradient(90deg, #eccb40 4.1%, #ffee4d);
|
||||
background-image: -moz-linear-gradient(90deg, #eccb40 4.1%, #ffee4d);
|
||||
background-image: -o-linear-gradient(90deg, #eccb40 4.1%, #ffee4d);
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
padding: 10px 20px;
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,.3);
|
||||
color: #333;
|
||||
color: rgba(0,0,0,.7);
|
||||
font-size: 14px;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.7);
|
||||
z-index: 100000;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.big-message a{color: #000; text-decoration: underline;}
|
||||
|
||||
.big-message.error{
|
||||
background-color: #722523;
|
||||
background-image: -webkit-gradient(linear, 0 49, 0 0, color-stop(0.04, #722523), to(#ad4846));
|
||||
background-image: -webkit-linear-gradient(90deg, #9b403f 4%, #c16765);
|
||||
background-image: -moz-linear-gradient(90deg, #722523 4%, #ad4846);
|
||||
background-image: -o-linear-gradient(90deg, #722523 4%, #ad4846);
|
||||
color: #2E0D0C;
|
||||
}
|
||||
|
||||
.big-message.success{
|
||||
background-color: #7a9339;
|
||||
background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.062, #7a9339), to(#93ae46));
|
||||
background-image: -webkit-linear-gradient(90deg, #7a9339 6.2%, #93ae46);
|
||||
background-image: -moz-linear-gradient(90deg, #7a9339 6.2%, #93ae46);
|
||||
background-image: -o-linear-gradient(90deg, #7a9339 6.2%, #93ae46)
|
||||
}
|
||||
|
||||
.big-message.success{
|
||||
background-color: #7a9339;
|
||||
background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.062, #7a9339), to(#93ae46));
|
||||
background-image: -webkit-linear-gradient(90deg, #7a9339 6.2%, #93ae46);
|
||||
background-image: -moz-linear-gradient(90deg, #7a9339 6.2%, #93ae46);
|
||||
background-image: -o-linear-gradient(90deg, #7a9339 6.2%, #93ae46)
|
||||
}
|
||||
|
||||
.big-message.notice{
|
||||
background-image: -webkit-gradient(linear, 0 49, 0 0, color-stop(0.061, #447790), color-stop(0.897, #5da2bf));
|
||||
background-image: -webkit-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%);
|
||||
background-image: -moz-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%);
|
||||
background-image: -o-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%)
|
||||
}
|
||||
|
||||
/* eo Account Box */
|
||||
input.search-input{
|
||||
float: left;
|
||||
text-shadow: none;
|
||||
width: 116px;
|
||||
background-image: url('icon-search.png') ;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #AAA;
|
||||
background-color: #FFF;
|
||||
padding: 5px;
|
||||
padding-left: 26px;
|
||||
margin-top: 2px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
/*input.search-input:focus{ background-color: white; width: 216px;}*/
|
||||
input.search-input::-webkit-input-placeholder {color: #666}
|
||||
/* eo Header */
|
||||
|
||||
h2.icon{position: relative; padding-left: 40px; float: left; }
|
||||
/*h2 a{font-weight: normal;}*/
|
||||
h2.icon span{background: #E3E5EA url('images.png'); height: 32px; width: 32px; left: 0; top: -5px; border-radius: 4px; display: inline-block; position: absolute}
|
||||
|
||||
/* Dashboard Page */
|
||||
html, body { height: 100%; }
|
||||
|
||||
|
||||
|
||||
|
||||
.grey-button.right{margin-top: 20px}
|
||||
|
||||
/* Project Page */
|
||||
/* eo New Project Page */
|
||||
|
||||
|
||||
/* eo Project Page */
|
||||
|
||||
/* Projects Page */
|
||||
body.projects-page h2.icon span{background-position: -31px -70px;}
|
||||
body.projects-page .project-box.ui-box .data .repository {margin-bottom: 20px}
|
||||
body.projects-page .project-box.ui-box .data .title span{ font-weight: bold;}
|
||||
body.projects-page .project-box{width: 100%; margin-bottom: 3em}
|
||||
body.projects-page .browse-code{margin-right: 10px}
|
||||
/* eo Projects Page */
|
||||
|
||||
/* ==|== non-semantic helper classes ======================================== */
|
||||
.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; }
|
||||
.ir br { display: none; }
|
||||
.hidden { display: none !important; visibility: hidden; }
|
||||
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
||||
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
|
||||
.invisible { visibility: hidden; }
|
||||
.clearfix:before, .clearfix:after { content: ""; display: table; }
|
||||
.clearfix:after { clear: both; }
|
||||
.clearfix { zoom: 1; }
|
||||
|
||||
/* ==|== media queries ====================================================== */
|
||||
|
||||
@media only screen and (min-width: 480px) {
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
|
||||
}
|
||||
|
||||
/* ==|== print styles ======================================================= */
|
||||
|
||||
@media print {
|
||||
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; }
|
||||
a, a:visited { text-decoration: underline; }
|
||||
a[href]:after { content: " (" attr(href) ")"; }
|
||||
abbr[title]:after { content: " (" attr(title) ")"; }
|
||||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
|
||||
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
|
||||
thead { display: table-header-group; }
|
||||
tr, img { page-break-inside: avoid; }
|
||||
img { max-width: 100% !important; }
|
||||
@page { margin: 0.5cm; }
|
||||
p, h2, h3 { orphans: 3; widows: 3; }
|
||||
h2, h3 { page-break-after: avoid; }
|
||||
}
|
||||
|
||||
body, button, input, select, textarea {
|
||||
font-family: "helvetica", "arial", "freesans", "clean", sans-serif;
|
||||
}
|
||||
|
||||
/** FORM INPUTS **/
|
||||
.new_merge_request,
|
||||
.edit_merge_request,
|
||||
.user_new,
|
||||
.new_key,
|
||||
.new_issue,
|
||||
.new_note,
|
||||
.edit_user,
|
||||
.edit_issue,
|
||||
.new_project,
|
||||
.new_snippet,
|
||||
.edit_snippet,
|
||||
.edit_project {
|
||||
input[type='text'],
|
||||
input[type='email'],
|
||||
input[type='password'],
|
||||
textarea {
|
||||
width:400px;
|
||||
padding:8px;
|
||||
font-size:14px;
|
||||
@include round-borders-all(4px);
|
||||
}
|
||||
}
|
||||
|
||||
.text_field {
|
||||
width:400px;
|
||||
padding:8px;
|
||||
font-size:14px;
|
||||
@include round-borders-all(4px);
|
||||
}
|
||||
|
||||
.input_button {
|
||||
padding:8px;
|
||||
font-size:14px;
|
||||
cursor:pointer;
|
||||
background-color: #F5F5F5;
|
||||
border-color: #EEEEEE #DEDEDE #DEDEDE #EEEEEE;
|
||||
border-right: 1px solid #DEDEDE;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
/** FLASH **/
|
||||
#flash_container {
|
||||
height:45px;
|
||||
position:fixed;
|
||||
z-index:10001;
|
||||
top:0px;
|
||||
width:100%;
|
||||
margin-bottom:15px;
|
||||
overflow:hidden;
|
||||
background:white;
|
||||
cursor:pointer;
|
||||
border-bottom:1px solid #777;
|
||||
|
||||
h4 {
|
||||
color:#444;
|
||||
font-size:22px;
|
||||
padding-top:5px;
|
||||
margin:2px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.errors_holder {
|
||||
background:#D30;
|
||||
color:#fff;
|
||||
@include round-borders-all(4px);
|
||||
border:1px solid #a30;
|
||||
padding:5px;
|
||||
list-style:none;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
|
||||
li {
|
||||
padding:10px;
|
||||
}
|
||||
}
|
||||
|
||||
.notice_holder {
|
||||
background:#DDF4FB;
|
||||
color:#444;
|
||||
border:1px solid #C6EDF9;
|
||||
@include round-borders-all(4px);
|
||||
padding:5px;
|
||||
list-style:none;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
|
||||
|
||||
li {
|
||||
padding:10px;
|
||||
}
|
||||
}
|
||||
|
||||
.alert_holder {
|
||||
background:#FDF5D9;
|
||||
color:#444;
|
||||
border:1px solid #FCEEC1;
|
||||
@include round-borders-all(4px);
|
||||
padding:5px;
|
||||
list-style:none;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
|
||||
|
||||
li {
|
||||
padding:10px;
|
||||
}
|
||||
}
|
||||
|
||||
.help_content {
|
||||
margin:20px;
|
||||
margin-top:71px;
|
||||
|
||||
h2 {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.menu {
|
||||
float:left;
|
||||
width:20%;
|
||||
|
||||
.active {
|
||||
color: $active_bd_color;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
float:right;
|
||||
width:78%;
|
||||
}
|
||||
|
||||
.bash {
|
||||
@include round-borders-all(4px);
|
||||
background:#eee;
|
||||
padding:5px;
|
||||
//overflow-x:scroll;
|
||||
pre{
|
||||
padding:0;
|
||||
line-height:2.0;
|
||||
margin:0;
|
||||
font-family: 'Courier New', 'andale mono','lucida console',monospace;
|
||||
color: #333;
|
||||
text-align:left;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
.tag {
|
||||
@include round-borders-all(4px);
|
||||
padding:2px 4px;
|
||||
border:none;
|
||||
text-shadow:none;
|
||||
|
||||
&.inline {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
&.high, &.closed {
|
||||
background: #D12F19;
|
||||
color:white;
|
||||
}
|
||||
|
||||
&.today, &.open {
|
||||
background: #44aa22;
|
||||
color:white;
|
||||
}
|
||||
|
||||
&.yours {
|
||||
background: #4466cc;
|
||||
color:white;
|
||||
}
|
||||
&.normal {
|
||||
background: #2c5ca6;
|
||||
color:white;
|
||||
}
|
||||
&.notes {
|
||||
background: #2c5c66;
|
||||
color:white;
|
||||
}
|
||||
|
||||
&.note {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
|
||||
background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
color: #777;
|
||||
border: 1px solid #DEDFE1;
|
||||
}
|
||||
&.issue {
|
||||
background: #D12F19;
|
||||
color:white;
|
||||
}
|
||||
&.commit {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
|
||||
background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
|
||||
color: #777;
|
||||
border: 1px solid #DEDFE1;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,62 @@
|
|||
body header {
|
||||
position:absolute;
|
||||
width:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
top:0;
|
||||
left:0;
|
||||
background: #F1F1F1; /* for non-css3 browsers */
|
||||
border-bottom: 1px solid #ccc;
|
||||
box-shadow: 0 -1px 0 white inset;
|
||||
-moz-box-shadow: 0 -1px 0 white inset;
|
||||
-webkit-box-shadow: 0 -1px 0 white inset;
|
||||
|
||||
height:50px;
|
||||
|
||||
.wrapper {
|
||||
margin:auto;
|
||||
min-width:$min_app_width;
|
||||
max-width:$max_app_width;
|
||||
position:relative;
|
||||
padding:10px $app_padding;
|
||||
}
|
||||
|
||||
.project_name {
|
||||
float:left;
|
||||
width:235px;
|
||||
margin-right:30px;
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
padding:8px;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
.git_url_wrapper {
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
float:left;
|
||||
|
||||
.git-url {
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
font-size: 12px;
|
||||
|
||||
margin-right:10px;
|
||||
border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
|
||||
|
||||
color: #666;
|
||||
border: 1px solid #AAA;
|
||||
padding: 0 10px 0 30px;
|
||||
background: transparent url('images.png') no-repeat 8px -42px;
|
||||
width: 260px;
|
||||
height:26px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_links {
|
||||
width:130px;
|
||||
width:155px;
|
||||
float:left;
|
||||
|
||||
a {
|
||||
|
@ -47,100 +104,103 @@
|
|||
}
|
||||
}
|
||||
|
||||
body header {
|
||||
position:absolute;
|
||||
width:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
top:0;
|
||||
left:0;
|
||||
background: #999; /* for non-css3 browsers */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#EAEAEA'); /* for IE */
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#EAEAEA)); /* for webkit browsers */
|
||||
background: -moz-linear-gradient(top, #FFFFFF, #EAEAEA); /* for firefox 3.6+ */
|
||||
background: -o-linear-gradient(top, #FFFFFF, #EAEAEA); /* for firefox 3.6+ */
|
||||
border-bottom: 1px solid #ccc;
|
||||
|
||||
height:50px;
|
||||
|
||||
.wrapper {
|
||||
margin:auto;
|
||||
width:$app_width;
|
||||
position:relative;
|
||||
|
||||
.top_panel_content {
|
||||
padding:10px $app_padding;
|
||||
}
|
||||
}
|
||||
|
||||
.project_name {
|
||||
float:left;
|
||||
width:235px;
|
||||
margin-right:30px;
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
padding:8px;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
.git_url_wrapper {
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
float:left;
|
||||
|
||||
.git-url {
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
font-size: 12px;
|
||||
|
||||
margin-right:10px;
|
||||
border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
|
||||
|
||||
color: #666;
|
||||
border: 1px solid #AAA;
|
||||
padding: 0 10px 0 30px;
|
||||
background: transparent url('images.png') no-repeat 8px -42px;
|
||||
width: 160px;
|
||||
height:26px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top_panel_holder .chzn-container {
|
||||
position:relative;
|
||||
|
||||
.chzn-drop {
|
||||
margin:7px 0;
|
||||
border: 1px solid #CCC;
|
||||
min-width: 300px;
|
||||
|
||||
.chzn-results {
|
||||
max-height:300px;
|
||||
}
|
||||
}
|
||||
|
||||
.chzn-single {
|
||||
background:transparent;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
div {
|
||||
background:transparent;
|
||||
border-left:none;
|
||||
}
|
||||
|
||||
span {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rss-icon {
|
||||
margin:0 15px;
|
||||
padding:3px;
|
||||
border:1px solid #AAA;
|
||||
border-radius:3px;
|
||||
float:left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Account box */
|
||||
header .account-box{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 8px;
|
||||
z-index: 10000;
|
||||
width: 128px;
|
||||
font-size: 11px;
|
||||
float: right;
|
||||
display: block;
|
||||
cursor: pointer;}
|
||||
header .account-box img{
|
||||
border-radius: 4px;
|
||||
right: 20px;
|
||||
position: absolute;
|
||||
width: 33px; height: 33px;
|
||||
display: block; top:0;}
|
||||
header .account-box img:after{
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
float: right;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(255, 255, 255, .1);
|
||||
border-bottom: 0;
|
||||
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 255, 255, .15)), to(rgba(0, 0, 0, .25))), -webkit-gradient(linear, left top, right bottom, color-stop(0, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, .1)), color-stop(0.501, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0)));
|
||||
background: -moz-linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .25)), -moz-linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
|
||||
background: linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .25)), linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
|
||||
-webkit-background-origin: border-box;
|
||||
-moz-background-origin: border;
|
||||
background-origin: border-box;
|
||||
}
|
||||
|
||||
.account-box.hover{height: 138px;}
|
||||
.account-box:hover > .account-links{display: block;}
|
||||
header .account-links{ background: #79C3E0; display: none; border-radius: 5px; width: 100px; margin-top: 0; float: right; box-shadow: 0 1px 1px rgba(0,0,0,.2); position:relative;}
|
||||
|
||||
header .account-links:before {
|
||||
content: ".";
|
||||
width:0;
|
||||
height:0;
|
||||
position:absolute;
|
||||
border:5px solid transparent;
|
||||
border-color:rgba(255,255,255,0);
|
||||
border-bottom-color:#333;
|
||||
text-indent:-9999px;
|
||||
top:-10px;
|
||||
line-height:0;
|
||||
right:10px;
|
||||
z-index:10;
|
||||
}
|
||||
|
||||
header .account-links{
|
||||
background: #333;
|
||||
display: none;
|
||||
z-index: 100000;
|
||||
border-radius: 5px;
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 46px;
|
||||
margin-top: 0;
|
||||
float: right;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,.2);
|
||||
}
|
||||
|
||||
header .account-links a{color: #EEE; padding: 6px 10px; display: block; text-shadow: none; border-bottom: 1px solid #555}
|
||||
header .account-links a:hover{ background: #444;}
|
||||
.account-box.hover .arrow-up{top: 41px; right: 6px; position: absolute}
|
||||
header .account-links a:first-child{
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
header .account-links a:last-child{
|
||||
-webkit-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
|
|
@ -8,13 +8,10 @@
|
|||
}
|
||||
|
||||
.tree_progress {
|
||||
float:left;
|
||||
width:16px;
|
||||
height:16px;
|
||||
margin:2px 6px;
|
||||
display:none;
|
||||
margin:20px;
|
||||
&.loading {
|
||||
background-position: 0px 0px;
|
||||
background: url("ajax-loader-facebook.gif") no-repeat;
|
||||
display:block;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,5 +114,15 @@ table.highlighttable .linenodiv pre {
|
|||
.tree-item {
|
||||
&:hover {
|
||||
background: #FFFFCF;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.tree-item-file-name {
|
||||
font-weight:bold;
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,12 @@ class Admin::ProjectsController < ApplicationController
|
|||
def update
|
||||
@admin_project = Project.find_by_code(params[:id])
|
||||
|
||||
owner_id = params[:project][:owner_id]
|
||||
|
||||
if owner_id
|
||||
@admin_project.owner = User.find(owner_id)
|
||||
end
|
||||
|
||||
if @admin_project.update_attributes(params[:project])
|
||||
redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
|
||||
else
|
||||
|
|
|
@ -95,4 +95,8 @@ class ApplicationController < ActionController::Base
|
|||
response.headers["Pragma"] = "no-cache"
|
||||
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
|
||||
end
|
||||
|
||||
def render_full_content
|
||||
@full_content = true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,6 +29,8 @@ class CommitsController < ApplicationController
|
|||
|
||||
@line_notes = project.commit_line_notes(@commit)
|
||||
|
||||
render_full_content
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js { respond_with_notes }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class KeysController < ApplicationController
|
||||
layout "profile"
|
||||
respond_to :js
|
||||
respond_to :js, :html
|
||||
|
||||
def index
|
||||
@keys = current_user.keys.all
|
||||
|
|
|
@ -39,6 +39,8 @@ class MergeRequestsController < ApplicationController
|
|||
@notes = @merge_request.notes.inc_author.order("created_at DESC").limit(20)
|
||||
@note = @project.notes.new(:noteable => @merge_request)
|
||||
|
||||
render_full_content
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js { respond_with_notes }
|
||||
|
|
|
@ -68,7 +68,8 @@ class ProjectsController < ApplicationController
|
|||
|
||||
def show
|
||||
return render "projects/empty" unless @project.repo_exists? && @project.has_commits?
|
||||
limit = (params[:limit] || 20).to_i
|
||||
limit = (params[:limit] || 10).to_i
|
||||
|
||||
@activities = @project.activities(limit)#updates_wo_repo(limit)
|
||||
end
|
||||
|
||||
|
|
|
@ -8,16 +8,27 @@ class RefsController < ApplicationController
|
|||
|
||||
before_filter :ref
|
||||
before_filter :define_tree_vars, :only => [:tree, :blob]
|
||||
before_filter :render_full_content
|
||||
|
||||
layout "project"
|
||||
|
||||
def switch
|
||||
new_path = if params[:destination] == "tree"
|
||||
tree_project_ref_path(@project, params[:ref])
|
||||
else
|
||||
project_commits_path(@project, :ref => params[:ref])
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
new_path = if params[:destination] == "tree"
|
||||
tree_project_ref_path(@project, params[:ref])
|
||||
else
|
||||
project_commits_path(@project, :ref => params[:ref])
|
||||
end
|
||||
|
||||
redirect_to new_path
|
||||
redirect_to new_path
|
||||
end
|
||||
format.js do
|
||||
@ref = params[:ref]
|
||||
define_tree_vars
|
||||
render "tree"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
|
|
@ -40,7 +40,7 @@ class TeamMembersController < ApplicationController
|
|||
@team_member.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to root_path }
|
||||
format.html { redirect_to team_project_path(@project) }
|
||||
format.js { render :nothing => true }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,6 +3,7 @@ module DashboardHelper
|
|||
case object.class.name.to_s
|
||||
when "Issue" then project_issue_path(project, project.issues.find(object.id))
|
||||
when "Commit" then project_commit_path(project, project.repo.commits(object.id).first)
|
||||
when "MergeRequest" then project_merge_request_path(project, object.id)
|
||||
when "Note"
|
||||
then
|
||||
note = object
|
||||
|
@ -26,6 +27,7 @@ module DashboardHelper
|
|||
when "Note" then markdown(object.note)
|
||||
when "Issue" then object.title
|
||||
when "Commit" then object.safe_message
|
||||
when "MergeRequest" then object.title
|
||||
else return "Project Wall"
|
||||
end
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
class Commit
|
||||
include ActiveModel::Conversion
|
||||
extend ActiveModel::Naming
|
||||
|
||||
attr_accessor :commit
|
||||
attr_accessor :head
|
||||
|
@ -18,6 +20,10 @@ class Commit
|
|||
:id,
|
||||
:to => :commit
|
||||
|
||||
def persisted?
|
||||
false
|
||||
end
|
||||
|
||||
def initialize(raw_commit, head = nil)
|
||||
@commit = raw_commit
|
||||
@head = head
|
||||
|
|
|
@ -6,34 +6,31 @@
|
|||
- @admin_project.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :code
|
||||
%br
|
||||
= f.text_field :code
|
||||
.form-row
|
||||
.input= f.text_field :code
|
||||
.clearfix
|
||||
= f.label :path
|
||||
%br
|
||||
= f.text_field :path
|
||||
.input= f.text_field :path
|
||||
|
||||
.form-row
|
||||
= f.label :tag_list
|
||||
%br
|
||||
= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field
|
||||
- unless @admin_project.new_record?
|
||||
.clearfix
|
||||
= f.label :owner_id
|
||||
.input= f.select :owner_id, User.all.map { |user| [user.name, user.id] }
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :description
|
||||
%br
|
||||
= f.text_area :description
|
||||
.input= f.text_area :description
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
taggifyForm();
|
||||
$('#project_owner_id').chosen();
|
||||
})
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
%td= link_to 'Destroy', [:admin, project], :confirm => 'Are you sure?', :method => :delete
|
||||
|
||||
= paginate @admin_projects
|
||||
= link_to 'New Project', new_admin_project_path, :class => "grey-button"
|
||||
= link_to 'New Project', new_admin_project_path, :class => "btn"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
= @admin_project.description
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
= link_to 'Edit', edit_admin_project_path(@admin_project), :class => "grey-button"
|
||||
= link_to 'Edit', edit_admin_project_path(@admin_project), :class => "btn"
|
||||
|
||||
|
||||
.span-14
|
||||
|
@ -53,7 +53,7 @@
|
|||
|
||||
%tr
|
||||
%td{ :colspan => 3 }
|
||||
= submit_tag 'Add', :class => "positive-button"
|
||||
= submit_tag 'Add', :class => "btn primary"
|
||||
|
||||
%table.round-borders
|
||||
%thead
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
= f.select :repo_access, options_for_select(Repository.access_options, @admin_team_member.repo_access), {}, :class => "repo-access-select"
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
:css
|
||||
form select {
|
||||
|
|
|
@ -25,4 +25,4 @@
|
|||
%br
|
||||
|
||||
= paginate @admin_team_members
|
||||
= link_to 'New Team Member', new_admin_team_member_path, :class => "grey-button"
|
||||
= link_to 'New Team Member', new_admin_team_member_path, :class => "btn"
|
||||
|
|
|
@ -2,48 +2,41 @@
|
|||
= form_for [:admin, @admin_user] do |f|
|
||||
-if @admin_user.errors.any?
|
||||
#error_explanation
|
||||
%h2= "#{pluralize(@admin_user.errors.count, "error")} prohibited this admin_user from being saved:"
|
||||
%ul
|
||||
- @admin_user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
.input= f.text_field :email
|
||||
.clearfix
|
||||
= f.label :password
|
||||
%br
|
||||
= f.password_field :password
|
||||
.form-row
|
||||
.input= f.password_field :password
|
||||
.clearfix
|
||||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.form-row
|
||||
.input= f.password_field :password_confirmation
|
||||
.clearfix
|
||||
= f.check_box :admin
|
||||
= f.label :admin
|
||||
|
||||
.form-row
|
||||
= f.text_field :projects_limit, :class => "small_input"
|
||||
.clearfix
|
||||
= f.label :projects_limit
|
||||
.input= f.text_field :projects_limit, :class => "small_input"
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
.input= f.text_field :skype
|
||||
.clearfix
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
.input= f.text_field :linkedin
|
||||
.clearfix
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.input= f.text_field :twitter
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn primary"
|
||||
= link_to 'Cancel', admin_users_path, :class => "btn"
|
||||
|
|
|
@ -18,4 +18,4 @@
|
|||
|
||||
= paginate @admin_users
|
||||
%br
|
||||
= link_to 'New User', new_admin_user_path, :class => "grey-button"
|
||||
= link_to 'New User', new_admin_user_path, :class => "btn"
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
%h1 New user
|
||||
|
||||
%h2 New user
|
||||
%hr
|
||||
= render 'form'
|
||||
|
||||
%br
|
||||
= link_to 'Back', admin_users_path, :class => ""
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
= @admin_user.twitter
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user), :class => "grey-button"
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user), :class => "btn"
|
||||
|
||||
.span-14
|
||||
%h2 Projects
|
||||
|
@ -66,4 +66,4 @@
|
|||
%td= link_to 'Edit', edit_admin_team_member_path(tm)
|
||||
%td= link_to 'Cancel', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete
|
||||
|
||||
= link_to 'Add To Another Project', new_admin_team_member_path(:team_member => {:user_id => @admin_user.id}), :class => "grey-button"
|
||||
= link_to 'Add To Another Project', new_admin_team_member_path(:team_member => {:user_id => @admin_user.id}), :class => "btn"
|
||||
|
|
|
@ -1,33 +1,19 @@
|
|||
- @commits.group_by { |c| c.committed_date.to_date }.each do |day, commits|
|
||||
%div{ :class => "commits-date ui-box ui-box-small ui-box-big" }
|
||||
.day-commits-table
|
||||
%h3= day.stamp("28 Aug, 2010")
|
||||
.data
|
||||
%h5.underlined= day.stamp("28 Aug, 2010")
|
||||
%br
|
||||
%ul.unstyled
|
||||
- commits.each do |commit|
|
||||
%a{ :class => "commit", :href => project_commit_path(@project, :id => commit.id) }
|
||||
%span.commit-info
|
||||
%data.commit-button
|
||||
= truncate(commit.id.to_s, :length => 16)
|
||||
%i
|
||||
%data.commit-browse{ :onclick => "location.href='#{tree_project_ref_path(@project, commit.id)}';return false;"}
|
||||
Browse Code
|
||||
- if commit.author_email
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
- else
|
||||
= image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= truncate(commit.safe_message, :length => 70)
|
||||
%span.commit-author
|
||||
Authored by
|
||||
|
||||
%strong= commit.author_name
|
||||
= time_ago_in_words(commit.authored_date)
|
||||
ago
|
||||
- if commit.author_name != commit.committer_name or commit.author_email != commit.committer_email or commit.authored_date != commit.committed_date
|
||||
%span.commit-committer
|
||||
Committed by
|
||||
|
||||
%strong= commit.committer_name
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
%li.entry
|
||||
= link_to project_commit_path(@project, :id => commit.id) do
|
||||
%div
|
||||
%strong
|
||||
= truncate commit.id.to_s, :length => 10
|
||||
–
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
|
||||
= truncate(commit.safe_message, :length => 50)
|
||||
|
||||
%span.right.cgray
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
|
|
|
@ -1,16 +1,23 @@
|
|||
- content_for(:body_class, "project-page commits-page")
|
||||
- if current_user.private_token
|
||||
= content_for :rss_icon do
|
||||
.rss-icon
|
||||
%h3
|
||||
Commits
|
||||
- if current_user.private_token
|
||||
%span.rss-icon
|
||||
= link_to project_commits_path(@project, :atom, { :private_token => current_user.private_token, :ref => @ref }) do
|
||||
= image_tag "Rss-UI.PNG", :width => 22, :title => "feed"
|
||||
= form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form right" do
|
||||
= select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
|
||||
= hidden_field_tag :destination, "commits"
|
||||
%hr
|
||||
|
||||
- if params[:path]
|
||||
%h2
|
||||
= link_to project_commits_path(@project) do
|
||||
= @project.code
|
||||
\/
|
||||
%a{:href => "#"}= params[:path].split("/").join(" / ")
|
||||
%ul.breadcrumb
|
||||
%li
|
||||
= link_to project_commits_path(@project) do
|
||||
= @project.code
|
||||
%span.divider
|
||||
\/
|
||||
%li
|
||||
%a{:href => "#"}= params[:path].split("/").join(" / ")
|
||||
|
||||
%div{:id => dom_id(@project)}
|
||||
#commits_list= render "commits"
|
||||
|
@ -23,3 +30,8 @@
|
|||
$(function(){
|
||||
CommitsList.init("#{@ref}", 20);
|
||||
});
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('.project-refs-select').chosen();
|
||||
});
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
- content_for(:body_class, "project-page commits-page")
|
||||
.commit
|
||||
%span.commit-info
|
||||
= link_to tree_project_ref_path(@project, @commit.id) do
|
||||
%data.commit-button
|
||||
Browse Code
|
||||
%i
|
||||
= link_to tree_project_ref_path(@project, @commit.id), :class => "btn right" do
|
||||
Browse Code »
|
||||
- if @commit.author_email
|
||||
= image_tag gravatar_icon(@commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
- else
|
||||
|
|
|
@ -1,26 +1,10 @@
|
|||
#feeds_content_holder
|
||||
- unless @issues.empty?
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
.data
|
||||
- @issues.each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(update.project, update)}
|
||||
%strong.issue-number= "##{update.id}"
|
||||
%span.update-title
|
||||
= truncate update.title, :length => 35
|
||||
.right= truncate update.project.name
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- if update.critical
|
||||
%span.tag.high critical
|
||||
- if update.today?
|
||||
%span.tag.today today
|
||||
|
||||
- else
|
||||
%h2
|
||||
No assigned
|
||||
%span.tag.open open
|
||||
issues
|
||||
- @issues.each do |issue|
|
||||
.alert-message.entry
|
||||
= link_to [issue.project, issue] do
|
||||
%p
|
||||
%strong
|
||||
= issue.project.name
|
||||
–
|
||||
Issue #
|
||||
= issue.id
|
||||
= truncate issue.title, :length => 50
|
||||
|
|
|
@ -1,24 +1,10 @@
|
|||
#feeds_content_holder
|
||||
- unless @merge_requests.empty?
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
.data
|
||||
- @merge_requests.each do |update|
|
||||
%a.project-update{:href => project_merge_request_path(update.project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= truncate update.title, :length => 35
|
||||
.right= truncate update.project.name
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
%span.tag.commit= update.source_branch
|
||||
→
|
||||
%span.tag.commit= update.target_branch
|
||||
- else
|
||||
%h2
|
||||
No authored or assigned
|
||||
%span.tag.open open
|
||||
merge requests
|
||||
- @merge_requests.each do |merge_request|
|
||||
.alert-message.entry
|
||||
= link_to [merge_request.project, merge_request] do
|
||||
%p
|
||||
%strong
|
||||
= merge_request.project.name
|
||||
–
|
||||
Merge Request #
|
||||
= merge_request.id
|
||||
= truncate merge_request.title, :length => 50
|
||||
|
|
|
@ -1,20 +1,17 @@
|
|||
#feeds_content_holder
|
||||
- @active_projects.first(3).each do |project|
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
= link_to project do
|
||||
%h3= project.name
|
||||
.data
|
||||
- project.updates(3).each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- klass = update.class.to_s.split("::").last.downcase
|
||||
%span.tag{ :class => klass }= klass
|
||||
- @active_projects.first(3).each do |project|
|
||||
= link_to project do
|
||||
%h4= project.name
|
||||
- project.updates(3).each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32
|
||||
%div
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- klass = update.class.to_s.split("::").last.downcase
|
||||
%span.tag{ :class => klass }= klass
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
%aside
|
||||
%h4
|
||||
- if current_user.can_create_project?
|
||||
%a.button-small.button-green{:href => new_project_path} New Project
|
||||
Your Projects
|
||||
%ol.project-list
|
||||
- @projects.each do |project|
|
||||
%li
|
||||
%a{:href => project_path(project)}
|
||||
-#%span.arrow →
|
||||
%span.project-name= project.name
|
||||
%span.time
|
||||
%strong Last activity:
|
||||
= project.last_activity_date_cached ? time_ago_in_words(project.last_activity_date_cached) + " ago" : "Never"
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/projects_feed"
|
||||
%h3 Activities
|
||||
%hr
|
||||
.news-feed= render "dashboard/projects_feed"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
%h3
|
||||
Issues
|
||||
%small ( assigned to you )
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/issues_feed"
|
||||
%hr
|
||||
= render "dashboard/issues_feed"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
%h3
|
||||
Merge Requests
|
||||
%small ( authored or assigned to you )
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/merge_requests_feed"
|
||||
%hr
|
||||
= render "dashboard/merge_requests_feed"
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
%div
|
||||
= form_for [@project, @key], :url => project_deploy_keys_path do |f|
|
||||
-if @key.errors.any?
|
||||
%ul.errors_holder
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%table.no-borders
|
||||
%tr
|
||||
%td= f.label :title
|
||||
%td= f.text_field :title, :style => "width:300px"
|
||||
%tr
|
||||
%td= f.label :key
|
||||
%td= f.text_area :key, :style => "width:300px; height:130px"
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_field :title
|
||||
.clearfix
|
||||
= f.label :key
|
||||
.input= f.text_area :key, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
= link_to "Cancel", project_deploy_keys_path(@project), :class => "btn"
|
||||
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
= render "repositories/head"
|
||||
- if can? current_user, :admin_project, @project
|
||||
.alert-message.block-message.info
|
||||
Deploy keys allow read-only access to repository.
|
||||
= link_to new_project_deploy_key_path(@project), :class => "btn small", :title => "New Deploy Key" do
|
||||
Add Deploy Key
|
||||
|
||||
%div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
- @keys.each do |key|
|
||||
= render(:partial => 'show', :locals => {:key => key})
|
||||
|
||||
- if @keys.blank?
|
||||
.notice_holder
|
||||
%li Deploy Keys do not exist yet.
|
||||
- if can? current_user, :admin_project, @project
|
||||
%li You can add a new one by clicking on "Add New" button
|
||||
|
||||
:javascript
|
||||
$('.delete-key').live('ajax:success', function() {
|
||||
$(this).closest('.update-item').fadeOut(); });
|
||||
|
||||
%ul.unstyled
|
||||
- @keys.each do |key|
|
||||
%li= render(:partial => 'show', :locals => {:key => key})
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @key.title
|
||||
.data
|
||||
%pre= @key.key
|
||||
.clear
|
||||
.buttons
|
||||
= link_to 'Remove', project_deploy_key_path(@key.project, @key), :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right"
|
||||
.clear
|
||||
|
||||
|
||||
= render "repositories/head"
|
||||
%h3= @key.title
|
||||
%hr
|
||||
%pre= @key.key
|
||||
.actions
|
||||
= link_to 'Remove', project_deploy_key_path(@key.project, @key), :confirm => 'Are you sure?', :method => :delete, :class => "danger btn delete-key"
|
||||
.clear
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
<%= devise_error_messages! %>
|
||||
<%= f.email_field :email, :placeholder => "Email", :class => "text top" %>
|
||||
<br/>
|
||||
<%= f.submit "Reset password", :class => "grey-button" %>
|
||||
<%= f.submit "Reset password", :class => "primary btn" %>
|
||||
<div class="right"> <%= render :partial => "devise/shared/links" %></div>
|
||||
<% end %>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<%= f.password_field :password, :class => "text bottom", :placeholder => "Password" %>
|
||||
|
||||
<% if devise_mapping.rememberable? -%>
|
||||
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
|
||||
<div class="clearfix"> <%= f.label :remember_me %><%= f.check_box :remember_me %></div>
|
||||
<% end -%>
|
||||
<br/>
|
||||
<%= f.submit "Sign in", :class => "grey-button" %>
|
||||
<%= f.submit "Sign in", :class => "primary btn" %>
|
||||
<div class="right"> <%= render :partial => "devise/shared/links" %></div>
|
||||
<% if ldap_enable? -%>
|
||||
<p><%= link_to "via LDAP", user_omniauth_authorize_path(:ldap)%></p>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<%- if controller_name != 'sessions' %>
|
||||
<%= link_to "Sign in", new_session_path(resource_name) %><br />
|
||||
<%= link_to "Sign in", new_session_path(resource_name), :class => "btn" %><br />
|
||||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
||||
|
@ -7,7 +7,7 @@
|
|||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name), :class => "btn" %><br />
|
||||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
||||
|
|
|
@ -1,25 +1,18 @@
|
|||
= render "repositories/head"
|
||||
- unless @hooks.empty?
|
||||
%div.update-data.ui-box.ui-box-small
|
||||
.data
|
||||
- @hooks.each do |hook|
|
||||
%a.update-item{:href => project_hook_path(@project, hook)}
|
||||
%span.update-title{:style => "margin-bottom:0px;"}
|
||||
= hook.url
|
||||
%span.update-author.right
|
||||
Added
|
||||
= time_ago_in_words(hook.created_at)
|
||||
ago
|
||||
- else
|
||||
%h3 No hooks
|
||||
|
||||
.clear
|
||||
%hr
|
||||
%p
|
||||
Post receive hooks. For now only POST request allowed. We send some data with request. Example below
|
||||
- if can? current_user, :admin_project, @project
|
||||
.alert-message.block-message.info
|
||||
Post receive hooks for binding events when someone push to repository.
|
||||
= link_to new_project_hook_path(@project), :class => "btn small", :title => "New Web Hook" do
|
||||
Add Post Receive Hook
|
||||
|
||||
.view_file
|
||||
.view_file_header
|
||||
%strong POST data passed
|
||||
.data.no-padding
|
||||
= render "data_ex"
|
||||
%ul.unstyled
|
||||
- @hooks.each do |hook|
|
||||
%li
|
||||
%a.update-item{:href => project_hook_path(@project, hook)}
|
||||
= hook.url
|
||||
|
||||
.alert-message.block-message.info
|
||||
We send some data with POST request when someone makes git push
|
||||
|
||||
.well= render "data_ex"
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
= render "repositories/head"
|
||||
%h3
|
||||
%span.commit.tag POST
|
||||
= @hook.url
|
||||
|
||||
%pre= @hook.url
|
||||
|
||||
- if can? current_user, :admin_project, @project
|
||||
.merge-tabs
|
||||
= link_to 'Test Hook', test_project_hook_path(@project, @hook), :class => "grey-button"
|
||||
.right
|
||||
= link_to 'Remove', project_hook_path(@project, @hook), :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
.actions
|
||||
= link_to 'Test Hook', test_project_hook_path(@project, @hook), :class => "btn"
|
||||
= link_to 'Remove', project_hook_path(@project, @hook), :confirm => 'Are you sure?', :method => :delete, :class => "danger btn"
|
||||
|
|
|
@ -1,51 +1,41 @@
|
|||
%div.issue-form-holder
|
||||
= form_for [@project, @issue], :remote => request.xhr? do |f|
|
||||
%div
|
||||
%span.entity-info
|
||||
- if request.xhr?
|
||||
= link_to "#back", :onclick => "backToIssues();" do
|
||||
.entity-button
|
||||
Issues
|
||||
%i
|
||||
- else
|
||||
- if @issue.new_record?
|
||||
= link_to project_issues_path(@project) do
|
||||
.entity-button
|
||||
Issues
|
||||
%i
|
||||
- else
|
||||
= link_to project_issue_path(@project, @issue) do
|
||||
.entity-button
|
||||
Show Issue
|
||||
%i
|
||||
|
||||
%h2= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.id}"
|
||||
%hr
|
||||
%h3= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.id}"
|
||||
%hr
|
||||
-if @issue.errors.any?
|
||||
%ul.errors_holder
|
||||
- @issue.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @issue.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%table.no-borders
|
||||
%tr
|
||||
%td= f.label :assignee_id
|
||||
%td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
|
||||
.clearfix
|
||||
= f.label :assignee_id
|
||||
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
|
||||
|
||||
%tr
|
||||
%td= f.label :critical, "Critical"
|
||||
%td= f.check_box :critical
|
||||
|
||||
- unless @issue.new_record?
|
||||
%tr
|
||||
%td= f.label :closed
|
||||
%td= f.check_box :closed
|
||||
.clearfix
|
||||
= f.label :critical, "Critical"
|
||||
.input= f.check_box :critical
|
||||
|
||||
= f.text_area :title, :style => "width:718px; height:100px", :maxlength => 255
|
||||
%br
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
|
||||
- unless @issue.new_record?
|
||||
.clearfix
|
||||
= f.label :closed
|
||||
.input= f.check_box :closed
|
||||
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_area :title, :maxlength => 255, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
|
||||
- if request.xhr?
|
||||
= link_to "Cancel", "#back", :onclick => "backToIssues();", :class => "btn"
|
||||
- else
|
||||
- if @issue.new_record?
|
||||
= link_to "Cancel", project_issues_path(@project), :class => "btn"
|
||||
- else
|
||||
= link_to "Cancel", project_issue_path(@project, @issue), :class => "btn"
|
||||
|
||||
|
||||
- unless @issue.new_record?
|
||||
.right
|
||||
= link_to 'Remove', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
= link_to 'Remove', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "danger btn"
|
||||
|
|
|
@ -1,14 +1,4 @@
|
|||
.top-tabs
|
||||
= link_to project_issues_path(@project), :class => "tab #{'active' if current_page?(project_issues_path(@project)) }" do
|
||||
%span
|
||||
Issues
|
||||
|
||||
-#= link_to project_issues_path(@project), :class => "tab" do
|
||||
%span
|
||||
Milestones
|
||||
|
||||
- if current_page?(project_issues_path(@project))
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_issue_path(@project), :class => "add_new", :title => "New Issue", :remote => true do
|
||||
Add new
|
||||
|
||||
.tabs
|
||||
%li{:class => "#{'active' if current_page?(project_issues_path(@project))}"}
|
||||
= link_to project_issues_path(@project), :class => "tab" do
|
||||
Issues
|
||||
|
|
|
@ -1,26 +1,32 @@
|
|||
%tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
|
||||
%td
|
||||
%strong.issue-number{:class => sort_class}= "##{issue.id}"
|
||||
%span
|
||||
= truncate(html_escape(issue.title), :length => 100)
|
||||
%br
|
||||
%br
|
||||
%div.note-author
|
||||
%strong= issue.assignee.name
|
||||
%cite.cgray
|
||||
= time_ago_in_words(issue.created_at)
|
||||
ago
|
||||
- if issue.critical
|
||||
%span.tag.high critical
|
||||
- if issue.today?
|
||||
%span.tag.today today
|
||||
.right.action-links
|
||||
- if can? current_user, :write_issue, issue
|
||||
- if issue.closed
|
||||
= link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "cgray", :remote => true
|
||||
- else
|
||||
= link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "cgray", :remote => true
|
||||
- if can? current_user, :write_issue, issue
|
||||
= link_to 'Edit', edit_project_issue_path(issue.project, issue), :class => "cgray edit-issue-link", :remote => true
|
||||
- if can?(current_user, :admin_issue, @project) || issue.author == current_user
|
||||
= link_to 'Remove', [issue.project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "cred delete-issue negative", :id => "destroy_issue_#{issue.id}"
|
||||
%li.wll{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
|
||||
= image_tag gravatar_icon(issue.assignee_email), :class => "avatar"
|
||||
%span.update-author
|
||||
assigned to
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(issue.author_id)), :class => "author_link" do
|
||||
= issue.assignee_name
|
||||
- if issue.critical
|
||||
%span.label.important critical
|
||||
- if issue.today?
|
||||
%span.label.success today
|
||||
|
||||
.right
|
||||
- if can? current_user, :write_issue, issue
|
||||
- if issue.closed
|
||||
= link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn small", :remote => true
|
||||
- else
|
||||
= link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "success btn small", :remote => true
|
||||
- if can? current_user, :write_issue, issue
|
||||
= link_to 'Edit', edit_project_issue_path(issue.project, issue), :class => "btn small edit-issue-link", :remote => true
|
||||
-#- if can?(current_user, :admin_issue, @project) || issue.author == current_user
|
||||
= link_to 'Remove', [issue.project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "danger btn small delete-issue", :id => "destroy_issue_#{issue.id}"
|
||||
|
||||
|
||||
= link_to project_issue_path(issue.project, issue) do
|
||||
%p
|
||||
Issue ##{issue.id}:
|
||||
= truncate(issue.title, :length => 50)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,57 +1,54 @@
|
|||
= render "issues/head"
|
||||
- if current_user.private_token
|
||||
= content_for :rss_icon do
|
||||
.rss-icon
|
||||
.issues_content
|
||||
%h3
|
||||
Issues
|
||||
%span.rss-icon
|
||||
= link_to project_issues_path(@project, :atom, { :private_token => current_user.private_token }) do
|
||||
= image_tag "Rss-UI.PNG", :width => 22, :title => "feed"
|
||||
|
||||
%div#issues-table-holder
|
||||
.top_panel_issues
|
||||
= form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :right, :id => "issue_search_form" do
|
||||
= hidden_field_tag :project_id, @project.id, { :id => 'project_id' }
|
||||
= search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
|
||||
|
||||
.left.issues_filter
|
||||
= form_tag project_issues_path(@project), :method => :get do
|
||||
.left
|
||||
= radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0)", :id => "open_issues", :class => "status"
|
||||
= label_tag "open_issues" do
|
||||
%span.tag.open Open
|
||||
.left
|
||||
= radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2)", :id => "closed_issues", :class => "status"
|
||||
= label_tag "closed_issues" do
|
||||
%span.tag.closed Closed
|
||||
.left
|
||||
= radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3)", :id => "my_issues", :class => "status"
|
||||
= label_tag "my_issues","To Me"
|
||||
.left
|
||||
= radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1)", :id => "all_issues", :class => "status"
|
||||
= label_tag "all_issues","All"
|
||||
|
||||
.clear
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_issue_path(@project), :class => "right btn small", :title => "New Issue", :remote => true do
|
||||
New Issue
|
||||
%hr
|
||||
%table.no-borders#issues-table
|
||||
= render "issues"
|
||||
%br
|
||||
%div#issues-table-holder
|
||||
.row
|
||||
.span8
|
||||
%ul.pills.left
|
||||
%li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
|
||||
= link_to project_issues_path(@project, :f => 0) do
|
||||
Open
|
||||
%li{:class => ("active" if params[:f] == "2")}
|
||||
= link_to project_issues_path(@project, :f => 2) do
|
||||
Closed
|
||||
%li{:class => ("active" if params[:f] == "3")}
|
||||
= link_to project_issues_path(@project, :f => 3) do
|
||||
To Me
|
||||
%li{:class => ("active" if params[:f] == "1")}
|
||||
= link_to project_issues_path(@project, :f => 1) do
|
||||
All
|
||||
|
||||
.span2.right
|
||||
= form_tag search_project_issues_path(@project), :method => :get, :remote => true, :id => "issue_search_form", :class => :right do
|
||||
= hidden_field_tag :project_id, @project.id, { :id => 'project_id' }
|
||||
= hidden_field_tag :status, params[:f]
|
||||
= search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
|
||||
|
||||
%hr
|
||||
%ul#issues-table.unstyled= render "issues"
|
||||
|
||||
:javascript
|
||||
var href = $('.issue_search').parent().attr('action');
|
||||
var last_terms = '';
|
||||
|
||||
var setIssueFilter = function(form, value){
|
||||
$.cookie('issue_filter', value, { expires: 140 });
|
||||
form.submit();
|
||||
}
|
||||
|
||||
$('.issue_search').keyup(function() {
|
||||
var terms = $(this).val();
|
||||
var project_id = $('#project_id').val();
|
||||
var status = $('.status:checked').val();
|
||||
var status = $('#status').val();
|
||||
if (terms != last_terms) {
|
||||
last_terms = terms;
|
||||
|
||||
if (terms.length >= 2 || terms.length == 0) {
|
||||
$.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) {
|
||||
$('#issues-table tbody').html(response);
|
||||
$('#issues-table').html(response);
|
||||
setSortable();
|
||||
});
|
||||
}
|
||||
|
@ -62,7 +59,7 @@
|
|||
$(this).closest('tr').fadeOut(); updatePage();});
|
||||
|
||||
function setSortable(){
|
||||
$('#issues-table>tbody').sortable({
|
||||
$('#issues-table').sortable({
|
||||
axis: 'y',
|
||||
dropOnEmpty: false,
|
||||
handle: '.handle',
|
||||
|
@ -73,10 +70,10 @@
|
|||
update: function(){
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
data: $('#issues-table>tbody').sortable('serialize'),
|
||||
data: $('#issues-table').sortable('serialize'),
|
||||
dataType: 'script',
|
||||
complete: function(request){
|
||||
$('#issues-table>tbody').effect('highlight');
|
||||
$('#issues-table').effect('highlight');
|
||||
},
|
||||
url: "#{sort_project_issues_path(@project)}"})
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
:plain
|
||||
$('#issues-table tbody').html("#{escape_javascript(render('issues'))}");
|
||||
$('#issues-table').html("#{escape_javascript(render('issues'))}");
|
||||
setSortable();
|
||||
|
|
|
@ -1,49 +1,42 @@
|
|||
%div
|
||||
%span.entity-info
|
||||
%h3
|
||||
Issue ##{@issue.id}
|
||||
%small
|
||||
created at
|
||||
= @issue.created_at.stamp("Aug 21, 2011")
|
||||
|
||||
%span.right
|
||||
- if can?(current_user, :admin_project, @project) || @issue.author == current_user
|
||||
= link_to edit_project_issue_path(@project, @issue) do
|
||||
.entity-button
|
||||
Edit Issue
|
||||
%i
|
||||
= image_tag gravatar_icon(@issue.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= "Issue ##{@issue.id}:"
|
||||
%span.commit-author
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do
|
||||
%span.author= @issue.author_name
|
||||
- if @issue.author != @issue.assignee
|
||||
→
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
|
||||
%span.author= @issue.assignee_name
|
||||
|
||||
- if @issue.closed
|
||||
= link_to 'Reopen', project_issue_path(@project, @issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn"
|
||||
- else
|
||||
= link_to 'Close', project_issue_path(@project, @issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "btn", :title => "Close merge request"
|
||||
- if can?(current_user, :admin_project, @project) || @issue.author == current_user
|
||||
= link_to edit_project_issue_path(@project, @issue), :class => "btn small" do
|
||||
Edit
|
||||
|
||||
|
||||
= @issue.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
%hr
|
||||
- if @issue.closed
|
||||
.alert-message.error Closed
|
||||
- else
|
||||
.alert-message.success Open
|
||||
|
||||
%hr
|
||||
%br
|
||||
%h3
|
||||
= simple_format @issue.title
|
||||
|
||||
.clear
|
||||
%br
|
||||
%br
|
||||
%div.well
|
||||
%div
|
||||
%cite.cgray Created by
|
||||
= image_tag gravatar_icon(@issue.author_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do
|
||||
%strong.author= @issue.author_name
|
||||
|
||||
.merge-tabs
|
||||
= link_to "#notes", :class => "merge-notes-tab active tab" do
|
||||
%span
|
||||
Notes
|
||||
.right
|
||||
- if @issue.closed
|
||||
= link_to 'Reopen', project_issue_path(@project, @issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "red-button"
|
||||
- else
|
||||
= link_to 'Close', project_issue_path(@project, @issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "positive-button"
|
||||
%cite.cgray and currently assigned to
|
||||
= image_tag gravatar_icon(@issue.assignee_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
|
||||
%strong.author= @issue.assignee_name
|
||||
|
||||
%hr
|
||||
|
||||
%div= simple_format @issue.title
|
||||
|
||||
.merge-request-notes
|
||||
.issue_notes= render "notes/notes"
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
.clear
|
||||
|
||||
.issue_notes= render "notes/notes"
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
%div
|
||||
= form_for @key, :remote => true do |f|
|
||||
= form_for @key do |f|
|
||||
-if @key.errors.any?
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :title
|
||||
= f.text_field :title, :style => "width:300px"
|
||||
.form-row
|
||||
.input= f.text_field :title
|
||||
.clearfix
|
||||
= f.label :key
|
||||
= f.text_area :key, :style => "width:300px; height:130px"
|
||||
.form-row
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
.input= f.text_area :key, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
= link_to "Cancel", keys_path, :class => "btn"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
%a.update-item{:href => key_path(key)}
|
||||
%span.update-title
|
||||
= key.title
|
||||
%span.update-author
|
||||
Added
|
||||
= time_ago_in_words(key.created_at)
|
||||
ago
|
||||
%li.entry
|
||||
= link_to key_path(key) do
|
||||
%strong= key.title
|
||||
%span.right.cgray
|
||||
Added
|
||||
= time_ago_in_words(key.created_at)
|
||||
ago
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
%h2.icon
|
||||
%span>
|
||||
%h3
|
||||
SSH Keys
|
||||
%div#new-key-holder.right
|
||||
= link_to "Add new", new_key_path, :remote => true, :class => "grey-button"
|
||||
%br
|
||||
= link_to "Add new", new_key_path, :class => "btn small right"
|
||||
|
||||
%hr
|
||||
|
||||
%div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
%ul.unstyled
|
||||
- @keys.each do |key|
|
||||
= render(:partial => 'show', :locals => {:key => key})
|
||||
|
||||
:javascript
|
||||
$('.delete-key').live('ajax:success', function() {
|
||||
$(this).closest('.update-item').fadeOut(); });
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
%h1 New key
|
||||
|
||||
%h3 New key
|
||||
%hr
|
||||
= render 'form'
|
||||
|
||||
= link_to 'Back', keys_path
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @key.title
|
||||
.data
|
||||
%pre= @key.key
|
||||
.clear
|
||||
.buttons
|
||||
= link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right"
|
||||
.clear
|
||||
%h3= @key.title
|
||||
%hr
|
||||
%pre= @key.key
|
||||
.actions
|
||||
= link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "btn danger delete-key"
|
||||
|
||||
|
||||
|
|
10
app/views/layouts/_app_side.html.haml
Normal file
10
app/views/layouts/_app_side.html.haml
Normal file
|
@ -0,0 +1,10 @@
|
|||
.fixed
|
||||
%aside
|
||||
-#= link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }"
|
||||
= link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}"
|
||||
= link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide"
|
||||
= link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide"
|
||||
- if current_user.is_admin?
|
||||
= link_to admin_root_path, :class => "admin", :title => "Admin" do
|
||||
Admin
|
||||
= link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}"
|
|
@ -10,7 +10,7 @@
|
|||
$("#flash_container").click(function(){
|
||||
$(this).slideUp("slow");
|
||||
});
|
||||
setTimeout("hideFlash()",2000);
|
||||
setTimeout("hideFlash()",3000);
|
||||
});
|
||||
|
||||
function hideFlash(){
|
||||
|
|
|
@ -11,23 +11,7 @@
|
|||
= truncate @project.name, :length => 28
|
||||
.git_url_wrapper
|
||||
%input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"}
|
||||
- if @project.repo_exists?
|
||||
.left{:style => "margin-left:5px;"}
|
||||
= render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" }
|
||||
= yield :rss_icon
|
||||
|
||||
- else
|
||||
.dashboard_links
|
||||
= link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }"
|
||||
= link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}"
|
||||
= link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide"
|
||||
= link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide"
|
||||
- if current_user.is_admin?
|
||||
= link_to admin_root_path, :class => "admin", :title => "Admin" do
|
||||
Admin
|
||||
= link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}"
|
||||
.search
|
||||
= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input"
|
||||
|
||||
.account-box
|
||||
= link_to profile_path, :class => "pic" do
|
||||
|
@ -36,16 +20,3 @@
|
|||
= link_to profile_path, :class => "username" do
|
||||
My profile
|
||||
= link_to 'Logout', destroy_user_session_path, :class => "logout", :method => :delete
|
||||
- if current_user
|
||||
= javascript_tag do
|
||||
$(function(){
|
||||
$("#search").autocomplete({
|
||||
source: #{raw search_autocomplete_source},
|
||||
select: function(event, ui) { location.href = ui.item.url }
|
||||
});
|
||||
});
|
||||
|
||||
-#- if current_user.require_ssh_key?
|
||||
#no_ssh_key_defined.big-message.error
|
||||
%p
|
||||
No SSH Key is defined. You won't be able to use any Git command!. Click #{link_to( 'here', keys_path )} to add one!
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
- if @project.repo_exists?
|
||||
= link_to "Repository", project_repository_path(@project), :class => repository_tab_class
|
||||
= link_to "Tree", tree_project_ref_path(@project, @ref || @project.root_ref), :class => tree_tab_class
|
||||
= link_to "Commits", project_commits_path(@project, :ref => (@ref || @project.root_ref)), :class => (controller.controller_name == "commits") ? "current" : nil
|
||||
= link_to "Code", tree_project_ref_path(@project, @project.root_ref), :class => tree_tab_class
|
||||
= link_to "Commits", project_commits_path(@project), :class => (controller.controller_name == "commits") ? "current" : nil
|
||||
= link_to "Network", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
|
||||
= link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
|
||||
Issues
|
||||
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
|
||||
Wall
|
||||
- if @project.common_notes.today.count > 0
|
||||
%span{ :class => "number" }= @project.common_notes.today.count
|
||||
= link_to project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do
|
||||
Requests
|
||||
Merge Requests
|
||||
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
|
||||
@Wall
|
||||
- if @project.common_notes.today.count > 0
|
||||
%span.label= @project.common_notes.today.count
|
||||
|
|
46
app/views/layouts/_project_side_right.html.haml
Normal file
46
app/views/layouts/_project_side_right.html.haml
Normal file
|
@ -0,0 +1,46 @@
|
|||
%aside.project-right
|
||||
- if content_for? :sidebar_all
|
||||
= render :sidebar_all
|
||||
- else
|
||||
- if content_for? :sidebar_top_block
|
||||
= yield :sidebar_top_block
|
||||
- else
|
||||
- if can? current_user, :write_project, @project
|
||||
.alert-message.block-message.info
|
||||
You have access to create new issue or merge request.
|
||||
%div
|
||||
= link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do
|
||||
New Issue »
|
||||
%div
|
||||
= link_to new_project_merge_request_path(@project), :title => "New Merge Request", :class => "btn small" do
|
||||
New Merge Request »
|
||||
|
||||
- if current_user.projects.count > 0
|
||||
%div.entry
|
||||
%h5
|
||||
Recent Projects:
|
||||
%ul
|
||||
- current_user.projects.order("id DESC").limit(5).each do |project|
|
||||
%li
|
||||
= link_to project_path(project) do
|
||||
= project.name
|
||||
= link_to "More » ", projects_path
|
||||
|
||||
-#%h4
|
||||
-#Recent Issues:
|
||||
-#%ul
|
||||
-#- current_user.assigned_issues.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_issue_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
||||
-#%h4
|
||||
-#Recent Requests:
|
||||
-#%ul
|
||||
-#- current_user.assigned_merge_requests.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_merge_request_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
38
app/views/layouts/_projects_side.html.haml
Normal file
38
app/views/layouts/_projects_side.html.haml
Normal file
|
@ -0,0 +1,38 @@
|
|||
%aside.projects
|
||||
- if current_user.can_create_project?
|
||||
.alert-message.block-message.info
|
||||
You can create at least
|
||||
= current_user.projects_limit
|
||||
projects. Click on button to add a new one
|
||||
= link_to new_project_path, :class => "btn small" do
|
||||
New Project
|
||||
|
||||
- if current_user.projects.count > 0
|
||||
%div.entry
|
||||
%h5
|
||||
Recent Projects:
|
||||
%ul
|
||||
- current_user.projects.order("id DESC").limit(5).each do |project|
|
||||
%li
|
||||
= link_to project_path(project) do
|
||||
= project.name
|
||||
= link_to "More » ", projects_path
|
||||
|
||||
-#%h5
|
||||
-#Your Issues:
|
||||
-#%ul
|
||||
-#- current_user.assigned_issues.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_issue_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
||||
-#%h5
|
||||
-#Your Merge Requests:
|
||||
-#%ul
|
||||
-#- current_user.assigned_merge_requests.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_merge_request_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
|
@ -10,19 +11,17 @@
|
|||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.admin
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
.project-sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil
|
||||
= link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil
|
||||
= link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil
|
||||
= link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil
|
||||
= link_to "Resque", "/info/resque"
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil
|
||||
= link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil
|
||||
= link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil
|
||||
= link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil
|
||||
= link_to "Resque", "/info/resque"
|
||||
|
||||
.project-content
|
||||
= yield
|
||||
.content= yield
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class, :id => yield(:boyd_id)}
|
||||
%body.application
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
= render :partial => "layouts/page_title"
|
||||
= yield
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
= render :partial => "layouts/app_side"
|
||||
.content
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/projects_side"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
|
@ -12,4 +13,4 @@
|
|||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body.login-page
|
||||
= render :partial => "layouts/flash"
|
||||
= yield
|
||||
.container-fluid= yield
|
||||
|
|
|
@ -1,30 +1,27 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.profile
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
.project-sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
|
||||
= link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
|
||||
= link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil
|
||||
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
|
||||
Keys
|
||||
- unless current_user.keys.empty?
|
||||
%span{ :class => "number" }= current_user.keys.count
|
||||
|
||||
.project-content
|
||||
= yield
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
%aside
|
||||
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
|
||||
= link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
|
||||
= link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil
|
||||
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
|
||||
Keys
|
||||
- unless current_user.keys.empty?
|
||||
%span.label= current_user.keys.count
|
||||
.content
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/projects_side"
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
GitLab
|
||||
= " - #{@project.name}" if @project && !@project.new_record?
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
|
@ -11,14 +13,16 @@
|
|||
- if request.path == project_issues_path(@project)
|
||||
= auto_discovery_link_tag(:atom, project_issues_url(@project, :atom, :private_token => current_user.private_token), :title => "#{@project.name} issues")
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.project
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
= render :partial => "layouts/project_side"
|
||||
.project-content
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar= render :partial => "layouts/project_side"
|
||||
.content
|
||||
- if @full_content
|
||||
= yield
|
||||
- else
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/project_side_right"
|
||||
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
- if @commits.size > 0
|
||||
.merge-request-commits.ui-box.width-100p
|
||||
.merge-request-commits
|
||||
- @commits.each do |commit|
|
||||
%a{ :class => "commit", :href => project_commit_path(@project, :id => commit.id) }
|
||||
- if commit.author_email
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
- else
|
||||
= image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.update-title
|
||||
= truncate commit.safe_message, :length => 60
|
||||
%span.update-author
|
||||
%strong= commit.author_name
|
||||
authored
|
||||
= time_ago_in_words(commit.created_at)
|
||||
ago
|
||||
.clear
|
||||
.entry
|
||||
= link_to project_commit_path(@project, :id => commit.id) do
|
||||
%strong
|
||||
= truncate(commit.id.to_s, :length => 10)
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
|
||||
%span= truncate(commit.safe_message, :length => 40)
|
||||
%span.right
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
|
||||
- if @commits.empty?
|
||||
%p.cgray Nothing to merge
|
||||
|
|
|
@ -1,46 +1,35 @@
|
|||
= form_for [@project, @merge_request] do |f|
|
||||
%div
|
||||
%span.entity-info
|
||||
- if @merge_request.new_record?
|
||||
= link_to project_merge_requests_path(@project) do
|
||||
.entity-button
|
||||
Merge Requests
|
||||
%i
|
||||
- else
|
||||
= link_to project_merge_request_path(@project, @merge_request) do
|
||||
.entity-button
|
||||
Show Merge Request
|
||||
%i
|
||||
-if @merge_request.errors.any?
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @merge_request.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%h2= @merge_request.new_record? ? "New Merge Request" : "Edit Merge Request ##{@merge_request.id}"
|
||||
.clearfix
|
||||
= f.label :source_branch, "From"
|
||||
.input= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
.clearfix
|
||||
= f.label :target_branch, "To"
|
||||
.input= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
.clearfix
|
||||
= f.label :assignee_id, "Assign to"
|
||||
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
||||
|
||||
%hr
|
||||
%table.no-borders
|
||||
-if @merge_request.errors.any?
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
#error_explanation
|
||||
- @merge_request.errors.full_messages.each do |msg|
|
||||
%span= msg
|
||||
%br
|
||||
%tr
|
||||
%td= f.label :source_branch, "From"
|
||||
%td= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
%tr
|
||||
%td= f.label :target_branch, "To"
|
||||
%td= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
%tr
|
||||
%td= f.label :assignee_id, "Assign to"
|
||||
%td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
||||
= f.text_area :title, :style => "width:718px; height:100px", :maxlength => 255
|
||||
%br
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_area :title, :class => "xlarge", :maxlength => 255, :rows => 5
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
- if @merge_request.new_record?
|
||||
= link_to project_merge_requests_path(@project), :class => "btn" do
|
||||
Cancel
|
||||
- else
|
||||
= link_to project_merge_request_path(@project, @merge_request), :class => "btn" do
|
||||
Cancel
|
||||
|
||||
- unless @merge_request.new_record?
|
||||
.right
|
||||
= link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
= link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,11 +2,4 @@
|
|||
= link_to project_merge_requests_path(@project), :class => "tab #{'active' if current_page?(project_merge_requests_path(@project)) }" do
|
||||
%span
|
||||
Merge Requests
|
||||
|
||||
|
||||
- if current_page?(project_merge_requests_path(@project))
|
||||
- if can? current_user, :write_merge_request, @project
|
||||
= link_to new_project_merge_request_path(@project), :class => "add_new", :title => "New Merge request" do
|
||||
Add new
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
%a.update-item{:href => project_merge_request_path(merge_request.project, merge_request)}
|
||||
= image_tag gravatar_icon(merge_request.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= truncate(merge_request.title, :length => 60)
|
||||
%li.wll
|
||||
= image_tag gravatar_icon(merge_request.author_email), :class => "avatar"
|
||||
%span.update-author
|
||||
%strong= merge_request.author_name
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(merge_request.author_id)), :class => "author_link" do
|
||||
= merge_request.author_name
|
||||
authored
|
||||
= time_ago_in_words(merge_request.created_at)
|
||||
ago
|
||||
.right
|
||||
%span.tag.commit= merge_request.source_branch
|
||||
%span.label= merge_request.source_branch
|
||||
→
|
||||
%span.tag.commit= merge_request.target_branch
|
||||
|
||||
%span.label= merge_request.target_branch
|
||||
= link_to project_merge_request_path(merge_request.project, merge_request) do
|
||||
%p
|
||||
Merge Request ##{merge_request.id}:
|
||||
= truncate(merge_request.title, :length => 50)
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
%h3
|
||||
= "Edit merge request #{@merge_request.id}"
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -1,30 +1,19 @@
|
|||
= render "merge_requests/head"
|
||||
%h3
|
||||
Merge Requests
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_merge_request_path(@project), :class => "right btn small", :title => "New Merge Request" do
|
||||
New Merge Request
|
||||
|
||||
.left.issues_filter
|
||||
= form_tag project_merge_requests_path(@project), :method => :get do
|
||||
.left
|
||||
= radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_merge_requests", :class => "status"
|
||||
= label_tag "open_merge_requests" do
|
||||
%span.tag.open Open
|
||||
.left
|
||||
= radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_merge_requests", :class => "status"
|
||||
= label_tag "closed_merge_requests" do
|
||||
%span.tag.closed Closed
|
||||
|
||||
.clear
|
||||
%hr
|
||||
|
||||
- if @merge_requests.count > 0
|
||||
%div{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
= render @merge_requests
|
||||
%ul.pills
|
||||
%li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
|
||||
= link_to project_merge_requests_path(@project, :f => 0) do
|
||||
Open
|
||||
%li{:class => ("active" if params[:f] == "2")}
|
||||
= link_to project_merge_requests_path(@project, :f => 2) do
|
||||
Closed
|
||||
|
||||
.clear
|
||||
%br
|
||||
|
||||
- unless @merge_requests.count > 0 || params[:f] == "2"
|
||||
.notice_holder
|
||||
%li Merge Requests do not exist yet.
|
||||
- if can? current_user, :write_merge_request, @project
|
||||
%li You can add a new one by clicking on "Add New" button
|
||||
%hr
|
||||
%ul.unstyled= render @merge_requests
|
||||
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
%h3 New Merge Request
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -1,60 +1,64 @@
|
|||
%div
|
||||
%span.entity-info
|
||||
%h3
|
||||
= "Merge Request ##{@merge_request.id}:"
|
||||
|
||||
%span.label= @merge_request.source_branch
|
||||
→
|
||||
%span.label= @merge_request.target_branch
|
||||
|
||||
%small
|
||||
created at
|
||||
= @merge_request.created_at.stamp("Aug 21, 2011")
|
||||
|
||||
%span.right
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
= link_to edit_project_merge_request_path(@project, @merge_request) do
|
||||
.entity-button
|
||||
Edit Merge Request
|
||||
%i
|
||||
= image_tag gravatar_icon(@merge_request.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= "Merge Request ##{@merge_request.id}:"
|
||||
|
||||
.tag.commit.inline= @merge_request.source_branch
|
||||
→
|
||||
.tag.commit.inline= @merge_request.target_branch
|
||||
%span.commit-author
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do
|
||||
%span.author= @merge_request.author_name
|
||||
→
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
|
||||
%span.author= @merge_request.assignee_name
|
||||
|
||||
|
||||
|
||||
= @merge_request.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
|
||||
%hr
|
||||
%br
|
||||
%h3
|
||||
= simple_format @merge_request.title
|
||||
|
||||
.clear
|
||||
%br
|
||||
%br
|
||||
|
||||
.merge-tabs
|
||||
= link_to "#notes", :class => "merge-notes-tab active tab" do
|
||||
%span
|
||||
Notes
|
||||
= link_to "#commits", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab tab" do
|
||||
%span
|
||||
Commits
|
||||
= link_to "#diffs", "data-url" => diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab tab" do
|
||||
%span
|
||||
Diff
|
||||
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
.right
|
||||
- if @merge_request.closed
|
||||
= link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "red-button"
|
||||
= link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "btn"
|
||||
- else
|
||||
= link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "positive-button", :title => "Close merge request"
|
||||
= link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "btn", :title => "Close merge request"
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
= link_to edit_project_merge_request_path(@project, @merge_request), :class => "btn small" do
|
||||
Edit
|
||||
|
||||
%hr
|
||||
- if @merge_request.closed
|
||||
.alert-message.error Closed
|
||||
- else
|
||||
.alert-message.success Open
|
||||
|
||||
|
||||
%div.well
|
||||
%div
|
||||
%cite.cgray Created by
|
||||
= image_tag gravatar_icon(@merge_request.author_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do
|
||||
%strong.author= @merge_request.author_name
|
||||
|
||||
%cite.cgray and currently assigned to
|
||||
= image_tag gravatar_icon(@merge_request.assignee_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
|
||||
%strong.author= @merge_request.assignee_name
|
||||
|
||||
%hr
|
||||
|
||||
|
||||
%div= simple_format @merge_request.title
|
||||
|
||||
|
||||
.tabs
|
||||
%li.active
|
||||
= link_to "#notes", :class => "merge-notes-tab tab" do
|
||||
Notes
|
||||
%li
|
||||
= link_to "#commits", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab tab" do
|
||||
Commits
|
||||
%li
|
||||
= link_to "#diffs", "data-url" => diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab tab" do
|
||||
Diff
|
||||
|
||||
%img{:src => "/assets/ajax-loader-facebook.gif", :class => "dashboard-loader"}
|
||||
|
||||
.merge-request-notes
|
||||
.issue_notes= render "notes/notes"
|
||||
.merge_request_notes= render "notes/notes"
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
.clear
|
||||
|
|
|
@ -1,36 +1,31 @@
|
|||
%div
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
-if @note.errors.any?
|
||||
.errors.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
%h3 Leave a note
|
||||
-if @note.errors.any?
|
||||
.alert-message.block-message.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
%div
|
||||
= f.label :note
|
||||
%cite.cgray markdown supported
|
||||
%br
|
||||
%br
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
%div.attach_holder
|
||||
%br
|
||||
= f.label :attachment
|
||||
%cite.cgray (less than 10 MB)
|
||||
|
||||
= f.file_field :attachment
|
||||
|
||||
%p.notify_controls
|
||||
%span Notify:
|
||||
= check_box_tag :notify, 1, @note.noteable_type != "Commit"
|
||||
= label_tag :notify, "Project team"
|
||||
.row
|
||||
.span4
|
||||
%h5 Notify via email:
|
||||
.clearfix
|
||||
= label_tag :notify do
|
||||
= check_box_tag :notify, 1, @note.noteable_type != "Commit"
|
||||
%span Project team
|
||||
|
||||
-if @note.noteable_type == "Commit"
|
||||
= check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
|
||||
= label_tag :notify_author, "Commit author"
|
||||
= label_tag :notify_author do
|
||||
= check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
|
||||
%span Commit author
|
||||
.span4.right
|
||||
%h5 Attachment:
|
||||
.clearfix
|
||||
= f.label :attachment, "Any file, < 10 MB"
|
||||
.input= f.file_field :attachment, :class => "input-file"
|
||||
|
||||
.clear
|
||||
%br
|
||||
= f.submit 'Add note', :class => "positive-button", :id => "submit_note"
|
||||
|
||||
= f.submit 'Add note', :class => "btn primary", :id => "submit_note"
|
||||
|
|
|
@ -1,29 +1,22 @@
|
|||
%table{:style => "display:none;"}
|
||||
%tr.per_line_form
|
||||
%td{:colspan => 3 }
|
||||
%div
|
||||
%div.well
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
%h3 Leave a note
|
||||
-if @note.errors.any?
|
||||
.errors.error
|
||||
.alert-message.block-message.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.hidden_field :line_code
|
||||
|
||||
%div
|
||||
= f.label :note
|
||||
%cite.cgray markdown supported
|
||||
%br
|
||||
%br
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
.clear
|
||||
%br
|
||||
= f.submit 'Add note', :class => "positive-button", :id => "submit_note"
|
||||
.right
|
||||
= link_to "Close", "#", :class => "grey-button hide-button"
|
||||
= f.text_area :note, :size => 255
|
||||
.prepend-top-10
|
||||
= f.submit 'Add note', :class => "btn primary", :id => "submit_note"
|
||||
.right
|
||||
= link_to "Close", "#", :class => "btn hide-button"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
|
|
|
@ -1,22 +1,20 @@
|
|||
.ui-box.width-100p
|
||||
%h3 Design
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
.left.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_false"}
|
||||
= image_tag "white.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, false
|
||||
White code preview
|
||||
.right.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_true"}
|
||||
= image_tag "dark.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, true
|
||||
Dark code preview
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
%h3 Design
|
||||
%hr
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.row
|
||||
%label.span4{:for => "user_dark_scheme_false"}
|
||||
= image_tag "white.png", :width => 210
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, false
|
||||
White code preview
|
||||
%label.span4{:for => "user_dark_scheme_true"}
|
||||
= image_tag "dark.png", :width => 210
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, true
|
||||
Dark code preview
|
||||
.clearfix
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
|
|
|
@ -1,44 +1,41 @@
|
|||
.ui-box.width-100p.append-bottom-20
|
||||
%h3 Password
|
||||
= form_for @user, :url => profile_password_path, :method => :put do |f|
|
||||
.data
|
||||
%p After successfull password update you will be redirected to login page where you should login with new password
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
%h3 Password
|
||||
%hr
|
||||
= form_for @user, :url => profile_password_path, :method => :put do |f|
|
||||
.data
|
||||
%p After successfull password update you will be redirected to login page where you should login with new password
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
= f.label :password
|
||||
%br
|
||||
= f.password_field :password
|
||||
.form-row
|
||||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
.clear
|
||||
|
||||
.ui-box.width-100p
|
||||
%h3
|
||||
Private token
|
||||
%em.cred.right
|
||||
keep it in secret!
|
||||
= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
|
||||
.data
|
||||
%p Private token used to access application resources without authentication.
|
||||
%p For example its required to access commits feed.
|
||||
%hr
|
||||
%p.cgray
|
||||
- if current_user.private_token
|
||||
= text_field_tag "token", current_user.private_token
|
||||
- else
|
||||
You don`t have one yet. Click generate to fix it.
|
||||
.buttons
|
||||
.clearfix
|
||||
= f.label :password
|
||||
.input= f.password_field :password
|
||||
.clearfix
|
||||
= f.label :password_confirmation
|
||||
.input= f.password_field :password_confirmation
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
%h3
|
||||
Private token
|
||||
%span.cred.right
|
||||
keep it in secret!
|
||||
%hr
|
||||
= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
|
||||
.data
|
||||
%p Private token used to access application resources without authentication.
|
||||
%p For example its required to access commits feed.
|
||||
%hr
|
||||
%p.cgray
|
||||
- if current_user.private_token
|
||||
= f.submit 'Reset', :confirm => "Are you sure?", :class => "grey-button"
|
||||
= text_field_tag "token", current_user.private_token
|
||||
- else
|
||||
= f.submit 'Generate', :class => "positive-button"
|
||||
You don`t have one yet. Click generate to fix it.
|
||||
.actions
|
||||
- if current_user.private_token
|
||||
= f.submit 'Reset', :confirm => "Are you sure?", :class => "btn"
|
||||
- else
|
||||
= f.submit 'Generate', :class => "btn"
|
||||
|
||||
|
|
|
@ -1,38 +1,32 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @user.name
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
.left
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.media-grid
|
||||
= link_to "#" do
|
||||
= image_tag gravatar_icon(@user.email, 90), :class => "thumbnail"
|
||||
%h3.media_h= @user.name
|
||||
|
||||
.form-row
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
%hr
|
||||
|
||||
.right
|
||||
= image_tag gravatar_icon(current_user.email,64), :width => 64, :style => "margin:5px; border:5px solid #eee;"
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
-if @user.errors.any?
|
||||
%div.alert-message.block-message.error
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.clearfix
|
||||
= f.label :name
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :email
|
||||
.input= f.text_field :email
|
||||
.clearfix
|
||||
= f.label :skype
|
||||
.input= f.text_field :skype
|
||||
.clearfix
|
||||
= f.label :linkedin
|
||||
.input= f.text_field :linkedin
|
||||
.clearfix
|
||||
= f.label :twitter
|
||||
.input= f.text_field :twitter
|
||||
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
|
||||
|
|
|
@ -1,79 +1,29 @@
|
|||
- if update.kind_of?(Note)
|
||||
%a.project-update.titled{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
- noteable = update.target
|
||||
- if noteable.kind_of?(MergeRequest)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Merge Request #
|
||||
= noteable.id
|
||||
%span.update-author
|
||||
%span= noteable.source_branch
|
||||
%li.wll
|
||||
.row
|
||||
.span9
|
||||
= image_tag gravatar_icon(update.author_email), :class => "avatar thumb"
|
||||
%p
|
||||
%strong.author= update.author_name
|
||||
%span
|
||||
–
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
- if update.kind_of? MergeRequest
|
||||
= link_to project_merge_request_path(@project, update) do
|
||||
= "Opened merge request ##{update.id}."
|
||||
%span.label= update.source_branch
|
||||
→
|
||||
%span= noteable.target_branch
|
||||
|
||||
- elsif noteable.kind_of?(Issue)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Issue #
|
||||
= noteable.id
|
||||
%span.update-author
|
||||
.left= truncate noteable.title
|
||||
|
||||
- elsif noteable.kind_of?(Commit)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
commit
|
||||
%span.update-author
|
||||
.left= truncate noteable.id
|
||||
- else
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Project Wall
|
||||
|
||||
|
||||
- elsif update.kind_of?(MergeRequest)
|
||||
%a.project-update.titled{:href => project_merge_request_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
Opened merge request
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Merge Request #
|
||||
= update.id
|
||||
%span.update-author
|
||||
%span= update.source_branch
|
||||
→
|
||||
%span= update.target_branch
|
||||
|
||||
- elsif update.kind_of?(Issue)
|
||||
%a.project-update.titled{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
Created new Issue
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Issue #
|
||||
= update.id
|
||||
%span.update-author
|
||||
.left= truncate update.title
|
||||
%span.label= update.target_branch
|
||||
- elsif update.kind_of? Issue
|
||||
= link_to project_issue_path(@project, update) do
|
||||
Opened new
|
||||
%span.label.important= "issue ##{update.id}"
|
||||
= truncate update.title
|
||||
- else
|
||||
= link_to [@project, update.target] do
|
||||
%p
|
||||
= update.target.class.name.titleize
|
||||
= truncate(update.target.id.to_s, :length => 10)
|
||||
|
||||
= dashboard_feed_title(update)
|
||||
|
|
|
@ -1,67 +1,38 @@
|
|||
= form_for(@project, :remote => true) do |f|
|
||||
%div.form_content
|
||||
- unless @project.new_record?
|
||||
%h2.icon
|
||||
%span
|
||||
= @project.name
|
||||
.clear
|
||||
- if @project.errors.any?
|
||||
%ul.errors_holder
|
||||
- if @project.errors.any?
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @project.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
%table
|
||||
%tr
|
||||
%td= f.label :name
|
||||
%td= f.text_field :name, :placeholder => "Example Project"
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :path
|
||||
%cite.right= "git@#{GIT_HOST["host"]}:"
|
||||
%td
|
||||
= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :code
|
||||
%cite.right= "http://#{GIT_HOST["host"]}/"
|
||||
%td= f.text_field :code, :placeholder => "example"
|
||||
.clearfix
|
||||
= f.label :name
|
||||
.input= f.text_field :name, :placeholder => "Example Project"
|
||||
.clearfix
|
||||
= f.label :path do
|
||||
Path
|
||||
%cite= "git@#{GIT_HOST["host"]}:"
|
||||
.input= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
|
||||
.clearfix
|
||||
= f.label :code do
|
||||
Code
|
||||
%cite= "http://#{GIT_HOST["host"]}/"
|
||||
.input= f.text_field :code, :placeholder => "example"
|
||||
|
||||
- unless @project.new_record? || @project.heads.empty?
|
||||
%tr
|
||||
%td= f.label :default_branch, "Default Branch"
|
||||
%td= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;")
|
||||
- unless @project.new_record? || @project.heads.empty?
|
||||
.clearfix
|
||||
= f.label :default_branch, "Default Branch"
|
||||
.input= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:210px;")
|
||||
|
||||
-#%tr
|
||||
%td= f.label :tag_list
|
||||
%td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field
|
||||
%tr
|
||||
%td= f.label :description
|
||||
%td= f.text_area :description, :placeholder => "project description", :style => "height:50px"
|
||||
|
||||
.clearfix
|
||||
= f.label :description
|
||||
.input= f.text_area :description, :placeholder => "project description", :style => "height:50px"
|
||||
|
||||
%br
|
||||
%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
|
||||
%center
|
||||
= image_tag "ajax-loader.gif", :class => "append-bottom"
|
||||
- if @project.new_record?
|
||||
%h3.prepend-top Creating project & repository. Please wait for few minutes
|
||||
- else
|
||||
%h3.prepend-top Updating project & repository. Please wait for few minutes
|
||||
%br
|
||||
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn primary"
|
||||
= link_to 'Cancel', @project, :class => "btn"
|
||||
- unless @project.new_record?
|
||||
.right
|
||||
= link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('.new_project, .edit_project').bind('ajax:before', function() {
|
||||
$(this).find(".form_content").hide();
|
||||
$('.ajax_loader').show();
|
||||
});
|
||||
|
||||
taggifyForm();
|
||||
|
||||
$('form #project_default_branch').chosen();
|
||||
})
|
||||
= link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
|
||||
|
|
|
@ -1,27 +1,30 @@
|
|||
.top-tabs
|
||||
= link_to project_path(@project), :class => "activities-tab tab #{'active' if current_page?(project_path(@project)) }" do
|
||||
%span
|
||||
Activities
|
||||
= link_to info_project_path(@project), :class => "stat-tab tab #{'active' if current_page?(info_project_path(@project)) || current_page?(edit_project_path(@project)) }" do
|
||||
%span
|
||||
Info
|
||||
= link_to team_project_path(@project), :class => "team-tab tab #{'active' if current_page?(team_project_path(@project)) }" do
|
||||
%span
|
||||
Team
|
||||
= link_to files_project_path(@project), :class => "files-tab tab #{'active' if current_page?(files_project_path(@project)) }" do
|
||||
%span
|
||||
Files
|
||||
= link_to project_snippets_path(@project), :class => "snippets-tab tab #{'active' if current_page?(project_snippets_path(@project)) }" do
|
||||
%span
|
||||
Snippets
|
||||
%ul.tabs
|
||||
%li{ :class => "#{'active' if current_page?(project_path(@project)) }" }
|
||||
= link_to project_path(@project), :class => "activities-tab tab" do
|
||||
Activities
|
||||
%li{ :class => "#{'active' if current_page?(info_project_path(@project)) || current_page?(edit_project_path(@project)) }" }
|
||||
= link_to info_project_path(@project), :class => "stat-tab tab " do
|
||||
Info
|
||||
|
||||
%li{ :class => " #{'active' if current_page?(team_project_path(@project)) }" }
|
||||
= link_to team_project_path(@project), :class => "team-tab tab" do
|
||||
Team
|
||||
%li{ :class => "#{'active' if current_page?(files_project_path(@project)) }" }
|
||||
= link_to files_project_path(@project), :class => "files-tab tab " do
|
||||
Files
|
||||
%li{ :class => " #{'active' if current_page?(project_snippets_path(@project)) }" }
|
||||
= link_to project_snippets_path(@project), :class => "snippets-tab tab" do
|
||||
Snippets
|
||||
|
||||
- if current_page?(project_snippets_path(@project))
|
||||
- if can? current_user, :write_snippet, @project
|
||||
= link_to new_project_snippet_path(@project), :class => "add_new", :title => "New Snippet" do
|
||||
Add new
|
||||
%li
|
||||
= link_to new_project_snippet_path(@project), :class => "add_new", :title => "New Snippet" do
|
||||
Add new
|
||||
|
||||
|
||||
- if current_page?(team_project_path(@project))
|
||||
- if can? current_user, :admin_team_member, @project
|
||||
= link_to new_project_team_member_path(@project), :class => "add_new", :title => "New Team Member" do
|
||||
Add New
|
||||
%li
|
||||
= link_to new_project_team_member_path(@project), :class => "add_new", :title => "New Team Member" do
|
||||
Add New
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
%table.no-borders#team-table
|
||||
%thead
|
||||
%th Name
|
||||
%th Project
|
||||
%th Repository
|
||||
- if can? current_user, :admin_team_member, @project
|
||||
%th Actions
|
||||
%ul.media-grid
|
||||
- @project.users_projects.each do |up|
|
||||
= render(:partial => 'team_members/show', :locals => {:member => up})
|
||||
|
||||
|
@ -15,5 +9,7 @@
|
|||
});
|
||||
})
|
||||
|
||||
/*
|
||||
$('.delete-team-member').live('ajax:success', function() {
|
||||
$(this).closest('tr').fadeOut(); });
|
||||
*/
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
- @projects.in_groups_of(3, false) do |projects|
|
||||
- projects.each_with_index do |project, i|
|
||||
%div.grid_1.projects_selector
|
||||
%div{ :class => "project-box ui-box ui-box-big" }
|
||||
- @projects.in_groups_of(2, false) do |projects|
|
||||
.row
|
||||
- projects.each_with_index do |project, i|
|
||||
.span4.well
|
||||
= link_to project_path(project) do
|
||||
%h3= truncate(project.name, :length => 20)
|
||||
.data
|
||||
%p.title.repository.git_url_wrapper
|
||||
%span Repository:
|
||||
%input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' }
|
||||
%p.title.activity
|
||||
%span Last Activity:
|
||||
- if project.last_activity_date_cached
|
||||
= project.last_activity_date_cached.stamp("Aug 24, 2011")
|
||||
- else
|
||||
Never
|
||||
%p.title.repository.git_url_wrapper
|
||||
%input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' }
|
||||
|
||||
.buttons
|
||||
%a.browse-code.button.yellow{:href => tree_project_ref_path(project, project.root_ref)} Browse code
|
||||
%a.commits.button.green{:href => project_commits_path(project)} Commits
|
||||
%a.btn{:href => tree_project_ref_path(project, project.root_ref)} Browse code
|
||||
%a.btn{:href => project_commits_path(project)} Commits
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
- else
|
||||
:plain
|
||||
$("#new_project").replaceWith("#{escape_javascript(render('form'))}");
|
||||
$('.ajax_loader').hide();
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue