Commit 627efddf6343735ed95e49ac9b71d7929c879ea3

Authored by randx
1 parent 2bad798e

migrated to bootstrap 2

@@ -31,7 +31,7 @@ gem "httparty" @@ -31,7 +31,7 @@ gem "httparty"
31 gem "charlock_holmes" 31 gem "charlock_holmes"
32 gem "foreman" 32 gem "foreman"
33 gem "omniauth-ldap" 33 gem "omniauth-ldap"
34 -gem 'bootstrap-sass', "1.4.4" 34 +gem 'bootstrap-sass', "2.0.2"
35 gem "colored" 35 gem "colored"
36 gem 'yaml_db', :git => "https://github.com/gitlabhq/yaml_db.git" 36 gem 'yaml_db', :git => "https://github.com/gitlabhq/yaml_db.git"
37 gem 'modularity' 37 gem 'modularity'
@@ -71,8 +71,7 @@ GEM @@ -71,8 +71,7 @@ GEM
71 awesome_print (1.0.2) 71 awesome_print (1.0.2)
72 bcrypt-ruby (3.0.1) 72 bcrypt-ruby (3.0.1)
73 blankslate (2.1.2.4) 73 blankslate (2.1.2.4)
74 - bootstrap-sass (1.4.4)  
75 - sass-rails (~> 3.1) 74 + bootstrap-sass (2.0.2)
76 builder (3.0.0) 75 builder (3.0.0)
77 capybara (1.1.2) 76 capybara (1.1.2)
78 mime-types (>= 1.16) 77 mime-types (>= 1.16)
@@ -306,7 +305,7 @@ DEPENDENCIES @@ -306,7 +305,7 @@ DEPENDENCIES
306 autotest 305 autotest
307 autotest-rails 306 autotest-rails
308 awesome_print 307 awesome_print
309 - bootstrap-sass (= 1.4.4) 308 + bootstrap-sass (= 2.0.2)
310 capybara 309 capybara
311 carrierwave 310 carrierwave
312 charlock_holmes 311 charlock_holmes
app/assets/javascripts/merge_requests.js
@@ -4,18 +4,18 @@ var MergeRequest = { @@ -4,18 +4,18 @@ var MergeRequest = {
4 4
5 init: 5 init:
6 function() { 6 function() {
7 - $(".tabs a").live("click", function() {  
8 - $(".tabs a").parent().removeClass("active"); 7 + $(".nav-tabs a").live("click", function() {
  8 + $(".nav-tabs a").parent().removeClass("active");
9 $(this).parent().addClass("active"); 9 $(this).parent().addClass("active");
10 }); 10 });
11 11
12 - $(".tabs a.merge-notes-tab").live("click", function(e) { 12 + $(".nav-tabs a.merge-notes-tab").live("click", function(e) {
13 $(".merge-request-diffs").hide(); 13 $(".merge-request-diffs").hide();
14 $(".merge_request_notes").show(); 14 $(".merge_request_notes").show();
15 e.preventDefault(); 15 e.preventDefault();
16 }); 16 });
17 17
18 - $(".tabs a.merge-diffs-tab").live("click", function(e) { 18 + $(".nav-tabs a.merge-diffs-tab").live("click", function(e) {
19 if(!MergeRequest.diffs_loaded) { 19 if(!MergeRequest.diffs_loaded) {
20 MergeRequest.loadDiff(); 20 MergeRequest.loadDiff();
21 } 21 }
app/assets/stylesheets/common.scss
1 -a {  
2 - outline: none;  
3 - color: $link_color;  
4 - &:hover {  
5 - text-decoration:none;  
6 - color: $blue_link;  
7 - }  
8 -  
9 - &.btn {  
10 - color: $style_color;  
11 - }  
12 -  
13 - &.dark {  
14 - color: $style_color;  
15 - }  
16 -  
17 - &.lined {  
18 - text-decoration:underlined;  
19 - }  
20 -  
21 - &.gray {  
22 - color:gray;  
23 - }  
24 -  
25 - &.supp_diff_link {  
26 - text-align:center;  
27 - padding:20px 0;  
28 - background:#f1f1f1;  
29 - width:100%;  
30 - float:left;  
31 - }  
32 -  
33 - &.neib {  
34 - margin-right:15px;  
35 - }  
36 -}  
37 -  
38 -.btn {  
39 - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f1f1f1), color-stop(25%, #f1f1f1), to(#e6e6e6));  
40 - background-image: -webkit-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);  
41 - background-image: -moz-linear-gradient(top, #f1f1f1, #f1f1f1 25%, #e6e6e6);  
42 - background-image: -ms-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);  
43 - background-image: -o-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);  
44 - background-image: linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);  
45 -  
46 - &:hover {  
47 - }  
48 -  
49 - &.primary {  
50 - background:$link_color;  
51 - &:hover {  
52 - background:$blue_link;  
53 - }  
54 - }  
55 -}  
56 -  
57 -a:focus {  
58 - outline: none;  
59 -}  
60 -  
61 -.vlink {  
62 - color: $link_color !important;  
63 -}  
64 -  
65 -.pills a:hover {  
66 - background-color:#ccc;  
67 -}  
68 -  
69 -.pills .active a {  
70 - background-color: #aaa;  
71 -}  
72 -  
73 -.label {  
74 - background-color: #474D57;  
75 -}  
76 -  
77 -.pretty_label {  
78 - @include round-borders-all(4px);  
79 - padding:2px 4px;  
80 - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));  
81 - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);  
82 - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);  
83 - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);  
84 - color: #777;  
85 - border: 1px solid #DEDFE1;  
86 -  
87 - &.branch {  
88 - border:none;  
89 - font-size:13px;  
90 - background: #474D57;  
91 - color:#fff;  
92 - font-family: monospace;  
93 - }  
94 -}  
95 -  
96 -.event_label {  
97 - background: #FCEEC1;  
98 - padding:0 2px;  
99 - font-family: monospace;  
100 -}  
101 -  
102 -.tabs > li > a, .pills > li > a {  
103 - color:$style_color;  
104 -}  
105 -  
106 .diff_file_header a, 1 .diff_file_header a,
107 .file_stats a { 2 .file_stats a {
108 color:$style_color; 3 color:$style_color;
109 } 4 }
110 5
111 -/** COLORS **/  
112 -.cgray { color:gray; }  
113 -.cred { color:#D12F19; }  
114 -.cgreen { color:#44aa22; }  
115 -.cblack { color:#111; }  
116 -.cwhite { color:#fff !important }  
117 -  
118 -/** COMMON STYLES **/  
119 -.left {  
120 - float:left;  
121 -}  
122 -.right {  
123 - float:right !important;  
124 -}  
125 -.width-50p{  
126 - width:50%;  
127 -}  
128 -.width-49p{  
129 - width:49%;  
130 -}  
131 -.width-30p{  
132 - width:30%;  
133 -}  
134 -.width-65p{  
135 - width:65%;  
136 -}  
137 -.width-100p{  
138 - width:100%;  
139 -}  
140 -.append-bottom-10 {  
141 - margin-bottom:10px;  
142 -}  
143 -.append-bottom-20 {  
144 - margin-bottom:20px;  
145 -}  
146 -.prepend-top-10 {  
147 - margin-top:10px;  
148 -}  
149 -  
150 -.prepend-top-20 {  
151 - margin-top:20px;  
152 -}  
153 -  
154 -.padded {  
155 - padding:20px;  
156 -}  
157 -  
158 -.ipadded {  
159 - padding:20px !important;  
160 -}  
161 -.lborder {  
162 - border-left:1px solid #eee;  
163 -}  
164 -.no-borders {  
165 - border:none;  
166 -}  
167 -table.no-borders {  
168 - border:none;  
169 - tr, td { border:none }  
170 -}  
171 -.no-padding {  
172 - padding:0 !important;  
173 -}  
174 -.underlined {  
175 - border-bottom: 1px solid $border_color;  
176 -}  
177 6
178 /** LAYOUT **/ 7 /** LAYOUT **/
179 8
180 .container { 9 .container {
181 - width:$min_app_width;  
182 padding-top:0; 10 padding-top:0;
183 z-index:5; 11 z-index:5;
  12 + min-width:$min_app_width;
  13 + padding:0 20px
184 } 14 }
185 15
186 .container .content { 16 .container .content {
187 - margin:0 $app_padding; 17 + margin:0 0;
188 } 18 }
189 19
190 .container .sidebar { 20 .container .sidebar {
@@ -212,7 +42,7 @@ header { @@ -212,7 +42,7 @@ header {
212 cursor: pointer; 42 cursor: pointer;
213 img { 43 img {
214 border-radius: 4px; 44 border-radius: 4px;
215 - right: 20px; 45 + right: 0px;
216 position: absolute; 46 position: absolute;
217 width: 33px; 47 width: 33px;
218 height: 33px; 48 height: 33px;
@@ -271,7 +101,7 @@ header { @@ -271,7 +101,7 @@ header {
271 border-radius: 5px; 101 border-radius: 5px;
272 width: 100px; 102 width: 100px;
273 position: absolute; 103 position: absolute;
274 - right: 20px; 104 + right: 10px;
275 top: 46px; 105 top: 46px;
276 margin-top: 0; 106 margin-top: 0;
277 float: right; 107 float: right;
@@ -319,7 +149,7 @@ header { @@ -319,7 +149,7 @@ header {
319 nav.main_menu { 149 nav.main_menu {
320 border-radius: 4px; 150 border-radius: 4px;
321 margin: auto; 151 margin: auto;
322 - margin:30px $app_padding; 152 + margin:30px 0;
323 background:#eee; 153 background:#eee;
324 border:1px solid #bbb; 154 border:1px solid #bbb;
325 height:38px; 155 height:38px;
@@ -338,6 +168,14 @@ nav.main_menu { @@ -338,6 +168,14 @@ nav.main_menu {
338 color:$style_color; 168 color:$style_color;
339 } 169 }
340 a { 170 a {
  171 + // Landscape phone to portrait tablet
  172 + @media (max-width: 1080px) { min-width:35px; }
  173 + // Portrait tablet to landscape and desktop
  174 + @media (min-width: 1080px) and (max-width: 1200px) { min-width:40px; }
  175 + // Large desktop
  176 + @media (min-width: 1200px) { min-width:55px; }
  177 +
  178 + text-align:center;
341 font-weight:bold; 179 font-weight:bold;
342 &:first-child{ 180 &:first-child{
343 -webkit-border-top-left-radius: 4px; 181 -webkit-border-top-left-radius: 4px;
@@ -357,7 +195,7 @@ nav.main_menu { @@ -357,7 +195,7 @@ nav.main_menu {
357 &.home { 195 &.home {
358 background: url(home_icon.PNG) no-repeat center center; 196 background: url(home_icon.PNG) no-repeat center center;
359 text-indent:-9999px; 197 text-indent:-9999px;
360 - min-width:40px; 198 + //min-width:40px;
361 img { 199 img {
362 position:relative; 200 position:relative;
363 top:4px; 201 top:4px;
@@ -377,23 +215,6 @@ nav.main_menu { @@ -377,23 +215,6 @@ nav.main_menu {
377 * 215 *
378 */ 216 */
379 217
380 -  
381 -  
382 -img.avatar {  
383 - float:left;  
384 - margin-right:15px;  
385 - width:40px;  
386 - -webkit-border-radius: 4px;  
387 - -moz-border-radius: 4px;  
388 - border-radius: 4px;  
389 -}  
390 -  
391 -img.lil_av {  
392 - padding-left: 5px;  
393 - position: relative;  
394 - top: 3px;  
395 -}  
396 -  
397 .profile_avatar_holder { 218 .profile_avatar_holder {
398 float:left; 219 float:left;
399 width:60px; 220 width:60px;
@@ -406,67 +227,11 @@ img.lil_av { @@ -406,67 +227,11 @@ img.lil_av {
406 } 227 }
407 } 228 }
408 229
409 -.wll {  
410 - background-color: #FFF;  
411 - padding: 10px 5px;  
412 - min-height: 20px;  
413 - border-bottom: 1px solid #eee;  
414 - border-bottom: 1px solid rgba(0, 0, 0, 0.05);  
415 - cursor:pointer;  
416 - &.smoke {  
417 - background-color:#f5f5f5;  
418 - }  
419 - &:hover {  
420 - background:$hover;  
421 - }  
422 - &:last-child { border:none }  
423 - p { padding-top:5px; margin:0; color:$style_color;}  
424 - .author { color: #999; }  
425 - p {  
426 - color:#222;  
427 - margin-bottom: 0;  
428 - img {  
429 - position:relative;  
430 - top:3px;  
431 - }  
432 - }  
433 -}  
434 230
435 .visible_link, 231 .visible_link,
436 .author_link { 232 .author_link {
437 color: $link_color; 233 color: $link_color;
438 } 234 }
439 -.entry {  
440 - position: relative;  
441 - padding: 7px 15px;  
442 - margin-bottom: 18px;  
443 - color: #404040;  
444 - filter:none;  
445 -  
446 - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);  
447 - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);  
448 -  
449 - -webkit-border-radius: 4px;  
450 - -moz-border-radius: 4px;  
451 - border-radius: 4px;  
452 -  
453 - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);  
454 - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);  
455 - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);  
456 -  
457 - background:#F1F1F1;  
458 - border: 1px solid #ccc;  
459 -  
460 -  
461 - p {  
462 - color:$style_color;  
463 - margin-bottom: 0;  
464 - img {  
465 - position:relative;  
466 - top:3px;  
467 - }  
468 - }  
469 -}  
470 235
471 .widget { 236 .widget {
472 @include shade; 237 @include shade;
@@ -492,86 +257,6 @@ img.lil_av { @@ -492,86 +257,6 @@ img.lil_av {
492 } 257 }
493 } 258 }
494 259
495 -  
496 -.ui-box {  
497 - margin-bottom: 40px;  
498 - @include round-borders-all(4px);  
499 - @include shade;  
500 - border-color:#ddd;  
501 -  
502 - ul {  
503 - margin:0;  
504 - }  
505 -  
506 - h5, .title {  
507 - padding: 0 10px;  
508 - background:#f5f5f5;  
509 - border-bottom: 1px solid #eee;  
510 - @include round-borders-top(4px);  
511 - border-top:none;  
512 -  
513 - form {  
514 - padding:9px 0;  
515 - margin:0px;  
516 - }  
517 -  
518 - .pills {  
519 - li {  
520 - padding:3px 0;  
521 - &.active a { background-color:$style_color; }  
522 - a {  
523 - border-radius:7px;  
524 - }  
525 - }  
526 - }  
527 - }  
528 -  
529 - .bottom {  
530 - background:#f5f5f5;  
531 - border-top: 1px solid #eee;  
532 - @include round-borders-bottom(4px);  
533 - border-bottom:none;  
534 - }  
535 -  
536 - &.padded {  
537 - h5, .title {  
538 - margin: -20px;  
539 - margin-bottom: 0;  
540 - padding: 5px 20px;  
541 - }  
542 - .middle_title {  
543 - background:#f5f5f5;  
544 - margin:20px -20px;  
545 - padding: 0 20px;  
546 - border-top:1px solid #eee;  
547 - border-bottom:1px solid #eee;  
548 - font-size:14px;  
549 - color:#777;  
550 - }  
551 - }  
552 - .row_title {  
553 - font-weight:bold;  
554 - color:#444;  
555 - &:hover {  
556 - text-decoration:underline;  
557 - }  
558 - }  
559 -  
560 - li, .wll {  
561 - padding:10px;  
562 - &:first-child {  
563 - @include round-borders-top(4px);  
564 - border-top:none;  
565 - }  
566 -  
567 - &:last-child {  
568 - @include round-borders-bottom(4px);  
569 - border:none;  
570 - }  
571 - }  
572 -  
573 -}  
574 -  
575 .help li { color:#111 } 260 .help li { color:#111 }
576 261
577 .back_link { 262 .back_link {
@@ -591,11 +276,6 @@ img.lil_av { @@ -591,11 +276,6 @@ img.lil_av {
591 } 276 }
592 } 277 }
593 278
594 -.borders {  
595 - border: 1px solid #ccc;  
596 - @include shade;  
597 -}  
598 -  
599 .download_repo_link { 279 .download_repo_link {
600 background: url("images.png") no-repeat 0 -48px; 280 background: url("images.png") no-repeat 0 -48px;
601 padding-left:20px; 281 padding-left:20px;
@@ -623,6 +303,7 @@ table a code { @@ -623,6 +303,7 @@ table a code {
623 303
624 .btn.padded { 304 .btn.padded {
625 margin-right:3px; 305 margin-right:3px;
  306 + padding:4px 10px 4px;
626 } 307 }
627 308
628 .loading { 309 .loading {
@@ -726,7 +407,7 @@ a.project-update.titled { @@ -726,7 +407,7 @@ a.project-update.titled {
726 407
727 408
728 input.git_clone_url { 409 input.git_clone_url {
729 - width:475px; 410 + width:325px;
730 } 411 }
731 412
732 .merge-request-form-holder { 413 .merge-request-form-holder {
@@ -874,7 +555,7 @@ li.commit { @@ -874,7 +555,7 @@ li.commit {
874 } 555 }
875 556
876 code { 557 code {
877 - padding:4px; 558 + padding:0px;
878 } 559 }
879 } 560 }
880 p.time { 561 p.time {
app/assets/stylesheets/gitlab_bootstrap.scss 0 → 100644
@@ -0,0 +1,440 @@ @@ -0,0 +1,440 @@
  1 +a {
  2 + outline: none;
  3 + color: $link_color;
  4 + &:hover {
  5 + text-decoration:none;
  6 + color: $blue_link;
  7 + }
  8 +
  9 + &.btn {
  10 + color: $style_color;
  11 + }
  12 +
  13 + &.dark {
  14 + color: $style_color;
  15 + }
  16 +
  17 + &.lined {
  18 + text-decoration:underlined;
  19 + }
  20 +
  21 + &.gray {
  22 + color:gray;
  23 + }
  24 +
  25 + &.supp_diff_link {
  26 + text-align:center;
  27 + padding:20px 0;
  28 + background:#f1f1f1;
  29 + width:100%;
  30 + float:left;
  31 + }
  32 +
  33 + &.neib {
  34 + margin-right:15px;
  35 + }
  36 +}
  37 +
  38 +.alert-message {
  39 + @extend .alert;
  40 +
  41 + &.success {
  42 + @extend .alert-success;
  43 + }
  44 +
  45 + &.error {
  46 + @extend .alert-error;
  47 + }
  48 +}
  49 +
  50 +.alert {
  51 + &.alert-well {
  52 + background:#ddd;
  53 + border:1px solid #ccc;
  54 + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #ddd), to(#dfdfdf));
  55 + background-image: -webkit-linear-gradient(#ddd 6.6%, #dfdfdf);
  56 + background-image: -moz-linear-gradient(#ddd 6.6%, #dfdfdf);
  57 + background-image: -o-linear-gradient(#ddd 6.6%, #dfdfdf);
  58 + color:#111;
  59 + }
  60 +}
  61 +
  62 +h3, h4, h5, h6 {
  63 + line-height: 36px;
  64 +}
  65 +
  66 +code {
  67 + background:#FCEEC1;
  68 + color:$style_color;
  69 +}
  70 +
  71 +table {
  72 + width:100%;
  73 + th {
  74 + padding-top: 9px;
  75 + font-weight: bold;
  76 + vertical-align: middle;
  77 + }
  78 + th, td {
  79 + padding: 10px 10px 9px;
  80 + line-height: 18px;
  81 + text-align: left;
  82 + }
  83 +
  84 + &.bordered-table {
  85 + border: 1px solid #DDD;
  86 + border-collapse: separate;
  87 + -webkit-border-radius: 4px;
  88 + -moz-border-radius: 4px;
  89 + border-radius: 4px;
  90 + }
  91 +
  92 + &.zebra-striped {
  93 + @extend .table-striped;
  94 + }
  95 +}
  96 +
  97 +.btn {
  98 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f1f1f1), color-stop(25%, #f1f1f1), to(#e6e6e6));
  99 + background-image: -webkit-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);
  100 + background-image: -moz-linear-gradient(top, #f1f1f1, #f1f1f1 25%, #e6e6e6);
  101 + background-image: -ms-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);
  102 + background-image: -o-linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);
  103 + background-image: linear-gradient(#f1f1f1, #f1f1f1 25%, #e6e6e6);
  104 +
  105 + &:hover {
  106 + }
  107 +
  108 + &.btn-primary {
  109 + background:$link_color;
  110 + &:hover {
  111 + background:$blue_link;
  112 + }
  113 + }
  114 + &.danger,
  115 + &.btn-danger {
  116 + background:#DD4B39;
  117 + color:white;
  118 + border-color:#990000;
  119 + text-shadow:0 0 1px #111;
  120 + &:hover {
  121 + color:white;
  122 + background:#DD0000;
  123 + }
  124 + }
  125 +
  126 + &.small {
  127 + @extend .btn-small;
  128 + }
  129 +}
  130 +
  131 +a:focus {
  132 + outline: none;
  133 +}
  134 +
  135 +.nav-pills a:hover {
  136 + background-color:#ccc;
  137 +}
  138 +
  139 +.nav-pills .active a {
  140 + background-color: #aaa;
  141 +}
  142 +
  143 +.label {
  144 + background-color: #474D57;
  145 +}
  146 +
  147 +.nav-tabs > li > a, .nav-pills > li > a {
  148 + color:$style_color;
  149 +}
  150 +
  151 +/** COLORS **/
  152 +.cgray { color:gray; }
  153 +.cred { color:#D12F19; }
  154 +.cgreen { color:#44aa22; }
  155 +.cblack { color:#111; }
  156 +.cwhite { color:#fff !important }
  157 +
  158 +/** COMMON STYLES **/
  159 +.left {
  160 + float:left;
  161 +}
  162 +.right {
  163 + float:right !important;
  164 +}
  165 +.width-50p{
  166 + width:50%;
  167 +}
  168 +.width-49p{
  169 + width:49%;
  170 +}
  171 +.width-30p{
  172 + width:30%;
  173 +}
  174 +.width-65p{
  175 + width:65%;
  176 +}
  177 +.width-100p{
  178 + width:100%;
  179 +}
  180 +.append-bottom-10 {
  181 + margin-bottom:10px;
  182 +}
  183 +.append-bottom-20 {
  184 + margin-bottom:20px;
  185 +}
  186 +.prepend-top-10 {
  187 + margin-top:10px;
  188 +}
  189 +
  190 +.prepend-top-20 {
  191 + margin-top:20px;
  192 +}
  193 +
  194 +.padded {
  195 + padding:20px;
  196 +}
  197 +
  198 +.ipadded {
  199 + padding:20px !important;
  200 +}
  201 +.lborder {
  202 + border-left:1px solid #eee;
  203 +}
  204 +
  205 +.borders {
  206 + border: 1px solid #ccc;
  207 + @include shade;
  208 +}
  209 +.no-borders {
  210 + border:none;
  211 +}
  212 +table.no-borders {
  213 + border:none;
  214 + tr, td { border:none }
  215 +}
  216 +.no-padding {
  217 + padding:0 !important;
  218 +}
  219 +.underlined {
  220 + border-bottom: 1px solid $border_color;
  221 +}
  222 +.vlink {
  223 + color: $link_color !important;
  224 +}
  225 +
  226 +.pretty_label {
  227 + @include round-borders-all(4px);
  228 + padding:2px 4px;
  229 + background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
  230 + background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
  231 + background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
  232 + background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
  233 + color: #777;
  234 + border: 1px solid #DEDFE1;
  235 +
  236 + &.branch {
  237 + border:none;
  238 + font-size:13px;
  239 + background: #474D57;
  240 + color:#fff;
  241 + font-family: monospace;
  242 + }
  243 +}
  244 +
  245 +.event_label {
  246 + background: #FCEEC1;
  247 + padding:0 2px;
  248 + font-family: monospace;
  249 +}
  250 +
  251 +img.avatar {
  252 + float:left;
  253 + margin-right:15px;
  254 + width:40px;
  255 + -webkit-border-radius: 4px;
  256 + -moz-border-radius: 4px;
  257 + border-radius: 4px;
  258 +}
  259 +
  260 +img.lil_av {
  261 + padding-left: 4px;
  262 + padding-right:3px;
  263 +}
  264 +
  265 +form {
  266 + @extend .form-horizontal;
  267 +
  268 + .actions {
  269 + @extend .form-actions;
  270 + }
  271 +
  272 + .clearfix {
  273 + @extend .control-group;
  274 + }
  275 +
  276 + .input {
  277 + @extend .controls;
  278 + }
  279 +
  280 + label {
  281 + @extend .control-label;
  282 + }
  283 + .xlarge {
  284 + @extend .input-xlarge;
  285 + }
  286 + .xxlarge {
  287 + @extend .input-xxlarge;
  288 + }
  289 +}
  290 +
  291 +/**
  292 + * List li block element #1
  293 + *
  294 + */
  295 +.wll {
  296 + background-color: #FFF;
  297 + padding: 10px 5px;
  298 + min-height: 20px;
  299 + border-bottom: 1px solid #eee;
  300 + border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  301 + cursor:pointer;
  302 + &.smoke {
  303 + background-color:#f5f5f5;
  304 + }
  305 + &:hover {
  306 + background:$hover;
  307 + }
  308 + &:last-child { border:none }
  309 + p { padding-top:5px; margin:0; color:$style_color;}
  310 + .author { color: #999; }
  311 + p {
  312 + color:#222;
  313 + margin-bottom: 0;
  314 + img {
  315 + position:relative;
  316 + top:3px;
  317 + }
  318 + }
  319 +}
  320 +
  321 +
  322 +/**
  323 + * Block element #2
  324 + *
  325 + */
  326 +.entry {
  327 + position: relative;
  328 + padding: 7px 15px;
  329 + margin-bottom: 18px;
  330 + color: #404040;
  331 + filter:none;
  332 +
  333 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  334 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  335 +
  336 + -webkit-border-radius: 4px;
  337 + -moz-border-radius: 4px;
  338 + border-radius: 4px;
  339 +
  340 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  341 + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  342 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  343 +
  344 + background:#F1F1F1;
  345 + border: 1px solid #ccc;
  346 +
  347 +
  348 + p {
  349 + color:$style_color;
  350 + margin-bottom: 0;
  351 + img {
  352 + position:relative;
  353 + top:3px;
  354 + }
  355 + }
  356 +}
  357 +
  358 +
  359 +/**
  360 + * Big UI Block for show page content
  361 + *
  362 + */
  363 +.ui-box {
  364 + margin-bottom: 40px;
  365 + @include round-borders-all(4px);
  366 + @include shade;
  367 + border-color:#ddd;
  368 +
  369 + ul {
  370 + margin:0;
  371 + }
  372 +
  373 + h5, .title {
  374 + padding: 0 10px;
  375 + background:#f5f5f5;
  376 + border-bottom: 1px solid #eee;
  377 + @include round-borders-top(4px);
  378 + border-top:none;
  379 +
  380 + form {
  381 + padding:9px 0;
  382 + margin:0px;
  383 + }
  384 +
  385 + .pills {
  386 + li {
  387 + padding:3px 0;
  388 + &.active a { background-color:$style_color; }
  389 + a {
  390 + border-radius:7px;
  391 + }
  392 + }
  393 + }
  394 + }
  395 +
  396 + .bottom {
  397 + background:#f5f5f5;
  398 + border-top: 1px solid #eee;
  399 + @include round-borders-bottom(4px);
  400 + border-bottom:none;
  401 + }
  402 +
  403 + &.padded {
  404 + h5, .title {
  405 + margin: -20px;
  406 + margin-bottom: 0;
  407 + padding: 5px 20px;
  408 + }
  409 + .middle_title {
  410 + background:#f5f5f5;
  411 + margin:20px -20px;
  412 + padding: 0 20px;
  413 + border-top:1px solid #eee;
  414 + border-bottom:1px solid #eee;
  415 + font-size:14px;
  416 + color:#777;
  417 + }
  418 + }
  419 + .row_title {
  420 + font-weight:bold;
  421 + color:#444;
  422 + &:hover {
  423 + text-decoration:underline;
  424 + }
  425 + }
  426 +
  427 + li, .wll {
  428 + padding:10px;
  429 + &:first-child {
  430 + @include round-borders-top(4px);
  431 + border-top:none;
  432 + }
  433 +
  434 + &:last-child {
  435 + @include round-borders-bottom(4px);
  436 + border:none;
  437 + }
  438 + }
  439 +
  440 +}
app/assets/stylesheets/main.scss
1 @import "bootstrap"; 1 @import "bootstrap";
  2 +@import "bootstrap-responsive";
2 3
3 /** GITLAB colors **/ 4 /** GITLAB colors **/
4 $text_color:#222; 5 $text_color:#222;
@@ -76,6 +77,14 @@ $hover: #FDF5D9; @@ -76,6 +77,14 @@ $hover: #FDF5D9;
76 @import "ui_mars.scss"; 77 @import "ui_mars.scss";
77 78
78 /** 79 /**
  80 + * Gitlab bootstrap.
  81 + * Overrides some styles of twitter bootstrap.
  82 + * Also give some common classes for gitlab app
  83 + */
  84 +@import "gitlab_bootstrap.scss";
  85 +
  86 +
  87 +/**
79 * Most of application styles placed here. 88 * Most of application styles placed here.
80 * This file represent common UI that should not be changed between themes 89 * This file represent common UI that should not be changed between themes
81 * or project restyling like form width or user avatar class or commit title 90 * or project restyling like form width or user avatar class or commit title
app/assets/stylesheets/tree.scss
@@ -124,14 +124,17 @@ @@ -124,14 +124,17 @@
124 124
125 .tree-item { 125 .tree-item {
126 .tree-item-file-name { 126 .tree-item-file-name {
  127 + vertical-align:middle;
127 font-weight:bold; 128 font-weight:bold;
128 a { 129 a {
129 color:$style_color; 130 color:$style_color;
  131 + &:hover {
  132 + color:$blue_link;
  133 + }
130 } 134 }
131 135
132 img { 136 img {
133 position: relative; 137 position: relative;
134 - top: 2px;  
135 } 138 }
136 } 139 }
137 } 140 }
@@ -139,6 +142,10 @@ @@ -139,6 +142,10 @@
139 ul.breadcrumb { 142 ul.breadcrumb {
140 background:white; 143 background:white;
141 border:none; 144 border:none;
  145 + li {
  146 + display: inline;
  147 + text-shadow: 0 1px 0 white
  148 + }
142 149
143 a { 150 a {
144 color:#474D57; 151 color:#474D57;
@@ -149,6 +156,7 @@ @@ -149,6 +156,7 @@
149 156
150 #tree-slider { 157 #tree-slider {
151 @include shade; 158 @include shade;
  159 + width:100%;
152 160
153 border-color:#ccc; 161 border-color:#ccc;
154 162
app/assets/stylesheets/ui_basic.scss
@@ -63,15 +63,11 @@ @@ -63,15 +63,11 @@
63 } 63 }
64 } 64 }
65 } 65 }
66 - .wrapper {  
67 - margin:auto;  
68 - min-width:$min_app_width;  
69 - max-width:$max_app_width;  
70 - position:relative;  
71 - padding:15px 0;  
72 - 66 + .container {
73 .top_panel_content { 67 .top_panel_content {
74 - margin:0 $app_padding; 68 + margin:auto;
  69 + position:relative;
  70 + padding:15px 0;
75 } 71 }
76 } 72 }
77 73
app/helpers/application_helper.rb
@@ -123,7 +123,7 @@ module ApplicationHelper @@ -123,7 +123,7 @@ module ApplicationHelper
123 end 123 end
124 124
125 def app_theme 125 def app_theme
126 - if current_user && current_user.theme_id == 1 126 + if true#current_user && current_user.theme_id == 1
127 "ui_basic" 127 "ui_basic"
128 else 128 else
129 "ui_mars" 129 "ui_mars"
app/views/admin/projects/show.html.haml
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 = @admin_project.description 31 = @admin_project.description
32 32
33 33
34 -.span-14 34 +.span12
35 35
36 %h3 36 %h3
37 Team 37 Team
app/views/commits/_head.html.haml
1 -%ul.tabs 1 +%ul.nav.nav-tabs
2 %li 2 %li
3 = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form" do 3 = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form" do
4 = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" 4 = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
app/views/dashboard/index.html.haml
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 %br 42 %br
43 = link_to profile_path, :class => "btn" do 43 = link_to profile_path, :class => "btn" do
44 Your Profile » 44 Your Profile »
45 - .span12.left= render "dashboard/projects_feed", :projects => @active_projects 45 + .span8.left= render "dashboard/projects_feed", :projects => @active_projects
46 - if @last_push && @last_push.valid_push? 46 - if @last_push && @last_push.valid_push?
47 .padded.prepend-top-20 47 .padded.prepend-top-20
48 %h5 48 %h5
app/views/issues/_head.html.haml
1 -.tabs 1 +%ul.nav.nav-tabs
2 %li{:class => "#{'active' if current_page?(project_issues_path(@project))}"} 2 %li{:class => "#{'active' if current_page?(project_issues_path(@project))}"}
3 = link_to project_issues_path(@project), :class => "tab" do 3 = link_to project_issues_path(@project), :class => "tab" do
4 Browse Issues 4 Browse Issues
app/views/issues/index.html.haml
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 .title 22 .title
23 .row 23 .row
24 .span6 24 .span6
25 - %ul.pills.left 25 + %ul.nav.nav-pills.left
26 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))} 26 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
27 = link_to project_issues_path(@project, :f => 0) do 27 = link_to project_issues_path(@project, :f => 0) do
28 Open 28 Open
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 = link_to project_issues_path(@project, :f => 1) do 36 = link_to project_issues_path(@project, :f => 1) do
37 All 37 All
38 38
39 - .span6.right 39 + .span4.right
40 = form_tag project_issues_path(@project), :method => :get, :class => :right do 40 = form_tag project_issues_path(@project), :method => :get, :class => :right do
41 = select_tag(:milestone_id, options_from_collection_for_select(@project.milestones.order("id desc").all, "id", "title", params[:milestone_id]), :prompt => "Select milestone") 41 = select_tag(:milestone_id, options_from_collection_for_select(@project.milestones.order("id desc").all, "id", "title", params[:milestone_id]), :prompt => "Select milestone")
42 42
app/views/layouts/_head_panel.html.haml
1 / Page Header 1 / Page Header
2 %header.top_panel_holder 2 %header.top_panel_holder
3 - .wrapper 3 + .container
4 .top_panel_content 4 .top_panel_content
5 %div.app_logo 5 %div.app_logo
6 = link_to root_path, :class => "home", :title => "Home" do 6 = link_to root_path, :class => "home", :title => "Home" do
app/views/merge_requests/_form.html.haml
1 -= form_for [@project, @merge_request] do |f| 1 += form_for [@project, @merge_request], :html => { :class => "new_merge_request form-horizontal" } do |f|
2 -if @merge_request.errors.any? 2 -if @merge_request.errors.any?
3 .alert-message.block-message.error 3 .alert-message.block-message.error
4 %ul 4 %ul
5 - @merge_request.errors.full_messages.each do |msg| 5 - @merge_request.errors.full_messages.each do |msg|
6 %li= msg 6 %li= msg
7 7
8 - .clearfix  
9 - = f.label :title  
10 - .input= f.text_area :title, :class => "xxlarge", :maxlength => 255, :rows => 5  
11 - .clearfix  
12 - = f.label :source_branch, "From"  
13 - .input 8 + .control-group
  9 + = f.label :title, :class => "control-label"
  10 + .controls= f.text_area :title, :class => "input-xxlarge", :maxlength => 255, :rows => 5
  11 + .control-group
  12 + = f.label :source_branch, "From", :class => "control-label"
  13 + .controls
14 = f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px") 14 = f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
15 .mr_source_commit 15 .mr_source_commit
16 - .clearfix  
17 - = f.label :target_branch, "To"  
18 - .input 16 + .control-group
  17 + = f.label :target_branch, "To", :class => "control-label"
  18 + .controls
19 = f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px") 19 = f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
20 .mr_target_commit 20 .mr_target_commit
21 .clearfix 21 .clearfix
22 - = f.label :assignee_id, "Assign to"  
23 - .input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px") 22 + = f.label :assignee_id, "Assign to", :class => "control-label"
  23 + .controls= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
24 24
25 - .actions  
26 - = f.submit 'Save', :class => "primary btn" 25 + .form-actions
  26 + = f.submit 'Save', :class => "btn-primary btn"
27 - if @merge_request.new_record? 27 - if @merge_request.new_record?
28 = link_to project_merge_requests_path(@project), :class => "btn" do 28 = link_to project_merge_requests_path(@project), :class => "btn" do
29 Cancel 29 Cancel
app/views/merge_requests/index.html.haml
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 .ui-box 9 .ui-box
10 .title 10 .title
11 - %ul.pills 11 + %ul.nav.nav-pills
12 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))} 12 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
13 = link_to project_merge_requests_path(@project, :f => 0) do 13 = link_to project_merge_requests_path(@project, :f => 0) do
14 Open 14 Open
app/views/merge_requests/show.html.haml
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 = render "merge_requests/commits" 56 = render "merge_requests/commits"
57 57
58 - unless @commits.empty? 58 - unless @commits.empty?
59 - .tabs 59 + .nav.nav-tabs
60 %li.active 60 %li.active
61 = link_to "#notes", :class => "merge-notes-tab tab" do 61 = link_to "#notes", :class => "merge-notes-tab tab" do
62 Notes 62 Notes
app/views/milestones/_form.html.haml
@@ -5,33 +5,33 @@ @@ -5,33 +5,33 @@
5 5
6 %hr 6 %hr
7 7
8 -= form_for [@project, @milestone] do |f| 8 += form_for [@project, @milestone], :html => {:class => "new_milestone form-horizontal"} do |f|
9 -if @milestone.errors.any? 9 -if @milestone.errors.any?
10 .alert-message.block-message.error 10 .alert-message.block-message.error
11 %ul 11 %ul
12 - @milestone.errors.full_messages.each do |msg| 12 - @milestone.errors.full_messages.each do |msg|
13 %li= msg 13 %li= msg
14 .row 14 .row
15 - .span7  
16 - .clearfix  
17 - = f.label :title, "Title"  
18 - .input  
19 - = f.text_field :title, :maxlength => 255, :class => "xlarge"  
20 - %p.hint Required  
21 - .clearfix  
22 - = f.label :description, "Description"  
23 - .input  
24 - = f.text_area :description, :maxlength => 2000, :class => "xlarge", :rows => 10  
25 - %p.hint Markdown is enabled.  
26 - .span8  
27 - .clearfix  
28 - = f.label :due_date, "Due Date" 15 + .span6
  16 + .control-group
  17 + = f.label :title, "Title", :class => "control-label"
  18 + .controls
  19 + = f.text_field :title, :maxlength => 255, :class => "input-xlarge"
  20 + %p.help-block Required
  21 + .control-group
  22 + = f.label :description, "Description", :class => "control-label"
  23 + .controls
  24 + = f.text_area :description, :maxlength => 2000, :class => "input-xlarge", :rows => 10
  25 + %p.help-block Markdown is enabled.
  26 + .span6
  27 + .control-group
  28 + = f.label :due_date, "Due Date", :class => "control-label"
29 .input= f.hidden_field :due_date 29 .input= f.hidden_field :due_date
30 - .input 30 + .controls
31 .datepicker 31 .datepicker
32 32
33 33
34 - .actions 34 + .form-actions
35 - if @milestone.new_record? 35 - if @milestone.new_record?
36 = f.submit 'Create milestone', :class => "primary btn" 36 = f.submit 'Create milestone', :class => "primary btn"
37 -else 37 -else
app/views/milestones/index.html.haml
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 %br 7 %br
8 %div.ui-box 8 %div.ui-box
9 .title 9 .title
10 - %ul.pills 10 + %ul.nav.nav-pills
11 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))} 11 %li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
12 = link_to project_milestones_path(@project, :f => 0) do 12 = link_to project_milestones_path(@project, :f => 0) do
13 Active 13 Active
app/views/profile/design.html.haml
1 = form_for @user, :url => profile_update_path, :remote => true, :method => :put do |f| 1 = form_for @user, :url => profile_update_path, :remote => true, :method => :put do |f|
2 - %h3 Application theme  
3 - %hr  
4 - .clearfix  
5 - = label_tag do  
6 - = f.radio_button :theme_id, 1  
7 - Default 2 + -#%div
  3 + %h3 Application theme
  4 + %hr
  5 + .clearfix
  6 + = label_tag do
  7 + = f.radio_button :theme_id, 1
  8 + Default
8 9
9 - = label_tag do  
10 - = f.radio_button :theme_id, 2  
11 - Classic  
12 - %br 10 + = label_tag do
  11 + = f.radio_button :theme_id, 2
  12 + Classic
  13 + %br
13 %h3 Code review 14 %h3 Code review
14 %hr 15 %hr
15 .row 16 .row
16 - %label.span4{:for => "user_dark_scheme_false"}  
17 - %center  
18 - %h4  
19 - = f.radio_button :dark_scheme, false  
20 - White code preview  
21 - = image_tag "white.png", :width => 210, :class => "styled_image"  
22 - %label.span4{:for => "user_dark_scheme_true"}  
23 - %center  
24 - %h4  
25 - = f.radio_button :dark_scheme, true  
26 - Dark code preview  
27 - = image_tag "dark.png", :width => 210, :class => "styled_image" 17 + %label.span3{:for => "user_dark_scheme_false"}
  18 + .thumbnail
  19 + = image_tag "white.png", :width => 260, :class => "styled_image"
  20 + .caption
  21 + %h5
  22 + = f.radio_button :dark_scheme, false
  23 + White code preview
  24 + %label.span3{:for => "user_dark_scheme_true"}
  25 + .thumbnail
  26 + = image_tag "dark.png", :width => 260, :class => "styled_image"
  27 + .caption
  28 + %h5
  29 + = f.radio_button :dark_scheme, true
  30 + Dark code preview
28 31
29 :javascript 32 :javascript
30 $(function(){ 33 $(function(){
app/views/profile/password.html.haml
1 .row 1 .row
2 - .span8  
3 - %h3 Password  
4 - %hr  
5 - = form_for @user, :url => profile_password_path, :method => :put do |f|  
6 - .data  
7 - .alert-message.block-message.warning  
8 - %p After successfull password update you will be redirected to login page where you should login with new password  
9 - -if @user.errors.any?  
10 - .alert-message.block-message.error  
11 - %ul  
12 - - @user.errors.full_messages.each do |msg|  
13 - %li= msg 2 + .span6
  3 + .thumbnail
  4 + .caption
  5 + %h3 Password
  6 + %hr
  7 + = form_for @user, :url => profile_password_path, :method => :put do |f|
  8 + .data
  9 + .alert-message.block-message.warning
  10 + %p After successfull password update you will be redirected to login page where you should login with new password
  11 + -if @user.errors.any?
  12 + .alert-message.block-message.error
  13 + %ul
  14 + - @user.errors.full_messages.each do |msg|
  15 + %li= msg
14 16
15 - .clearfix  
16 - = f.label :password  
17 - .input= f.password_field :password  
18 - .clearfix  
19 - = f.label :password_confirmation  
20 - .input= f.password_field :password_confirmation  
21 - .actions  
22 - = f.submit 'Save', :class => "btn" 17 + .clearfix
  18 + = f.label :password
  19 + .input= f.password_field :password
  20 + .clearfix
  21 + = f.label :password_confirmation
  22 + .input= f.password_field :password_confirmation
  23 + %hr
  24 + = f.submit 'Save', :class => "btn"
23 25
24 - .span7.right  
25 - %h3  
26 - Private token  
27 - %span.cred.right  
28 - keep it in secret!  
29 - %hr  
30 - = form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|  
31 - .data  
32 - .alert-message.block-message.warning  
33 - %p Private token used to access application resources without authentication. 26 + .span6.right
  27 + .thumbnail
  28 + .caption
  29 + %h3
  30 + Private token
  31 + %span.cred.right
  32 + keep it in secret!
  33 + %hr
  34 + = form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
  35 + .data
  36 + .alert-message.block-message.warning
  37 + %p Private token used to access application resources without authentication.
  38 + %hr
  39 + %p * required for rss feed
  40 + %p.cgray
  41 + - if current_user.private_token
  42 + = text_field_tag "token", current_user.private_token
  43 + - else
  44 + You don`t have one yet. Click generate to fix it.
34 %hr 45 %hr
35 - %p * required for rss feed  
36 - %p.cgray  
37 - - if current_user.private_token  
38 - = text_field_tag "token", current_user.private_token  
39 - - else  
40 - You don`t have one yet. Click generate to fix it.  
41 - .actions  
42 - - if current_user.private_token  
43 - = f.submit 'Reset', :confirm => "Are you sure?", :class => "btn"  
44 - - else  
45 - = f.submit 'Generate', :class => "btn" 46 + - if current_user.private_token
  47 + = f.submit 'Reset', :confirm => "Are you sure?", :class => "btn"
  48 + - else
  49 + = f.submit 'Generate', :class => "btn"
46 50
app/views/profile/show.html.haml
1 .row 1 .row
2 - .span10 2 + .span8
3 .profile_avatar_holder 3 .profile_avatar_holder
4 = image_tag gravatar_icon(@user.email, 90), :class => "styled_image" 4 = image_tag gravatar_icon(@user.email, 90), :class => "styled_image"
5 %h3 5 %h3
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 %small 8 %small
9 = @user.email 9 = @user.email
10 10
11 - .span6.right 11 + .span4.right
12 %div 12 %div
13 %div 13 %div
14 %h5.cgray 14 %h5.cgray
@@ -23,45 +23,45 @@ @@ -23,45 +23,45 @@
23 %span= current_user.keys.count 23 %span= current_user.keys.count
24 %hr 24 %hr
25 25
26 -= form_for @user, :url => profile_update_path, :method => :put do |f| 26 += form_for @user, :url => profile_update_path, :method => :put, :html => { :class => "edit_user form-horizontal" } do |f|
27 -if @user.errors.any? 27 -if @user.errors.any?
28 %div.alert-message.block-message.error 28 %div.alert-message.block-message.error
29 %ul 29 %ul
30 - @user.errors.full_messages.each do |msg| 30 - @user.errors.full_messages.each do |msg|
31 %li= msg 31 %li= msg
32 .row 32 .row
33 - .span9  
34 - .clearfix  
35 - = f.label :name  
36 - .input  
37 - = f.text_field :name, :class => "xlarge" 33 + .span7
  34 + .control-group
  35 + = f.label :name, :class => "control-label"
  36 + .controls
  37 + = f.text_field :name, :class => "input-xlarge"
38 %span.help-block Enter youre name, so people you know can recognize you. 38 %span.help-block Enter youre name, so people you know can recognize you.
39 - .clearfix  
40 - = f.label :email  
41 - .input  
42 - = f.text_field :email, :class => "xlarge" 39 + .control-group
  40 + = f.label :email, :class => "control-label"
  41 + .controls
  42 + = f.text_field :email, :class => "input-xlarge"
43 %span.help-block We also use email for avatar detection 43 %span.help-block We also use email for avatar detection
44 - .clearfix  
45 - = f.label :skype  
46 - .input= f.text_field :skype, :class => "xlarge"  
47 - .clearfix  
48 - = f.label :linkedin  
49 - .input= f.text_field :linkedin, :class => "xlarge"  
50 - .clearfix  
51 - = f.label :twitter  
52 - .input= f.text_field :twitter, :class => "xlarge"  
53 - .clearfix  
54 - = f.label :bio  
55 - .input  
56 - = f.text_area :bio, :rows => 6, :class => "xlarge", :maxlength => 250 44 + .control-group
  45 + = f.label :skype, :class => "control-label"
  46 + .controls= f.text_field :skype, :class => "input-xlarge"
  47 + .control-group
  48 + = f.label :linkedin, :class => "control-label"
  49 + .controls= f.text_field :linkedin, :class => "input-xlarge"
  50 + .control-group
  51 + = f.label :twitter, :class => "control-label"
  52 + .controls= f.text_field :twitter, :class => "input-xlarge"
  53 + .control-group
  54 + = f.label :bio, :class => "control-label"
  55 + .controls
  56 + = f.text_area :bio, :rows => 6, :class => "input-xlarge", :maxlength => 250
57 %span.help-block About yourself in fewer than 250 characters. 57 %span.help-block About yourself in fewer than 250 characters.
58 - .span7.right 58 + .span5.right
59 %p.alert-message.block-message 59 %p.alert-message.block-message
60 %strong Tip: 60 %strong Tip:
61 You can change your avatar at gravatar.com 61 You can change your avatar at gravatar.com
62 62
63 - .actions  
64 - = f.submit 'Save', :class => "primary btn" 63 + .form-actions
  64 + = f.submit 'Save', :class => "btn-primary btn"
65 65
66 -#= link_to "New project", new_project_path, :class => "btn small padded" 66 -#= link_to "New project", new_project_path, :class => "btn small padded"
67 -#= link_to "New public key", new_key_path, :class => "btn small" 67 -#= link_to "New public key", new_key_path, :class => "btn small"
app/views/projects/_project_head.html.haml
1 -%ul.tabs 1 +%ul.nav.nav-tabs
2 %li{ :class => "#{'active' if current_page?(project_path(@project)) }" } 2 %li{ :class => "#{'active' if current_page?(project_path(@project)) }" }
3 = link_to project_path(@project), :class => "activities-tab tab" do 3 = link_to project_path(@project), :class => "activities-tab tab" do
4 Show 4 Show
app/views/projects/index.html.haml
1 - if @projects.any? 1 - if @projects.any?
2 .row 2 .row
3 - .span11 3 + .span8
4 = render @events 4 = render @events
5 - .span5.right 5 + .span4.right
6 %div.leftbar.ui-box 6 %div.leftbar.ui-box
7 %h5 7 %h5
8 Projects 8 Projects
app/views/projects/show.html.haml
1 = render "project_head" 1 = render "project_head"
2 -.main_box  
3 - .top_box_content  
4 - %h3  
5 - = @project.name  
6 - %span.right 2 +
  3 +.alert.alert-info
  4 + .row
  5 + -#.span2
  6 + .back_link
  7 + = link_to projects_path do
  8 + ← To projects list
  9 + .span7
  10 + .form-horizontal
  11 + .input-prepend
  12 + %span.add-on git clone
  13 + = text_field_tag :project_clone, @project.url_to_repo, :class => "one_click_select span5"
  14 + .span4.right
  15 + .right
7 - if can? current_user, :download_code, @project 16 - if can? current_user, :download_code, @project
8 = link_to "Download", archive_project_repository_path(@project), :class => "btn small padded" 17 = link_to "Download", archive_project_repository_path(@project), :class => "btn small padded"
9 - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) 18 - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project)
@@ -12,18 +21,7 @@ @@ -12,18 +21,7 @@
12 - if @project.issues_enabled && can?(current_user, :write_issue, @project) 21 - if @project.issues_enabled && can?(current_user, :write_issue, @project)
13 = link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do 22 = link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do
14 Issue 23 Issue
15 - .back_link  
16 - = link_to projects_path do  
17 - ← To projects list  
18 - .middle_box_content  
19 - .input  
20 - .input-prepend  
21 - %span.add-on git clone  
22 - = text_field_tag :project_clone, @project.url_to_repo, :class => "xlarge one_click_select git_clone_url"  
23 24
24 - - if @project.description.present?  
25 - .bottom_box_content  
26 - .markdown= markdown @project.description  
27 - unless @events.blank? 25 - unless @events.blank?
28 %br 26 %br
29 %h5.cgray 27 %h5.cgray
app/views/projects/team.html.haml
1 = render "project_head" 1 = render "project_head"
2 2
3 - if can? current_user, :admin_team_member, @project 3 - if can? current_user, :admin_team_member, @project
4 - .alert-message.block-message 4 + .alert.alert-info
5 = link_to new_project_team_member_path(@project), :class => "btn small right", :title => "New Team Member" do 5 = link_to new_project_team_member_path(@project), :class => "btn small right", :title => "New Team Member" do
6 New Team Member 6 New Team Member
7 - %p Read more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} 7 + %p
  8 + Read more about project permissions
  9 + %strong= link_to "here", help_permissions_path, :class => "vlink"
8 %p To open team member profile - click on avatar. 10 %p To open team member profile - click on avatar.
9 11
10 12
app/views/protected_branches/index.html.haml
1 = render "repositories/branches_head" 1 = render "repositories/branches_head"
2 2
3 -.alert-message.block-message 3 +.alert
4 %p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, :class => "vlink"}. 4 %p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, :class => "vlink"}.
5 %p This ability allows: 5 %p This ability allows:
6 %ul 6 %ul
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 11
12 12
13 - unless @branches.empty? 13 - unless @branches.empty?
14 - %table.zebra-striped 14 + %table.table-striped
15 %thead 15 %thead
16 %tr 16 %tr
17 %th Name 17 %th Name
app/views/refs/_tree_file.html.haml
@@ -4,14 +4,14 @@ @@ -4,14 +4,14 @@
4 .row 4 .row
5 .span1.file_icon= image_tag(file.image? ? "file_img.png" : "file_txt.png") 5 .span1.file_icon= image_tag(file.image? ? "file_img.png" : "file_txt.png")
6 .span2.mode_text= file.mode 6 .span2.mode_text= file.mode
7 - .span7.file_name= name  
8 - .span4.right 7 + .span5.file_name= name
  8 + .span3.right
9 = link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path]), :class => "right", :target => "_blank" 9 = link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path]), :class => "right", :target => "_blank"
10 = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref), :class => "right", :style => "margin-right:10px;" 10 = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref), :class => "right", :style => "margin-right:10px;"
11 - if file.text? 11 - if file.text?
12 .view_file_content 12 .view_file_content
13 - unless file.empty? 13 - unless file.empty?
14 - %div{:class => current_user.dark_scheme ? "black" : ""} 14 + %div{:class => current_user.dark_scheme ? "black" : "white"}
15 :erb 15 :erb
16 <%= raw file.colorize %> 16 <%= raw file.colorize %>
17 - else 17 - else
app/views/refs/tree.html.haml
1 -%ul.tabs 1 +%ul.nav.nav-tabs
2 %li 2 %li
3 = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form", :remote => true do 3 = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form", :remote => true do
4 = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" 4 = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
app/views/repositories/_branches_head.html.haml
1 = render "commits/head" 1 = render "commits/head"
2 -%ul.pills 2 +%ul.nav.nav-pills
3 %li{:class => ("active" if current_page?(project_repository_path(@project)))} 3 %li{:class => ("active" if current_page?(project_repository_path(@project)))}
4 = link_to project_repository_path(@project) do 4 = link_to project_repository_path(@project) do
5 Recent 5 Recent
app/views/repositories/branches.html.haml
1 = render "repositories/branches_head" 1 = render "repositories/branches_head"
2 - unless @branches.empty? 2 - unless @branches.empty?
3 - %table.zebra-striped.borders 3 + %table.table-striped.borders
4 %tbody 4 %tbody
5 - @branches.each do |branch| 5 - @branches.each do |branch|
6 = render "repositories/branch", :branch => branch 6 = render "repositories/branch", :branch => branch
app/views/repositories/tags.html.haml
1 = render "commits/head" 1 = render "commits/head"
2 - unless @tags.empty? 2 - unless @tags.empty?
3 - %table.zebra-striped.borders 3 + %table.table-striped.borders
4 - @tags.each do |tag| 4 - @tags.each do |tag|
5 %tr 5 %tr
6 %td 6 %td
app/views/search/show.html.haml
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 .padded 2 .padded
3 = label_tag :search, "Looking for" 3 = label_tag :search, "Looking for"
4 .input 4 .input
5 - = text_field_tag :search, params[:search],:placeholder => "issue 143", :class => "xxlarge"  
6 - = submit_tag 'Search', :class => "btn primary" 5 + = text_field_tag :search, params[:search],:placeholder => "issue 143", :class => "input-xxlarge"
  6 + = submit_tag 'Search', :class => "btn btn-primary"
7 - if params[:search].present? 7 - if params[:search].present?
8 %br 8 %br
9 %h3 Search results 9 %h3 Search results
app/views/team_members/_show.html.haml
@@ -11,5 +11,5 @@ @@ -11,5 +11,5 @@
11 .span3 11 .span3
12 = form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f| 12 = form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
13 = f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin 13 = f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
14 - - if @project.owner == user  
15 - %span.label Project Owner 14 + - if @project.owner == user
  15 + %span.label Project Owner
app/views/team_members/show.html.haml
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 &larr; To team list 15 &larr; To team list
16 %br 16 %br
17 .row 17 .row
18 - .span8 18 + .span6
19 %table.no-borders 19 %table.no-borders
20 %tr 20 %tr
21 %td Email 21 %td Email
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 %tr 35 %tr
36 %td Bio 36 %td Bio
37 %td= user.bio 37 %td= user.bio
38 - .span8 38 + .span6
39 %table.no-borders 39 %table.no-borders
40 %tr 40 %tr
41 %td Member since 41 %td Member since
@@ -50,8 +50,9 @@ @@ -50,8 +50,9 @@
50 %hr 50 %hr
51 = render user.recent_events.limit(3) 51 = render user.recent_events.limit(3)
52 - if can? current_user, :admin_project, @project 52 - if can? current_user, :admin_project, @project
53 - .actions  
54 - = 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" 53 + .form-horizontal
  54 + .form-actions
  55 + = link_to 'Remove from team', project_team_member_path(:project_id => @project, :id => @team_member.id), :confirm => 'Are you sure?', :method => :delete, :class => "btn btn-danger"
55 56
56 :javascript 57 :javascript
57 $(function(){ 58 $(function(){
@@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
30 t.integer "assignee_id" 30 t.integer "assignee_id"
31 t.integer "author_id" 31 t.integer "author_id"
32 t.integer "project_id" 32 t.integer "project_id"
33 - t.datetime "created_at", :null => false  
34 - t.datetime "updated_at", :null => false 33 + t.datetime "created_at"
  34 + t.datetime "updated_at"
35 t.boolean "closed", :default => false, :null => false 35 t.boolean "closed", :default => false, :null => false
36 t.integer "position", :default => 0 36 t.integer "position", :default => 0
37 t.boolean "critical", :default => false, :null => false 37 t.boolean "critical", :default => false, :null => false
@@ -44,8 +44,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -44,8 +44,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
44 44
45 create_table "keys", :force => true do |t| 45 create_table "keys", :force => true do |t|
46 t.integer "user_id" 46 t.integer "user_id"
47 - t.datetime "created_at", :null => false  
48 - t.datetime "updated_at", :null => false 47 + t.datetime "created_at"
  48 + t.datetime "updated_at"
49 t.text "key" 49 t.text "key"
50 t.string "title" 50 t.string "title"
51 t.string "identifier" 51 t.string "identifier"
@@ -60,10 +60,10 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -60,10 +60,10 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
60 t.integer "assignee_id" 60 t.integer "assignee_id"
61 t.string "title" 61 t.string "title"
62 t.boolean "closed", :default => false, :null => false 62 t.boolean "closed", :default => false, :null => false
63 - t.datetime "created_at", :null => false  
64 - t.datetime "updated_at", :null => false  
65 - t.text "st_commits", :limit => 2147483647  
66 - t.text "st_diffs", :limit => 2147483647 63 + t.datetime "created_at"
  64 + t.datetime "updated_at"
  65 + t.text "st_commits", :limit => 4294967295
  66 + t.text "st_diffs", :limit => 4294967295
67 t.boolean "merged", :default => false, :null => false 67 t.boolean "merged", :default => false, :null => false
68 end 68 end
69 69
@@ -84,8 +84,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -84,8 +84,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
84 t.string "noteable_id" 84 t.string "noteable_id"
85 t.string "noteable_type" 85 t.string "noteable_type"
86 t.integer "author_id" 86 t.integer "author_id"
87 - t.datetime "created_at", :null => false  
88 - t.datetime "updated_at", :null => false 87 + t.datetime "created_at"
  88 + t.datetime "updated_at"
89 t.integer "project_id" 89 t.integer "project_id"
90 t.string "attachment" 90 t.string "attachment"
91 t.string "line_code" 91 t.string "line_code"
@@ -98,8 +98,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -98,8 +98,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
98 t.string "name" 98 t.string "name"
99 t.string "path" 99 t.string "path"
100 t.text "description" 100 t.text "description"
101 - t.datetime "created_at", :null => false  
102 - t.datetime "updated_at", :null => false 101 + t.datetime "created_at"
  102 + t.datetime "updated_at"
103 t.boolean "private_flag", :default => true, :null => false 103 t.boolean "private_flag", :default => true, :null => false
104 t.string "code" 104 t.string "code"
105 t.integer "owner_id" 105 t.integer "owner_id"
@@ -122,8 +122,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -122,8 +122,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
122 t.text "content" 122 t.text "content"
123 t.integer "author_id", :null => false 123 t.integer "author_id", :null => false
124 t.integer "project_id", :null => false 124 t.integer "project_id", :null => false
125 - t.datetime "created_at", :null => false  
126 - t.datetime "updated_at", :null => false 125 + t.datetime "created_at"
  126 + t.datetime "updated_at"
127 t.string "file_name" 127 t.string "file_name"
128 t.datetime "expires_at" 128 t.datetime "expires_at"
129 end 129 end
@@ -156,8 +156,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -156,8 +156,8 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
156 t.datetime "last_sign_in_at" 156 t.datetime "last_sign_in_at"
157 t.string "current_sign_in_ip" 157 t.string "current_sign_in_ip"
158 t.string "last_sign_in_ip" 158 t.string "last_sign_in_ip"
159 - t.datetime "created_at", :null => false  
160 - t.datetime "updated_at", :null => false 159 + t.datetime "created_at"
  160 + t.datetime "updated_at"
161 t.string "name" 161 t.string "name"
162 t.boolean "admin", :default => false, :null => false 162 t.boolean "admin", :default => false, :null => false
163 t.integer "projects_limit", :default => 10 163 t.integer "projects_limit", :default => 10
@@ -176,16 +176,16 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do @@ -176,16 +176,16 @@ ActiveRecord::Schema.define(:version =&gt; 20120408181910) do
176 create_table "users_projects", :force => true do |t| 176 create_table "users_projects", :force => true do |t|
177 t.integer "user_id", :null => false 177 t.integer "user_id", :null => false
178 t.integer "project_id", :null => false 178 t.integer "project_id", :null => false
179 - t.datetime "created_at", :null => false  
180 - t.datetime "updated_at", :null => false 179 + t.datetime "created_at"
  180 + t.datetime "updated_at"
181 t.integer "project_access", :default => 0, :null => false 181 t.integer "project_access", :default => 0, :null => false
182 end 182 end
183 183
184 create_table "web_hooks", :force => true do |t| 184 create_table "web_hooks", :force => true do |t|
185 t.string "url" 185 t.string "url"
186 t.integer "project_id" 186 t.integer "project_id"
187 - t.datetime "created_at", :null => false  
188 - t.datetime "updated_at", :null => false 187 + t.datetime "created_at"
  188 + t.datetime "updated_at"
189 end 189 end
190 190
191 create_table "wikis", :force => true do |t| 191 create_table "wikis", :force => true do |t|