Commit 627efddf6343735ed95e49ac9b71d7929c879ea3
1 parent
2bad798e
Exists in
master
and in
4 other branches
migrated to bootstrap 2
Showing
37 changed files
with
686 additions
and
545 deletions
Show diff stats
Gemfile
... | ... | @@ -31,7 +31,7 @@ gem "httparty" |
31 | 31 | gem "charlock_holmes" |
32 | 32 | gem "foreman" |
33 | 33 | gem "omniauth-ldap" |
34 | -gem 'bootstrap-sass', "1.4.4" | |
34 | +gem 'bootstrap-sass', "2.0.2" | |
35 | 35 | gem "colored" |
36 | 36 | gem 'yaml_db', :git => "https://github.com/gitlabhq/yaml_db.git" |
37 | 37 | gem 'modularity' | ... | ... |
Gemfile.lock
... | ... | @@ -71,8 +71,7 @@ GEM |
71 | 71 | awesome_print (1.0.2) |
72 | 72 | bcrypt-ruby (3.0.1) |
73 | 73 | blankslate (2.1.2.4) |
74 | - bootstrap-sass (1.4.4) | |
75 | - sass-rails (~> 3.1) | |
74 | + bootstrap-sass (2.0.2) | |
76 | 75 | builder (3.0.0) |
77 | 76 | capybara (1.1.2) |
78 | 77 | mime-types (>= 1.16) |
... | ... | @@ -306,7 +305,7 @@ DEPENDENCIES |
306 | 305 | autotest |
307 | 306 | autotest-rails |
308 | 307 | awesome_print |
309 | - bootstrap-sass (= 1.4.4) | |
308 | + bootstrap-sass (= 2.0.2) | |
310 | 309 | capybara |
311 | 310 | carrierwave |
312 | 311 | charlock_holmes | ... | ... |
app/assets/javascripts/merge_requests.js
... | ... | @@ -4,18 +4,18 @@ var MergeRequest = { |
4 | 4 | |
5 | 5 | init: |
6 | 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 | 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 | 13 | $(".merge-request-diffs").hide(); |
14 | 14 | $(".merge_request_notes").show(); |
15 | 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 | 19 | if(!MergeRequest.diffs_loaded) { |
20 | 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 | 1 | .diff_file_header a, |
107 | 2 | .file_stats a { |
108 | 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 | 7 | /** LAYOUT **/ |
179 | 8 | |
180 | 9 | .container { |
181 | - width:$min_app_width; | |
182 | 10 | padding-top:0; |
183 | 11 | z-index:5; |
12 | + min-width:$min_app_width; | |
13 | + padding:0 20px | |
184 | 14 | } |
185 | 15 | |
186 | 16 | .container .content { |
187 | - margin:0 $app_padding; | |
17 | + margin:0 0; | |
188 | 18 | } |
189 | 19 | |
190 | 20 | .container .sidebar { |
... | ... | @@ -212,7 +42,7 @@ header { |
212 | 42 | cursor: pointer; |
213 | 43 | img { |
214 | 44 | border-radius: 4px; |
215 | - right: 20px; | |
45 | + right: 0px; | |
216 | 46 | position: absolute; |
217 | 47 | width: 33px; |
218 | 48 | height: 33px; |
... | ... | @@ -271,7 +101,7 @@ header { |
271 | 101 | border-radius: 5px; |
272 | 102 | width: 100px; |
273 | 103 | position: absolute; |
274 | - right: 20px; | |
104 | + right: 10px; | |
275 | 105 | top: 46px; |
276 | 106 | margin-top: 0; |
277 | 107 | float: right; |
... | ... | @@ -319,7 +149,7 @@ header { |
319 | 149 | nav.main_menu { |
320 | 150 | border-radius: 4px; |
321 | 151 | margin: auto; |
322 | - margin:30px $app_padding; | |
152 | + margin:30px 0; | |
323 | 153 | background:#eee; |
324 | 154 | border:1px solid #bbb; |
325 | 155 | height:38px; |
... | ... | @@ -338,6 +168,14 @@ nav.main_menu { |
338 | 168 | color:$style_color; |
339 | 169 | } |
340 | 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 | 179 | font-weight:bold; |
342 | 180 | &:first-child{ |
343 | 181 | -webkit-border-top-left-radius: 4px; |
... | ... | @@ -357,7 +195,7 @@ nav.main_menu { |
357 | 195 | &.home { |
358 | 196 | background: url(home_icon.PNG) no-repeat center center; |
359 | 197 | text-indent:-9999px; |
360 | - min-width:40px; | |
198 | + //min-width:40px; | |
361 | 199 | img { |
362 | 200 | position:relative; |
363 | 201 | top:4px; |
... | ... | @@ -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 | 218 | .profile_avatar_holder { |
398 | 219 | float:left; |
399 | 220 | width:60px; |
... | ... | @@ -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 | 231 | .visible_link, |
436 | 232 | .author_link { |
437 | 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 | 236 | .widget { |
472 | 237 | @include shade; |
... | ... | @@ -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 | 260 | .help li { color:#111 } |
576 | 261 | |
577 | 262 | .back_link { |
... | ... | @@ -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 | 279 | .download_repo_link { |
600 | 280 | background: url("images.png") no-repeat 0 -48px; |
601 | 281 | padding-left:20px; |
... | ... | @@ -623,6 +303,7 @@ table a code { |
623 | 303 | |
624 | 304 | .btn.padded { |
625 | 305 | margin-right:3px; |
306 | + padding:4px 10px 4px; | |
626 | 307 | } |
627 | 308 | |
628 | 309 | .loading { |
... | ... | @@ -726,7 +407,7 @@ a.project-update.titled { |
726 | 407 | |
727 | 408 | |
728 | 409 | input.git_clone_url { |
729 | - width:475px; | |
410 | + width:325px; | |
730 | 411 | } |
731 | 412 | |
732 | 413 | .merge-request-form-holder { |
... | ... | @@ -874,7 +555,7 @@ li.commit { |
874 | 555 | } |
875 | 556 | |
876 | 557 | code { |
877 | - padding:4px; | |
558 | + padding:0px; | |
878 | 559 | } |
879 | 560 | } |
880 | 561 | p.time { | ... | ... |
... | ... | @@ -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 | 1 | @import "bootstrap"; |
2 | +@import "bootstrap-responsive"; | |
2 | 3 | |
3 | 4 | /** GITLAB colors **/ |
4 | 5 | $text_color:#222; |
... | ... | @@ -76,6 +77,14 @@ $hover: #FDF5D9; |
76 | 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 | 88 | * Most of application styles placed here. |
80 | 89 | * This file represent common UI that should not be changed between themes |
81 | 90 | * or project restyling like form width or user avatar class or commit title | ... | ... |
app/assets/stylesheets/tree.scss
... | ... | @@ -124,14 +124,17 @@ |
124 | 124 | |
125 | 125 | .tree-item { |
126 | 126 | .tree-item-file-name { |
127 | + vertical-align:middle; | |
127 | 128 | font-weight:bold; |
128 | 129 | a { |
129 | 130 | color:$style_color; |
131 | + &:hover { | |
132 | + color:$blue_link; | |
133 | + } | |
130 | 134 | } |
131 | 135 | |
132 | 136 | img { |
133 | 137 | position: relative; |
134 | - top: 2px; | |
135 | 138 | } |
136 | 139 | } |
137 | 140 | } |
... | ... | @@ -139,6 +142,10 @@ |
139 | 142 | ul.breadcrumb { |
140 | 143 | background:white; |
141 | 144 | border:none; |
145 | + li { | |
146 | + display: inline; | |
147 | + text-shadow: 0 1px 0 white | |
148 | + } | |
142 | 149 | |
143 | 150 | a { |
144 | 151 | color:#474D57; |
... | ... | @@ -149,6 +156,7 @@ |
149 | 156 | |
150 | 157 | #tree-slider { |
151 | 158 | @include shade; |
159 | + width:100%; | |
152 | 160 | |
153 | 161 | border-color:#ccc; |
154 | 162 | ... | ... |
app/assets/stylesheets/ui_basic.scss
... | ... | @@ -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 | 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
app/views/admin/projects/show.html.haml
app/views/commits/_head.html.haml
app/views/dashboard/index.html.haml
... | ... | @@ -42,7 +42,7 @@ |
42 | 42 | %br |
43 | 43 | = link_to profile_path, :class => "btn" do |
44 | 44 | Your Profile » |
45 | - .span12.left= render "dashboard/projects_feed", :projects => @active_projects | |
45 | + .span8.left= render "dashboard/projects_feed", :projects => @active_projects | |
46 | 46 | - if @last_push && @last_push.valid_push? |
47 | 47 | .padded.prepend-top-20 |
48 | 48 | %h5 | ... | ... |
app/views/issues/_head.html.haml
app/views/issues/index.html.haml
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 | .title |
23 | 23 | .row |
24 | 24 | .span6 |
25 | - %ul.pills.left | |
25 | + %ul.nav.nav-pills.left | |
26 | 26 | %li{:class => ("active" if (params[:f] == "0" || !params[:f]))} |
27 | 27 | = link_to project_issues_path(@project, :f => 0) do |
28 | 28 | Open |
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | = link_to project_issues_path(@project, :f => 1) do |
37 | 37 | All |
38 | 38 | |
39 | - .span6.right | |
39 | + .span4.right | |
40 | 40 | = form_tag project_issues_path(@project), :method => :get, :class => :right do |
41 | 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
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 | 2 | -if @merge_request.errors.any? |
3 | 3 | .alert-message.block-message.error |
4 | 4 | %ul |
5 | 5 | - @merge_request.errors.full_messages.each do |msg| |
6 | 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 | 14 | = f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px") |
15 | 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 | 19 | = f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px") |
20 | 20 | .mr_target_commit |
21 | 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 | 27 | - if @merge_request.new_record? |
28 | 28 | = link_to project_merge_requests_path(@project), :class => "btn" do |
29 | 29 | Cancel | ... | ... |
app/views/merge_requests/index.html.haml
app/views/merge_requests/show.html.haml
app/views/milestones/_form.html.haml
... | ... | @@ -5,33 +5,33 @@ |
5 | 5 | |
6 | 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 | 9 | -if @milestone.errors.any? |
10 | 10 | .alert-message.block-message.error |
11 | 11 | %ul |
12 | 12 | - @milestone.errors.full_messages.each do |msg| |
13 | 13 | %li= msg |
14 | 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 | 29 | .input= f.hidden_field :due_date |
30 | - .input | |
30 | + .controls | |
31 | 31 | .datepicker |
32 | 32 | |
33 | 33 | |
34 | - .actions | |
34 | + .form-actions | |
35 | 35 | - if @milestone.new_record? |
36 | 36 | = f.submit 'Create milestone', :class => "primary btn" |
37 | 37 | -else | ... | ... |
app/views/milestones/index.html.haml
app/views/profile/design.html.haml
1 | 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 | 14 | %h3 Code review |
14 | 15 | %hr |
15 | 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 | 32 | :javascript |
30 | 33 | $(function(){ | ... | ... |
app/views/profile/password.html.haml
1 | 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 | 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 | 1 | .row |
2 | - .span10 | |
2 | + .span8 | |
3 | 3 | .profile_avatar_holder |
4 | 4 | = image_tag gravatar_icon(@user.email, 90), :class => "styled_image" |
5 | 5 | %h3 |
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | %small |
9 | 9 | = @user.email |
10 | 10 | |
11 | - .span6.right | |
11 | + .span4.right | |
12 | 12 | %div |
13 | 13 | %div |
14 | 14 | %h5.cgray |
... | ... | @@ -23,45 +23,45 @@ |
23 | 23 | %span= current_user.keys.count |
24 | 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 | 27 | -if @user.errors.any? |
28 | 28 | %div.alert-message.block-message.error |
29 | 29 | %ul |
30 | 30 | - @user.errors.full_messages.each do |msg| |
31 | 31 | %li= msg |
32 | 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 | 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 | 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 | 57 | %span.help-block About yourself in fewer than 250 characters. |
58 | - .span7.right | |
58 | + .span5.right | |
59 | 59 | %p.alert-message.block-message |
60 | 60 | %strong Tip: |
61 | 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 | 66 | -#= link_to "New project", new_project_path, :class => "btn small padded" |
67 | 67 | -#= link_to "New public key", new_key_path, :class => "btn small" | ... | ... |
app/views/projects/_project_head.html.haml
app/views/projects/index.html.haml
app/views/projects/show.html.haml
1 | 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 | 16 | - if can? current_user, :download_code, @project |
8 | 17 | = link_to "Download", archive_project_repository_path(@project), :class => "btn small padded" |
9 | 18 | - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) |
... | ... | @@ -12,18 +21,7 @@ |
12 | 21 | - if @project.issues_enabled && can?(current_user, :write_issue, @project) |
13 | 22 | = link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do |
14 | 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 | 25 | - unless @events.blank? |
28 | 26 | %br |
29 | 27 | %h5.cgray | ... | ... |
app/views/projects/team.html.haml
1 | 1 | = render "project_head" |
2 | 2 | |
3 | 3 | - if can? current_user, :admin_team_member, @project |
4 | - .alert-message.block-message | |
4 | + .alert.alert-info | |
5 | 5 | = link_to new_project_team_member_path(@project), :class => "btn small right", :title => "New Team Member" do |
6 | 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 | 10 | %p To open team member profile - click on avatar. |
9 | 11 | |
10 | 12 | ... | ... |
app/views/protected_branches/index.html.haml
1 | 1 | = render "repositories/branches_head" |
2 | 2 | |
3 | -.alert-message.block-message | |
3 | +.alert | |
4 | 4 | %p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, :class => "vlink"}. |
5 | 5 | %p This ability allows: |
6 | 6 | %ul |
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | |
12 | 12 | |
13 | 13 | - unless @branches.empty? |
14 | - %table.zebra-striped | |
14 | + %table.table-striped | |
15 | 15 | %thead |
16 | 16 | %tr |
17 | 17 | %th Name | ... | ... |
app/views/refs/_tree_file.html.haml
... | ... | @@ -4,14 +4,14 @@ |
4 | 4 | .row |
5 | 5 | .span1.file_icon= image_tag(file.image? ? "file_img.png" : "file_txt.png") |
6 | 6 | .span2.mode_text= file.mode |
7 | - .span7.file_name= name | |
8 | - .span4.right | |
7 | + .span5.file_name= name | |
8 | + .span3.right | |
9 | 9 | = link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path]), :class => "right", :target => "_blank" |
10 | 10 | = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref), :class => "right", :style => "margin-right:10px;" |
11 | 11 | - if file.text? |
12 | 12 | .view_file_content |
13 | 13 | - unless file.empty? |
14 | - %div{:class => current_user.dark_scheme ? "black" : ""} | |
14 | + %div{:class => current_user.dark_scheme ? "black" : "white"} | |
15 | 15 | :erb |
16 | 16 | <%= raw file.colorize %> |
17 | 17 | - else | ... | ... |
app/views/refs/tree.html.haml
app/views/repositories/_branches_head.html.haml
app/views/repositories/branches.html.haml
app/views/repositories/tags.html.haml
app/views/search/show.html.haml
... | ... | @@ -2,8 +2,8 @@ |
2 | 2 | .padded |
3 | 3 | = label_tag :search, "Looking for" |
4 | 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 | 7 | - if params[:search].present? |
8 | 8 | %br |
9 | 9 | %h3 Search results | ... | ... |
app/views/team_members/_show.html.haml
... | ... | @@ -11,5 +11,5 @@ |
11 | 11 | .span3 |
12 | 12 | = form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f| |
13 | 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 | 15 | ← To team list |
16 | 16 | %br |
17 | 17 | .row |
18 | - .span8 | |
18 | + .span6 | |
19 | 19 | %table.no-borders |
20 | 20 | %tr |
21 | 21 | %td Email |
... | ... | @@ -35,7 +35,7 @@ |
35 | 35 | %tr |
36 | 36 | %td Bio |
37 | 37 | %td= user.bio |
38 | - .span8 | |
38 | + .span6 | |
39 | 39 | %table.no-borders |
40 | 40 | %tr |
41 | 41 | %td Member since |
... | ... | @@ -50,8 +50,9 @@ |
50 | 50 | %hr |
51 | 51 | = render user.recent_events.limit(3) |
52 | 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 | 57 | :javascript |
57 | 58 | $(function(){ | ... | ... |
db/schema.rb
... | ... | @@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
30 | 30 | t.integer "assignee_id" |
31 | 31 | t.integer "author_id" |
32 | 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 | 35 | t.boolean "closed", :default => false, :null => false |
36 | 36 | t.integer "position", :default => 0 |
37 | 37 | t.boolean "critical", :default => false, :null => false |
... | ... | @@ -44,8 +44,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
44 | 44 | |
45 | 45 | create_table "keys", :force => true do |t| |
46 | 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 | 49 | t.text "key" |
50 | 50 | t.string "title" |
51 | 51 | t.string "identifier" |
... | ... | @@ -60,10 +60,10 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
60 | 60 | t.integer "assignee_id" |
61 | 61 | t.string "title" |
62 | 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 | 67 | t.boolean "merged", :default => false, :null => false |
68 | 68 | end |
69 | 69 | |
... | ... | @@ -84,8 +84,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
84 | 84 | t.string "noteable_id" |
85 | 85 | t.string "noteable_type" |
86 | 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 | 89 | t.integer "project_id" |
90 | 90 | t.string "attachment" |
91 | 91 | t.string "line_code" |
... | ... | @@ -98,8 +98,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
98 | 98 | t.string "name" |
99 | 99 | t.string "path" |
100 | 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 | 103 | t.boolean "private_flag", :default => true, :null => false |
104 | 104 | t.string "code" |
105 | 105 | t.integer "owner_id" |
... | ... | @@ -122,8 +122,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
122 | 122 | t.text "content" |
123 | 123 | t.integer "author_id", :null => false |
124 | 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 | 127 | t.string "file_name" |
128 | 128 | t.datetime "expires_at" |
129 | 129 | end |
... | ... | @@ -156,8 +156,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
156 | 156 | t.datetime "last_sign_in_at" |
157 | 157 | t.string "current_sign_in_ip" |
158 | 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 | 161 | t.string "name" |
162 | 162 | t.boolean "admin", :default => false, :null => false |
163 | 163 | t.integer "projects_limit", :default => 10 |
... | ... | @@ -176,16 +176,16 @@ ActiveRecord::Schema.define(:version => 20120408181910) do |
176 | 176 | create_table "users_projects", :force => true do |t| |
177 | 177 | t.integer "user_id", :null => false |
178 | 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 | 181 | t.integer "project_access", :default => 0, :null => false |
182 | 182 | end |
183 | 183 | |
184 | 184 | create_table "web_hooks", :force => true do |t| |
185 | 185 | t.string "url" |
186 | 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 | 189 | end |
190 | 190 | |
191 | 191 | create_table "wikis", :force => true do |t| | ... | ... |