summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock10
-rw-r--r--app/assets/javascripts/issues.js20
-rw-r--r--app/assets/javascripts/merge_requests.js12
-rw-r--r--app/assets/javascripts/tree.js17
-rw-r--r--app/assets/stylesheets/commits.css.scss115
-rw-r--r--app/assets/stylesheets/common.scss113
-rw-r--r--app/assets/stylesheets/dashboard.scss30
-rw-r--r--app/assets/stylesheets/highlight.black.css.scss1
-rw-r--r--app/assets/stylesheets/highlight.css.scss6
-rw-r--r--app/assets/stylesheets/issues.css.scss81
-rw-r--r--app/assets/stylesheets/login.scss41
-rw-r--r--app/assets/stylesheets/merge_requests.css.scss5
-rw-r--r--app/assets/stylesheets/notes.css.scss13
-rw-r--r--app/assets/stylesheets/projects.css.scss575
-rw-r--r--app/assets/stylesheets/projects.css.scss.bak384
-rw-r--r--app/assets/stylesheets/projects.css.scss~385
-rw-r--r--app/assets/stylesheets/reset_bootstrap.scss38
-rw-r--r--app/assets/stylesheets/style.scss802
-rw-r--r--app/assets/stylesheets/tags.scss55
-rw-r--r--app/assets/stylesheets/top_panel.scss220
-rw-r--r--app/assets/stylesheets/tree.scss19
-rw-r--r--app/controllers/admin/projects_controller.rb6
-rw-r--r--app/controllers/application_controller.rb4
-rw-r--r--app/controllers/commits_controller.rb2
-rw-r--r--app/controllers/keys_controller.rb2
-rw-r--r--app/controllers/merge_requests_controller.rb2
-rw-r--r--app/controllers/projects_controller.rb3
-rw-r--r--app/controllers/refs_controller.rb23
-rw-r--r--app/controllers/team_members_controller.rb2
-rw-r--r--app/helpers/dashboard_helper.rb2
-rw-r--r--app/models/commit.rb6
-rw-r--r--app/views/admin/projects/_form.html.haml31
-rw-r--r--app/views/admin/projects/index.html.haml2
-rw-r--r--app/views/admin/projects/show.html.haml4
-rw-r--r--app/views/admin/team_members/_form.html.haml2
-rw-r--r--app/views/admin/team_members/index.html.haml2
-rw-r--r--app/views/admin/users/_form.html.haml45
-rw-r--r--app/views/admin/users/index.html.haml2
-rw-r--r--app/views/admin/users/new.html.haml7
-rw-r--r--app/views/admin/users/show.html.haml4
-rw-r--r--app/views/commits/_commits.html.haml44
-rw-r--r--app/views/commits/index.html.haml30
-rw-r--r--app/views/commits/show.html.haml7
-rw-r--r--app/views/dashboard/_issues_feed.html.haml36
-rw-r--r--app/views/dashboard/_merge_requests_feed.html.haml34
-rw-r--r--app/views/dashboard/_projects_feed.html.haml35
-rw-r--r--app/views/dashboard/_sidebar.html.haml15
-rw-r--r--app/views/dashboard/index.html.haml8
-rw-r--r--app/views/dashboard/issues.html.haml9
-rw-r--r--app/views/dashboard/merge_requests.html.haml9
-rw-r--r--app/views/deploy_keys/_form.html.haml28
-rw-r--r--app/views/deploy_keys/index.html.haml25
-rw-r--r--app/views/deploy_keys/show.html.haml17
-rw-r--r--app/views/devise/passwords/new.html.erb2
-rw-r--r--app/views/devise/sessions/new.html.erb4
-rw-r--r--app/views/devise/shared/_links.erb4
-rw-r--r--app/views/hooks/index.html.haml37
-rw-r--r--app/views/hooks/show.html.haml12
-rw-r--r--app/views/issues/_form.html.haml76
-rw-r--r--app/views/issues/_head.html.haml18
-rw-r--r--app/views/issues/_show.html.haml58
-rw-r--r--app/views/issues/index.html.haml77
-rw-r--r--app/views/issues/index.js.haml2
-rw-r--r--app/views/issues/show.html.haml87
-rw-r--r--app/views/keys/_form.html.haml22
-rw-r--r--app/views/keys/_show.html.haml14
-rw-r--r--app/views/keys/index.html.haml16
-rw-r--r--app/views/keys/new.html.haml6
-rw-r--r--app/views/keys/show.html.haml13
-rw-r--r--app/views/layouts/_app_side.html.haml10
-rw-r--r--app/views/layouts/_flash.html.haml2
-rw-r--r--app/views/layouts/_head_panel.html.haml29
-rw-r--r--app/views/layouts/_project_side.html.haml12
-rw-r--r--app/views/layouts/_project_side_right.html.haml46
-rw-r--r--app/views/layouts/_projects_side.html.haml38
-rw-r--r--app/views/layouts/admin.html.haml27
-rw-r--r--app/views/layouts/application.html.haml18
-rw-r--r--app/views/layouts/devise.html.haml3
-rw-r--r--app/views/layouts/profile.html.haml37
-rw-r--r--app/views/layouts/project.html.haml24
-rw-r--r--app/views/merge_requests/_commits.html.haml24
-rw-r--r--app/views/merge_requests/_form.html.haml63
-rw-r--r--app/views/merge_requests/_head.html.haml7
-rw-r--r--app/views/merge_requests/_merge_request.html.haml19
-rw-r--r--app/views/merge_requests/edit.html.haml3
-rw-r--r--app/views/merge_requests/index.html.haml39
-rw-r--r--app/views/merge_requests/new.html.haml2
-rw-r--r--app/views/merge_requests/show.html.haml100
-rw-r--r--app/views/notes/_form.html.haml57
-rw-r--r--app/views/notes/_per_line_form.html.haml23
-rw-r--r--app/views/profile/design.html.haml40
-rw-r--r--app/views/profile/password.html.haml77
-rw-r--r--app/views/profile/show.html.haml64
-rw-r--r--app/views/projects/_feed.html.haml106
-rw-r--r--app/views/projects/_form.html.haml87
-rw-r--r--app/views/projects/_project_head.html.haml43
-rw-r--r--app/views/projects/_team.html.haml10
-rw-r--r--app/views/projects/_tile.html.haml25
-rw-r--r--app/views/projects/create.js.haml1
-rw-r--r--app/views/projects/edit.html.haml78
-rw-r--r--app/views/projects/empty.html.haml17
-rw-r--r--app/views/projects/graph.html.haml8
-rw-r--r--app/views/projects/index.html.haml44
-rw-r--r--app/views/projects/info.html.haml49
-rw-r--r--app/views/projects/new.html.haml27
-rw-r--r--app/views/projects/show.html.haml32
-rw-r--r--app/views/projects/update.js.haml1
-rw-r--r--app/views/refs/_tree.html.haml30
-rw-r--r--app/views/repositories/_feed.html.haml28
-rw-r--r--app/views/repositories/_head.html.haml45
-rw-r--r--app/views/repositories/branches.html.haml27
-rw-r--r--app/views/repositories/show.html.haml9
-rw-r--r--app/views/team_members/_show.html.haml28
-rw-r--r--app/views/team_members/show.html.haml25
-rw-r--r--config/routes.rb2
-rw-r--r--spec/requests/commits_spec.rb2
-rw-r--r--spec/requests/dashboard_issues_spec.rb2
-rw-r--r--spec/requests/dashboard_merge_requests_spec.rb7
-rw-r--r--spec/requests/dashboard_spec.rb3
-rw-r--r--spec/requests/issues_spec.rb14
-rw-r--r--spec/requests/keys_spec.rb6
-rw-r--r--spec/requests/merge_requests_spec.rb4
-rw-r--r--spec/requests/projects_spec.rb10
-rw-r--r--spec/requests/repositories_spec.rb5
-rw-r--r--spec/requests/team_members_spec.rb8
-rw-r--r--spec/support/shared_examples.rb3
127 files changed, 2431 insertions, 2958 deletions
diff --git a/Gemfile b/Gemfile
index 801b0aeecbb..a49c7af7c9f 100644
--- a/Gemfile
+++ b/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"
diff --git a/Gemfile.lock b/Gemfile.lock
index 89d92ae4324..a3397477195 100644
--- a/Gemfile.lock
+++ b/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
diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js
index dc4da58213e..ded66b1c540 100644
--- a/app/assets/javascripts/issues.js
+++ b/app/assets/javascripts/issues.js
@@ -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();
});
});
}
diff --git a/app/assets/javascripts/merge_requests.js b/app/assets/javascripts/merge_requests.js
index 0d2f535586e..af59634f7ba 100644
--- a/app/assets/javascripts/merge_requests.js
+++ b/app/assets/javascripts/merge_requests.js
@@ -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();
}
diff --git a/app/assets/javascripts/tree.js b/app/assets/javascripts/tree.js
index 2e9bcc82a2b..1c62751ad25 100644
--- a/app/assets/javascripts/tree.js
+++ b/app/assets/javascripts/tree.js
@@ -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"); }
});
diff --git a/app/assets/stylesheets/commits.css.scss b/app/assets/stylesheets/commits.css.scss
index a66d521f942..3f325d783d6 100644
--- a/app/assets/stylesheets/commits.css.scss
+++ b/app/assets/stylesheets/commits.css.scss
@@ -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;
-
-
- ul {
- display:block;
- list-style:none;
- margin:0px;
- padding:0px;
+ border-bottom:1px solid #DDD;
+}
- li {
- border-top:1px solid #DEE2E3;
- padding:10px;
- }
- }
+/** 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;
}
}
diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index 44538045171..61780e6869a 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -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;
+}
+
+/** LAYOUT **/
+
+.container-fluid {
+ min-width:$min_app_width;
+ max-width:$max_app_width;
+ margin:auto;
+ margin-top:51px;
+}
+
+.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;
+ }
+}
+
+.container-fluid > .content {
+ margin-left: 160px;
+ margin-top:20px;
+}
+
+aside.projects,
+aside.project-side
+{
+ margin-left: 0;
+ padding-left: 20px;
+}
-/* General */
+img.avatar {
+ float:left;
+ margin-right:15px;
+ width:40px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
-body.collapsed {
- background-color: $bg_color;
+img.lil_av {
+ padding-left: 5px;
+ position: relative;
+ top: 3px;
+}
- #container{
- margin: auto;
- margin-top:51px;
- width: $app_width;
- border-top: 0;
- background-color: $bg_color;
+.media-grid {
+ h3, h2 , h4 {
+ &.media_h {
+ padding-left:10px;
+ float:left;
+ }
}
}
-a {
- color: $link_color;
+.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 "style.scss";
+@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";
diff --git a/app/assets/stylesheets/dashboard.scss b/app/assets/stylesheets/dashboard.scss
deleted file mode 100644
index 5e38fcc6d63..00000000000
--- a/app/assets/stylesheets/dashboard.scss
+++ /dev/null
@@ -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 */
-
diff --git a/app/assets/stylesheets/highlight.black.css.scss b/app/assets/stylesheets/highlight.black.css.scss
index e094e48fad5..e63e08c8e94 100644
--- a/app/assets/stylesheets/highlight.black.css.scss
+++ b/app/assets/stylesheets/highlight.black.css.scss
@@ -1,5 +1,6 @@
.black .highlighttable {
background: #333;
+ td.linenos { border:none; }
pre { color: #eee }
.highlight { background: #333; border-left:1px solid #555; }
diff --git a/app/assets/stylesheets/highlight.css.scss b/app/assets/stylesheets/highlight.css.scss
index d65865ecdb2..459ae81c248 100644
--- a/app/assets/stylesheets/highlight.css.scss
+++ b/app/assets/stylesheets/highlight.css.scss
@@ -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 {
diff --git a/app/assets/stylesheets/issues.css.scss b/app/assets/stylesheets/issues.css.scss
index d2341edcf33..ecf1ca01142 100644
--- a/app/assets/stylesheets/issues.css.scss
+++ b/app/assets/stylesheets/issues.css.scss
@@ -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;
- }
- }
-
-}
diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss
new file mode 100644
index 00000000000..73ba27ee2d1
--- /dev/null
+++ b/app/assets/stylesheets/login.scss
@@ -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}
+
diff --git a/app/assets/stylesheets/merge_requests.css.scss b/app/assets/stylesheets/merge_requests.css.scss
index 2b60605b255..9f608c6bfcd 100644
--- a/app/assets/stylesheets/merge_requests.css.scss
+++ b/app/assets/stylesheets/merge_requests.css.scss
@@ -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;
diff --git a/app/assets/stylesheets/notes.css.scss b/app/assets/stylesheets/notes.css.scss
index 4aba53cfd5c..276fce180b0 100644
--- a/app/assets/stylesheets/notes.css.scss
+++ b/app/assets/stylesheets/notes.css.scss
@@ -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; }
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 4e749ef9d52..ddc21bb9512 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -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;
+.news-feed .project-updates {
+ margin-bottom:20px;
+ display:block;
+ width:100%;
}
-
-#projects-list .project {
- height:50px;
+.news-feed .project-updates .data {
+ padding:0
}
-
-#tree-slider .tree-item,
-#projects-list .project,
-#snippets-table .snippet,
-#issues-table .issue{
- cursor:pointer;
+.news-feed .project-updates a.project-update {
+ padding:10px;
+ border-bottom:1px solid #eee;
+ overflow:hidden;
+ display:block;
}
-
-.clear {
- clear: both;
+.news-feed .project-updates a.project-update:last-child {
+ border-bottom:0
}
-
-
-/** Buttons **/
-.lbutton,
-.lite_button {
- display:block;
+.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;
- }
+ margin-right:10px;
}
-
-#user_projects_limit{
- width: 60px;
+span.update-title,
+span.update-author {
+ display:block;
}
-
-.handle:hover{
- cursor: move;
+span.update-title {
+ margin-bottom:10px
}
-
-.project-refs-form {
- span {
- background: none !important;
- position:static !important;
- width:auto !important;
- height: auto !important;
- }
+span.update-author {
+ color:#999;
+ font-weight:normal;
+ font-style:italic;
}
-
-.project-refs-select {
- width:200px;
+span.update-author strong {
+ font-weight:bold;
+ font-style: normal;
}
-
-.filter .left { margin-right:15px; }
-
-body.project-page table .commit {
- a.tree-commit-link {
- color:#444;
- &:hover {
- text-decoration:underline;
- }
- }
+/** UPDATE ITEM **/
+.update-data {
+ padding:0
}
-
-/** NEW PROJECT **/
-.new-project-hodler {
- .icon span { background-position: -31px -70px; }
- td { border-bottom: 1px solid #DEE2E3; }
+.update-data {
+ width:100%;
}
-
-/** Feed entry **/
-.commit,
-.snippet,
-.message {
- .title {
- color:#666;
- a { color:#666 !important; }
- p { margin-top:0px; }
- }
- .author { color: #999 }
+a.update-item {
+ padding:10px;
+ border-bottom:1px solid #eee;
+ overflow:hidden;
+ display:block;
}
-
-/** JQuery UI **/
-.ui-autocomplete { @include round-borders-all(5px); }
-.ui-menu-item { cursor: pointer }
-.ui-selectmenu{
- @include round-borders-all(4px);
+a.update-item:last-child {
+ border-bottom:0
+}
+a.update-item img {
+ float:left;
margin-right:10px;
- font-size:1.5em;
- height:auto;
- font-weight:bold;
- .ui-selectmenu-status {
- padding:3px 10px;
- }
}
-
-/** Snippets **/
-.new_snippet textarea,
-.edit_snippet textarea {
- height:300px;
- padding: 8px;
- width: 95%;
-}
-.snippet .action-links {
- display:none;
- a {
- margin-left:10px;
- }
+span.update-title,
+span.update-author {
+ display:block;
}
-.snippet:hover .action-links { display:block; }
-
-
-#holder {
- background:#FAFAFA;
- border: 1px solid #EEE;
- cursor: move;
- height: 70%;
- overflow: hidden;
+a.update-item span.update-title {
+ margin-bottom:10px
}
-
-/* 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;
+a.update-item span.update-author {
+ color:#999;
+ font-weight:normal;
+ font-style:italic;
}
-
-body.project-page table.no-borders tr,
-body.project-page table.no-borders td{
- border:none;
+a.update-item span.update-author strong {
+ font-weight:bold;
+ font-style:normal;
}
-
+/** END UPDATE ITEM **/
.ajax-tab-loading {
padding:40px;
display:none;
}
-
-#tree-content-holder { float:left; width:100%; }
-
+#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;
+ 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;
+.dashboard-loader {
+ float:left;
+ margin:10px;
+ display:none;
}
-
-.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;
-
+.user-mention {
+ color:#2FA0BB;
+ font-weight:bold;
}
-.dash-button {
- border-right: 1px solid #ddd;
- background:none;
- padding: 10px 15px;
- float:left;
+a.project-update.titled {
position:relative;
- top:-10px;
- left:0px;
- height:13px;
-
- &:first-child {
- border-left: 1px solid #ddd;
- }
- &.active {
- background: #eaeaea;
+ padding-left:35% !important;
+ .title-block {
+ padding:10px;
+ width:35%;
+ position:absolute;
+ left:0;
+ top:0;
}
}
-
-
-.dashboard-loader {
- float:right;
- margin-right:30px;
- display:none;
+/**
+ * Project graph
+ */
+#holder {
+ cursor: move;
+ height: 70%;
+ overflow: hidden;
}
-.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;
- }
+/** Branch/tag selector **/
+.project-refs-form {
+ margin:0;
+ span {
+ background:none !important;
+ position:static !important;
+ width:auto !important;
+ height:auto !important;
}
}
-.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;
+.project-refs-select {
+ width:120px;
}
+.project-refs-form .chzn-container {
+ position:relative;
+ top: -5px;
+ left: -11px;
-.dark_scheme_box {
- padding:20px 0;
+ .chzn-drop {
+ margin:7px 0;
+ border: 1px solid #CCC;
+ min-width: 300px;
- label {
- float:left;
- box-shadow: 0 0px 5px rgba(0,0,0,.3);
+ .chzn-results {
+ max-height:300px;
+ }
- img {
+ .chzn-search input {
+ min-width:200px;
}
}
-}
-a.project-update.titled {
- position: relative;
- padding-left: 235px !important;
+ .chzn-single {
+ background:#ddd;
+ //border:none;
+ //box-shadow:none;
- .title-block {
- padding: 10px;
- width: 205px;
- position: absolute;
- left: 0;
- top: 0;
- }
-}
+ div {
+ background:transparent;
+ border-left:none;
+ }
-.add_new {
- float: right;
- background: #A6B807;
- color: white;
- padding: 4px 10px;
- @include round-borders-all(4px);
- font-size:11px;
- margin: 10px 0;
+ span {
+ font-weight: normal;
+ }
+ }
}
-
-
-.new-project-hodler {
- padding:20px;
-}
diff --git a/app/assets/stylesheets/projects.css.scss.bak b/app/assets/stylesheets/projects.css.scss.bak
new file mode 100644
index 00000000000..ba69bf85570
--- /dev/null
+++ b/app/assets/stylesheets/projects.css.scss.bak
@@ -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;
+}
diff --git a/app/assets/stylesheets/projects.css.scss~ b/app/assets/stylesheets/projects.css.scss~
new file mode 100644
index 00000000000..4bdf5dee2f5
--- /dev/null
+++ b/app/assets/stylesheets/projects.css.scss~
@@ -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;
+}
diff --git a/app/assets/stylesheets/reset_bootstrap.scss b/app/assets/stylesheets/reset_bootstrap.scss
new file mode 100644
index 00000000000..a744040fb45
--- /dev/null
+++ b/app/assets/stylesheets/reset_bootstrap.scss
@@ -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;
+}
diff --git a/app/assets/stylesheets/style.scss b/app/assets/stylesheets/style.scss
deleted file mode 100644
index 4bb5fef9269..00000000000
--- a/app/assets/stylesheets/style.scss
+++ /dev/null
@@ -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;
- }
- }
-}
diff --git a/app/assets/stylesheets/tags.scss b/app/assets/stylesheets/tags.scss
deleted file mode 100644
index 7d40d396b9a..00000000000
--- a/app/assets/stylesheets/tags.scss
+++ /dev/null
@@ -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;
- }
-}
-
diff --git a/app/assets/stylesheets/top_panel.scss b/app/assets/stylesheets/top_panel.scss
index 57c1e07725e..61db2c311cf 100644
--- a/app/assets/stylesheets/top_panel.scss
+++ b/app/assets/stylesheets/top_panel.scss
@@ -1,52 +1,3 @@
-.main_links {
- width:130px;
- float:left;
-
- a {
- float:left;
- }
-}
-
-.dashboard_links {
- padding:7px;
- float:left;
- a {
- margin: 0 14px;
- float: left;
- font-size: 14px;
-
- &.active {
- color:$active_link_color;
- }
- &:hover {
- color:$active_link_color;
- }
- }
-}
-
-.top-tabs {
- margin: 0;
- padding: 5px;
- font-size: 14px;
- padding-bottom:10px;
- margin-bottom:20px;
- height:26px;
- border-bottom:1px solid #ccc;
-
- .tab {
- font-weight: bold;
- background:none;
- padding: 10px;
- float:left;
- padding-left:0px;
- padding-right:40px;
-
- &.active {
- color: $active_link_color;
- }
- }
-}
-
body header {
position:absolute;
width:100%;
@@ -54,23 +5,20 @@ body header {
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+ */
+ 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;
- width:$app_width;
+ min-width:$min_app_width;
+ max-width:$max_app_width;
position:relative;
-
- .top_panel_content {
- padding:10px $app_padding;
- }
+ padding:10px $app_padding;
}
.project_name {
@@ -102,45 +50,157 @@ body header {
border: 1px solid #AAA;
padding: 0 10px 0 30px;
background: transparent url('images.png') no-repeat 8px -42px;
- width: 160px;
+ width: 260px;
height:26px;
}
}
}
+.main_links {
+ width:155px;
+ float:left;
-.top_panel_holder .chzn-container {
- position:relative;
+ a {
+ float:left;
+ }
+}
- .chzn-drop {
- margin:7px 0;
- border: 1px solid #CCC;
- min-width: 300px;
+.dashboard_links {
+ padding:7px;
+ float:left;
+ a {
+ margin: 0 14px;
+ float: left;
+ font-size: 14px;
- .chzn-results {
- max-height:300px;
+ &.active {
+ color:$active_link_color;
+ }
+ &:hover {
+ color:$active_link_color;
}
}
+}
- .chzn-single {
- background:transparent;
- -moz-border-radius: 4px;
- border-radius: 4px;
+.top-tabs {
+ margin: 0;
+ padding: 5px;
+ font-size: 14px;
+ padding-bottom:10px;
+ margin-bottom:20px;
+ height:26px;
+ border-bottom:1px solid #ccc;
- div {
- background:transparent;
- border-left:none;
- }
+ .tab {
+ font-weight: bold;
+ background:none;
+ padding: 10px;
+ float:left;
+ padding-left:0px;
+ padding-right:40px;
- span {
- font-weight: normal;
+ &.active {
+ color: $active_link_color;
}
}
}
+
.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;
}
diff --git a/app/assets/stylesheets/tree.scss b/app/assets/stylesheets/tree.scss
index 57070871680..322b3d7fba8 100644
--- a/app/assets/stylesheets/tree.scss
+++ b/app/assets/stylesheets/tree.scss
@@ -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;
+ }
}
}
diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb
index 813e135b77f..2c6363c6f3e 100644
--- a/app/controllers/admin/projects_controller.rb
+++ b/app/controllers/admin/projects_controller.rb
@@ -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
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 00ab93a153d..5a5b4aeb8d4 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -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
diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb
index a938461fed1..e2853dd6cf6 100644
--- a/app/controllers/commits_controller.rb
+++ b/app/controllers/commits_controller.rb
@@ -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 }
diff --git a/app/controllers/keys_controller.rb b/app/controllers/keys_controller.rb
index 33c6958d6ab..ce49e3e72c6 100644
--- a/app/controllers/keys_controller.rb
+++ b/app/controllers/keys_controller.rb
@@ -1,6 +1,6 @@
class KeysController < ApplicationController
layout "profile"
- respond_to :js
+ respond_to :js, :html
def index
@keys = current_user.keys.all
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb
index 3456a0a7fcb..9ab62f5e72c 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -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 }
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 6bd72a860b3..7f9e6866d89 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -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
diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb
index 2f887a4ebe1..0e062fc6697 100644
--- a/app/controllers/refs_controller.rb
+++ b/app/controllers/refs_controller.rb
@@ -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
#
diff --git a/app/controllers/team_members_controller.rb b/app/controllers/team_members_controller.rb
index c05602f9a80..ab51c19e0c8 100644
--- a/app/controllers/team_members_controller.rb
+++ b/app/controllers/team_members_controller.rb
@@ -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
diff --git a/app/helpers/dashboard_helper.rb b/app/helpers/dashboard_helper.rb
index 5cf1027854d..55ed901c210 100644
--- a/app/helpers/dashboard_helper.rb
+++ b/app/helpers/dashboard_helper.rb
@@ -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
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 7f06f4e68fa..0d45c645014 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -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
diff --git a/app/views/admin/projects/_form.html.haml b/app/views/admin/projects/_form.html.haml
index ea42ed22311..d10fbf95767 100644
--- a/app/views/admin/projects/_form.html.haml
+++ b/app/views/admin/projects/_form.html.haml
@@ -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();
})
diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml
index f57b98d0f34..576dbf046f7 100644
--- a/app/views/admin/projects/index.html.haml
+++ b/app/views/admin/projects/index.html.haml
@@ -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"
diff --git a/app/views/admin/projects/show.html.haml b/app/views/admin/projects/show.html.haml
index cc83add6db4..3e589a0cecb 100644
--- a/app/views/admin/projects/show.html.haml
+++ b/app/views/admin/projects/show.html.haml
@@ -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
diff --git a/app/views/admin/team_members/_form.html.haml b/app/views/admin/team_members/_form.html.haml
index f8e7f1043d0..e6dd6a43f72 100644
--- a/app/views/admin/team_members/_form.html.haml
+++ b/app/views/admin/team_members/_form.html.haml
@@ -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 {
diff --git a/app/views/admin/team_members/index.html.haml b/app/views/admin/team_members/index.html.haml
index 8033e690642..8426c8638c6 100644
--- a/app/views/admin/team_members/index.html.haml
+++ b/app/views/admin/team_members/index.html.haml
@@ -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"
diff --git a/app/views/admin/users/_form.html.haml b/app/views/admin/users/_form.html.haml
index e695332239f..b137ae3dbdc 100644
--- a/app/views/admin/users/_form.html.haml
+++ b/app/views/admin/users/_form.html.haml
@@ -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"
diff --git a/app/views/admin/users/index.html.haml b/app/views/admin/users/index.html.haml
index db58a6b47a2..b562a83183b 100644
--- a/app/views/admin/users/index.html.haml
+++ b/app/views/admin/users/index.html.haml
@@ -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"
diff --git a/app/views/admin/users/new.html.haml b/app/views/admin/users/new.html.haml
index 87ea570b790..87d6b0f2757 100644
--- a/app/views/admin/users/new.html.haml
+++ b/app/views/admin/users/new.html.haml
@@ -1,6 +1,3 @@
-%h1 New user
-
+%h2 New user
+%hr
= render 'form'
-
-%br
-= link_to 'Back', admin_users_path, :class => ""
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index da8f4370cab..755ee353c08 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -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"
diff --git a/app/views/commits/_commits.html.haml b/app/views/commits/_commits.html.haml
index f1537d1ced0..cdea9acb9d6 100644
--- a/app/views/commits/_commits.html.haml
+++ b/app/views/commits/_commits.html.haml
@@ -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
- &nbsp;
- %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
- &nbsp;
- %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
+ &ndash;
+ = 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
diff --git a/app/views/commits/index.html.haml b/app/views/commits/index.html.haml
index 5a760b3a2dc..6b6c52d7cc1 100644
--- a/app/views/commits/index.html.haml
+++ b/app/views/commits/index.html.haml
@@ -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();
+ });
diff --git a/app/views/commits/show.html.haml b/app/views/commits/show.html.haml
index 6010f01f6cb..05a4c38de5a 100644
--- a/app/views/commits/show.html.haml
+++ b/app/views/commits/show.html.haml
@@ -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
diff --git a/app/views/dashboard/_issues_feed.html.haml b/app/views/dashboard/_issues_feed.html.haml
index 45892664df7..782cb5e0954 100644
--- a/app/views/dashboard/_issues_feed.html.haml
+++ b/app/views/dashboard/_issues_feed.html.haml
@@ -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
+ &ndash;
+ Issue #
+ = issue.id
+ = truncate issue.title, :length => 50
diff --git a/app/views/dashboard/_merge_requests_feed.html.haml b/app/views/dashboard/_merge_requests_feed.html.haml
index 1f8553e4a70..4f40f547714 100644
--- a/app/views/dashboard/_merge_requests_feed.html.haml
+++ b/app/views/dashboard/_merge_requests_feed.html.haml
@@ -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
- &rarr;
- %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
+ &ndash;
+ Merge Request #
+ = merge_request.id
+ = truncate merge_request.title, :length => 50
diff --git a/app/views/dashboard/_projects_feed.html.haml b/app/views/dashboard/_projects_feed.html.haml
index 0d347246355..8171f59a609 100644
--- a/app/views/dashboard/_projects_feed.html.haml
+++ b/app/views/dashboard/_projects_feed.html.haml
@@ -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
diff --git a/app/views/dashboard/_sidebar.html.haml b/app/views/dashboard/_sidebar.html.haml
deleted file mode 100644
index dec71186f73..00000000000
--- a/app/views/dashboard/_sidebar.html.haml
+++ /dev/null
@@ -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"
-
diff --git a/app/views/dashboard/index.html.haml b/app/views/dashboard/index.html.haml
index b3de30f2ecd..3eba2f47bfb 100644
--- a/app/views/dashboard/index.html.haml
+++ b/app/views/dashboard/index.html.haml
@@ -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"
diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml
index 063183ed0d1..6db447fbee8 100644
--- a/app/views/dashboard/issues.html.haml
+++ b/app/views/dashboard/issues.html.haml
@@ -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"
diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml
index 088577eaf50..91dd6909915 100644
--- a/app/views/dashboard/merge_requests.html.haml
+++ b/app/views/dashboard/merge_requests.html.haml
@@ -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"
diff --git a/app/views/deploy_keys/_form.html.haml b/app/views/deploy_keys/_form.html.haml
index f0a300bb60e..2aa57cdc59b 100644
--- a/app/views/deploy_keys/_form.html.haml
+++ b/app/views/deploy_keys/_form.html.haml
@@ -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"
diff --git a/app/views/deploy_keys/index.html.haml b/app/views/deploy_keys/index.html.haml
index 02c8c135998..3e8ff515ac2 100644
--- a/app/views/deploy_keys/index.html.haml
+++ b/app/views/deploy_keys/index.html.haml
@@ -1,17 +1,10 @@
= render "repositories/head"
-
-%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(); });
-
+- 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
+
+%ul.unstyled
+ - @keys.each do |key|
+ %li= render(:partial => 'show', :locals => {:key => key})
diff --git a/app/views/deploy_keys/show.html.haml b/app/views/deploy_keys/show.html.haml
index 2c5c6149313..16c441bea73 100644
--- a/app/views/deploy_keys/show.html.haml
+++ b/app/views/deploy_keys/show.html.haml
@@ -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
diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb
index 01cb3375d1d..76fc34968ff 100644
--- a/app/views/devise/passwords/new.html.erb
+++ b/app/views/devise/passwords/new.html.erb
@@ -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 %>
diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb
index f5bd9575705..c110eee315d 100644
--- a/app/views/devise/sessions/new.html.erb
+++ b/app/views/devise/sessions/new.html.erb
@@ -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>
diff --git a/app/views/devise/shared/_links.erb b/app/views/devise/shared/_links.erb
index 33b1120f992..c624c2d54bf 100644
--- a/app/views/devise/shared/_links.erb
+++ b/app/views/devise/shared/_links.erb
@@ -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' %>
diff --git a/app/views/hooks/index.html.haml b/app/views/hooks/index.html.haml
index 3bff76f47c0..d00b0677621 100644
--- a/app/views/hooks/index.html.haml
+++ b/app/views/hooks/index.html.haml
@@ -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"
diff --git a/app/views/hooks/show.html.haml b/app/views/hooks/show.html.haml
index 47c1ddeac40..5ec4d5d8758 100644
--- a/app/views/hooks/show.html.haml
+++ b/app/views/hooks/show.html.haml
@@ -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"
diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml
index d13827e76ac..555a51a5f5b 100644
--- a/app/views/issues/_form.html.haml
+++ b/app/views/issues/_form.html.haml
@@ -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"
- &nbsp;
+ - 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"
diff --git a/app/views/issues/_head.html.haml b/app/views/issues/_head.html.haml
index 7d44b87564f..d539025296a 100644
--- a/app/views/issues/_head.html.haml
+++ b/app/views/issues/_head.html.haml
@@ -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
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index 8c095268493..cc154d8c0c9 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -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)
+
+
+
+
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index 37654c83e1c..b83c4f472ae 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -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' }
+ - 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
+ %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
- .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"
+ .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"
- .clear
- %hr
- %table.no-borders#issues-table
- = render "issues"
- %br
: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)}"})
}
diff --git a/app/views/issues/index.js.haml b/app/views/issues/index.js.haml
index a08ffe5adbb..a534cfbf234 100644
--- a/app/views/issues/index.js.haml
+++ b/app/views/issues/index.js.haml
@@ -1,3 +1,3 @@
:plain
- $('#issues-table tbody').html("#{escape_javascript(render('issues'))}");
+ $('#issues-table').html("#{escape_javascript(render('issues'))}");
setSortable();
diff --git a/app/views/issues/show.html.haml b/app/views/issues/show.html.haml
index 48fca97d230..2ef59a2f1e8 100644
--- a/app/views/issues/show.html.haml
+++ b/app/views/issues/show.html.haml
@@ -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
+ - 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) 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
- &rarr;
- = link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
- %span.author= @issue.assignee_name
- &nbsp;
-
- &nbsp;
- = @issue.created_at.stamp("Aug 21, 2011 9:23pm")
-
- %hr
- %br
- %h3
- = simple_format @issue.title
-
-.clear
-%br
-%br
-
-.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"
-
-.merge-request-notes
- .issue_notes= render "notes/notes"
- .loading{ :style => "display:none;"}
- %center= image_tag "ajax-loader.gif"
- .clear
+ = link_to edit_project_issue_path(@project, @issue), :class => "btn small" do
+ Edit
+
+%hr
+- if @issue.closed
+ .alert-message.error Closed
+- else
+ .alert-message.success Open
+
+
+%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
+
+ %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
+
+
+.issue_notes= render "notes/notes"
diff --git a/app/views/keys/_form.html.haml b/app/views/keys/_form.html.haml
index 1cc7e336b5f..cdabdc739d6 100644
--- a/app/views/keys/_form.html.haml
+++ b/app/views/keys/_form.html.haml
@@ -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"
diff --git a/app/views/keys/_show.html.haml b/app/views/keys/_show.html.haml
index 3d506e425c9..81ecbfe6ba6 100644
--- a/app/views/keys/_show.html.haml
+++ b/app/views/keys/_show.html.haml
@@ -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
diff --git a/app/views/keys/index.html.haml b/app/views/keys/index.html.haml
index 933eef63529..e6979f5e212 100644
--- a/app/views/keys/index.html.haml
+++ b/app/views/keys/index.html.haml
@@ -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(); });
-
diff --git a/app/views/keys/new.html.haml b/app/views/keys/new.html.haml
index fed448b4e09..743a3173706 100644
--- a/app/views/keys/new.html.haml
+++ b/app/views/keys/new.html.haml
@@ -1,5 +1,3 @@
-%h1 New key
-
+%h3 New key
+%hr
= render 'form'
-
-= link_to 'Back', keys_path
diff --git a/app/views/keys/show.html.haml b/app/views/keys/show.html.haml
index 9dcaa093ce5..fe7f80d591f 100644
--- a/app/views/keys/show.html.haml
+++ b/app/views/keys/show.html.haml
@@ -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"
diff --git a/app/views/layouts/_app_side.html.haml b/app/views/layouts/_app_side.html.haml
new file mode 100644
index 00000000000..b4a97c5ad69
--- /dev/null
+++ b/app/views/layouts/_app_side.html.haml
@@ -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"}"
diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml
index 4011485c55d..5139aed498c 100644
--- a/app/views/layouts/_flash.html.haml
+++ b/app/views/layouts/_flash.html.haml
@@ -10,7 +10,7 @@
$("#flash_container").click(function(){
$(this).slideUp("slow");
});
- setTimeout("hideFlash()",2000);
+ setTimeout("hideFlash()",3000);
});
function hideFlash(){
diff --git a/app/views/layouts/_head_panel.html.haml b/app/views/layouts/_head_panel.html.haml
index 5f7752283a1..7d8ceecf5b6 100644
--- a/app/views/layouts/_head_panel.html.haml
+++ b/app/views/layouts/_head_panel.html.haml
@@ -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!
diff --git a/app/views/layouts/_project_side.html.haml b/app/views/layouts/_project_side.html.haml
index 00038cc373e..1e553788f85 100644
--- a/app/views/layouts/_project_side.html.haml
+++ b/app/views/layouts/_project_side.html.haml
@@ -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 project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do
+ Merge Requests
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
- Wall
+ @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
+ %span.label= @project.common_notes.today.count
diff --git a/app/views/layouts/_project_side_right.html.haml b/app/views/layouts/_project_side_right.html.haml
new file mode 100644
index 00000000000..841f549844e
--- /dev/null
+++ b/app/views/layouts/_project_side_right.html.haml
@@ -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
+
+
diff --git a/app/views/layouts/_projects_side.html.haml b/app/views/layouts/_projects_side.html.haml
new file mode 100644
index 00000000000..a55d00045eb
--- /dev/null
+++ b/app/views/layouts/_projects_side.html.haml
@@ -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
+
+
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
index 2b3188056f9..0679b4050d5 100644
--- a/app/views/layouts/admin.html.haml
+++ b/app/views/layouts/admin.html.haml
@@ -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
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index e86e5c74fa4..729d0e7fccf 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -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"
diff --git a/app/views/layouts/devise.html.haml b/app/views/layouts/devise.html.haml
index 882195ae58d..8e048f813ba 100644
--- a/app/views/layouts/devise.html.haml
+++ b/app/views/layouts/devise.html.haml
@@ -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
diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml
index 6eeecb294be..ce41627eefe 100644
--- a/app/views/layouts/profile.html.haml
+++ b/app/views/layouts/profile.html.haml
@@ -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"
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index a87b3400812..97467e4caa6 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -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"
+
diff --git a/app/views/merge_requests/_commits.html.haml b/app/views/merge_requests/_commits.html.haml
index c0d7486b704..ddc0ce19189 100644
--- a/app/views/merge_requests/_commits.html.haml
+++ b/app/views/merge_requests/_commits.html.haml
@@ -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
diff --git a/app/views/merge_requests/_form.html.haml b/app/views/merge_requests/_form.html.haml
index d771661b03b..cab517dc3d5 100644
--- a/app/views/merge_requests/_form.html.haml
+++ b/app/views/merge_requests/_form.html.haml
@@ -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
&nbsp;
- 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"
diff --git a/app/views/merge_requests/_head.html.haml b/app/views/merge_requests/_head.html.haml
index ccebd8ef047..3d847b302ae 100644
--- a/app/views/merge_requests/_head.html.haml
+++ b/app/views/merge_requests/_head.html.haml
@@ -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
-
diff --git a/app/views/merge_requests/_merge_request.html.haml b/app/views/merge_requests/_merge_request.html.haml
index 262aa661c94..33dd7e5d701 100644
--- a/app/views/merge_requests/_merge_request.html.haml
+++ b/app/views/merge_requests/_merge_request.html.haml
@@ -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
&rarr;
- %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)
diff --git a/app/views/merge_requests/edit.html.haml b/app/views/merge_requests/edit.html.haml
index bcc5832792f..9e4f9327cdc 100644
--- a/app/views/merge_requests/edit.html.haml
+++ b/app/views/merge_requests/edit.html.haml
@@ -1 +1,4 @@
+%h3
+ = "Edit merge request #{@merge_request.id}"
+%hr
= render 'form'
diff --git a/app/views/merge_requests/index.html.haml b/app/views/merge_requests/index.html.haml
index fa02be9e92c..ea2f2433aa2 100644
--- a/app/views/merge_requests/index.html.haml
+++ b/app/views/merge_requests/index.html.haml
@@ -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
-
- .clear
- %br
+%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
-- 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
diff --git a/app/views/merge_requests/new.html.haml b/app/views/merge_requests/new.html.haml
index bcc5832792f..efafa45d758 100644
--- a/app/views/merge_requests/new.html.haml
+++ b/app/views/merge_requests/new.html.haml
@@ -1 +1,3 @@
+%h3 New Merge Request
+%hr
= render 'form'
diff --git a/app/views/merge_requests/show.html.haml b/app/views/merge_requests/show.html.haml
index 6fc6d5c1bf9..6293d2d8c29 100644
--- a/app/views/merge_requests/show.html.haml
+++ b/app/views/merge_requests/show.html.haml
@@ -1,60 +1,64 @@
-%div
- %span.entity-info
+%h3
+ = "Merge Request ##{@merge_request.id}:"
+ &nbsp;
+ %span.label= @merge_request.source_branch
+ &rarr;
+ %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
+ - if @merge_request.closed
+ = 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 => "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) 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}:"
- &nbsp;
- .tag.commit.inline= @merge_request.source_branch
- &rarr;
- .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
- &rarr;
- = link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
- %span.author= @merge_request.assignee_name
+ = link_to edit_project_merge_request_path(@project, @merge_request), :class => "btn small" do
+ Edit
- &nbsp;
- &nbsp;
- = @merge_request.created_at.stamp("Aug 21, 2011 9:23pm")
+%hr
+- if @merge_request.closed
+ .alert-message.error Closed
+- else
+ .alert-message.success Open
- %hr
- %br
- %h3
- = simple_format @merge_request.title
-.clear
-%br
-%br
+%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
-.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
+ %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
- - 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"
- - 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"
%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
diff --git a/app/views/notes/_form.html.haml b/app/views/notes/_form.html.haml
index d67ab45e8f4..7adfba8e813 100644
--- a/app/views/notes/_form.html.haml
+++ b/app/views/notes/_form.html.haml
@@ -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)
- &nbsp;
- = 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"
diff --git a/app/views/notes/_per_line_form.html.haml b/app/views/notes/_per_line_form.html.haml
index 72989320226..00fa3db82cd 100644
--- a/app/views/notes/_per_line_form.html.haml
+++ b/app/views/notes/_per_line_form.html.haml
@@ -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(){
diff --git a/app/views/profile/design.html.haml b/app/views/profile/design.html.haml
index 4a0f758d31f..68746fdc214 100644
--- a/app/views/profile/design.html.haml
+++ b/app/views/profile/design.html.haml
@@ -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"
diff --git a/app/views/profile/password.html.haml b/app/views/profile/password.html.haml
index 893263f7d8d..3a88b1ce439 100644
--- a/app/views/profile/password.html.haml
+++ b/app/views/profile/password.html.haml
@@ -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"
diff --git a/app/views/profile/show.html.haml b/app/views/profile/show.html.haml
index 8ebb4dcb713..723b6413d55 100644
--- a/app/views/profile/show.html.haml
+++ b/app/views/profile/show.html.haml
@@ -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"
diff --git a/app/views/projects/_feed.html.haml b/app/views/projects/_feed.html.haml
index 4f8e59f8c51..e399f5cab9a 100644
--- a/app/views/projects/_feed.html.haml
+++ b/app/views/projects/_feed.html.haml
@@ -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
+ &ndash;
+ 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
&rarr;
- %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
- &rarr;
- %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)
+ &nbsp;
+ = dashboard_feed_title(update)
diff --git a/app/views/projects/_form.html.haml b/app/views/projects/_form.html.haml
index 421e8409824..44b72336051 100644
--- a/app/views/projects/_form.html.haml
+++ b/app/views/projects/_form.html.haml
@@ -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 &amp; repository. Please wait for few minutes
- - else
- %h3.prepend-top Updating project &amp; repository. Please wait for few minutes
+ %br
- .merge-tabs
- = f.submit 'Save', :class => "grey-button"
- &nbsp;
+ .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"
diff --git a/app/views/projects/_project_head.html.haml b/app/views/projects/_project_head.html.haml
index cbcd0660e10..0d56b43970e 100644
--- a/app/views/projects/_project_head.html.haml
+++ b/app/views/projects/_project_head.html.haml
@@ -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
diff --git a/app/views/projects/_team.html.haml b/app/views/projects/_team.html.haml
index 3d033a85913..7271479e1d8 100644
--- a/app/views/projects/_team.html.haml
+++ b/app/views/projects/_team.html.haml
@@ -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(); });
+ */
diff --git a/app/views/projects/_tile.html.haml b/app/views/projects/_tile.html.haml
index d9549045058..360cf340170 100644
--- a/app/views/projects/_tile.html.haml
+++ b/app/views/projects/_tile.html.haml
@@ -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
diff --git a/app/views/projects/create.js.haml b/app/views/projects/create.js.haml
index c457527aed4..2b3106c8222 100644
--- a/app/views/projects/create.js.haml
+++ b/app/views/projects/create.js.haml
@@ -4,3 +4,4 @@
- else
:plain
$("#new_project").replaceWith("#{escape_javascript(render('form'))}");
+ $('.ajax_loader').hide();
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 69e0f218ecd..be8aae7d712 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -1,69 +1,29 @@
= render "project_head"
-
-= form_for(@project, :remote => true) do |f|
- %div
- %span.entity-info
- = link_to info_project_path(@project) do
- .entity-button
- Info
- %i
- %h2= @project.name
- %hr
- %table.no-borders
- -if @project.errors.any?
- %tr
- %td{:colspan => 2}
- #error_explanation
- - @project.errors.full_messages.each do |msg|
- %span= msg
- %br
-
- %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"
-
- - 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;")
-
- %tr
- %td= f.label :description
- %td= f.text_area :description, :placeholder => "project description", :style => "height:50px"
-
- %br
-
- .merge-tabs
- = f.submit 'Save', :class => "grey-button"
- &nbsp;
- - unless @project.new_record?
- .right
- = link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
-
+%h3 Edit Project
+%hr
+= render "projects/form"
%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
%center
= image_tag "ajax-loader.gif", :class => "append-bottom"
- %h3.prepend-top Updating project &amp; repository. Please wait for few minutes
+ %h3.prepend-top Saving project &amp; repository. Please wait...
:javascript
- $('.edit_project').bind('ajax:before', function() {
- $(".edit_project").hide();
- $('.ajax_loader').show();
+ $(function(){
+ $("#project_name").live("change", function(){
+ var slug = slugify($(this).val());
+ $("#project_code").val(slug);
+ $("#project_path").val(slug);
+ });
});
-:javascript
+ function slugify(text) {
+ return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase();
+ }
+
$(function(){
- $('#project_default_branch').chosen();
+ $('.edit_project').live('ajax:before', function() {
+ $(this).hide();
+ $('.ajax_loader').show();
+ });
+ $('form #project_default_branch').chosen();
})
-
diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml
index dda64ea77da..0811f82e152 100644
--- a/app/views/projects/empty.html.haml
+++ b/app/views/projects/empty.html.haml
@@ -1,13 +1,14 @@
- if current_user.require_ssh_key?
- %ul.errors_holder
- %li You have no ssh keys added to your profile.
- %li You wont be able to pull/push repository.
- %li Visit profile &rarr; keys and add public key of every machine you want to use for work with gitlabhq.
+ .alert-message.block-message.error
+ %ul
+ %li You have no ssh keys added yo tour profile.
+ %li You wont be able to pull/push repository.
+ %li Visit profile &rarr; keys and add public key of every machine you want to use for work with gitlabhq.
-
-%ul.alert_holder
- %li You should push repository to proceed.
- %li After push you will be able to browse code, commits etc.
+.alert-message.block-message.error
+ %ul.alert_holder
+ %li You should push repository to proceed.
+ %li After push you will be able to browse code, commits etc.
- bash_lexer = Pygments::Lexer[:bash]
%div.git-empty
diff --git a/app/views/projects/graph.html.haml b/app/views/projects/graph.html.haml
index 9dc973d7a46..7f001c6333e 100644
--- a/app/views/projects/graph.html.haml
+++ b/app/views/projects/graph.html.haml
@@ -1,8 +1,6 @@
-.top-tabs
- = link_to graph_project_path(@project), :class => "tab #{'active' if current_page?(graph_project_path(@project)) }" do
- %span
- Network Graph
-#holder.graph
+%h3 Network Graph
+%hr
+#holder.graph.well
:javascript
var chunk1={commits:#{@commits_json}};
diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml
index 8a4343b05ef..c52a7f85819 100644
--- a/app/views/projects/index.html.haml
+++ b/app/views/projects/index.html.haml
@@ -1,29 +1,19 @@
-- content_for(:body_class, "projects-page")
-.container_4
- .grid_4
- - if current_user.can_create_project?
- %a.grey-button.right{:href => new_project_path} Create new project
- %h2.icon
- %span
- Projects
+%h3
+ Projects
+ %small= "( #{current_user.projects.count} )"
+%hr
+- unless @projects.empty?
+ %div.tile= render "tile"
- %div.clear
- - unless @projects.empty?
- %div{:class => "tile"}
- = render "tile"
+ -# If projects requris paging
+ -# We add ajax loader & init script
+ - if @projects.count == @limit
+ .loading{ :style => "display:none;"}
+ %center= image_tag "ajax-loader.gif"
- -# If projects requris paging
- -# We add ajax loader & init script
- - if @projects.count == @limit
- .clear
- .loading{ :style => "display:none;"}
- %center= image_tag "ajax-loader.gif"
-
- :javascript
- $(function(){
- ProjectsList.init(16);
- });
- - else
- %center.prepend-top
- %h2
- %cite Nothing here
+ :javascript
+ $(function(){
+ ProjectsList.init(16);
+ });
+- else
+ %h2 Nothing here
diff --git a/app/views/projects/info.html.haml b/app/views/projects/info.html.haml
index 787ad06d30e..513b2ab2cd4 100644
--- a/app/views/projects/info.html.haml
+++ b/app/views/projects/info.html.haml
@@ -1,15 +1,14 @@
= render "project_head"
+%h3= @project.name
+%br
-%div
- %span.entity-info
- = link_to edit_project_path(@project) do
- .entity-button
- Edit
- %i
- %h2= @project.name
- %hr
+
+
+%pre
+ = "git clone #{@project.url_to_repo}"
-%table.no-borders
+
+%table
%tr
%td Name
%td= @project.name
@@ -17,6 +16,36 @@
%tr
%td Slug
%td= @project.code
+
+ %tr
+ %td Path
+ %td= @project.path
+
+ %tr
+ %td Owner
+ %td= link_to @project.owner.name, project_team_member_path(@project, @project.team_member_by_id(@project.owner))
+
+ %tr
+ %td Last commit
+ %td
+ = time_ago_in_words(@project.commit.committed_date)
+ ago
+
+ %tr
+ %td Team
+ %td
+ = @project.users_projects.count
+ users
+
+ %tr
+ %td Open Issues
+ %td
+ = @project.issues.opened.count
+
+ %tr
+ %td Merge Requests
+ %td
+ = @project.merge_requests.opened.count
%tr
%td Created
@@ -25,4 +54,6 @@
%tr
%td{:colspan => 2}= simple_format @project.description
+.actions
+ = link_to "Edit", edit_project_path(@project), :class => "btn"
diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml
index 02ddc683851..5883e7b8890 100644
--- a/app/views/projects/new.html.haml
+++ b/app/views/projects/new.html.haml
@@ -1,17 +1,14 @@
-- content_for(:body_class, "new-project-page")
-- content_for(:page_title) do
- .new-project-hodler
- .container
- %h2.icon
- %span
- New Project
-
- %div.clear
- = render 'form'
+%h3 New Project
+%hr
+= render 'form'
+%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
+ %center
+ = image_tag "ajax-loader.gif", :class => "append-bottom"
+ %h3.prepend-top Creating project &amp; repository. Please wait for few minutes
:javascript
$(function(){
- $("#project_name").change(function(){
+ $("#project_name").live("change", function(){
var slug = slugify($(this).val());
$("#project_code").val(slug);
$("#project_path").val(slug);
@@ -21,3 +18,11 @@
function slugify(text) {
return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase();
}
+
+ $(function(){
+ $('.new_project').live('ajax:before', function() {
+ $(this).hide();
+ $('.ajax_loader').show();
+ });
+ $('form #project_default_branch').chosen();
+ })
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index 2eb220b589a..d388f5bd52d 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -1,13 +1,21 @@
-- content_for(:body_class, "project-page dashboard")
-
= render "project_head"
-#news-feed.news-feed
- .project-box.project-updates
- - @activities.each do |update|
- = render "projects/feed", :update => update, :project => @project
-
-:javascript
- function updateDashboard(){
- $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");
- }
- setInterval("updateDashboard()", 300000);
+- @activities.each do |update|
+ .alert-message.entry
+ = link_to dashboard_feed_path(@project, update) do
+ - if update.kind_of? Note
+ %p
+ %strong
+ = update.target.class.name.titleize
+ = truncate update.target.id.to_s, :length => 10
+ commented
+ &ndash;
+ = image_tag gravatar_icon(update.author_email), :class => "", :width => 16
+ = truncate dashboard_feed_title(update), :length => 50
+ - else
+ %p
+ %strong
+ = update.class.name.titleize
+ = truncate update.id.to_s
+ &ndash;
+ = image_tag gravatar_icon(update.author_email), :class => "", :width => 16
+ = truncate dashboard_feed_title(update), :length => 50
diff --git a/app/views/projects/update.js.haml b/app/views/projects/update.js.haml
index 70d8490ebe2..4c69128b297 100644
--- a/app/views/projects/update.js.haml
+++ b/app/views/projects/update.js.haml
@@ -4,3 +4,4 @@
- else
:plain
$(".edit_project").replaceWith("#{escape_javascript(render('form'))}");
+ $('.ajax_loader').hide();
diff --git a/app/views/refs/_tree.html.haml b/app/views/refs/_tree.html.haml
index 0ab69574cee..9a17bb80a5e 100644
--- a/app/views/refs/_tree.html.haml
+++ b/app/views/refs/_tree.html.haml
@@ -1,19 +1,25 @@
-#tree-breadcrumbs
- %div
+%ul.breadcrumb
+ %li
+ = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form left", :remote => true do
+ = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
+ = hidden_field_tag :destination, "tree"
+ = hidden_field_tag :path, params[:path]
+
+ %li
= link_to tree_project_ref_path(@project, @ref, :path => nil), :remote => true do
= @project.code
- - tree.breadcrumbs(6) do |link|
- \/
- = link
- &nbsp;
- %span.tree_progress
+ - tree.breadcrumbs(6) do |link|
+ \/
+ %li= link
.clear
+%div.tree_progress
+ = image_tag "ajax-loader.gif"
#tree-content-holder
- if tree.is_blob?
= render :partial => "refs/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
- else
- contents = tree.contents
- %table#tree-slider.no-borders
+ %table#tree-slider
%thead
%th Name
%th Last Update
@@ -43,12 +49,20 @@
- else
= simple_format(content.data)
+- if params[:path]
+ - history_path = tree_file_project_ref_path(@project, @ref, params[:path])
+- else
+ - history_path = tree_project_ref_path(@project, @ref)
:javascript
$(function(){
$('select#branch').selectmenu({style:'popup', width:200});
$('select#tag').selectmenu({style:'popup', width:200});
+ $('.project-refs-select').chosen();
+
+ history.pushState({ path: this.path }, '', "#{history_path}")
});
+
- if params[:path] && request.xhr?
:javascript
$(window).unbind('popstate');
diff --git a/app/views/repositories/_feed.html.haml b/app/views/repositories/_feed.html.haml
index f163b477d2c..3d99b8eae42 100644
--- a/app/views/repositories/_feed.html.haml
+++ b/app/views/repositories/_feed.html.haml
@@ -1,15 +1,13 @@
-%a.project-update.titled{:href => project_commits_path(project, :ref => update.head.name)}
- = 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
- .title-block
- %span.update-title
- %span.commit.tag= update.head.name
- %span.update-author
- .left= truncate update.commit.id
-
+- commit = update
+.alert-message.entry
+ = link_to project_commits_path(@project, :ref => commit.head.name) do
+ %p
+ %strong
+ = commit.head.name
+ &ndash;
+ = truncate(commit.id.to_s, :length => 10)
+ = image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
+ = truncate(commit.safe_message, :length => 40)
+ %span.right
+ = time_ago_in_words(commit.committed_date)
+ ago
diff --git a/app/views/repositories/_head.html.haml b/app/views/repositories/_head.html.haml
index 0095098e894..37360d48a62 100644
--- a/app/views/repositories/_head.html.haml
+++ b/app/views/repositories/_head.html.haml
@@ -1,28 +1,23 @@
-.top-tabs.repository
- = link_to project_repository_path(@project), :class => "activities-tab tab #{'active' if current_page?(project_repository_path(@project)) }" do
- %span
- Activities
- = link_to branches_project_repository_path(@project), :class => "tab #{'active' if current_page?(branches_project_repository_path(@project)) }" do
- %span
- Branches
- = link_to tags_project_repository_path(@project), :class => "tab #{'active' if current_page?(tags_project_repository_path(@project)) }" do
- %span
- Tags
- = link_to project_hooks_path, :class => "tab #{'active' if controller.controller_name == "hooks" }" do
- %span
- Hooks
- - if can? current_user, :admin_project, @project
- = link_to project_deploy_keys_path(@project), :class => "tab #{'active' if controller.controller_name == "deploy_keys"}" do
+%ul.tabs
+ %li{:class => "#{'active' if current_page?(project_repository_path(@project)) }"}
+ = link_to project_repository_path(@project) do
%span
- Deploy Keys
-
- - if current_page?(project_hooks_path(@project))
- - if can? current_user, :admin_project, @project
- = link_to new_project_hook_path(@project), :class => "add_new", :title => "New Web Hook" do
- Add new
-
- - if current_page?(project_deploy_keys_path(@project))
+ Activities
+ %li{:class => "#{'active' if current_page?(branches_project_repository_path(@project)) }"}
+ = link_to branches_project_repository_path(@project) do
+ %span
+ Branches
+ %li{:class => "#{'active' if current_page?(tags_project_repository_path(@project)) }"}
+ = link_to tags_project_repository_path(@project) do
+ %span
+ Tags
+ %li{:class => "#{'active' if controller.controller_name == "hooks" }"}
+ = link_to project_hooks_path do
+ %span
+ Hooks
+ %li{:class => "#{'active' if controller.controller_name == "deploy_keys"}"}
- if can? current_user, :admin_project, @project
- = link_to new_project_deploy_key_path(@project), :class => "add_new", :title => "New Deploy Key" do
- Add new
+ = link_to project_deploy_keys_path(@project) do
+ %span
+ Deploy Keys
diff --git a/app/views/repositories/branches.html.haml b/app/views/repositories/branches.html.haml
index befa88cc8d0..d817ab5147f 100644
--- a/app/views/repositories/branches.html.haml
+++ b/app/views/repositories/branches.html.haml
@@ -1,13 +1,20 @@
= render "head"
- unless @branches.empty?
- %div.update-data.ui-box.ui-box-small
- .data
+ %table
+ %thead
+ %tr
+ %th Name
+ %th Last commit
+ %tbody
- @branches.each do |branch|
- %a.update-item{:href => project_commits_path(@project, :ref => branch.name)}
- %span.update-title{:style => "margin-bottom:0px;"}
- = branch.name
- %span.update-author.right
- = time_ago_in_words(branch.commit.committed_date)
- ago
-- else
- %h3 No brances
+ %tr
+ %td
+ = link_to project_commits_path(@project, :ref => branch.name) do
+ %strong= branch.name
+ - if branch.name == @project.root_ref
+ %span.label default
+ %td
+ = link_to project_commits_path(@project, branch.commit.id) do
+ = truncate branch.commit.id.to_s, :length => 10
+ = time_ago_in_words(branch.commit.committed_date)
+ ago
diff --git a/app/views/repositories/show.html.haml b/app/views/repositories/show.html.haml
index 3c9208cbd4b..91dd8ee663d 100644
--- a/app/views/repositories/show.html.haml
+++ b/app/views/repositories/show.html.haml
@@ -1,8 +1,5 @@
-- content_for(:body_class, "project-page dashboard")
= render "head"
-
-#news-feed.news-feed
- .project-box.project-updates
- - @activities.each do |update|
- = render "repositories/feed", :update => update, :project => @project
+%ul.unstyled
+ - @activities.each do |update|
+ = render "repositories/feed", :update => update, :project => @project
diff --git a/app/views/team_members/_show.html.haml b/app/views/team_members/_show.html.haml
index b0e8f17204f..65c8aa0630c 100644
--- a/app/views/team_members/_show.html.haml
+++ b/app/views/team_members/_show.html.haml
@@ -1,19 +1,19 @@
- user = member.user
- allow_admin = can? current_user, :admin_project, @project
-%tr{:id => dom_id(member)}
- %td
- = link_to image_tag(gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding:0 5px;"), project_team_member_path(@project, member)
+%li{:id => dom_id(member)}
+ = link_to project_team_member_path(@project, member), :title => user.name do
+ = image_tag gravatar_icon(user.email, 90), :class => "thumbnail"
+ .row
+ .span6
+ %h4
+ = truncate(user.name, :lenght => 24)
+ %small= truncate user.email, :lenght => 24
- = link_to truncate(user.name, :lenght => 24), project_team_member_path(@project, member)
- %br
- .cgray{:style => "padding-top:10px;"}= truncate user.email, :lenght => 24
- %td
+ .span3
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
- = f.select :project_access, options_for_select(Project.access_options, member.project_access), {}, :class => "project-access-select", :disabled => !allow_admin
- %td
+ = f.select :project_access, options_for_select(Project.access_options, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
+ .span3
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
- = f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "repo-access-select", :disabled => !allow_admin
- - if allow_admin
- %td
- = link_to 'Cancel', project_team_member_path(:project_id => @project, :id => member.id), :confirm => 'Are you sure?', :method => :delete, :class => "grey-button negative delete-team-member", :remote => true
-
+ = f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "medium repo-access-select", :disabled => !allow_admin
+ - if @project.owner == user
+ %span.label Project Owner
diff --git a/app/views/team_members/show.html.haml b/app/views/team_members/show.html.haml
index 6293eee9789..3712819aace 100644
--- a/app/views/team_members/show.html.haml
+++ b/app/views/team_members/show.html.haml
@@ -1,21 +1,13 @@
- allow_admin = can? current_user, :admin_project, @project
- user = @team_member.user
%div
- %span.entity-info
- = link_to team_project_path(@project) do
- .entity-button
- Team
- %i
+ = link_to team_project_path(@project), :class => "btn right" do
+ Team ยป
- = image_tag gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding-right:5px;"
- %span.commit-title
- %strong
- = user.name
- %span.commit-author
- %strong
- = user.email
- %hr
- %br
+ .media-grid
+ = link_to "#" do
+ = image_tag gravatar_icon(user.email, 90), :class => "thumbnail"
+ %h3.media_h= user.name
%table.no-borders
%tr
@@ -59,9 +51,8 @@
%td= user.twitter
- if can? current_user, :admin_project, @project
- .merge-tabs
- .right
- = link_to 'Remove from team', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
+ .actions
+ = link_to 'Remove from team', project_team_member_path(:project_id => @project, :id => @team_member.id), :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
:javascript
$(function(){
diff --git a/config/routes.rb b/config/routes.rb
index df079238767..05d96e91d9c 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -106,5 +106,5 @@ Gitlab::Application.routes.draw do
end
resources :notes, :only => [:create, :destroy]
end
- root :to => "dashboard#index"
+ root :to => "projects#index"
end
diff --git a/spec/requests/commits_spec.rb b/spec/requests/commits_spec.rb
index f79e9753c48..e4195ed8c4a 100644
--- a/spec/requests/commits_spec.rb
+++ b/spec/requests/commits_spec.rb
@@ -22,8 +22,8 @@ describe "Commits" do
end
it "should list commits" do
- page.should have_content(commit.author)
page.should have_content(commit.message)
+ page.should have_content(commit.id.to_s[0..5])
end
it "should render atom feed" do
diff --git a/spec/requests/dashboard_issues_spec.rb b/spec/requests/dashboard_issues_spec.rb
index 46c5553e155..29c79313f7e 100644
--- a/spec/requests/dashboard_issues_spec.rb
+++ b/spec/requests/dashboard_issues_spec.rb
@@ -34,11 +34,9 @@ describe "User Issues Dashboard" do
it { should have_content(@issue1.title[0..10]) }
it { should have_content(@issue1.project.name) }
- it { should have_content(@issue1.assignee.name) }
it { should have_content(@issue2.title[0..10]) }
it { should have_content(@issue2.project.name) }
- it { should have_content(@issue2.assignee.name) }
describe "atom feed", :js => false do
it "should render atom feed via private token" do
diff --git a/spec/requests/dashboard_merge_requests_spec.rb b/spec/requests/dashboard_merge_requests_spec.rb
index e591609547e..f345a858ac8 100644
--- a/spec/requests/dashboard_merge_requests_spec.rb
+++ b/spec/requests/dashboard_merge_requests_spec.rb
@@ -34,14 +34,7 @@ describe "User MergeRequests" do
it { should have_content(@merge_request1.title[0..10]) }
it { should have_content(@merge_request1.project.name) }
- it { should have_content(@merge_request1.target_branch) }
- it { should have_content(@merge_request1.source_branch) }
- it { should have_content(@merge_request1.assignee.name) }
-
it { should have_content(@merge_request2.title[0..10]) }
it { should have_content(@merge_request2.project.name) }
- it { should have_content(@merge_request2.target_branch) }
- it { should have_content(@merge_request2.source_branch) }
- it { should have_content(@merge_request2.assignee.name) }
end
end
diff --git a/spec/requests/dashboard_spec.rb b/spec/requests/dashboard_spec.rb
index 69ddd1758ba..98de046fee1 100644
--- a/spec/requests/dashboard_spec.rb
+++ b/spec/requests/dashboard_spec.rb
@@ -1,5 +1,6 @@
require 'spec_helper'
-
+__END__
+# Disabled for now
describe "Dashboard" do
before do
@project = Factory :project
diff --git a/spec/requests/issues_spec.rb b/spec/requests/issues_spec.rb
index 62daf168b78..bff99531ee7 100644
--- a/spec/requests/issues_spec.rb
+++ b/spec/requests/issues_spec.rb
@@ -51,17 +51,17 @@ describe "Issues" do
# admin access to remove issue
@user.users_projects.destroy_all
project.add_access(@user, :read, :write, :admin)
- visit project_issues_path(project)
+ visit edit_project_issue_path(project, @issue)
end
it "should remove entry" do
expect {
- click_link "destroy_issue_#{@issue.id}"
+ click_link "Remove"
}.to change { Issue.count }.by(-1)
end
end
- describe "statuses", :js => true do
+ describe "statuses" do
before do
@closed_issue = Factory :issue,
:author => @user,
@@ -76,13 +76,13 @@ describe "Issues" do
end
it "should show only closed" do
- choose "closed_issues"
+ click_link "Closed"
should have_no_content(@issue.title)
should have_content(@closed_issue.title[0..25])
end
it "should show all" do
- choose "all_issues"
+ click_link "All"
should have_content(@issue.title[0..25])
should have_content(@closed_issue.title[0..25])
end
@@ -182,7 +182,6 @@ describe "Issues" do
:assignee => @user,
:project => project
visit project_issues_path(project)
- page.execute_script("$('.action-links').css('display', 'block');")
click_link "Edit"
end
@@ -200,7 +199,6 @@ describe "Issues" do
it "should update issue fields" do
click_button "Save"
- page.should_not have_content("Issue ##{@issue.id}")
page.should have_content @user.name
page.should have_content "bug 345"
page.should have_content project.name
@@ -226,7 +224,7 @@ describe "Issues" do
@issue.save
visit project_issues_path(project)
- choose 'closed_issues'
+ click_link 'Closed'
fill_in 'issue_search', :with => 'foobar'
page.should have_content 'foobar'
diff --git a/spec/requests/keys_spec.rb b/spec/requests/keys_spec.rb
index be1f42a497c..2bc7c75ba0d 100644
--- a/spec/requests/keys_spec.rb
+++ b/spec/requests/keys_spec.rb
@@ -26,14 +26,14 @@ describe "Issues" do
end
end
- describe "New key", :js => true do
+ describe "New key" do
before do
visit keys_path
click_link "Add new"
end
it "should open new key popup" do
- page.should have_content("Add new public key")
+ page.should have_content("New key")
end
describe "fill in" do
@@ -47,7 +47,7 @@ describe "Issues" do
it "should add new key to table" do
click_button "Save"
- page.should_not have_content("Add new public key")
+ page.should_not have_content("New key")
page.should have_content "laptop"
end
end
diff --git a/spec/requests/merge_requests_spec.rb b/spec/requests/merge_requests_spec.rb
index 7d9fd67b926..f7b7e919ca8 100644
--- a/spec/requests/merge_requests_spec.rb
+++ b/spec/requests/merge_requests_spec.rb
@@ -42,9 +42,7 @@ describe "MergeRequests" do
it { should have_content(@merge_request.title[0..10]) }
it "Show page should inform user that merge request closed" do
- within ".merge-tabs" do
- page.should have_content "Reopen"
- end
+ page.should have_content "Reopen"
end
end
end
diff --git a/spec/requests/projects_spec.rb b/spec/requests/projects_spec.rb
index 6db900c0d52..f3dd707b98a 100644
--- a/spec/requests/projects_spec.rb
+++ b/spec/requests/projects_spec.rb
@@ -5,7 +5,7 @@ describe "Projects" do
describe "GET /projects" do
before do
- @project = Factory :project
+ @project = Factory :project, :owner => @user
@project.add_access(@user, :read)
visit projects_path
end
@@ -15,7 +15,7 @@ describe "Projects" do
end
it "should have link to new project" do
- page.should have_content("Create new project")
+ page.should have_content("New Project")
end
it "should have project" do
@@ -26,7 +26,7 @@ describe "Projects" do
describe "GET /projects/new" do
before do
visit projects_path
- click_link "Create new project"
+ click_link "New Project"
end
it "should be correct path" do
@@ -68,7 +68,7 @@ describe "Projects" do
describe "GET /projects/show" do
before do
- @project = Factory :project
+ @project = Factory :project, :owner => @user
@project.add_access(@user, :read)
visit project_path(@project)
@@ -128,7 +128,7 @@ describe "Projects" do
describe "PUT /projects/:id" do
before do
- @project = Factory :project
+ @project = Factory :project, :owner => @user
@project.add_access(@user, :admin, :read)
visit edit_project_path(@project)
diff --git a/spec/requests/repositories_spec.rb b/spec/requests/repositories_spec.rb
index 0b5d378daed..38c9edf568f 100644
--- a/spec/requests/repositories_spec.rb
+++ b/spec/requests/repositories_spec.rb
@@ -24,11 +24,6 @@ describe "Repository" do
it "should have link to last commit for activities tab" do
page.should have_content(@project.commit.safe_message[0..20])
- page.should have_content(@project.commit.author_name)
- end
-
- it "should show commits list" do
- page.all(:css, ".project-update").size.should == @project.repo.branches.size
end
end
diff --git a/spec/requests/team_members_spec.rb b/spec/requests/team_members_spec.rb
index 997de8b8356..f00f4d09223 100644
--- a/spec/requests/team_members_spec.rb
+++ b/spec/requests/team_members_spec.rb
@@ -10,9 +10,7 @@ describe "TeamMembers" do
describe "View profile" do
it "should be available" do
visit(team_project_path(@project))
- within "#team-table" do
- click_link(@user.name)
- end
+ click_link(@user.name)
page.should have_content @user.skype
page.should_not have_content 'Twitter'
end
@@ -55,8 +53,8 @@ describe "TeamMembers" do
describe "Cancel membership" do
it "should cancel membership" do
- visit team_project_path(@project)
- expect { click_link "Cancel" }.to change { UsersProject.count }.by(-1)
+ visit project_team_member_path(@project, @project.users_projects.last)
+ expect { click_link "Remove from team" }.to change { UsersProject.count }.by(-1)
end
end
end
diff --git a/spec/support/shared_examples.rb b/spec/support/shared_examples.rb
index 22699b0cfde..e567706ef8c 100644
--- a/spec/support/shared_examples.rb
+++ b/spec/support/shared_examples.rb
@@ -2,8 +2,7 @@ shared_examples_for :project_side_pane do
subject { page }
it { should have_content((@project || project).name) }
it { should have_content("Commits") }
- it { should have_content("Team") }
- it { should have_content("Tree") }
+ it { should have_content("Code") }
end
shared_examples_for :tree_view do