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,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' |
Gemfile.lock
@@ -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 { |
@@ -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
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
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
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 | ← To team list | 15 | ← 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(){ |
db/schema.rb
@@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do | @@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -44,8 +44,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -60,10 +60,10 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -84,8 +84,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -98,8 +98,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -122,8 +122,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -156,8 +156,8 @@ ActiveRecord::Schema.define(:version => 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 => 20120408181910) do | @@ -176,16 +176,16 @@ ActiveRecord::Schema.define(:version => 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| |