##// END OF EJS Templates
tables: unified tables for main pages of rhodecode repo pages.
marcink -
r4511:c6ccda60 stable
parent child Browse files
Show More
@@ -1,3236 +1,3237 b''
1 //Primary CSS
1 //Primary CSS
2
2
3 //--- IMPORTS ------------------//
3 //--- IMPORTS ------------------//
4
4
5 @import 'helpers';
5 @import 'helpers';
6 @import 'mixins';
6 @import 'mixins';
7 @import 'rcicons';
7 @import 'rcicons';
8 @import 'variables';
8 @import 'variables';
9 @import 'bootstrap-variables';
9 @import 'bootstrap-variables';
10 @import 'form-bootstrap';
10 @import 'form-bootstrap';
11 @import 'codemirror';
11 @import 'codemirror';
12 @import 'legacy_code_styles';
12 @import 'legacy_code_styles';
13 @import 'readme-box';
13 @import 'readme-box';
14 @import 'progress-bar';
14 @import 'progress-bar';
15
15
16 @import 'type';
16 @import 'type';
17 @import 'alerts';
17 @import 'alerts';
18 @import 'buttons';
18 @import 'buttons';
19 @import 'tags';
19 @import 'tags';
20 @import 'code-block';
20 @import 'code-block';
21 @import 'examples';
21 @import 'examples';
22 @import 'login';
22 @import 'login';
23 @import 'main-content';
23 @import 'main-content';
24 @import 'select2';
24 @import 'select2';
25 @import 'comments';
25 @import 'comments';
26 @import 'panels-bootstrap';
26 @import 'panels-bootstrap';
27 @import 'panels';
27 @import 'panels';
28 @import 'deform';
28 @import 'deform';
29 @import 'tooltips';
29 @import 'tooltips';
30 @import 'sweetalert2';
30 @import 'sweetalert2';
31
31
32
32
33 //--- BASE ------------------//
33 //--- BASE ------------------//
34 .noscript-error {
34 .noscript-error {
35 top: 0;
35 top: 0;
36 left: 0;
36 left: 0;
37 width: 100%;
37 width: 100%;
38 z-index: 101;
38 z-index: 101;
39 text-align: center;
39 text-align: center;
40 font-size: 120%;
40 font-size: 120%;
41 color: white;
41 color: white;
42 background-color: @alert2;
42 background-color: @alert2;
43 padding: 5px 0 5px 0;
43 padding: 5px 0 5px 0;
44 font-weight: @text-semibold-weight;
44 font-weight: @text-semibold-weight;
45 font-family: @text-semibold;
45 font-family: @text-semibold;
46 }
46 }
47
47
48 html {
48 html {
49 display: table;
49 display: table;
50 height: 100%;
50 height: 100%;
51 width: 100%;
51 width: 100%;
52 }
52 }
53
53
54 body {
54 body {
55 display: table-cell;
55 display: table-cell;
56 width: 100%;
56 width: 100%;
57 }
57 }
58
58
59 //--- LAYOUT ------------------//
59 //--- LAYOUT ------------------//
60
60
61 .hidden{
61 .hidden{
62 display: none !important;
62 display: none !important;
63 }
63 }
64
64
65 .box{
65 .box{
66 float: left;
66 float: left;
67 width: 100%;
67 width: 100%;
68 }
68 }
69
69
70 .browser-header {
70 .browser-header {
71 clear: both;
71 clear: both;
72 }
72 }
73 .main {
73 .main {
74 clear: both;
74 clear: both;
75 padding:0 0 @pagepadding;
75 padding:0 0 @pagepadding;
76 height: auto;
76 height: auto;
77
77
78 &:after { //clearfix
78 &:after { //clearfix
79 content:"";
79 content:"";
80 clear:both;
80 clear:both;
81 width:100%;
81 width:100%;
82 display:block;
82 display:block;
83 }
83 }
84 }
84 }
85
85
86 .flex-container {
86 .flex-container {
87 display: flex;
87 display: flex;
88 justify-content: space-between;
88 justify-content: space-between;
89 }
89 }
90
90
91 .action-link{
91 .action-link{
92 margin-left: @padding;
92 margin-left: @padding;
93 padding-left: @padding;
93 padding-left: @padding;
94 border-left: @border-thickness solid @border-default-color;
94 border-left: @border-thickness solid @border-default-color;
95 }
95 }
96
96
97 .cursor-pointer {
97 .cursor-pointer {
98 cursor: pointer;
98 cursor: pointer;
99 }
99 }
100
100
101 input + .action-link, .action-link.first{
101 input + .action-link, .action-link.first{
102 border-left: none;
102 border-left: none;
103 }
103 }
104
104
105 .link-disabled {
105 .link-disabled {
106 color: @grey4;
106 color: @grey4;
107 cursor: default;
107 cursor: default;
108 }
108 }
109
109
110 .action-link.last{
110 .action-link.last{
111 margin-right: @padding;
111 margin-right: @padding;
112 padding-right: @padding;
112 padding-right: @padding;
113 }
113 }
114
114
115 .action-link.active,
115 .action-link.active,
116 .action-link.active a{
116 .action-link.active a{
117 color: @grey4;
117 color: @grey4;
118 }
118 }
119
119
120 .action-link.disabled {
120 .action-link.disabled {
121 color: @grey4;
121 color: @grey4;
122 cursor: inherit;
122 cursor: inherit;
123 }
123 }
124
124
125 .grey-link-action {
125 .grey-link-action {
126 cursor: pointer;
126 cursor: pointer;
127 &:hover {
127 &:hover {
128 color: @grey2;
128 color: @grey2;
129 }
129 }
130 color: @grey4;
130 color: @grey4;
131 }
131 }
132
132
133 .clipboard-action {
133 .clipboard-action {
134 cursor: pointer;
134 cursor: pointer;
135 margin-left: 5px;
135 margin-left: 5px;
136
136
137 &:not(.no-grey) {
137 &:not(.no-grey) {
138
138
139 &:hover {
139 &:hover {
140 color: @grey2;
140 color: @grey2;
141 }
141 }
142 color: @grey4;
142 color: @grey4;
143 }
143 }
144 }
144 }
145
145
146 ul.simple-list{
146 ul.simple-list{
147 list-style: none;
147 list-style: none;
148 margin: 0;
148 margin: 0;
149 padding: 0;
149 padding: 0;
150 }
150 }
151
151
152 .main-content {
152 .main-content {
153 padding-bottom: @pagepadding;
153 padding-bottom: @pagepadding;
154 }
154 }
155
155
156 .wide-mode-wrapper {
156 .wide-mode-wrapper {
157 max-width:4000px !important;
157 max-width:4000px !important;
158 }
158 }
159
159
160 .wrapper {
160 .wrapper {
161 position: relative;
161 position: relative;
162 max-width: @wrapper-maxwidth;
162 max-width: @wrapper-maxwidth;
163 margin: 0 auto;
163 margin: 0 auto;
164 }
164 }
165
165
166 #content {
166 #content {
167 clear: both;
167 clear: both;
168 padding: 0 @contentpadding;
168 padding: 0 @contentpadding;
169 }
169 }
170
170
171 .advanced-settings-fields{
171 .advanced-settings-fields{
172 input{
172 input{
173 margin-left: @textmargin;
173 margin-left: @textmargin;
174 margin-right: @padding/2;
174 margin-right: @padding/2;
175 }
175 }
176 }
176 }
177
177
178 .cs_files_title {
178 .cs_files_title {
179 margin: @pagepadding 0 0;
179 margin: @pagepadding 0 0;
180 }
180 }
181
181
182 input.inline[type="file"] {
182 input.inline[type="file"] {
183 display: inline;
183 display: inline;
184 }
184 }
185
185
186 .error_page {
186 .error_page {
187 margin: 10% auto;
187 margin: 10% auto;
188
188
189 h1 {
189 h1 {
190 color: @grey2;
190 color: @grey2;
191 }
191 }
192
192
193 .alert {
193 .alert {
194 margin: @padding 0;
194 margin: @padding 0;
195 }
195 }
196
196
197 .error-branding {
197 .error-branding {
198 color: @grey4;
198 color: @grey4;
199 font-weight: @text-semibold-weight;
199 font-weight: @text-semibold-weight;
200 font-family: @text-semibold;
200 font-family: @text-semibold;
201 }
201 }
202
202
203 .error_message {
203 .error_message {
204 font-family: @text-regular;
204 font-family: @text-regular;
205 }
205 }
206
206
207 .sidebar {
207 .sidebar {
208 min-height: 275px;
208 min-height: 275px;
209 margin: 0;
209 margin: 0;
210 padding: 0 0 @sidebarpadding @sidebarpadding;
210 padding: 0 0 @sidebarpadding @sidebarpadding;
211 border: none;
211 border: none;
212 }
212 }
213
213
214 .main-content {
214 .main-content {
215 position: relative;
215 position: relative;
216 margin: 0 @sidebarpadding @sidebarpadding;
216 margin: 0 @sidebarpadding @sidebarpadding;
217 padding: 0 0 0 @sidebarpadding;
217 padding: 0 0 0 @sidebarpadding;
218 border-left: @border-thickness solid @grey5;
218 border-left: @border-thickness solid @grey5;
219
219
220 @media (max-width:767px) {
220 @media (max-width:767px) {
221 clear: both;
221 clear: both;
222 width: 100%;
222 width: 100%;
223 margin: 0;
223 margin: 0;
224 border: none;
224 border: none;
225 }
225 }
226 }
226 }
227
227
228 .inner-column {
228 .inner-column {
229 float: left;
229 float: left;
230 width: 29.75%;
230 width: 29.75%;
231 min-height: 150px;
231 min-height: 150px;
232 margin: @sidebarpadding 2% 0 0;
232 margin: @sidebarpadding 2% 0 0;
233 padding: 0 2% 0 0;
233 padding: 0 2% 0 0;
234 border-right: @border-thickness solid @grey5;
234 border-right: @border-thickness solid @grey5;
235
235
236 @media (max-width:767px) {
236 @media (max-width:767px) {
237 clear: both;
237 clear: both;
238 width: 100%;
238 width: 100%;
239 border: none;
239 border: none;
240 }
240 }
241
241
242 ul {
242 ul {
243 padding-left: 1.25em;
243 padding-left: 1.25em;
244 }
244 }
245
245
246 &:last-child {
246 &:last-child {
247 margin: @sidebarpadding 0 0;
247 margin: @sidebarpadding 0 0;
248 border: none;
248 border: none;
249 }
249 }
250
250
251 h4 {
251 h4 {
252 margin: 0 0 @padding;
252 margin: 0 0 @padding;
253 font-weight: @text-semibold-weight;
253 font-weight: @text-semibold-weight;
254 font-family: @text-semibold;
254 font-family: @text-semibold;
255 }
255 }
256 }
256 }
257 }
257 }
258 .error-page-logo {
258 .error-page-logo {
259 width: 130px;
259 width: 130px;
260 height: 160px;
260 height: 160px;
261 }
261 }
262
262
263 // HEADER
263 // HEADER
264 .header {
264 .header {
265
265
266 // TODO: johbo: Fix login pages, so that they work without a min-height
266 // TODO: johbo: Fix login pages, so that they work without a min-height
267 // for the header and then remove the min-height. I chose a smaller value
267 // for the header and then remove the min-height. I chose a smaller value
268 // intentionally here to avoid rendering issues in the main navigation.
268 // intentionally here to avoid rendering issues in the main navigation.
269 min-height: 49px;
269 min-height: 49px;
270 min-width: 1024px;
270 min-width: 1024px;
271
271
272 position: relative;
272 position: relative;
273 vertical-align: bottom;
273 vertical-align: bottom;
274 padding: 0 @header-padding;
274 padding: 0 @header-padding;
275 background-color: @grey1;
275 background-color: @grey1;
276 color: @grey5;
276 color: @grey5;
277
277
278 .title {
278 .title {
279 overflow: visible;
279 overflow: visible;
280 }
280 }
281
281
282 &:before,
282 &:before,
283 &:after {
283 &:after {
284 content: "";
284 content: "";
285 clear: both;
285 clear: both;
286 width: 100%;
286 width: 100%;
287 }
287 }
288
288
289 // TODO: johbo: Avoids breaking "Repositories" chooser
289 // TODO: johbo: Avoids breaking "Repositories" chooser
290 .select2-container .select2-choice .select2-arrow {
290 .select2-container .select2-choice .select2-arrow {
291 display: none;
291 display: none;
292 }
292 }
293 }
293 }
294
294
295 #header-inner {
295 #header-inner {
296 &.title {
296 &.title {
297 margin: 0;
297 margin: 0;
298 }
298 }
299 &:before,
299 &:before,
300 &:after {
300 &:after {
301 content: "";
301 content: "";
302 clear: both;
302 clear: both;
303 }
303 }
304 }
304 }
305
305
306 // Gists
306 // Gists
307 #files_data {
307 #files_data {
308 clear: both; //for firefox
308 clear: both; //for firefox
309 padding-top: 10px;
309 padding-top: 10px;
310 }
310 }
311
311
312 #gistid {
312 #gistid {
313 margin-right: @padding;
313 margin-right: @padding;
314 }
314 }
315
315
316 // Global Settings Editor
316 // Global Settings Editor
317 .textarea.editor {
317 .textarea.editor {
318 float: left;
318 float: left;
319 position: relative;
319 position: relative;
320 max-width: @texteditor-width;
320 max-width: @texteditor-width;
321
321
322 select {
322 select {
323 position: absolute;
323 position: absolute;
324 top:10px;
324 top:10px;
325 right:0;
325 right:0;
326 }
326 }
327
327
328 .CodeMirror {
328 .CodeMirror {
329 margin: 0;
329 margin: 0;
330 }
330 }
331
331
332 .help-block {
332 .help-block {
333 margin: 0 0 @padding;
333 margin: 0 0 @padding;
334 padding:.5em;
334 padding:.5em;
335 background-color: @grey6;
335 background-color: @grey6;
336 &.pre-formatting {
336 &.pre-formatting {
337 white-space: pre;
337 white-space: pre;
338 }
338 }
339 }
339 }
340 }
340 }
341
341
342 ul.auth_plugins {
342 ul.auth_plugins {
343 margin: @padding 0 @padding @legend-width;
343 margin: @padding 0 @padding @legend-width;
344 padding: 0;
344 padding: 0;
345
345
346 li {
346 li {
347 margin-bottom: @padding;
347 margin-bottom: @padding;
348 line-height: 1em;
348 line-height: 1em;
349 list-style-type: none;
349 list-style-type: none;
350
350
351 .auth_buttons .btn {
351 .auth_buttons .btn {
352 margin-right: @padding;
352 margin-right: @padding;
353 }
353 }
354
354
355 }
355 }
356 }
356 }
357
357
358
358
359 // My Account PR list
359 // My Account PR list
360
360
361 #show_closed {
361 #show_closed {
362 margin: 0 1em 0 0;
362 margin: 0 1em 0 0;
363 }
363 }
364
364
365 #pull_request_list_table {
365 #pull_request_list_table {
366 .closed {
366 .closed {
367 background-color: @grey6;
367 background-color: @grey6;
368 }
368 }
369
369
370 .state-creating,
370 .state-creating,
371 .state-updating,
371 .state-updating,
372 .state-merging
372 .state-merging
373 {
373 {
374 background-color: @grey6;
374 background-color: @grey6;
375 }
375 }
376
376
377 .td-status {
377 .td-status {
378 padding-left: .5em;
378 padding-left: .5em;
379 }
379 }
380 .log-container .truncate {
380 .log-container .truncate {
381 height: 2.75em;
381 height: 2.75em;
382 white-space: pre-line;
382 white-space: pre-line;
383 }
383 }
384 table.rctable .user {
384 table.rctable .user {
385 padding-left: 0;
385 padding-left: 0;
386 }
386 }
387 table.rctable {
387 table.rctable {
388 td.td-description,
388 td.td-description,
389 .rc-user {
389 .rc-user {
390 min-width: auto;
390 min-width: auto;
391 }
391 }
392 }
392 }
393 }
393 }
394
394
395 // Pull Requests
395 // Pull Requests
396
396
397 .pullrequests_section_head {
397 .pullrequests_section_head {
398 display: block;
398 display: block;
399 clear: both;
399 clear: both;
400 margin: @padding 0;
400 margin: @padding 0;
401 font-weight: @text-bold-weight;
401 font-weight: @text-bold-weight;
402 font-family: @text-bold;
402 font-family: @text-bold;
403 }
403 }
404
404
405 .pr-commit-flow {
405 .pr-commit-flow {
406 position: relative;
406 position: relative;
407 font-weight: 600;
407 font-weight: 600;
408
408
409 .tag {
409 .tag {
410 display: inline-block;
410 display: inline-block;
411 margin: 0 1em .5em 0;
411 margin: 0 1em .5em 0;
412 }
412 }
413
413
414 .clone-url {
414 .clone-url {
415 display: inline-block;
415 display: inline-block;
416 margin: 0 0 .5em 0;
416 margin: 0 0 .5em 0;
417 padding: 0;
417 padding: 0;
418 line-height: 1.2em;
418 line-height: 1.2em;
419 }
419 }
420 }
420 }
421
421
422 .pr-mergeinfo {
422 .pr-mergeinfo {
423 min-width: 95% !important;
423 min-width: 95% !important;
424 padding: 0 !important;
424 padding: 0 !important;
425 border: 0;
425 border: 0;
426 }
426 }
427 .pr-mergeinfo-copy {
427 .pr-mergeinfo-copy {
428 padding: 0 0;
428 padding: 0 0;
429 }
429 }
430
430
431 .pr-pullinfo {
431 .pr-pullinfo {
432 min-width: 95% !important;
432 min-width: 95% !important;
433 padding: 0 !important;
433 padding: 0 !important;
434 border: 0;
434 border: 0;
435 }
435 }
436 .pr-pullinfo-copy {
436 .pr-pullinfo-copy {
437 padding: 0 0;
437 padding: 0 0;
438 }
438 }
439
439
440 .pr-title-input {
440 .pr-title-input {
441 width: 100%;
441 width: 100%;
442 font-size: 18px;
442 font-size: 18px;
443 margin: 0 0 4px 0;
443 margin: 0 0 4px 0;
444 padding: 0;
444 padding: 0;
445 line-height: 1.7em;
445 line-height: 1.7em;
446 color: @text-color;
446 color: @text-color;
447 letter-spacing: .02em;
447 letter-spacing: .02em;
448 font-weight: @text-bold-weight;
448 font-weight: @text-bold-weight;
449 font-family: @text-bold;
449 font-family: @text-bold;
450
450
451 &:hover {
451 &:hover {
452 box-shadow: none;
452 box-shadow: none;
453 }
453 }
454 }
454 }
455
455
456 #pr-title {
456 #pr-title {
457 input {
457 input {
458 border: 1px transparent;
458 border: 1px transparent;
459 color: black;
459 color: black;
460 opacity: 1;
460 opacity: 1;
461 background: #fff;
461 background: #fff;
462 font-size: 18px;
462 font-size: 18px;
463 }
463 }
464 }
464 }
465
465
466 .pr-title-closed-tag {
466 .pr-title-closed-tag {
467 font-size: 16px;
467 font-size: 16px;
468 }
468 }
469
469
470 #pr-desc {
470 #pr-desc {
471 padding: 10px 0;
471 padding: 10px 0;
472
472
473 .markdown-block {
473 .markdown-block {
474 padding: 0;
474 padding: 0;
475 margin-bottom: -30px;
475 margin-bottom: -30px;
476 }
476 }
477 }
477 }
478
478
479 #pullrequest_title {
479 #pullrequest_title {
480 width: 100%;
480 width: 100%;
481 box-sizing: border-box;
481 box-sizing: border-box;
482 }
482 }
483
483
484 #pr_open_message {
484 #pr_open_message {
485 border: @border-thickness solid #fff;
485 border: @border-thickness solid #fff;
486 border-radius: @border-radius;
486 border-radius: @border-radius;
487 text-align: left;
487 text-align: left;
488 overflow: hidden;
488 overflow: hidden;
489 white-space: pre-line;
489 white-space: pre-line;
490 padding-top: 5px
490 padding-top: 5px
491 }
491 }
492
492
493 #add_reviewer {
493 #add_reviewer {
494 padding-top: 10px;
494 padding-top: 10px;
495 }
495 }
496
496
497 #add_reviewer_input {
497 #add_reviewer_input {
498 padding-top: 10px
498 padding-top: 10px
499 }
499 }
500
500
501 .pr-details-title-author-pref {
501 .pr-details-title-author-pref {
502 padding-right: 10px
502 padding-right: 10px
503 }
503 }
504
504
505 .label-pr-detail {
505 .label-pr-detail {
506 display: table-cell;
506 display: table-cell;
507 width: 120px;
507 width: 120px;
508 padding-top: 7.5px;
508 padding-top: 7.5px;
509 padding-bottom: 7.5px;
509 padding-bottom: 7.5px;
510 padding-right: 7.5px;
510 padding-right: 7.5px;
511 }
511 }
512
512
513 .source-details ul {
513 .source-details ul {
514 padding: 10px 16px;
514 padding: 10px 16px;
515 }
515 }
516
516
517 .source-details-action {
517 .source-details-action {
518 color: @grey4;
518 color: @grey4;
519 font-size: 11px
519 font-size: 11px
520 }
520 }
521
521
522 .pr-submit-button {
522 .pr-submit-button {
523 float: right;
523 float: right;
524 margin: 0 0 0 5px;
524 margin: 0 0 0 5px;
525 }
525 }
526
526
527 .pr-spacing-container {
527 .pr-spacing-container {
528 padding: 20px;
528 padding: 20px;
529 clear: both
529 clear: both
530 }
530 }
531
531
532 #pr-description-input {
532 #pr-description-input {
533 margin-bottom: 0;
533 margin-bottom: 0;
534 }
534 }
535
535
536 .pr-description-label {
536 .pr-description-label {
537 vertical-align: top;
537 vertical-align: top;
538 }
538 }
539
539
540 #open_edit_pullrequest {
540 #open_edit_pullrequest {
541 padding: 0;
541 padding: 0;
542 }
542 }
543
543
544 #close_edit_pullrequest {
544 #close_edit_pullrequest {
545
545
546 }
546 }
547
547
548 #delete_pullrequest {
548 #delete_pullrequest {
549 clear: inherit;
549 clear: inherit;
550
550
551 form {
551 form {
552 display: inline;
552 display: inline;
553 }
553 }
554
554
555 }
555 }
556
556
557 .perms_section_head {
557 .perms_section_head {
558 min-width: 625px;
558 min-width: 625px;
559
559
560 h2 {
560 h2 {
561 margin-bottom: 0;
561 margin-bottom: 0;
562 }
562 }
563
563
564 .label-checkbox {
564 .label-checkbox {
565 float: left;
565 float: left;
566 }
566 }
567
567
568 &.field {
568 &.field {
569 margin: @space 0 @padding;
569 margin: @space 0 @padding;
570 }
570 }
571
571
572 &:first-child.field {
572 &:first-child.field {
573 margin-top: 0;
573 margin-top: 0;
574
574
575 .label {
575 .label {
576 margin-top: 0;
576 margin-top: 0;
577 padding-top: 0;
577 padding-top: 0;
578 }
578 }
579
579
580 .radios {
580 .radios {
581 padding-top: 0;
581 padding-top: 0;
582 }
582 }
583 }
583 }
584
584
585 .radios {
585 .radios {
586 position: relative;
586 position: relative;
587 width: 505px;
587 width: 505px;
588 }
588 }
589 }
589 }
590
590
591 //--- MODULES ------------------//
591 //--- MODULES ------------------//
592
592
593
593
594 // Server Announcement
594 // Server Announcement
595 #server-announcement {
595 #server-announcement {
596 width: 95%;
596 width: 95%;
597 margin: @padding auto;
597 margin: @padding auto;
598 padding: @padding;
598 padding: @padding;
599 border-width: 2px;
599 border-width: 2px;
600 border-style: solid;
600 border-style: solid;
601 .border-radius(2px);
601 .border-radius(2px);
602 font-weight: @text-bold-weight;
602 font-weight: @text-bold-weight;
603 font-family: @text-bold;
603 font-family: @text-bold;
604
604
605 &.info { border-color: @alert4; background-color: @alert4-inner; }
605 &.info { border-color: @alert4; background-color: @alert4-inner; }
606 &.warning { border-color: @alert3; background-color: @alert3-inner; }
606 &.warning { border-color: @alert3; background-color: @alert3-inner; }
607 &.error { border-color: @alert2; background-color: @alert2-inner; }
607 &.error { border-color: @alert2; background-color: @alert2-inner; }
608 &.success { border-color: @alert1; background-color: @alert1-inner; }
608 &.success { border-color: @alert1; background-color: @alert1-inner; }
609 &.neutral { border-color: @grey3; background-color: @grey6; }
609 &.neutral { border-color: @grey3; background-color: @grey6; }
610 }
610 }
611
611
612 // Fixed Sidebar Column
612 // Fixed Sidebar Column
613 .sidebar-col-wrapper {
613 .sidebar-col-wrapper {
614 padding-left: @sidebar-all-width;
614 padding-left: @sidebar-all-width;
615
615
616 .sidebar {
616 .sidebar {
617 width: @sidebar-width;
617 width: @sidebar-width;
618 margin-left: -@sidebar-all-width;
618 margin-left: -@sidebar-all-width;
619 }
619 }
620 }
620 }
621
621
622 .sidebar-col-wrapper.scw-small {
622 .sidebar-col-wrapper.scw-small {
623 padding-left: @sidebar-small-all-width;
623 padding-left: @sidebar-small-all-width;
624
624
625 .sidebar {
625 .sidebar {
626 width: @sidebar-small-width;
626 width: @sidebar-small-width;
627 margin-left: -@sidebar-small-all-width;
627 margin-left: -@sidebar-small-all-width;
628 }
628 }
629 }
629 }
630
630
631
631
632 // FOOTER
632 // FOOTER
633 #footer {
633 #footer {
634 padding: 0;
634 padding: 0;
635 text-align: center;
635 text-align: center;
636 vertical-align: middle;
636 vertical-align: middle;
637 color: @grey2;
637 color: @grey2;
638 font-size: 11px;
638 font-size: 11px;
639
639
640 p {
640 p {
641 margin: 0;
641 margin: 0;
642 padding: 1em;
642 padding: 1em;
643 line-height: 1em;
643 line-height: 1em;
644 }
644 }
645
645
646 .server-instance { //server instance
646 .server-instance { //server instance
647 display: none;
647 display: none;
648 }
648 }
649
649
650 .title {
650 .title {
651 float: none;
651 float: none;
652 margin: 0 auto;
652 margin: 0 auto;
653 }
653 }
654 }
654 }
655
655
656 button.close {
656 button.close {
657 padding: 0;
657 padding: 0;
658 cursor: pointer;
658 cursor: pointer;
659 background: transparent;
659 background: transparent;
660 border: 0;
660 border: 0;
661 .box-shadow(none);
661 .box-shadow(none);
662 -webkit-appearance: none;
662 -webkit-appearance: none;
663 }
663 }
664
664
665 .close {
665 .close {
666 float: right;
666 float: right;
667 font-size: 21px;
667 font-size: 21px;
668 font-family: @text-bootstrap;
668 font-family: @text-bootstrap;
669 line-height: 1em;
669 line-height: 1em;
670 font-weight: bold;
670 font-weight: bold;
671 color: @grey2;
671 color: @grey2;
672
672
673 &:hover,
673 &:hover,
674 &:focus {
674 &:focus {
675 color: @grey1;
675 color: @grey1;
676 text-decoration: none;
676 text-decoration: none;
677 cursor: pointer;
677 cursor: pointer;
678 }
678 }
679 }
679 }
680
680
681 // GRID
681 // GRID
682 .sorting,
682 .sorting,
683 .sorting_desc,
683 .sorting_desc,
684 .sorting_asc {
684 .sorting_asc {
685 cursor: pointer;
685 cursor: pointer;
686 }
686 }
687 .sorting_desc:after {
687 .sorting_desc:after {
688 content: "\00A0\25B2";
688 content: "\00A0\25B2";
689 font-size: .75em;
689 font-size: .75em;
690 }
690 }
691 .sorting_asc:after {
691 .sorting_asc:after {
692 content: "\00A0\25BC";
692 content: "\00A0\25BC";
693 font-size: .68em;
693 font-size: .68em;
694 }
694 }
695
695
696
696
697 .user_auth_tokens {
697 .user_auth_tokens {
698
698
699 &.truncate {
699 &.truncate {
700 white-space: nowrap;
700 white-space: nowrap;
701 overflow: hidden;
701 overflow: hidden;
702 text-overflow: ellipsis;
702 text-overflow: ellipsis;
703 }
703 }
704
704
705 .fields .field .input {
705 .fields .field .input {
706 margin: 0;
706 margin: 0;
707 }
707 }
708
708
709 input#description {
709 input#description {
710 width: 100px;
710 width: 100px;
711 margin: 0;
711 margin: 0;
712 }
712 }
713
713
714 .drop-menu {
714 .drop-menu {
715 // TODO: johbo: Remove this, should work out of the box when
715 // TODO: johbo: Remove this, should work out of the box when
716 // having multiple inputs inline
716 // having multiple inputs inline
717 margin: 0 0 0 5px;
717 margin: 0 0 0 5px;
718 }
718 }
719 }
719 }
720 #user_list_table {
720 #user_list_table {
721 .closed {
721 .closed {
722 background-color: @grey6;
722 background-color: @grey6;
723 }
723 }
724 }
724 }
725
725
726
726
727 input, textarea {
727 input, textarea {
728 &.disabled {
728 &.disabled {
729 opacity: .5;
729 opacity: .5;
730 }
730 }
731
731
732 &:hover {
732 &:hover {
733 border-color: @grey3;
733 border-color: @grey3;
734 box-shadow: @button-shadow;
734 box-shadow: @button-shadow;
735 }
735 }
736
736
737 &:focus {
737 &:focus {
738 border-color: @rcblue;
738 border-color: @rcblue;
739 box-shadow: @button-shadow;
739 box-shadow: @button-shadow;
740 }
740 }
741 }
741 }
742
742
743 // remove extra padding in firefox
743 // remove extra padding in firefox
744 input::-moz-focus-inner { border:0; padding:0 }
744 input::-moz-focus-inner { border:0; padding:0 }
745
745
746 .adjacent input {
746 .adjacent input {
747 margin-bottom: @padding;
747 margin-bottom: @padding;
748 }
748 }
749
749
750 .permissions_boxes {
750 .permissions_boxes {
751 display: block;
751 display: block;
752 }
752 }
753
753
754 //FORMS
754 //FORMS
755
755
756 .medium-inline,
756 .medium-inline,
757 input#description.medium-inline {
757 input#description.medium-inline {
758 display: inline;
758 display: inline;
759 width: @medium-inline-input-width;
759 width: @medium-inline-input-width;
760 min-width: 100px;
760 min-width: 100px;
761 }
761 }
762
762
763 select {
763 select {
764 //reset
764 //reset
765 -webkit-appearance: none;
765 -webkit-appearance: none;
766 -moz-appearance: none;
766 -moz-appearance: none;
767
767
768 display: inline-block;
768 display: inline-block;
769 height: 28px;
769 height: 28px;
770 width: auto;
770 width: auto;
771 margin: 0 @padding @padding 0;
771 margin: 0 @padding @padding 0;
772 padding: 0 18px 0 8px;
772 padding: 0 18px 0 8px;
773 line-height:1em;
773 line-height:1em;
774 font-size: @basefontsize;
774 font-size: @basefontsize;
775 border: @border-thickness solid @grey5;
775 border: @border-thickness solid @grey5;
776 border-radius: @border-radius;
776 border-radius: @border-radius;
777 background:white url("../images/dt-arrow-dn.png") no-repeat 100% 50%;
777 background:white url("../images/dt-arrow-dn.png") no-repeat 100% 50%;
778 color: @grey4;
778 color: @grey4;
779 box-shadow: @button-shadow;
779 box-shadow: @button-shadow;
780
780
781 &:after {
781 &:after {
782 content: "\00A0\25BE";
782 content: "\00A0\25BE";
783 }
783 }
784
784
785 &:focus, &:hover {
785 &:focus, &:hover {
786 outline: none;
786 outline: none;
787 border-color: @grey4;
787 border-color: @grey4;
788 color: @rcdarkblue;
788 color: @rcdarkblue;
789 }
789 }
790 }
790 }
791
791
792 option {
792 option {
793 &:focus {
793 &:focus {
794 outline: none;
794 outline: none;
795 }
795 }
796 }
796 }
797
797
798 input,
798 input,
799 textarea {
799 textarea {
800 padding: @input-padding;
800 padding: @input-padding;
801 border: @input-border-thickness solid @border-highlight-color;
801 border: @input-border-thickness solid @border-highlight-color;
802 .border-radius (@border-radius);
802 .border-radius (@border-radius);
803 font-family: @text-light;
803 font-family: @text-light;
804 font-size: @basefontsize;
804 font-size: @basefontsize;
805
805
806 &.input-sm {
806 &.input-sm {
807 padding: 5px;
807 padding: 5px;
808 }
808 }
809
809
810 &#description {
810 &#description {
811 min-width: @input-description-minwidth;
811 min-width: @input-description-minwidth;
812 min-height: 1em;
812 min-height: 1em;
813 padding: 10px;
813 padding: 10px;
814 }
814 }
815 }
815 }
816
816
817 .field-sm {
817 .field-sm {
818 input,
818 input,
819 textarea {
819 textarea {
820 padding: 5px;
820 padding: 5px;
821 }
821 }
822 }
822 }
823
823
824 textarea {
824 textarea {
825 display: block;
825 display: block;
826 clear: both;
826 clear: both;
827 width: 100%;
827 width: 100%;
828 min-height: 100px;
828 min-height: 100px;
829 margin-bottom: @padding;
829 margin-bottom: @padding;
830 .box-sizing(border-box);
830 .box-sizing(border-box);
831 overflow: auto;
831 overflow: auto;
832 }
832 }
833
833
834 label {
834 label {
835 font-family: @text-light;
835 font-family: @text-light;
836 }
836 }
837
837
838 // GRAVATARS
838 // GRAVATARS
839 // centers gravatar on username to the right
839 // centers gravatar on username to the right
840
840
841 .gravatar {
841 .gravatar {
842 display: inline;
842 display: inline;
843 min-width: 16px;
843 min-width: 16px;
844 min-height: 16px;
844 min-height: 16px;
845 margin: -5px 0;
845 margin: -5px 0;
846 padding: 0;
846 padding: 0;
847 line-height: 1em;
847 line-height: 1em;
848 box-sizing: content-box;
848 box-sizing: content-box;
849 border-radius: 50%;
849 border-radius: 50%;
850
850
851 &.gravatar-large {
851 &.gravatar-large {
852 margin: -0.5em .25em -0.5em 0;
852 margin: -0.5em .25em -0.5em 0;
853 }
853 }
854
854
855 & + .user {
855 & + .user {
856 display: inline;
856 display: inline;
857 margin: 0;
857 margin: 0;
858 padding: 0 0 0 .17em;
858 padding: 0 0 0 .17em;
859 line-height: 1em;
859 line-height: 1em;
860 }
860 }
861
861
862 & + .no-margin {
862 & + .no-margin {
863 margin: 0
863 margin: 0
864 }
864 }
865
865
866 }
866 }
867
867
868 .user-inline-data {
868 .user-inline-data {
869 display: inline-block;
869 display: inline-block;
870 float: left;
870 float: left;
871 padding-left: .5em;
871 padding-left: .5em;
872 line-height: 1.3em;
872 line-height: 1.3em;
873 }
873 }
874
874
875 .rc-user { // gravatar + user wrapper
875 .rc-user { // gravatar + user wrapper
876 float: left;
876 float: left;
877 position: relative;
877 position: relative;
878 min-width: 100px;
878 min-width: 100px;
879 max-width: 200px;
879 max-width: 200px;
880 min-height: (@gravatar-size + @border-thickness * 2); // account for border
880 min-height: (@gravatar-size + @border-thickness * 2); // account for border
881 display: block;
881 display: block;
882 padding: 0 0 0 (@gravatar-size + @basefontsize/4);
882 padding: 0 0 0 (@gravatar-size + @basefontsize/4);
883
883
884
884
885 .gravatar {
885 .gravatar {
886 display: block;
886 display: block;
887 position: absolute;
887 position: absolute;
888 top: 0;
888 top: 0;
889 left: 0;
889 left: 0;
890 min-width: @gravatar-size;
890 min-width: @gravatar-size;
891 min-height: @gravatar-size;
891 min-height: @gravatar-size;
892 margin: 0;
892 margin: 0;
893 }
893 }
894
894
895 .user {
895 .user {
896 display: block;
896 display: block;
897 max-width: 175px;
897 max-width: 175px;
898 padding-top: 2px;
898 padding-top: 2px;
899 overflow: hidden;
899 overflow: hidden;
900 text-overflow: ellipsis;
900 text-overflow: ellipsis;
901 }
901 }
902 }
902 }
903
903
904 .gist-gravatar,
904 .gist-gravatar,
905 .journal_container {
905 .journal_container {
906 .gravatar-large {
906 .gravatar-large {
907 margin: 0 .5em -10px 0;
907 margin: 0 .5em -10px 0;
908 }
908 }
909 }
909 }
910
910
911 .gist-type-fields {
911 .gist-type-fields {
912 line-height: 30px;
912 line-height: 30px;
913 height: 30px;
913 height: 30px;
914
914
915 .gist-type-fields-wrapper {
915 .gist-type-fields-wrapper {
916 vertical-align: middle;
916 vertical-align: middle;
917 display: inline-block;
917 display: inline-block;
918 line-height: 25px;
918 line-height: 25px;
919 }
919 }
920 }
920 }
921
921
922 // ADMIN SETTINGS
922 // ADMIN SETTINGS
923
923
924 // Tag Patterns
924 // Tag Patterns
925 .tag_patterns {
925 .tag_patterns {
926 .tag_input {
926 .tag_input {
927 margin-bottom: @padding;
927 margin-bottom: @padding;
928 }
928 }
929 }
929 }
930
930
931 .locked_input {
931 .locked_input {
932 position: relative;
932 position: relative;
933
933
934 input {
934 input {
935 display: inline;
935 display: inline;
936 margin: 3px 5px 0px 0px;
936 margin: 3px 5px 0px 0px;
937 }
937 }
938
938
939 br {
939 br {
940 display: none;
940 display: none;
941 }
941 }
942
942
943 .error-message {
943 .error-message {
944 float: left;
944 float: left;
945 width: 100%;
945 width: 100%;
946 }
946 }
947
947
948 .lock_input_button {
948 .lock_input_button {
949 display: inline;
949 display: inline;
950 }
950 }
951
951
952 .help-block {
952 .help-block {
953 clear: both;
953 clear: both;
954 }
954 }
955 }
955 }
956
956
957 // Notifications
957 // Notifications
958
958
959 .notifications_buttons {
959 .notifications_buttons {
960 margin: 0 0 @space 0;
960 margin: 0 0 @space 0;
961 padding: 0;
961 padding: 0;
962
962
963 .btn {
963 .btn {
964 display: inline-block;
964 display: inline-block;
965 }
965 }
966 }
966 }
967
967
968 .notification-list {
968 .notification-list {
969
969
970 div {
970 div {
971 vertical-align: middle;
971 vertical-align: middle;
972 }
972 }
973
973
974 .container {
974 .container {
975 display: block;
975 display: block;
976 margin: 0 0 @padding 0;
976 margin: 0 0 @padding 0;
977 }
977 }
978
978
979 .delete-notifications {
979 .delete-notifications {
980 margin-left: @padding;
980 margin-left: @padding;
981 text-align: right;
981 text-align: right;
982 cursor: pointer;
982 cursor: pointer;
983 }
983 }
984
984
985 .read-notifications {
985 .read-notifications {
986 margin-left: @padding/2;
986 margin-left: @padding/2;
987 text-align: right;
987 text-align: right;
988 width: 35px;
988 width: 35px;
989 cursor: pointer;
989 cursor: pointer;
990 }
990 }
991
991
992 .icon-minus-sign {
992 .icon-minus-sign {
993 color: @alert2;
993 color: @alert2;
994 }
994 }
995
995
996 .icon-ok-sign {
996 .icon-ok-sign {
997 color: @alert1;
997 color: @alert1;
998 }
998 }
999 }
999 }
1000
1000
1001 .user_settings {
1001 .user_settings {
1002 float: left;
1002 float: left;
1003 clear: both;
1003 clear: both;
1004 display: block;
1004 display: block;
1005 width: 100%;
1005 width: 100%;
1006
1006
1007 .gravatar_box {
1007 .gravatar_box {
1008 margin-bottom: @padding;
1008 margin-bottom: @padding;
1009
1009
1010 &:after {
1010 &:after {
1011 content: " ";
1011 content: " ";
1012 clear: both;
1012 clear: both;
1013 width: 100%;
1013 width: 100%;
1014 }
1014 }
1015 }
1015 }
1016
1016
1017 .fields .field {
1017 .fields .field {
1018 clear: both;
1018 clear: both;
1019 }
1019 }
1020 }
1020 }
1021
1021
1022 .advanced_settings {
1022 .advanced_settings {
1023 margin-bottom: @space;
1023 margin-bottom: @space;
1024
1024
1025 .help-block {
1025 .help-block {
1026 margin-left: 0;
1026 margin-left: 0;
1027 }
1027 }
1028
1028
1029 button + .help-block {
1029 button + .help-block {
1030 margin-top: @padding;
1030 margin-top: @padding;
1031 }
1031 }
1032 }
1032 }
1033
1033
1034 // admin settings radio buttons and labels
1034 // admin settings radio buttons and labels
1035 .label-2 {
1035 .label-2 {
1036 float: left;
1036 float: left;
1037 width: @label2-width;
1037 width: @label2-width;
1038
1038
1039 label {
1039 label {
1040 color: @grey1;
1040 color: @grey1;
1041 }
1041 }
1042 }
1042 }
1043 .checkboxes {
1043 .checkboxes {
1044 float: left;
1044 float: left;
1045 width: @checkboxes-width;
1045 width: @checkboxes-width;
1046 margin-bottom: @padding;
1046 margin-bottom: @padding;
1047
1047
1048 .checkbox {
1048 .checkbox {
1049 width: 100%;
1049 width: 100%;
1050
1050
1051 label {
1051 label {
1052 margin: 0;
1052 margin: 0;
1053 padding: 0;
1053 padding: 0;
1054 }
1054 }
1055 }
1055 }
1056
1056
1057 .checkbox + .checkbox {
1057 .checkbox + .checkbox {
1058 display: inline-block;
1058 display: inline-block;
1059 }
1059 }
1060
1060
1061 label {
1061 label {
1062 margin-right: 1em;
1062 margin-right: 1em;
1063 }
1063 }
1064 }
1064 }
1065
1065
1066 // CHANGELOG
1066 // CHANGELOG
1067 .container_header {
1067 .container_header {
1068 float: left;
1068 float: left;
1069 display: block;
1069 display: block;
1070 width: 100%;
1070 width: 100%;
1071 margin: @padding 0 @padding;
1071 margin: @padding 0 @padding;
1072
1072
1073 #filter_changelog {
1073 #filter_changelog {
1074 float: left;
1074 float: left;
1075 margin-right: @padding;
1075 margin-right: @padding;
1076 }
1076 }
1077
1077
1078 .breadcrumbs_light {
1078 .breadcrumbs_light {
1079 display: inline-block;
1079 display: inline-block;
1080 }
1080 }
1081 }
1081 }
1082
1082
1083 .info_box {
1083 .info_box {
1084 float: right;
1084 float: right;
1085 }
1085 }
1086
1086
1087
1087
1088
1088
1089 #graph_content{
1089 #graph_content{
1090
1090
1091 // adjust for table headers so that graph renders properly
1091 // adjust for table headers so that graph renders properly
1092 // #graph_nodes padding - table cell padding
1092 // #graph_nodes padding - table cell padding
1093 padding-top: (@space - (@basefontsize * 2.4));
1093 padding-top: (@space - (@basefontsize * 2.4));
1094
1094
1095 &.graph_full_width {
1095 &.graph_full_width {
1096 width: 100%;
1096 width: 100%;
1097 max-width: 100%;
1097 max-width: 100%;
1098 }
1098 }
1099 }
1099 }
1100
1100
1101 #graph {
1101 #graph {
1102
1102
1103 .pagination-left {
1103 .pagination-left {
1104 float: left;
1104 float: left;
1105 clear: both;
1105 clear: both;
1106 }
1106 }
1107
1107
1108 .log-container {
1108 .log-container {
1109 max-width: 345px;
1109 max-width: 345px;
1110
1110
1111 .message{
1111 .message{
1112 max-width: 340px;
1112 max-width: 340px;
1113 }
1113 }
1114 }
1114 }
1115
1115
1116 .graph-col-wrapper {
1116 .graph-col-wrapper {
1117
1117
1118 #graph_nodes {
1118 #graph_nodes {
1119 width: 100px;
1119 width: 100px;
1120 position: absolute;
1120 position: absolute;
1121 left: 70px;
1121 left: 70px;
1122 z-index: -1;
1122 z-index: -1;
1123 }
1123 }
1124 }
1124 }
1125
1125
1126 .load-more-commits {
1126 .load-more-commits {
1127 text-align: center;
1127 text-align: center;
1128 }
1128 }
1129 .load-more-commits:hover {
1129 .load-more-commits:hover {
1130 background-color: @grey7;
1130 background-color: @grey7;
1131 }
1131 }
1132 .load-more-commits {
1132 .load-more-commits {
1133 a {
1133 a {
1134 display: block;
1134 display: block;
1135 }
1135 }
1136 }
1136 }
1137 }
1137 }
1138
1138
1139 .obsolete-toggle {
1139 .obsolete-toggle {
1140 line-height: 30px;
1140 line-height: 30px;
1141 margin-left: -15px;
1141 margin-left: -15px;
1142 }
1142 }
1143
1143
1144 #rev_range_container, #rev_range_clear, #rev_range_more {
1144 #rev_range_container, #rev_range_clear, #rev_range_more {
1145 margin-top: -5px;
1145 margin-top: -5px;
1146 margin-bottom: -5px;
1146 margin-bottom: -5px;
1147 }
1147 }
1148
1148
1149 #filter_changelog {
1149 #filter_changelog {
1150 float: left;
1150 float: left;
1151 }
1151 }
1152
1152
1153
1153
1154 //--- THEME ------------------//
1154 //--- THEME ------------------//
1155
1155
1156 #logo {
1156 #logo {
1157 float: left;
1157 float: left;
1158 margin: 9px 0 0 0;
1158 margin: 9px 0 0 0;
1159
1159
1160 .header {
1160 .header {
1161 background-color: transparent;
1161 background-color: transparent;
1162 }
1162 }
1163
1163
1164 a {
1164 a {
1165 display: inline-block;
1165 display: inline-block;
1166 }
1166 }
1167
1167
1168 img {
1168 img {
1169 height:30px;
1169 height:30px;
1170 }
1170 }
1171 }
1171 }
1172
1172
1173 .logo-wrapper {
1173 .logo-wrapper {
1174 float:left;
1174 float:left;
1175 }
1175 }
1176
1176
1177 .branding {
1177 .branding {
1178 float: left;
1178 float: left;
1179 padding: 9px 2px;
1179 padding: 9px 2px;
1180 line-height: 1em;
1180 line-height: 1em;
1181 font-size: @navigation-fontsize;
1181 font-size: @navigation-fontsize;
1182
1182
1183 a {
1183 a {
1184 color: @grey5
1184 color: @grey5
1185 }
1185 }
1186
1186
1187 // 1024px or smaller
1187 // 1024px or smaller
1188 @media screen and (max-width: 1180px) {
1188 @media screen and (max-width: 1180px) {
1189 display: none;
1189 display: none;
1190 }
1190 }
1191
1191
1192 }
1192 }
1193
1193
1194 img {
1194 img {
1195 border: none;
1195 border: none;
1196 outline: none;
1196 outline: none;
1197 }
1197 }
1198 user-profile-header
1198 user-profile-header
1199 label {
1199 label {
1200
1200
1201 input[type="checkbox"] {
1201 input[type="checkbox"] {
1202 margin-right: 1em;
1202 margin-right: 1em;
1203 }
1203 }
1204 input[type="radio"] {
1204 input[type="radio"] {
1205 margin-right: 1em;
1205 margin-right: 1em;
1206 }
1206 }
1207 }
1207 }
1208
1208
1209 .review-status {
1209 .review-status {
1210 &.under_review {
1210 &.under_review {
1211 color: @alert3;
1211 color: @alert3;
1212 }
1212 }
1213 &.approved {
1213 &.approved {
1214 color: @alert1;
1214 color: @alert1;
1215 }
1215 }
1216 &.rejected,
1216 &.rejected,
1217 &.forced_closed{
1217 &.forced_closed{
1218 color: @alert2;
1218 color: @alert2;
1219 }
1219 }
1220 &.not_reviewed {
1220 &.not_reviewed {
1221 color: @grey5;
1221 color: @grey5;
1222 }
1222 }
1223 }
1223 }
1224
1224
1225 .review-status-under_review {
1225 .review-status-under_review {
1226 color: @alert3;
1226 color: @alert3;
1227 }
1227 }
1228 .status-tag-under_review {
1228 .status-tag-under_review {
1229 border-color: @alert3;
1229 border-color: @alert3;
1230 }
1230 }
1231
1231
1232 .review-status-approved {
1232 .review-status-approved {
1233 color: @alert1;
1233 color: @alert1;
1234 }
1234 }
1235 .status-tag-approved {
1235 .status-tag-approved {
1236 border-color: @alert1;
1236 border-color: @alert1;
1237 }
1237 }
1238
1238
1239 .review-status-rejected,
1239 .review-status-rejected,
1240 .review-status-forced_closed {
1240 .review-status-forced_closed {
1241 color: @alert2;
1241 color: @alert2;
1242 }
1242 }
1243 .status-tag-rejected,
1243 .status-tag-rejected,
1244 .status-tag-forced_closed {
1244 .status-tag-forced_closed {
1245 border-color: @alert2;
1245 border-color: @alert2;
1246 }
1246 }
1247
1247
1248 .review-status-not_reviewed {
1248 .review-status-not_reviewed {
1249 color: @grey5;
1249 color: @grey5;
1250 }
1250 }
1251 .status-tag-not_reviewed {
1251 .status-tag-not_reviewed {
1252 border-color: @grey5;
1252 border-color: @grey5;
1253 }
1253 }
1254
1254
1255 .test_pattern_preview {
1255 .test_pattern_preview {
1256 margin: @space 0;
1256 margin: @space 0;
1257
1257
1258 p {
1258 p {
1259 margin-bottom: 0;
1259 margin-bottom: 0;
1260 border-bottom: @border-thickness solid @border-default-color;
1260 border-bottom: @border-thickness solid @border-default-color;
1261 color: @grey3;
1261 color: @grey3;
1262 }
1262 }
1263
1263
1264 .btn {
1264 .btn {
1265 margin-bottom: @padding;
1265 margin-bottom: @padding;
1266 }
1266 }
1267 }
1267 }
1268 #test_pattern_result {
1268 #test_pattern_result {
1269 display: none;
1269 display: none;
1270 &:extend(pre);
1270 &:extend(pre);
1271 padding: .9em;
1271 padding: .9em;
1272 color: @grey3;
1272 color: @grey3;
1273 background-color: @grey7;
1273 background-color: @grey7;
1274 border-right: @border-thickness solid @border-default-color;
1274 border-right: @border-thickness solid @border-default-color;
1275 border-bottom: @border-thickness solid @border-default-color;
1275 border-bottom: @border-thickness solid @border-default-color;
1276 border-left: @border-thickness solid @border-default-color;
1276 border-left: @border-thickness solid @border-default-color;
1277 }
1277 }
1278
1278
1279 #repo_vcs_settings {
1279 #repo_vcs_settings {
1280 #inherit_overlay_vcs_default {
1280 #inherit_overlay_vcs_default {
1281 display: none;
1281 display: none;
1282 }
1282 }
1283 #inherit_overlay_vcs_custom {
1283 #inherit_overlay_vcs_custom {
1284 display: custom;
1284 display: custom;
1285 }
1285 }
1286 &.inherited {
1286 &.inherited {
1287 #inherit_overlay_vcs_default {
1287 #inherit_overlay_vcs_default {
1288 display: block;
1288 display: block;
1289 }
1289 }
1290 #inherit_overlay_vcs_custom {
1290 #inherit_overlay_vcs_custom {
1291 display: none;
1291 display: none;
1292 }
1292 }
1293 }
1293 }
1294 }
1294 }
1295
1295
1296 .issue-tracker-link {
1296 .issue-tracker-link {
1297 color: @rcblue;
1297 color: @rcblue;
1298 }
1298 }
1299
1299
1300 // Issue Tracker Table Show/Hide
1300 // Issue Tracker Table Show/Hide
1301 #repo_issue_tracker {
1301 #repo_issue_tracker {
1302 #inherit_overlay {
1302 #inherit_overlay {
1303 display: none;
1303 display: none;
1304 }
1304 }
1305 #custom_overlay {
1305 #custom_overlay {
1306 display: custom;
1306 display: custom;
1307 }
1307 }
1308 &.inherited {
1308 &.inherited {
1309 #inherit_overlay {
1309 #inherit_overlay {
1310 display: block;
1310 display: block;
1311 }
1311 }
1312 #custom_overlay {
1312 #custom_overlay {
1313 display: none;
1313 display: none;
1314 }
1314 }
1315 }
1315 }
1316 }
1316 }
1317 table.issuetracker {
1317 table.issuetracker {
1318 &.readonly {
1318 &.readonly {
1319 tr, td {
1319 tr, td {
1320 color: @grey3;
1320 color: @grey3;
1321 }
1321 }
1322 }
1322 }
1323 .edit {
1323 .edit {
1324 display: none;
1324 display: none;
1325 }
1325 }
1326 .editopen {
1326 .editopen {
1327 .edit {
1327 .edit {
1328 display: inline;
1328 display: inline;
1329 }
1329 }
1330 .entry {
1330 .entry {
1331 display: none;
1331 display: none;
1332 }
1332 }
1333 }
1333 }
1334 tr td.td-action {
1334 tr td.td-action {
1335 min-width: 117px;
1335 min-width: 117px;
1336 }
1336 }
1337 td input {
1337 td input {
1338 max-width: none;
1338 max-width: none;
1339 min-width: 30px;
1339 min-width: 30px;
1340 width: 80%;
1340 width: 80%;
1341 }
1341 }
1342 .issuetracker_pref input {
1342 .issuetracker_pref input {
1343 width: 40%;
1343 width: 40%;
1344 }
1344 }
1345 input.edit_issuetracker_update {
1345 input.edit_issuetracker_update {
1346 margin-right: 0;
1346 margin-right: 0;
1347 width: auto;
1347 width: auto;
1348 }
1348 }
1349 }
1349 }
1350
1350
1351 table.integrations {
1351 table.integrations {
1352 .td-icon {
1352 .td-icon {
1353 width: 20px;
1353 width: 20px;
1354 .integration-icon {
1354 .integration-icon {
1355 height: 20px;
1355 height: 20px;
1356 width: 20px;
1356 width: 20px;
1357 }
1357 }
1358 }
1358 }
1359 }
1359 }
1360
1360
1361 .integrations {
1361 .integrations {
1362 a.integration-box {
1362 a.integration-box {
1363 color: @text-color;
1363 color: @text-color;
1364 &:hover {
1364 &:hover {
1365 .panel {
1365 .panel {
1366 background: #fbfbfb;
1366 background: #fbfbfb;
1367 }
1367 }
1368 }
1368 }
1369 .integration-icon {
1369 .integration-icon {
1370 width: 30px;
1370 width: 30px;
1371 height: 30px;
1371 height: 30px;
1372 margin-right: 20px;
1372 margin-right: 20px;
1373 float: left;
1373 float: left;
1374 }
1374 }
1375
1375
1376 .panel-body {
1376 .panel-body {
1377 padding: 10px;
1377 padding: 10px;
1378 }
1378 }
1379 .panel {
1379 .panel {
1380 margin-bottom: 10px;
1380 margin-bottom: 10px;
1381 }
1381 }
1382 h2 {
1382 h2 {
1383 display: inline-block;
1383 display: inline-block;
1384 margin: 0;
1384 margin: 0;
1385 min-width: 140px;
1385 min-width: 140px;
1386 }
1386 }
1387 }
1387 }
1388 a.integration-box.dummy-integration {
1388 a.integration-box.dummy-integration {
1389 color: @grey4
1389 color: @grey4
1390 }
1390 }
1391 }
1391 }
1392
1392
1393 //Permissions Settings
1393 //Permissions Settings
1394 #add_perm {
1394 #add_perm {
1395 margin: 0 0 @padding;
1395 margin: 0 0 @padding;
1396 cursor: pointer;
1396 cursor: pointer;
1397 }
1397 }
1398
1398
1399 .perm_ac {
1399 .perm_ac {
1400 input {
1400 input {
1401 width: 95%;
1401 width: 95%;
1402 }
1402 }
1403 }
1403 }
1404
1404
1405 .autocomplete-suggestions {
1405 .autocomplete-suggestions {
1406 width: auto !important; // overrides autocomplete.js
1406 width: auto !important; // overrides autocomplete.js
1407 min-width: 278px;
1407 min-width: 278px;
1408 margin: 0;
1408 margin: 0;
1409 border: @border-thickness solid @grey5;
1409 border: @border-thickness solid @grey5;
1410 border-radius: @border-radius;
1410 border-radius: @border-radius;
1411 color: @grey2;
1411 color: @grey2;
1412 background-color: white;
1412 background-color: white;
1413 }
1413 }
1414
1414
1415 .autocomplete-qfilter-suggestions {
1415 .autocomplete-qfilter-suggestions {
1416 width: auto !important; // overrides autocomplete.js
1416 width: auto !important; // overrides autocomplete.js
1417 max-height: 100% !important;
1417 max-height: 100% !important;
1418 min-width: 376px;
1418 min-width: 376px;
1419 margin: 0;
1419 margin: 0;
1420 border: @border-thickness solid @grey5;
1420 border: @border-thickness solid @grey5;
1421 color: @grey2;
1421 color: @grey2;
1422 background-color: white;
1422 background-color: white;
1423 }
1423 }
1424
1424
1425 .autocomplete-selected {
1425 .autocomplete-selected {
1426 background: #F0F0F0;
1426 background: #F0F0F0;
1427 }
1427 }
1428
1428
1429 .ac-container-wrap {
1429 .ac-container-wrap {
1430 margin: 0;
1430 margin: 0;
1431 padding: 8px;
1431 padding: 8px;
1432 border-bottom: @border-thickness solid @grey5;
1432 border-bottom: @border-thickness solid @grey5;
1433 list-style-type: none;
1433 list-style-type: none;
1434 cursor: pointer;
1434 cursor: pointer;
1435
1435
1436 &:hover {
1436 &:hover {
1437 background-color: @grey7;
1437 background-color: @grey7;
1438 }
1438 }
1439
1439
1440 img {
1440 img {
1441 height: @gravatar-size;
1441 height: @gravatar-size;
1442 width: @gravatar-size;
1442 width: @gravatar-size;
1443 margin-right: 1em;
1443 margin-right: 1em;
1444 }
1444 }
1445
1445
1446 strong {
1446 strong {
1447 font-weight: normal;
1447 font-weight: normal;
1448 }
1448 }
1449 }
1449 }
1450
1450
1451 // Settings Dropdown
1451 // Settings Dropdown
1452 .user-menu .container {
1452 .user-menu .container {
1453 padding: 0 4px;
1453 padding: 0 4px;
1454 margin: 0;
1454 margin: 0;
1455 }
1455 }
1456
1456
1457 .user-menu .gravatar {
1457 .user-menu .gravatar {
1458 cursor: pointer;
1458 cursor: pointer;
1459 }
1459 }
1460
1460
1461 .codeblock {
1461 .codeblock {
1462 margin-bottom: @padding;
1462 margin-bottom: @padding;
1463 clear: both;
1463 clear: both;
1464
1464
1465 .stats {
1465 .stats {
1466 overflow: hidden;
1466 overflow: hidden;
1467 }
1467 }
1468
1468
1469 .message{
1469 .message{
1470 textarea{
1470 textarea{
1471 margin: 0;
1471 margin: 0;
1472 }
1472 }
1473 }
1473 }
1474
1474
1475 .code-header {
1475 .code-header {
1476 .stats {
1476 .stats {
1477 line-height: 2em;
1477 line-height: 2em;
1478
1478
1479 .revision_id {
1479 .revision_id {
1480 margin-left: 0;
1480 margin-left: 0;
1481 }
1481 }
1482 .buttons {
1482 .buttons {
1483 padding-right: 0;
1483 padding-right: 0;
1484 }
1484 }
1485 }
1485 }
1486
1486
1487 .item{
1487 .item{
1488 margin-right: 0.5em;
1488 margin-right: 0.5em;
1489 }
1489 }
1490 }
1490 }
1491
1491
1492 #editor_container {
1492 #editor_container {
1493 position: relative;
1493 position: relative;
1494 margin: @padding 10px;
1494 margin: @padding 10px;
1495 }
1495 }
1496 }
1496 }
1497
1497
1498 #file_history_container {
1498 #file_history_container {
1499 display: none;
1499 display: none;
1500 }
1500 }
1501
1501
1502 .file-history-inner {
1502 .file-history-inner {
1503 margin-bottom: 10px;
1503 margin-bottom: 10px;
1504 }
1504 }
1505
1505
1506 // Pull Requests
1506 // Pull Requests
1507 .summary-details {
1507 .summary-details {
1508 width: 100%;
1508 width: 100%;
1509 }
1509 }
1510 .pr-summary {
1510 .pr-summary {
1511 border-bottom: @border-thickness solid @grey5;
1511 border-bottom: @border-thickness solid @grey5;
1512 margin-bottom: @space;
1512 margin-bottom: @space;
1513 }
1513 }
1514
1514
1515 .reviewers {
1515 .reviewers {
1516 width: 98%;
1516 width: 98%;
1517 }
1517 }
1518
1518
1519 .reviewers ul li {
1519 .reviewers ul li {
1520 position: relative;
1520 position: relative;
1521 width: 100%;
1521 width: 100%;
1522 padding-bottom: 8px;
1522 padding-bottom: 8px;
1523 list-style-type: none;
1523 list-style-type: none;
1524 }
1524 }
1525
1525
1526 .reviewer_entry {
1526 .reviewer_entry {
1527 min-height: 55px;
1527 min-height: 55px;
1528 }
1528 }
1529
1529
1530 .reviewer_reason {
1530 .reviewer_reason {
1531 padding-left: 20px;
1531 padding-left: 20px;
1532 line-height: 1.5em;
1532 line-height: 1.5em;
1533 }
1533 }
1534 .reviewer_status {
1534 .reviewer_status {
1535 display: inline-block;
1535 display: inline-block;
1536 width: 20px;
1536 width: 20px;
1537 min-width: 20px;
1537 min-width: 20px;
1538 height: 1.2em;
1538 height: 1.2em;
1539 line-height: 1em;
1539 line-height: 1em;
1540 }
1540 }
1541
1541
1542 .reviewer_name {
1542 .reviewer_name {
1543 display: inline-block;
1543 display: inline-block;
1544 max-width: 83%;
1544 max-width: 83%;
1545 padding-right: 20px;
1545 padding-right: 20px;
1546 vertical-align: middle;
1546 vertical-align: middle;
1547 line-height: 1;
1547 line-height: 1;
1548
1548
1549 .rc-user {
1549 .rc-user {
1550 min-width: 0;
1550 min-width: 0;
1551 margin: -2px 1em 0 0;
1551 margin: -2px 1em 0 0;
1552 }
1552 }
1553
1553
1554 .reviewer {
1554 .reviewer {
1555 float: left;
1555 float: left;
1556 }
1556 }
1557 }
1557 }
1558
1558
1559 .reviewer_member_mandatory {
1559 .reviewer_member_mandatory {
1560 width: 16px;
1560 width: 16px;
1561 font-size: 11px;
1561 font-size: 11px;
1562 margin: 0;
1562 margin: 0;
1563 padding: 0;
1563 padding: 0;
1564 color: black;
1564 color: black;
1565 opacity: 0.4;
1565 opacity: 0.4;
1566 }
1566 }
1567
1567
1568 .reviewer_member_mandatory_remove,
1568 .reviewer_member_mandatory_remove,
1569 .reviewer_member_remove {
1569 .reviewer_member_remove {
1570 width: 16px;
1570 width: 16px;
1571 padding: 0;
1571 padding: 0;
1572 color: black;
1572 color: black;
1573 cursor: pointer;
1573 cursor: pointer;
1574 }
1574 }
1575
1575
1576 .reviewer_member_mandatory_remove {
1576 .reviewer_member_mandatory_remove {
1577 color: @grey4;
1577 color: @grey4;
1578 }
1578 }
1579
1579
1580 .reviewer_member_status {
1580 .reviewer_member_status {
1581 margin-top: 5px;
1581 margin-top: 5px;
1582 }
1582 }
1583 .pr-summary #summary{
1583 .pr-summary #summary{
1584 width: 100%;
1584 width: 100%;
1585 }
1585 }
1586 .pr-summary .action_button:hover {
1586 .pr-summary .action_button:hover {
1587 border: 0;
1587 border: 0;
1588 cursor: pointer;
1588 cursor: pointer;
1589 }
1589 }
1590 .pr-details-title {
1590 .pr-details-title {
1591 height: 20px;
1591 height: 20px;
1592 line-height: 20px;
1592 line-height: 20px;
1593
1593
1594 padding-bottom: 8px;
1594 padding-bottom: 8px;
1595 border-bottom: @border-thickness solid @grey5;
1595 border-bottom: @border-thickness solid @grey5;
1596
1596
1597 .action_button.disabled {
1597 .action_button.disabled {
1598 color: @grey4;
1598 color: @grey4;
1599 cursor: inherit;
1599 cursor: inherit;
1600 }
1600 }
1601 .action_button {
1601 .action_button {
1602 color: @rcblue;
1602 color: @rcblue;
1603 }
1603 }
1604 }
1604 }
1605 .pr-details-content {
1605 .pr-details-content {
1606 margin-top: @textmargin - 5;
1606 margin-top: @textmargin - 5;
1607 margin-bottom: @textmargin - 5;
1607 margin-bottom: @textmargin - 5;
1608 }
1608 }
1609
1609
1610 .pr-reviewer-rules {
1610 .pr-reviewer-rules {
1611 padding: 10px 0px 20px 0px;
1611 padding: 10px 0px 20px 0px;
1612 }
1612 }
1613
1613
1614 .todo-resolved {
1614 .todo-resolved {
1615 text-decoration: line-through;
1615 text-decoration: line-through;
1616 }
1616 }
1617
1617
1618 .todo-table, .comments-table {
1618 .todo-table, .comments-table {
1619 width: 100%;
1619 width: 100%;
1620
1620
1621 td {
1621 td {
1622 padding: 5px 0px;
1622 padding: 5px 0px;
1623 }
1623 }
1624
1624
1625 .td-todo-number {
1625 .td-todo-number {
1626 text-align: left;
1626 text-align: left;
1627 white-space: nowrap;
1627 white-space: nowrap;
1628 width: 1%;
1628 width: 1%;
1629 padding-right: 2px;
1629 padding-right: 2px;
1630 }
1630 }
1631
1631
1632 .td-todo-gravatar {
1632 .td-todo-gravatar {
1633 width: 5%;
1633 width: 5%;
1634
1634
1635 img {
1635 img {
1636 margin: -3px 0;
1636 margin: -3px 0;
1637 }
1637 }
1638 }
1638 }
1639
1639
1640 }
1640 }
1641
1641
1642 .todo-comment-text-wrapper {
1642 .todo-comment-text-wrapper {
1643 display: inline-grid;
1643 display: inline-grid;
1644 }
1644 }
1645
1645
1646 .todo-comment-text {
1646 .todo-comment-text {
1647 margin-left: 5px;
1647 margin-left: 5px;
1648 white-space: nowrap;
1648 white-space: nowrap;
1649 overflow: hidden;
1649 overflow: hidden;
1650 text-overflow: ellipsis;
1650 text-overflow: ellipsis;
1651 }
1651 }
1652
1652
1653 table.group_members {
1653 table.group_members {
1654 width: 100%
1654 width: 100%
1655 }
1655 }
1656
1656
1657 .group_members {
1657 .group_members {
1658 margin-top: 0;
1658 margin-top: 0;
1659 padding: 0;
1659 padding: 0;
1660
1660
1661 img {
1661 img {
1662 height: @gravatar-size;
1662 height: @gravatar-size;
1663 width: @gravatar-size;
1663 width: @gravatar-size;
1664 margin-right: .5em;
1664 margin-right: .5em;
1665 margin-left: 3px;
1665 margin-left: 3px;
1666 }
1666 }
1667
1667
1668 .to-delete {
1668 .to-delete {
1669 .user {
1669 .user {
1670 text-decoration: line-through;
1670 text-decoration: line-through;
1671 }
1671 }
1672 }
1672 }
1673 }
1673 }
1674
1674
1675 .compare_view_commits_title {
1675 .compare_view_commits_title {
1676 .disabled {
1676 .disabled {
1677 cursor: inherit;
1677 cursor: inherit;
1678 &:hover{
1678 &:hover{
1679 background-color: inherit;
1679 background-color: inherit;
1680 color: inherit;
1680 color: inherit;
1681 }
1681 }
1682 }
1682 }
1683 }
1683 }
1684
1684
1685 .subtitle-compare {
1685 .subtitle-compare {
1686 margin: -15px 0px 0px 0px;
1686 margin: -15px 0px 0px 0px;
1687 }
1687 }
1688
1688
1689 // new entry in group_members
1689 // new entry in group_members
1690 .td-author-new-entry {
1690 .td-author-new-entry {
1691 background-color: rgba(red(@alert1), green(@alert1), blue(@alert1), 0.3);
1691 background-color: rgba(red(@alert1), green(@alert1), blue(@alert1), 0.3);
1692 }
1692 }
1693
1693
1694 .usergroup_member_remove {
1694 .usergroup_member_remove {
1695 width: 16px;
1695 width: 16px;
1696 margin-bottom: 10px;
1696 margin-bottom: 10px;
1697 padding: 0;
1697 padding: 0;
1698 color: black !important;
1698 color: black !important;
1699 cursor: pointer;
1699 cursor: pointer;
1700 }
1700 }
1701
1701
1702 .reviewer_ac .ac-input {
1702 .reviewer_ac .ac-input {
1703 width: 98%;
1703 width: 98%;
1704 margin-bottom: 1em;
1704 margin-bottom: 1em;
1705 }
1705 }
1706
1706
1707 .observer_ac .ac-input {
1707 .observer_ac .ac-input {
1708 width: 98%;
1708 width: 98%;
1709 margin-bottom: 1em;
1709 margin-bottom: 1em;
1710 }
1710 }
1711
1711
1712 .rule-table {
1712 .rule-table {
1713 width: 100%;
1713 width: 100%;
1714 }
1714 }
1715
1715
1716 .rule-table td {
1716 .rule-table td {
1717
1717
1718 }
1718 }
1719
1719
1720 .rule-table .td-role {
1720 .rule-table .td-role {
1721 width: 100px
1721 width: 100px
1722 }
1722 }
1723
1723
1724 .rule-table .td-mandatory {
1724 .rule-table .td-mandatory {
1725 width: 100px
1725 width: 100px
1726 }
1726 }
1727
1727
1728 .rule-table .td-group-votes {
1728 .rule-table .td-group-votes {
1729 width: 150px
1729 width: 150px
1730 }
1730 }
1731
1731
1732 .compare_view_commits tr{
1732 .compare_view_commits tr{
1733 height: 20px;
1733 height: 20px;
1734 }
1734 }
1735 .compare_view_commits td {
1735 .compare_view_commits td {
1736 vertical-align: top;
1736 vertical-align: top;
1737 padding-top: 10px;
1737 padding-top: 10px;
1738 }
1738 }
1739 .compare_view_commits .author {
1739 .compare_view_commits .author {
1740 margin-left: 5px;
1740 margin-left: 5px;
1741 }
1741 }
1742
1742
1743 .compare_view_commits {
1743 .compare_view_commits {
1744 .color-a {
1744 .color-a {
1745 color: @alert1;
1745 color: @alert1;
1746 }
1746 }
1747
1747
1748 .color-c {
1748 .color-c {
1749 color: @color3;
1749 color: @color3;
1750 }
1750 }
1751
1751
1752 .color-r {
1752 .color-r {
1753 color: @color5;
1753 color: @color5;
1754 }
1754 }
1755
1755
1756 .color-a-bg {
1756 .color-a-bg {
1757 background-color: @alert1;
1757 background-color: @alert1;
1758 }
1758 }
1759
1759
1760 .color-c-bg {
1760 .color-c-bg {
1761 background-color: @alert3;
1761 background-color: @alert3;
1762 }
1762 }
1763
1763
1764 .color-r-bg {
1764 .color-r-bg {
1765 background-color: @alert2;
1765 background-color: @alert2;
1766 }
1766 }
1767
1767
1768 .color-a-border {
1768 .color-a-border {
1769 border: 1px solid @alert1;
1769 border: 1px solid @alert1;
1770 }
1770 }
1771
1771
1772 .color-c-border {
1772 .color-c-border {
1773 border: 1px solid @alert3;
1773 border: 1px solid @alert3;
1774 }
1774 }
1775
1775
1776 .color-r-border {
1776 .color-r-border {
1777 border: 1px solid @alert2;
1777 border: 1px solid @alert2;
1778 }
1778 }
1779
1779
1780 .commit-change-indicator {
1780 .commit-change-indicator {
1781 width: 15px;
1781 width: 15px;
1782 height: 15px;
1782 height: 15px;
1783 position: relative;
1783 position: relative;
1784 left: 15px;
1784 left: 15px;
1785 }
1785 }
1786
1786
1787 .commit-change-content {
1787 .commit-change-content {
1788 text-align: center;
1788 text-align: center;
1789 vertical-align: middle;
1789 vertical-align: middle;
1790 line-height: 15px;
1790 line-height: 15px;
1791 }
1791 }
1792 }
1792 }
1793
1793
1794 .compare_view_filepath {
1794 .compare_view_filepath {
1795 color: @grey1;
1795 color: @grey1;
1796 }
1796 }
1797
1797
1798 .show_more {
1798 .show_more {
1799 display: inline-block;
1799 display: inline-block;
1800 width: 0;
1800 width: 0;
1801 height: 0;
1801 height: 0;
1802 vertical-align: middle;
1802 vertical-align: middle;
1803 content: "";
1803 content: "";
1804 border: 4px solid;
1804 border: 4px solid;
1805 border-right-color: transparent;
1805 border-right-color: transparent;
1806 border-bottom-color: transparent;
1806 border-bottom-color: transparent;
1807 border-left-color: transparent;
1807 border-left-color: transparent;
1808 font-size: 0;
1808 font-size: 0;
1809 }
1809 }
1810
1810
1811 .journal_more .show_more {
1811 .journal_more .show_more {
1812 display: inline;
1812 display: inline;
1813
1813
1814 &:after {
1814 &:after {
1815 content: none;
1815 content: none;
1816 }
1816 }
1817 }
1817 }
1818
1818
1819 .compare_view_commits .collapse_commit:after {
1819 .compare_view_commits .collapse_commit:after {
1820 cursor: pointer;
1820 cursor: pointer;
1821 content: "\00A0\25B4";
1821 content: "\00A0\25B4";
1822 margin-left: -3px;
1822 margin-left: -3px;
1823 font-size: 17px;
1823 font-size: 17px;
1824 color: @grey4;
1824 color: @grey4;
1825 }
1825 }
1826
1826
1827 .diff_links {
1827 .diff_links {
1828 margin-left: 8px;
1828 margin-left: 8px;
1829 }
1829 }
1830
1830
1831 #pull_request_overview {
1831 #pull_request_overview {
1832 div.ancestor {
1832 div.ancestor {
1833 margin: -33px 0;
1833 margin: -33px 0;
1834 }
1834 }
1835 }
1835 }
1836
1836
1837 div.ancestor {
1837 div.ancestor {
1838
1838
1839 }
1839 }
1840
1840
1841 .cs_icon_td input[type="checkbox"] {
1841 .cs_icon_td input[type="checkbox"] {
1842 display: none;
1842 display: none;
1843 }
1843 }
1844
1844
1845 .cs_icon_td .expand_file_icon:after {
1845 .cs_icon_td .expand_file_icon:after {
1846 cursor: pointer;
1846 cursor: pointer;
1847 content: "\00A0\25B6";
1847 content: "\00A0\25B6";
1848 font-size: 12px;
1848 font-size: 12px;
1849 color: @grey4;
1849 color: @grey4;
1850 }
1850 }
1851
1851
1852 .cs_icon_td .collapse_file_icon:after {
1852 .cs_icon_td .collapse_file_icon:after {
1853 cursor: pointer;
1853 cursor: pointer;
1854 content: "\00A0\25BC";
1854 content: "\00A0\25BC";
1855 font-size: 12px;
1855 font-size: 12px;
1856 color: @grey4;
1856 color: @grey4;
1857 }
1857 }
1858
1858
1859 /*new binary
1859 /*new binary
1860 NEW_FILENODE = 1
1860 NEW_FILENODE = 1
1861 DEL_FILENODE = 2
1861 DEL_FILENODE = 2
1862 MOD_FILENODE = 3
1862 MOD_FILENODE = 3
1863 RENAMED_FILENODE = 4
1863 RENAMED_FILENODE = 4
1864 COPIED_FILENODE = 5
1864 COPIED_FILENODE = 5
1865 CHMOD_FILENODE = 6
1865 CHMOD_FILENODE = 6
1866 BIN_FILENODE = 7
1866 BIN_FILENODE = 7
1867 */
1867 */
1868 .cs_files_expand {
1868 .cs_files_expand {
1869 font-size: @basefontsize + 5px;
1869 font-size: @basefontsize + 5px;
1870 line-height: 1.8em;
1870 line-height: 1.8em;
1871 float: right;
1871 float: right;
1872 }
1872 }
1873
1873
1874 .cs_files_expand span{
1874 .cs_files_expand span{
1875 color: @rcblue;
1875 color: @rcblue;
1876 cursor: pointer;
1876 cursor: pointer;
1877 }
1877 }
1878 .cs_files {
1878 .cs_files {
1879 clear: both;
1879 clear: both;
1880 padding-bottom: @padding;
1880 padding-bottom: @padding;
1881
1881
1882 .cur_cs {
1882 .cur_cs {
1883 margin: 10px 2px;
1883 margin: 10px 2px;
1884 font-weight: bold;
1884 font-weight: bold;
1885 }
1885 }
1886
1886
1887 .node {
1887 .node {
1888 float: left;
1888 float: left;
1889 }
1889 }
1890
1890
1891 .changes {
1891 .changes {
1892 float: right;
1892 float: right;
1893 color: white;
1893 color: white;
1894 font-size: @basefontsize - 4px;
1894 font-size: @basefontsize - 4px;
1895 margin-top: 4px;
1895 margin-top: 4px;
1896 opacity: 0.6;
1896 opacity: 0.6;
1897 filter: Alpha(opacity=60); /* IE8 and earlier */
1897 filter: Alpha(opacity=60); /* IE8 and earlier */
1898
1898
1899 .added {
1899 .added {
1900 background-color: @alert1;
1900 background-color: @alert1;
1901 float: left;
1901 float: left;
1902 text-align: center;
1902 text-align: center;
1903 }
1903 }
1904
1904
1905 .deleted {
1905 .deleted {
1906 background-color: @alert2;
1906 background-color: @alert2;
1907 float: left;
1907 float: left;
1908 text-align: center;
1908 text-align: center;
1909 }
1909 }
1910
1910
1911 .bin {
1911 .bin {
1912 background-color: @alert1;
1912 background-color: @alert1;
1913 text-align: center;
1913 text-align: center;
1914 }
1914 }
1915
1915
1916 /*new binary*/
1916 /*new binary*/
1917 .bin.bin1 {
1917 .bin.bin1 {
1918 background-color: @alert1;
1918 background-color: @alert1;
1919 text-align: center;
1919 text-align: center;
1920 }
1920 }
1921
1921
1922 /*deleted binary*/
1922 /*deleted binary*/
1923 .bin.bin2 {
1923 .bin.bin2 {
1924 background-color: @alert2;
1924 background-color: @alert2;
1925 text-align: center;
1925 text-align: center;
1926 }
1926 }
1927
1927
1928 /*mod binary*/
1928 /*mod binary*/
1929 .bin.bin3 {
1929 .bin.bin3 {
1930 background-color: @grey2;
1930 background-color: @grey2;
1931 text-align: center;
1931 text-align: center;
1932 }
1932 }
1933
1933
1934 /*rename file*/
1934 /*rename file*/
1935 .bin.bin4 {
1935 .bin.bin4 {
1936 background-color: @alert4;
1936 background-color: @alert4;
1937 text-align: center;
1937 text-align: center;
1938 }
1938 }
1939
1939
1940 /*copied file*/
1940 /*copied file*/
1941 .bin.bin5 {
1941 .bin.bin5 {
1942 background-color: @alert4;
1942 background-color: @alert4;
1943 text-align: center;
1943 text-align: center;
1944 }
1944 }
1945
1945
1946 /*chmod file*/
1946 /*chmod file*/
1947 .bin.bin6 {
1947 .bin.bin6 {
1948 background-color: @grey2;
1948 background-color: @grey2;
1949 text-align: center;
1949 text-align: center;
1950 }
1950 }
1951 }
1951 }
1952 }
1952 }
1953
1953
1954 .cs_files .cs_added, .cs_files .cs_A,
1954 .cs_files .cs_added, .cs_files .cs_A,
1955 .cs_files .cs_added, .cs_files .cs_M,
1955 .cs_files .cs_added, .cs_files .cs_M,
1956 .cs_files .cs_added, .cs_files .cs_D {
1956 .cs_files .cs_added, .cs_files .cs_D {
1957 height: 16px;
1957 height: 16px;
1958 padding-right: 10px;
1958 padding-right: 10px;
1959 margin-top: 7px;
1959 margin-top: 7px;
1960 text-align: left;
1960 text-align: left;
1961 }
1961 }
1962
1962
1963 .cs_icon_td {
1963 .cs_icon_td {
1964 min-width: 16px;
1964 min-width: 16px;
1965 width: 16px;
1965 width: 16px;
1966 }
1966 }
1967
1967
1968 .pull-request-merge {
1968 .pull-request-merge {
1969 border: 1px solid @grey5;
1969 border: 1px solid @grey5;
1970 padding: 10px 0px 20px;
1970 padding: 10px 0px 20px;
1971 margin-top: 10px;
1971 margin-top: 10px;
1972 margin-bottom: 20px;
1972 margin-bottom: 20px;
1973 }
1973 }
1974
1974
1975 .pull-request-merge-refresh {
1975 .pull-request-merge-refresh {
1976 margin: 2px 7px;
1976 margin: 2px 7px;
1977 a {
1977 a {
1978 color: @grey3;
1978 color: @grey3;
1979 }
1979 }
1980 }
1980 }
1981
1981
1982 .pull-request-merge ul {
1982 .pull-request-merge ul {
1983 padding: 0px 0px;
1983 padding: 0px 0px;
1984 }
1984 }
1985
1985
1986 .pull-request-merge li {
1986 .pull-request-merge li {
1987 list-style-type: none;
1987 list-style-type: none;
1988 }
1988 }
1989
1989
1990 .pull-request-merge .pull-request-wrap {
1990 .pull-request-merge .pull-request-wrap {
1991 height: auto;
1991 height: auto;
1992 padding: 0px 0px;
1992 padding: 0px 0px;
1993 text-align: right;
1993 text-align: right;
1994 }
1994 }
1995
1995
1996 .pull-request-merge span {
1996 .pull-request-merge span {
1997 margin-right: 5px;
1997 margin-right: 5px;
1998 }
1998 }
1999
1999
2000 .pull-request-merge-actions {
2000 .pull-request-merge-actions {
2001 min-height: 30px;
2001 min-height: 30px;
2002 padding: 0px 0px;
2002 padding: 0px 0px;
2003 }
2003 }
2004
2004
2005 .pull-request-merge-info {
2005 .pull-request-merge-info {
2006 padding: 0px 5px 5px 0px;
2006 padding: 0px 5px 5px 0px;
2007 }
2007 }
2008
2008
2009 .merge-status {
2009 .merge-status {
2010 margin-right: 5px;
2010 margin-right: 5px;
2011 }
2011 }
2012
2012
2013 .merge-message {
2013 .merge-message {
2014 font-size: 1.2em
2014 font-size: 1.2em
2015 }
2015 }
2016
2016
2017 .merge-message.success i,
2017 .merge-message.success i,
2018 .merge-icon.success i {
2018 .merge-icon.success i {
2019 color:@alert1;
2019 color:@alert1;
2020 }
2020 }
2021
2021
2022 .merge-message.warning i,
2022 .merge-message.warning i,
2023 .merge-icon.warning i {
2023 .merge-icon.warning i {
2024 color: @alert3;
2024 color: @alert3;
2025 }
2025 }
2026
2026
2027 .merge-message.error i,
2027 .merge-message.error i,
2028 .merge-icon.error i {
2028 .merge-icon.error i {
2029 color:@alert2;
2029 color:@alert2;
2030 }
2030 }
2031
2031
2032 .pr-versions {
2032 .pr-versions {
2033 font-size: 1.1em;
2033 font-size: 1.1em;
2034 padding: 7.5px;
2034 padding: 7.5px;
2035
2035
2036 table {
2036 table {
2037
2037
2038 }
2038 }
2039
2039
2040 td {
2040 td {
2041 line-height: 15px;
2041 line-height: 15px;
2042 }
2042 }
2043
2043
2044 .compare-radio-button {
2044 .compare-radio-button {
2045 position: relative;
2045 position: relative;
2046 top: -3px;
2046 top: -3px;
2047 }
2047 }
2048 }
2048 }
2049
2049
2050
2050
2051 #close_pull_request {
2051 #close_pull_request {
2052 margin-right: 0px;
2052 margin-right: 0px;
2053 }
2053 }
2054
2054
2055 .empty_data {
2055 .empty_data {
2056 color: @grey4;
2056 color: @grey4;
2057 }
2057 }
2058
2058
2059 #changeset_compare_view_content {
2059 #changeset_compare_view_content {
2060 clear: both;
2060 clear: both;
2061 width: 100%;
2061 width: 100%;
2062 box-sizing: border-box;
2062 box-sizing: border-box;
2063 .border-radius(@border-radius);
2063 .border-radius(@border-radius);
2064
2064
2065 .help-block {
2065 .help-block {
2066 margin: @padding 0;
2066 margin: @padding 0;
2067 color: @text-color;
2067 color: @text-color;
2068 &.pre-formatting {
2068 &.pre-formatting {
2069 white-space: pre;
2069 white-space: pre;
2070 }
2070 }
2071 }
2071 }
2072
2072
2073 .empty_data {
2073 .empty_data {
2074 margin: @padding 0;
2074 margin: @padding 0;
2075 }
2075 }
2076
2076
2077 .alert {
2077 .alert {
2078 margin-bottom: @space;
2078 margin-bottom: @space;
2079 }
2079 }
2080 }
2080 }
2081
2081
2082 .table_disp {
2082 .table_disp {
2083 .status {
2083 .status {
2084 width: auto;
2084 width: auto;
2085 }
2085 }
2086 }
2086 }
2087
2087
2088
2088
2089 .creation_in_progress {
2089 .creation_in_progress {
2090 color: @grey4
2090 color: @grey4
2091 }
2091 }
2092
2092
2093 .status_box_menu {
2093 .status_box_menu {
2094 margin: 0;
2094 margin: 0;
2095 }
2095 }
2096
2096
2097 .notification-table{
2097 .notification-table{
2098 margin-bottom: @space;
2098 margin-bottom: @space;
2099 display: table;
2099 display: table;
2100 width: 100%;
2100 width: 100%;
2101
2101
2102 .container{
2102 .container{
2103 display: table-row;
2103 display: table-row;
2104
2104
2105 .notification-header{
2105 .notification-header{
2106 border-bottom: @border-thickness solid @border-default-color;
2106 border-bottom: @border-thickness solid @border-default-color;
2107 }
2107 }
2108
2108
2109 .notification-subject{
2109 .notification-subject{
2110 display: table-cell;
2110 display: table-cell;
2111 }
2111 }
2112 }
2112 }
2113 }
2113 }
2114
2114
2115 // Notifications
2115 // Notifications
2116 .notification-header{
2116 .notification-header{
2117 display: table;
2117 display: table;
2118 width: 100%;
2118 width: 100%;
2119 padding: floor(@basefontsize/2) 0;
2119 padding: floor(@basefontsize/2) 0;
2120 line-height: 1em;
2120 line-height: 1em;
2121
2121
2122 .desc, .delete-notifications, .read-notifications{
2122 .desc, .delete-notifications, .read-notifications{
2123 display: table-cell;
2123 display: table-cell;
2124 text-align: left;
2124 text-align: left;
2125 }
2125 }
2126
2126
2127 .delete-notifications, .read-notifications{
2127 .delete-notifications, .read-notifications{
2128 width: 35px;
2128 width: 35px;
2129 min-width: 35px; //fixes when only one button is displayed
2129 min-width: 35px; //fixes when only one button is displayed
2130 }
2130 }
2131 }
2131 }
2132
2132
2133 .notification-body {
2133 .notification-body {
2134 .markdown-block,
2134 .markdown-block,
2135 .rst-block {
2135 .rst-block {
2136 padding: @padding 0;
2136 padding: @padding 0;
2137 }
2137 }
2138
2138
2139 .notification-subject {
2139 .notification-subject {
2140 padding: @textmargin 0;
2140 padding: @textmargin 0;
2141 border-bottom: @border-thickness solid @border-default-color;
2141 border-bottom: @border-thickness solid @border-default-color;
2142 }
2142 }
2143 }
2143 }
2144
2144
2145 .notice-messages {
2145 .notice-messages {
2146 .markdown-block,
2146 .markdown-block,
2147 .rst-block {
2147 .rst-block {
2148 padding: 0;
2148 padding: 0;
2149 }
2149 }
2150 }
2150 }
2151
2151
2152 .notifications_buttons{
2152 .notifications_buttons{
2153 float: right;
2153 float: right;
2154 }
2154 }
2155
2155
2156 #notification-status{
2156 #notification-status{
2157 display: inline;
2157 display: inline;
2158 }
2158 }
2159
2159
2160 // Repositories
2160 // Repositories
2161
2161
2162 #summary.fields{
2162 #summary.fields{
2163 display: table;
2163 display: table;
2164
2164
2165 .field{
2165 .field{
2166 display: table-row;
2166 display: table-row;
2167
2167
2168 .label-summary{
2168 .label-summary{
2169 display: table-cell;
2169 display: table-cell;
2170 min-width: @label-summary-minwidth;
2170 min-width: @label-summary-minwidth;
2171 padding-top: @padding/2;
2171 padding-top: @padding/2;
2172 padding-bottom: @padding/2;
2172 padding-bottom: @padding/2;
2173 padding-right: @padding/2;
2173 padding-right: @padding/2;
2174 }
2174 }
2175
2175
2176 .input{
2176 .input{
2177 display: table-cell;
2177 display: table-cell;
2178 padding: @padding/2;
2178 padding: @padding/2;
2179
2179
2180 input{
2180 input{
2181 min-width: 29em;
2181 min-width: 29em;
2182 padding: @padding/4;
2182 padding: @padding/4;
2183 }
2183 }
2184 }
2184 }
2185 .statistics, .downloads{
2185 .statistics, .downloads{
2186 .disabled{
2186 .disabled{
2187 color: @grey4;
2187 color: @grey4;
2188 }
2188 }
2189 }
2189 }
2190 }
2190 }
2191 }
2191 }
2192
2192
2193 #summary{
2193 #summary{
2194 width: 70%;
2194 width: 70%;
2195 }
2195 }
2196
2196
2197
2197
2198 // Journal
2198 // Journal
2199 .journal.title {
2199 .journal.title {
2200 h5 {
2200 h5 {
2201 float: left;
2201 float: left;
2202 margin: 0;
2202 margin: 0;
2203 width: 70%;
2203 width: 70%;
2204 }
2204 }
2205
2205
2206 ul {
2206 ul {
2207 float: right;
2207 float: right;
2208 display: inline-block;
2208 display: inline-block;
2209 margin: 0;
2209 margin: 0;
2210 width: 30%;
2210 width: 30%;
2211 text-align: right;
2211 text-align: right;
2212
2212
2213 li {
2213 li {
2214 display: inline;
2214 display: inline;
2215 font-size: @journal-fontsize;
2215 font-size: @journal-fontsize;
2216 line-height: 1em;
2216 line-height: 1em;
2217
2217
2218 list-style-type: none;
2218 list-style-type: none;
2219 }
2219 }
2220 }
2220 }
2221 }
2221 }
2222
2222
2223 .filterexample {
2223 .filterexample {
2224 position: absolute;
2224 position: absolute;
2225 top: 95px;
2225 top: 95px;
2226 left: @contentpadding;
2226 left: @contentpadding;
2227 color: @rcblue;
2227 color: @rcblue;
2228 font-size: 11px;
2228 font-size: 11px;
2229 font-family: @text-regular;
2229 font-family: @text-regular;
2230 cursor: help;
2230 cursor: help;
2231
2231
2232 &:hover {
2232 &:hover {
2233 color: @rcdarkblue;
2233 color: @rcdarkblue;
2234 }
2234 }
2235
2235
2236 @media (max-width:768px) {
2236 @media (max-width:768px) {
2237 position: relative;
2237 position: relative;
2238 top: auto;
2238 top: auto;
2239 left: auto;
2239 left: auto;
2240 display: block;
2240 display: block;
2241 }
2241 }
2242 }
2242 }
2243
2243
2244
2244
2245 #journal{
2245 #journal{
2246 margin-bottom: @space;
2246 margin-bottom: @space;
2247
2247
2248 .journal_day{
2248 .journal_day{
2249 margin-bottom: @textmargin/2;
2249 margin-bottom: @textmargin/2;
2250 padding-bottom: @textmargin/2;
2250 padding-bottom: @textmargin/2;
2251 font-size: @journal-fontsize;
2251 font-size: @journal-fontsize;
2252 border-bottom: @border-thickness solid @border-default-color;
2252 border-bottom: @border-thickness solid @border-default-color;
2253 }
2253 }
2254
2254
2255 .journal_container{
2255 .journal_container{
2256 margin-bottom: @space;
2256 margin-bottom: @space;
2257
2257
2258 .journal_user{
2258 .journal_user{
2259 display: inline-block;
2259 display: inline-block;
2260 }
2260 }
2261 .journal_action_container{
2261 .journal_action_container{
2262 display: block;
2262 display: block;
2263 margin-top: @textmargin;
2263 margin-top: @textmargin;
2264
2264
2265 div{
2265 div{
2266 display: inline;
2266 display: inline;
2267 }
2267 }
2268
2268
2269 div.journal_action_params{
2269 div.journal_action_params{
2270 display: block;
2270 display: block;
2271 }
2271 }
2272
2272
2273 div.journal_repo:after{
2273 div.journal_repo:after{
2274 content: "\A";
2274 content: "\A";
2275 white-space: pre;
2275 white-space: pre;
2276 }
2276 }
2277
2277
2278 div.date{
2278 div.date{
2279 display: block;
2279 display: block;
2280 margin-bottom: @textmargin;
2280 margin-bottom: @textmargin;
2281 }
2281 }
2282 }
2282 }
2283 }
2283 }
2284 }
2284 }
2285
2285
2286 // Files
2286 // Files
2287 .edit-file-title {
2287 .edit-file-title {
2288 font-size: 16px;
2288 font-size: 16px;
2289
2289
2290 .title-heading {
2290 .title-heading {
2291 padding: 2px;
2291 padding: 2px;
2292 }
2292 }
2293 }
2293 }
2294
2294
2295 .edit-file-fieldset {
2295 .edit-file-fieldset {
2296 margin: @sidebarpadding 0;
2296 margin: @sidebarpadding 0;
2297
2297
2298 .fieldset {
2298 .fieldset {
2299 .left-label {
2299 .left-label {
2300 width: 13%;
2300 width: 13%;
2301 }
2301 }
2302 .right-content {
2302 .right-content {
2303 width: 87%;
2303 width: 87%;
2304 max-width: 100%;
2304 max-width: 100%;
2305 }
2305 }
2306 .filename-label {
2306 .filename-label {
2307 margin-top: 13px;
2307 margin-top: 13px;
2308 }
2308 }
2309 .commit-message-label {
2309 .commit-message-label {
2310 margin-top: 4px;
2310 margin-top: 4px;
2311 }
2311 }
2312 .file-upload-input {
2312 .file-upload-input {
2313 input {
2313 input {
2314 display: none;
2314 display: none;
2315 }
2315 }
2316 margin-top: 10px;
2316 margin-top: 10px;
2317 }
2317 }
2318 .file-upload-label {
2318 .file-upload-label {
2319 margin-top: 10px;
2319 margin-top: 10px;
2320 }
2320 }
2321 p {
2321 p {
2322 margin-top: 5px;
2322 margin-top: 5px;
2323 }
2323 }
2324
2324
2325 }
2325 }
2326 .custom-path-link {
2326 .custom-path-link {
2327 margin-left: 5px;
2327 margin-left: 5px;
2328 }
2328 }
2329 #commit {
2329 #commit {
2330 resize: vertical;
2330 resize: vertical;
2331 }
2331 }
2332 }
2332 }
2333
2333
2334 .delete-file-preview {
2334 .delete-file-preview {
2335 max-height: 250px;
2335 max-height: 250px;
2336 }
2336 }
2337
2337
2338 .new-file,
2338 .new-file,
2339 #filter_activate,
2339 #filter_activate,
2340 #filter_deactivate {
2340 #filter_deactivate {
2341 float: right;
2341 float: right;
2342 margin: 0 0 0 10px;
2342 margin: 0 0 0 10px;
2343 }
2343 }
2344
2344
2345 .file-upload-transaction-wrapper {
2345 .file-upload-transaction-wrapper {
2346 margin-top: 57px;
2346 margin-top: 57px;
2347 clear: both;
2347 clear: both;
2348 }
2348 }
2349
2349
2350 .file-upload-transaction-wrapper .error {
2350 .file-upload-transaction-wrapper .error {
2351 color: @color5;
2351 color: @color5;
2352 }
2352 }
2353
2353
2354 .file-upload-transaction {
2354 .file-upload-transaction {
2355 min-height: 200px;
2355 min-height: 200px;
2356 padding: 54px;
2356 padding: 54px;
2357 border: 1px solid @grey5;
2357 border: 1px solid @grey5;
2358 text-align: center;
2358 text-align: center;
2359 clear: both;
2359 clear: both;
2360 }
2360 }
2361
2361
2362 .file-upload-transaction i {
2362 .file-upload-transaction i {
2363 font-size: 48px
2363 font-size: 48px
2364 }
2364 }
2365
2365
2366 h3.files_location{
2366 h3.files_location{
2367 line-height: 2.4em;
2367 line-height: 2.4em;
2368 }
2368 }
2369
2369
2370 .browser-nav {
2370 .browser-nav {
2371 width: 100%;
2371 width: 100%;
2372 display: table;
2372 display: table;
2373 margin-bottom: 20px;
2373 margin-bottom: 20px;
2374
2374
2375 .info_box {
2375 .info_box {
2376 float: left;
2376 float: left;
2377 display: inline-table;
2377 display: inline-table;
2378 height: 2.5em;
2378 height: 2.5em;
2379
2379
2380 .browser-cur-rev, .info_box_elem {
2380 .browser-cur-rev, .info_box_elem {
2381 display: table-cell;
2381 display: table-cell;
2382 vertical-align: middle;
2382 vertical-align: middle;
2383 }
2383 }
2384
2384
2385 .drop-menu {
2385 .drop-menu {
2386 margin: 0 10px;
2386 margin: 0 10px;
2387 }
2387 }
2388
2388
2389 .info_box_elem {
2389 .info_box_elem {
2390 border-top: @border-thickness solid @grey5;
2390 border-top: @border-thickness solid @grey5;
2391 border-bottom: @border-thickness solid @grey5;
2391 border-bottom: @border-thickness solid @grey5;
2392 box-shadow: @button-shadow;
2392 box-shadow: @button-shadow;
2393
2393
2394 #at_rev, a {
2394 #at_rev, a {
2395 padding: 0.6em 0.4em;
2395 padding: 0.6em 0.4em;
2396 margin: 0;
2396 margin: 0;
2397 .box-shadow(none);
2397 .box-shadow(none);
2398 border: 0;
2398 border: 0;
2399 height: 12px;
2399 height: 12px;
2400 color: @grey2;
2400 color: @grey2;
2401 }
2401 }
2402
2402
2403 input#at_rev {
2403 input#at_rev {
2404 max-width: 50px;
2404 max-width: 50px;
2405 text-align: center;
2405 text-align: center;
2406 }
2406 }
2407
2407
2408 &.previous {
2408 &.previous {
2409 border: @border-thickness solid @grey5;
2409 border: @border-thickness solid @grey5;
2410 border-top-left-radius: @border-radius;
2410 border-top-left-radius: @border-radius;
2411 border-bottom-left-radius: @border-radius;
2411 border-bottom-left-radius: @border-radius;
2412
2412
2413 &:hover {
2413 &:hover {
2414 border-color: @grey4;
2414 border-color: @grey4;
2415 }
2415 }
2416
2416
2417 .disabled {
2417 .disabled {
2418 color: @grey5;
2418 color: @grey5;
2419 cursor: not-allowed;
2419 cursor: not-allowed;
2420 opacity: 0.5;
2420 opacity: 0.5;
2421 }
2421 }
2422 }
2422 }
2423
2423
2424 &.next {
2424 &.next {
2425 border: @border-thickness solid @grey5;
2425 border: @border-thickness solid @grey5;
2426 border-top-right-radius: @border-radius;
2426 border-top-right-radius: @border-radius;
2427 border-bottom-right-radius: @border-radius;
2427 border-bottom-right-radius: @border-radius;
2428
2428
2429 &:hover {
2429 &:hover {
2430 border-color: @grey4;
2430 border-color: @grey4;
2431 }
2431 }
2432
2432
2433 .disabled {
2433 .disabled {
2434 color: @grey5;
2434 color: @grey5;
2435 cursor: not-allowed;
2435 cursor: not-allowed;
2436 opacity: 0.5;
2436 opacity: 0.5;
2437 }
2437 }
2438 }
2438 }
2439 }
2439 }
2440
2440
2441 .browser-cur-rev {
2441 .browser-cur-rev {
2442
2442
2443 span{
2443 span{
2444 margin: 0;
2444 margin: 0;
2445 color: @rcblue;
2445 color: @rcblue;
2446 height: 12px;
2446 height: 12px;
2447 display: inline-block;
2447 display: inline-block;
2448 padding: 0.7em 1em ;
2448 padding: 0.7em 1em ;
2449 border: @border-thickness solid @rcblue;
2449 border: @border-thickness solid @rcblue;
2450 margin-right: @padding;
2450 margin-right: @padding;
2451 }
2451 }
2452 }
2452 }
2453
2453
2454 }
2454 }
2455
2455
2456 .select-index-number {
2456 .select-index-number {
2457 margin: 0 0 0 20px;
2457 margin: 0 0 0 20px;
2458 color: @grey3;
2458 color: @grey3;
2459 }
2459 }
2460
2460
2461 .search_activate {
2461 .search_activate {
2462 display: table-cell;
2462 display: table-cell;
2463 vertical-align: middle;
2463 vertical-align: middle;
2464
2464
2465 input, label{
2465 input, label{
2466 margin: 0;
2466 margin: 0;
2467 padding: 0;
2467 padding: 0;
2468 }
2468 }
2469
2469
2470 input{
2470 input{
2471 margin-left: @textmargin;
2471 margin-left: @textmargin;
2472 }
2472 }
2473
2473
2474 }
2474 }
2475 }
2475 }
2476
2476
2477 .browser-cur-rev{
2477 .browser-cur-rev{
2478 margin-bottom: @textmargin;
2478 margin-bottom: @textmargin;
2479 }
2479 }
2480
2480
2481 #node_filter_box_loading{
2481 #node_filter_box_loading{
2482 .info_text;
2482 .info_text;
2483 }
2483 }
2484
2484
2485 .browser-search {
2485 .browser-search {
2486 margin: -25px 0px 5px 0px;
2486 margin: -25px 0px 5px 0px;
2487 }
2487 }
2488
2488
2489 .files-quick-filter {
2489 .files-quick-filter {
2490 float: right;
2490 float: right;
2491 width: 180px;
2491 width: 180px;
2492 position: relative;
2492 position: relative;
2493 }
2493 }
2494
2494
2495 .files-filter-box {
2495 .files-filter-box {
2496 display: flex;
2496 display: flex;
2497 padding: 0px;
2497 padding: 0px;
2498 border-radius: 3px;
2498 border-radius: 3px;
2499 margin-bottom: 0;
2499 margin-bottom: 0;
2500
2500
2501 a {
2501 a {
2502 border: none !important;
2502 border: none !important;
2503 }
2503 }
2504
2504
2505 li {
2505 li {
2506 list-style-type: none
2506 list-style-type: none
2507 }
2507 }
2508 }
2508 }
2509
2509
2510 .files-filter-box-path {
2510 .files-filter-box-path {
2511 line-height: 33px;
2511 line-height: 33px;
2512 padding: 0;
2512 padding: 0;
2513 width: 20px;
2513 width: 20px;
2514 position: absolute;
2514 position: absolute;
2515 z-index: 11;
2515 z-index: 11;
2516 left: 5px;
2516 left: 5px;
2517 }
2517 }
2518
2518
2519 .files-filter-box-input {
2519 .files-filter-box-input {
2520 margin-right: 0;
2520 margin-right: 0;
2521
2521
2522 input {
2522 input {
2523 border: 1px solid @white;
2523 border: 1px solid @white;
2524 padding-left: 25px;
2524 padding-left: 25px;
2525 width: 145px;
2525 width: 145px;
2526
2526
2527 &:hover {
2527 &:hover {
2528 border-color: @grey6;
2528 border-color: @grey6;
2529 }
2529 }
2530
2530
2531 &:focus {
2531 &:focus {
2532 border-color: @grey5;
2532 border-color: @grey5;
2533 }
2533 }
2534 }
2534 }
2535 }
2535 }
2536
2536
2537 .browser-result{
2537 .browser-result{
2538 td a{
2538 td a{
2539 margin-left: 0.5em;
2539 margin-left: 0.5em;
2540 display: inline-block;
2540 display: inline-block;
2541
2541
2542 em {
2542 em {
2543 font-weight: @text-bold-weight;
2543 font-weight: @text-bold-weight;
2544 font-family: @text-bold;
2544 font-family: @text-bold;
2545 }
2545 }
2546 }
2546 }
2547 }
2547 }
2548
2548
2549 .browser-highlight{
2549 .browser-highlight{
2550 background-color: @grey5-alpha;
2550 background-color: @grey5-alpha;
2551 }
2551 }
2552
2552
2553
2553
2554 .edit-file-fieldset #location,
2554 .edit-file-fieldset #location,
2555 .edit-file-fieldset #filename {
2555 .edit-file-fieldset #filename {
2556 display: flex;
2556 display: flex;
2557 width: -moz-available; /* WebKit-based browsers will ignore this. */
2557 width: -moz-available; /* WebKit-based browsers will ignore this. */
2558 width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
2558 width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
2559 width: fill-available;
2559 width: fill-available;
2560 border: 0;
2560 border: 0;
2561 }
2561 }
2562
2562
2563 .path-items {
2563 .path-items {
2564 display: flex;
2564 display: flex;
2565 padding: 0;
2565 padding: 0;
2566 border: 1px solid #eeeeee;
2566 border: 1px solid #eeeeee;
2567 width: 100%;
2567 width: 100%;
2568 float: left;
2568 float: left;
2569
2569
2570 .breadcrumb-path {
2570 .breadcrumb-path {
2571 line-height: 30px;
2571 line-height: 30px;
2572 padding: 0 4px;
2572 padding: 0 4px;
2573 white-space: nowrap;
2573 white-space: nowrap;
2574 }
2574 }
2575
2575
2576 .upload-form {
2576 .upload-form {
2577 margin-top: 46px;
2577 margin-top: 46px;
2578 }
2578 }
2579
2579
2580 .location-path {
2580 .location-path {
2581 width: -moz-available; /* WebKit-based browsers will ignore this. */
2581 width: -moz-available; /* WebKit-based browsers will ignore this. */
2582 width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
2582 width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
2583 width: fill-available;
2583 width: fill-available;
2584
2584
2585 .file-name-input {
2585 .file-name-input {
2586 padding: 0.5em 0;
2586 padding: 0.5em 0;
2587 }
2587 }
2588
2588
2589 }
2589 }
2590
2590
2591 ul {
2591 ul {
2592 display: flex;
2592 display: flex;
2593 margin: 0;
2593 margin: 0;
2594 padding: 0;
2594 padding: 0;
2595 width: 100%;
2595 width: 100%;
2596 }
2596 }
2597
2597
2598 li {
2598 li {
2599 list-style-type: none;
2599 list-style-type: none;
2600 }
2600 }
2601
2601
2602 }
2602 }
2603
2603
2604 .editor-items {
2604 .editor-items {
2605 height: 40px;
2605 height: 40px;
2606 margin: 10px 0 -17px 10px;
2606 margin: 10px 0 -17px 10px;
2607
2607
2608 .editor-action {
2608 .editor-action {
2609 cursor: pointer;
2609 cursor: pointer;
2610 }
2610 }
2611
2611
2612 .editor-action.active {
2612 .editor-action.active {
2613 border-bottom: 2px solid #5C5C5C;
2613 border-bottom: 2px solid #5C5C5C;
2614 }
2614 }
2615
2615
2616 li {
2616 li {
2617 list-style-type: none;
2617 list-style-type: none;
2618 }
2618 }
2619 }
2619 }
2620
2620
2621 .edit-file-fieldset .message textarea {
2621 .edit-file-fieldset .message textarea {
2622 border: 1px solid #eeeeee;
2622 border: 1px solid #eeeeee;
2623 }
2623 }
2624
2624
2625 #files_data .codeblock {
2625 #files_data .codeblock {
2626 background-color: #F5F5F5;
2626 background-color: #F5F5F5;
2627 }
2627 }
2628
2628
2629 #editor_preview {
2629 #editor_preview {
2630 background: white;
2630 background: white;
2631 }
2631 }
2632
2632
2633 .show-editor {
2633 .show-editor {
2634 padding: 10px;
2634 padding: 10px;
2635 background-color: white;
2635 background-color: white;
2636
2636
2637 }
2637 }
2638
2638
2639 .show-preview {
2639 .show-preview {
2640 padding: 10px;
2640 padding: 10px;
2641 background-color: white;
2641 background-color: white;
2642 border-left: 1px solid #eeeeee;
2642 border-left: 1px solid #eeeeee;
2643 }
2643 }
2644 // quick filter
2644 // quick filter
2645 .grid-quick-filter {
2645 .grid-quick-filter {
2646 float: right;
2646 float: right;
2647 position: relative;
2647 position: relative;
2648 }
2648 }
2649
2649
2650 .grid-filter-box {
2650 .grid-filter-box {
2651 display: flex;
2651 display: flex;
2652 padding: 0px;
2652 padding: 0px;
2653 border-radius: 3px;
2653 border-radius: 3px;
2654 margin-bottom: 0;
2654 margin-bottom: 0;
2655
2655
2656 a {
2656 a {
2657 border: none !important;
2657 border: none !important;
2658 }
2658 }
2659
2659
2660 li {
2660 li {
2661 list-style-type: none
2661 list-style-type: none
2662 }
2662 }
2663
2663 }
2664 }
2664
2665
2665 .grid-filter-box-icon {
2666 .grid-filter-box-icon {
2666 line-height: 33px;
2667 line-height: 33px;
2667 padding: 0;
2668 padding: 0;
2668 width: 20px;
2669 width: 20px;
2669 position: absolute;
2670 position: absolute;
2670 z-index: 11;
2671 z-index: 11;
2671 left: 5px;
2672 left: 5px;
2672 }
2673 }
2673
2674
2674 .grid-filter-box-input {
2675 .grid-filter-box-input {
2675 margin-right: 0;
2676 margin-right: 0;
2676
2677
2677 input {
2678 input {
2678 border: 1px solid @white;
2679 border: 1px solid @white;
2679 padding-left: 25px;
2680 padding-left: 25px;
2680 width: 145px;
2681 width: 145px;
2681
2682
2682 &:hover {
2683 &:hover {
2683 border-color: @grey6;
2684 border-color: @grey6;
2684 }
2685 }
2685
2686
2686 &:focus {
2687 &:focus {
2687 border-color: @grey5;
2688 border-color: @grey5;
2688 }
2689 }
2689 }
2690 }
2690 }
2691 }
2691
2692
2692
2693
2693
2694
2694 // Search
2695 // Search
2695
2696
2696 .search-form{
2697 .search-form{
2697 #q {
2698 #q {
2698 width: @search-form-width;
2699 width: @search-form-width;
2699 }
2700 }
2700 .fields{
2701 .fields{
2701 margin: 0 0 @space;
2702 margin: 0 0 @space;
2702 }
2703 }
2703
2704
2704 label{
2705 label{
2705 display: inline-block;
2706 display: inline-block;
2706 margin-right: @textmargin;
2707 margin-right: @textmargin;
2707 padding-top: 0.25em;
2708 padding-top: 0.25em;
2708 }
2709 }
2709
2710
2710
2711
2711 .results{
2712 .results{
2712 clear: both;
2713 clear: both;
2713 margin: 0 0 @padding;
2714 margin: 0 0 @padding;
2714 }
2715 }
2715
2716
2716 .search-tags {
2717 .search-tags {
2717 padding: 5px 0;
2718 padding: 5px 0;
2718 }
2719 }
2719 }
2720 }
2720
2721
2721 div.search-feedback-items {
2722 div.search-feedback-items {
2722 display: inline-block;
2723 display: inline-block;
2723 }
2724 }
2724
2725
2725 div.search-code-body {
2726 div.search-code-body {
2726 background-color: #ffffff; padding: 5px 0 5px 10px;
2727 background-color: #ffffff; padding: 5px 0 5px 10px;
2727 pre {
2728 pre {
2728 .match { background-color: #faffa6;}
2729 .match { background-color: #faffa6;}
2729 .break { display: block; width: 100%; background-color: #DDE7EF; color: #747474; }
2730 .break { display: block; width: 100%; background-color: #DDE7EF; color: #747474; }
2730 }
2731 }
2731 }
2732 }
2732
2733
2733 .expand_commit.search {
2734 .expand_commit.search {
2734 .show_more.open {
2735 .show_more.open {
2735 height: auto;
2736 height: auto;
2736 max-height: none;
2737 max-height: none;
2737 }
2738 }
2738 }
2739 }
2739
2740
2740 .search-results {
2741 .search-results {
2741
2742
2742 h2 {
2743 h2 {
2743 margin-bottom: 0;
2744 margin-bottom: 0;
2744 }
2745 }
2745 .codeblock {
2746 .codeblock {
2746 border: none;
2747 border: none;
2747 background: transparent;
2748 background: transparent;
2748 }
2749 }
2749
2750
2750 .codeblock-header {
2751 .codeblock-header {
2751 border: none;
2752 border: none;
2752 background: transparent;
2753 background: transparent;
2753 }
2754 }
2754
2755
2755 .code-body {
2756 .code-body {
2756 border: @border-thickness solid @grey6;
2757 border: @border-thickness solid @grey6;
2757 .border-radius(@border-radius);
2758 .border-radius(@border-radius);
2758 }
2759 }
2759
2760
2760 .td-commit {
2761 .td-commit {
2761 &:extend(pre);
2762 &:extend(pre);
2762 border-bottom: @border-thickness solid @border-default-color;
2763 border-bottom: @border-thickness solid @border-default-color;
2763 }
2764 }
2764
2765
2765 .message {
2766 .message {
2766 height: auto;
2767 height: auto;
2767 max-width: 350px;
2768 max-width: 350px;
2768 white-space: normal;
2769 white-space: normal;
2769 text-overflow: initial;
2770 text-overflow: initial;
2770 overflow: visible;
2771 overflow: visible;
2771
2772
2772 .match { background-color: #faffa6;}
2773 .match { background-color: #faffa6;}
2773 .break { background-color: #DDE7EF; width: 100%; color: #747474; display: block; }
2774 .break { background-color: #DDE7EF; width: 100%; color: #747474; display: block; }
2774 }
2775 }
2775
2776
2776 .path {
2777 .path {
2777 border-bottom: none !important;
2778 border-bottom: none !important;
2778 border-left: 1px solid @grey6 !important;
2779 border-left: 1px solid @grey6 !important;
2779 border-right: 1px solid @grey6 !important;
2780 border-right: 1px solid @grey6 !important;
2780 }
2781 }
2781 }
2782 }
2782
2783
2783 table.rctable td.td-search-results div {
2784 table.rctable td.td-search-results div {
2784 max-width: 100%;
2785 max-width: 100%;
2785 }
2786 }
2786
2787
2787 #tip-box, .tip-box{
2788 #tip-box, .tip-box{
2788 padding: @menupadding/2;
2789 padding: @menupadding/2;
2789 display: block;
2790 display: block;
2790 border: @border-thickness solid @border-highlight-color;
2791 border: @border-thickness solid @border-highlight-color;
2791 .border-radius(@border-radius);
2792 .border-radius(@border-radius);
2792 background-color: white;
2793 background-color: white;
2793 z-index: 99;
2794 z-index: 99;
2794 white-space: pre-wrap;
2795 white-space: pre-wrap;
2795 }
2796 }
2796
2797
2797 #linktt {
2798 #linktt {
2798 width: 79px;
2799 width: 79px;
2799 }
2800 }
2800
2801
2801 #help_kb .modal-content{
2802 #help_kb .modal-content{
2802 max-width: 800px;
2803 max-width: 800px;
2803 margin: 10% auto;
2804 margin: 10% auto;
2804
2805
2805 table{
2806 table{
2806 td,th{
2807 td,th{
2807 border-bottom: none;
2808 border-bottom: none;
2808 line-height: 2.5em;
2809 line-height: 2.5em;
2809 }
2810 }
2810 th{
2811 th{
2811 padding-bottom: @textmargin/2;
2812 padding-bottom: @textmargin/2;
2812 }
2813 }
2813 td.keys{
2814 td.keys{
2814 text-align: center;
2815 text-align: center;
2815 }
2816 }
2816 }
2817 }
2817
2818
2818 .block-left{
2819 .block-left{
2819 width: 45%;
2820 width: 45%;
2820 margin-right: 5%;
2821 margin-right: 5%;
2821 }
2822 }
2822 .modal-footer{
2823 .modal-footer{
2823 clear: both;
2824 clear: both;
2824 }
2825 }
2825 .key.tag{
2826 .key.tag{
2826 padding: 0.5em;
2827 padding: 0.5em;
2827 background-color: @rcblue;
2828 background-color: @rcblue;
2828 color: white;
2829 color: white;
2829 border-color: @rcblue;
2830 border-color: @rcblue;
2830 .box-shadow(none);
2831 .box-shadow(none);
2831 }
2832 }
2832 }
2833 }
2833
2834
2834
2835
2835
2836
2836 //--- IMPORTS FOR REFACTORED STYLES ------------------//
2837 //--- IMPORTS FOR REFACTORED STYLES ------------------//
2837
2838
2838 @import 'statistics-graph';
2839 @import 'statistics-graph';
2839 @import 'tables';
2840 @import 'tables';
2840 @import 'forms';
2841 @import 'forms';
2841 @import 'diff';
2842 @import 'diff';
2842 @import 'summary';
2843 @import 'summary';
2843 @import 'navigation';
2844 @import 'navigation';
2844
2845
2845 //--- SHOW/HIDE SECTIONS --//
2846 //--- SHOW/HIDE SECTIONS --//
2846
2847
2847 .btn-collapse {
2848 .btn-collapse {
2848 float: right;
2849 float: right;
2849 text-align: right;
2850 text-align: right;
2850 font-family: @text-light;
2851 font-family: @text-light;
2851 font-size: @basefontsize;
2852 font-size: @basefontsize;
2852 cursor: pointer;
2853 cursor: pointer;
2853 border: none;
2854 border: none;
2854 color: @rcblue;
2855 color: @rcblue;
2855 }
2856 }
2856
2857
2857 table.rctable,
2858 table.rctable,
2858 table.dataTable {
2859 table.dataTable {
2859 .btn-collapse {
2860 .btn-collapse {
2860 float: right;
2861 float: right;
2861 text-align: right;
2862 text-align: right;
2862 }
2863 }
2863 }
2864 }
2864
2865
2865 table.rctable {
2866 table.rctable {
2866 &.permissions {
2867 &.permissions {
2867
2868
2868 th.td-owner {
2869 th.td-owner {
2869 padding: 0;
2870 padding: 0;
2870 }
2871 }
2871
2872
2872 th {
2873 th {
2873 font-weight: normal;
2874 font-weight: normal;
2874 padding: 0 5px;
2875 padding: 0 5px;
2875 }
2876 }
2876
2877
2877 }
2878 }
2878 }
2879 }
2879
2880
2880
2881
2881 // TODO: johbo: Fix for IE10, this avoids that we see a border
2882 // TODO: johbo: Fix for IE10, this avoids that we see a border
2882 // and padding around checkboxes and radio boxes. Move to the right place,
2883 // and padding around checkboxes and radio boxes. Move to the right place,
2883 // or better: Remove this once we did the form refactoring.
2884 // or better: Remove this once we did the form refactoring.
2884 input[type=checkbox],
2885 input[type=checkbox],
2885 input[type=radio] {
2886 input[type=radio] {
2886 padding: 0;
2887 padding: 0;
2887 border: none;
2888 border: none;
2888 }
2889 }
2889
2890
2890 .toggle-ajax-spinner{
2891 .toggle-ajax-spinner{
2891 height: 16px;
2892 height: 16px;
2892 width: 16px;
2893 width: 16px;
2893 }
2894 }
2894
2895
2895
2896
2896 .markup-form .clearfix {
2897 .markup-form .clearfix {
2897 .border-radius(@border-radius);
2898 .border-radius(@border-radius);
2898 margin: 0px;
2899 margin: 0px;
2899 }
2900 }
2900
2901
2901 .markup-form-area {
2902 .markup-form-area {
2902 padding: 8px 12px;
2903 padding: 8px 12px;
2903 border: 1px solid @grey4;
2904 border: 1px solid @grey4;
2904 .border-radius(@border-radius);
2905 .border-radius(@border-radius);
2905 }
2906 }
2906
2907
2907 .markup-form-area-header .nav-links {
2908 .markup-form-area-header .nav-links {
2908 display: flex;
2909 display: flex;
2909 flex-flow: row wrap;
2910 flex-flow: row wrap;
2910 -webkit-flex-flow: row wrap;
2911 -webkit-flex-flow: row wrap;
2911 width: 100%;
2912 width: 100%;
2912 }
2913 }
2913
2914
2914 .markup-form-area-footer {
2915 .markup-form-area-footer {
2915 display: flex;
2916 display: flex;
2916 }
2917 }
2917
2918
2918 .markup-form-area-footer .toolbar {
2919 .markup-form-area-footer .toolbar {
2919
2920
2920 }
2921 }
2921
2922
2922 // markup Form
2923 // markup Form
2923 div.markup-form {
2924 div.markup-form {
2924 margin-top: 20px;
2925 margin-top: 20px;
2925 }
2926 }
2926
2927
2927 .markup-form strong {
2928 .markup-form strong {
2928 display: block;
2929 display: block;
2929 margin-bottom: 15px;
2930 margin-bottom: 15px;
2930 }
2931 }
2931
2932
2932 .markup-form textarea {
2933 .markup-form textarea {
2933 width: 100%;
2934 width: 100%;
2934 height: 100px;
2935 height: 100px;
2935 font-family: @text-monospace;
2936 font-family: @text-monospace;
2936 }
2937 }
2937
2938
2938 form.markup-form {
2939 form.markup-form {
2939 margin-top: 10px;
2940 margin-top: 10px;
2940 margin-left: 10px;
2941 margin-left: 10px;
2941 }
2942 }
2942
2943
2943 .markup-form .comment-block-ta,
2944 .markup-form .comment-block-ta,
2944 .markup-form .preview-box {
2945 .markup-form .preview-box {
2945 .border-radius(@border-radius);
2946 .border-radius(@border-radius);
2946 .box-sizing(border-box);
2947 .box-sizing(border-box);
2947 background-color: white;
2948 background-color: white;
2948 }
2949 }
2949
2950
2950 .markup-form .preview-box.unloaded {
2951 .markup-form .preview-box.unloaded {
2951 height: 50px;
2952 height: 50px;
2952 text-align: center;
2953 text-align: center;
2953 padding: 20px;
2954 padding: 20px;
2954 background-color: white;
2955 background-color: white;
2955 }
2956 }
2956
2957
2957
2958
2958 .dropzone-wrapper {
2959 .dropzone-wrapper {
2959 border: 1px solid @grey5;
2960 border: 1px solid @grey5;
2960 padding: 20px;
2961 padding: 20px;
2961 }
2962 }
2962
2963
2963 .dropzone,
2964 .dropzone,
2964 .dropzone-pure {
2965 .dropzone-pure {
2965 border: 2px dashed @grey5;
2966 border: 2px dashed @grey5;
2966 border-radius: 5px;
2967 border-radius: 5px;
2967 background: white;
2968 background: white;
2968 min-height: 200px;
2969 min-height: 200px;
2969 padding: 54px;
2970 padding: 54px;
2970
2971
2971 .dz-message {
2972 .dz-message {
2972 font-weight: 700;
2973 font-weight: 700;
2973 text-align: center;
2974 text-align: center;
2974 margin: 2em 0;
2975 margin: 2em 0;
2975 }
2976 }
2976
2977
2977 }
2978 }
2978
2979
2979 .dz-preview {
2980 .dz-preview {
2980 margin: 10px 0 !important;
2981 margin: 10px 0 !important;
2981 position: relative;
2982 position: relative;
2982 vertical-align: top;
2983 vertical-align: top;
2983 padding: 10px;
2984 padding: 10px;
2984 border-bottom: 1px solid @grey5;
2985 border-bottom: 1px solid @grey5;
2985 }
2986 }
2986
2987
2987 .dz-filename {
2988 .dz-filename {
2988 font-weight: 700;
2989 font-weight: 700;
2989 float: left;
2990 float: left;
2990 }
2991 }
2991
2992
2992 .dz-sending {
2993 .dz-sending {
2993 float: right;
2994 float: right;
2994 }
2995 }
2995
2996
2996 .dz-response {
2997 .dz-response {
2997 clear: both
2998 clear: both
2998 }
2999 }
2999
3000
3000 .dz-filename-size {
3001 .dz-filename-size {
3001 float: right
3002 float: right
3002 }
3003 }
3003
3004
3004 .dz-error-message {
3005 .dz-error-message {
3005 color: @alert2;
3006 color: @alert2;
3006 padding-top: 10px;
3007 padding-top: 10px;
3007 clear: both;
3008 clear: both;
3008 }
3009 }
3009
3010
3010
3011
3011 .user-hovercard {
3012 .user-hovercard {
3012 padding: 5px;
3013 padding: 5px;
3013 }
3014 }
3014
3015
3015 .user-hovercard-icon {
3016 .user-hovercard-icon {
3016 display: inline;
3017 display: inline;
3017 padding: 0;
3018 padding: 0;
3018 box-sizing: content-box;
3019 box-sizing: content-box;
3019 border-radius: 50%;
3020 border-radius: 50%;
3020 float: left;
3021 float: left;
3021 }
3022 }
3022
3023
3023 .user-hovercard-name {
3024 .user-hovercard-name {
3024 float: right;
3025 float: right;
3025 vertical-align: top;
3026 vertical-align: top;
3026 padding-left: 10px;
3027 padding-left: 10px;
3027 min-width: 150px;
3028 min-width: 150px;
3028 }
3029 }
3029
3030
3030 .user-hovercard-bio {
3031 .user-hovercard-bio {
3031 clear: both;
3032 clear: both;
3032 padding-top: 10px;
3033 padding-top: 10px;
3033 }
3034 }
3034
3035
3035 .user-hovercard-header {
3036 .user-hovercard-header {
3036 clear: both;
3037 clear: both;
3037 min-height: 10px;
3038 min-height: 10px;
3038 }
3039 }
3039
3040
3040 .user-hovercard-footer {
3041 .user-hovercard-footer {
3041 clear: both;
3042 clear: both;
3042 min-height: 10px;
3043 min-height: 10px;
3043 }
3044 }
3044
3045
3045 .user-group-hovercard {
3046 .user-group-hovercard {
3046 padding: 5px;
3047 padding: 5px;
3047 }
3048 }
3048
3049
3049 .user-group-hovercard-icon {
3050 .user-group-hovercard-icon {
3050 display: inline;
3051 display: inline;
3051 padding: 0;
3052 padding: 0;
3052 box-sizing: content-box;
3053 box-sizing: content-box;
3053 border-radius: 50%;
3054 border-radius: 50%;
3054 float: left;
3055 float: left;
3055 }
3056 }
3056
3057
3057 .user-group-hovercard-name {
3058 .user-group-hovercard-name {
3058 float: left;
3059 float: left;
3059 vertical-align: top;
3060 vertical-align: top;
3060 padding-left: 10px;
3061 padding-left: 10px;
3061 min-width: 150px;
3062 min-width: 150px;
3062 }
3063 }
3063
3064
3064 .user-group-hovercard-icon i {
3065 .user-group-hovercard-icon i {
3065 border: 1px solid @grey4;
3066 border: 1px solid @grey4;
3066 border-radius: 4px;
3067 border-radius: 4px;
3067 }
3068 }
3068
3069
3069 .user-group-hovercard-bio {
3070 .user-group-hovercard-bio {
3070 clear: both;
3071 clear: both;
3071 padding-top: 10px;
3072 padding-top: 10px;
3072 line-height: 1.0em;
3073 line-height: 1.0em;
3073 }
3074 }
3074
3075
3075 .user-group-hovercard-header {
3076 .user-group-hovercard-header {
3076 clear: both;
3077 clear: both;
3077 min-height: 10px;
3078 min-height: 10px;
3078 }
3079 }
3079
3080
3080 .user-group-hovercard-footer {
3081 .user-group-hovercard-footer {
3081 clear: both;
3082 clear: both;
3082 min-height: 10px;
3083 min-height: 10px;
3083 }
3084 }
3084
3085
3085 .pr-hovercard-header {
3086 .pr-hovercard-header {
3086 clear: both;
3087 clear: both;
3087 display: block;
3088 display: block;
3088 line-height: 20px;
3089 line-height: 20px;
3089 }
3090 }
3090
3091
3091 .pr-hovercard-user {
3092 .pr-hovercard-user {
3092 display: flex;
3093 display: flex;
3093 align-items: center;
3094 align-items: center;
3094 padding-left: 5px;
3095 padding-left: 5px;
3095 }
3096 }
3096
3097
3097 .pr-hovercard-title {
3098 .pr-hovercard-title {
3098 padding-top: 5px;
3099 padding-top: 5px;
3099 }
3100 }
3100
3101
3101 .action-divider {
3102 .action-divider {
3102 opacity: 0.5;
3103 opacity: 0.5;
3103 }
3104 }
3104
3105
3105 .details-inline-block {
3106 .details-inline-block {
3106 display: inline-block;
3107 display: inline-block;
3107 position: relative;
3108 position: relative;
3108 }
3109 }
3109
3110
3110 .details-inline-block summary {
3111 .details-inline-block summary {
3111 list-style: none;
3112 list-style: none;
3112 }
3113 }
3113
3114
3114 details:not([open]) > :not(summary) {
3115 details:not([open]) > :not(summary) {
3115 display: none !important;
3116 display: none !important;
3116 }
3117 }
3117
3118
3118 .details-reset > summary {
3119 .details-reset > summary {
3119 list-style: none;
3120 list-style: none;
3120 }
3121 }
3121
3122
3122 .details-reset > summary::-webkit-details-marker {
3123 .details-reset > summary::-webkit-details-marker {
3123 display: none;
3124 display: none;
3124 }
3125 }
3125
3126
3126 .details-dropdown {
3127 .details-dropdown {
3127 position: absolute;
3128 position: absolute;
3128 top: 100%;
3129 top: 100%;
3129 width: 185px;
3130 width: 185px;
3130 list-style: none;
3131 list-style: none;
3131 background-color: #fff;
3132 background-color: #fff;
3132 background-clip: padding-box;
3133 background-clip: padding-box;
3133 border: 1px solid @grey5;
3134 border: 1px solid @grey5;
3134 box-shadow: 0 8px 24px rgba(149, 157, 165, .2);
3135 box-shadow: 0 8px 24px rgba(149, 157, 165, .2);
3135 left: -150px;
3136 left: -150px;
3136 text-align: left;
3137 text-align: left;
3137 z-index: 90;
3138 z-index: 90;
3138 }
3139 }
3139
3140
3140 .dropdown-divider {
3141 .dropdown-divider {
3141 display: block;
3142 display: block;
3142 height: 0;
3143 height: 0;
3143 margin: 8px 0;
3144 margin: 8px 0;
3144 border-top: 1px solid @grey5;
3145 border-top: 1px solid @grey5;
3145 }
3146 }
3146
3147
3147 .dropdown-item {
3148 .dropdown-item {
3148 display: block;
3149 display: block;
3149 padding: 4px 8px 4px 16px;
3150 padding: 4px 8px 4px 16px;
3150 overflow: hidden;
3151 overflow: hidden;
3151 text-overflow: ellipsis;
3152 text-overflow: ellipsis;
3152 white-space: nowrap;
3153 white-space: nowrap;
3153 font-weight: normal;
3154 font-weight: normal;
3154 }
3155 }
3155
3156
3156 .right-sidebar {
3157 .right-sidebar {
3157 position: fixed;
3158 position: fixed;
3158 top: 0px;
3159 top: 0px;
3159 bottom: 0;
3160 bottom: 0;
3160 right: 0;
3161 right: 0;
3161
3162
3162 background: #fafafa;
3163 background: #fafafa;
3163 z-index: 50;
3164 z-index: 50;
3164 }
3165 }
3165
3166
3166 .right-sidebar {
3167 .right-sidebar {
3167 border-left: 1px solid @grey5;
3168 border-left: 1px solid @grey5;
3168 }
3169 }
3169
3170
3170 .right-sidebar.right-sidebar-expanded {
3171 .right-sidebar.right-sidebar-expanded {
3171 width: 300px;
3172 width: 300px;
3172 overflow: scroll;
3173 overflow: scroll;
3173 }
3174 }
3174
3175
3175 .right-sidebar.right-sidebar-collapsed {
3176 .right-sidebar.right-sidebar-collapsed {
3176 width: 40px;
3177 width: 40px;
3177 padding: 0;
3178 padding: 0;
3178 display: block;
3179 display: block;
3179 overflow: hidden;
3180 overflow: hidden;
3180 }
3181 }
3181
3182
3182 .sidenav {
3183 .sidenav {
3183 float: right;
3184 float: right;
3184 will-change: min-height;
3185 will-change: min-height;
3185 background: #fafafa;
3186 background: #fafafa;
3186 width: 100%;
3187 width: 100%;
3187 }
3188 }
3188
3189
3189 .sidebar-toggle {
3190 .sidebar-toggle {
3190 height: 30px;
3191 height: 30px;
3191 text-align: center;
3192 text-align: center;
3192 margin: 15px 0px 0 0;
3193 margin: 15px 0px 0 0;
3193 }
3194 }
3194
3195
3195 .sidebar-toggle a {
3196 .sidebar-toggle a {
3196
3197
3197 }
3198 }
3198
3199
3199 .sidebar-content {
3200 .sidebar-content {
3200 margin-left: 15px;
3201 margin-left: 15px;
3201 margin-right: 15px;
3202 margin-right: 15px;
3202 }
3203 }
3203
3204
3204 .sidebar-heading {
3205 .sidebar-heading {
3205 font-size: 1.2em;
3206 font-size: 1.2em;
3206 font-weight: 700;
3207 font-weight: 700;
3207 margin-top: 10px;
3208 margin-top: 10px;
3208 }
3209 }
3209
3210
3210 .sidebar-element {
3211 .sidebar-element {
3211 margin-top: 20px;
3212 margin-top: 20px;
3212 }
3213 }
3213
3214
3214 .right-sidebar-collapsed-state {
3215 .right-sidebar-collapsed-state {
3215 display: flex;
3216 display: flex;
3216 flex-direction: column;
3217 flex-direction: column;
3217 justify-content: center;
3218 justify-content: center;
3218 align-items: center;
3219 align-items: center;
3219 padding: 0 10px;
3220 padding: 0 10px;
3220 cursor: pointer;
3221 cursor: pointer;
3221 font-size: 1.3em;
3222 font-size: 1.3em;
3222 margin: 0 -15px;
3223 margin: 0 -15px;
3223 }
3224 }
3224
3225
3225 .right-sidebar-collapsed-state:hover {
3226 .right-sidebar-collapsed-state:hover {
3226 background-color: @grey5;
3227 background-color: @grey5;
3227 }
3228 }
3228
3229
3229 .old-comments-marker {
3230 .old-comments-marker {
3230 text-align: left;
3231 text-align: left;
3231 }
3232 }
3232
3233
3233 .old-comments-marker td {
3234 .old-comments-marker td {
3234 padding-top: 15px;
3235 padding-top: 15px;
3235 border-bottom: 1px solid @grey5;
3236 border-bottom: 1px solid @grey5;
3236 }
3237 }
@@ -1,499 +1,479 b''
1 // summary.less
1 // summary.less
2 // For use in RhodeCode applications;
2 // For use in RhodeCode applications;
3 // Used for headers and file detail summary screens.
3 // Used for headers and file detail summary screens.
4
4
5 .summary {
5 .summary {
6 clear: both;
6 clear: both;
7 float: none;
7 float: none;
8 position: relative;
8 position: relative;
9 width: 100%;
9 width: 100%;
10 margin: 0;
10 margin: 0;
11 padding: 0;
11 padding: 0;
12 background: #FCFCFC;
12 background: #FCFCFC;
13 border: 1px solid #EAEAEA;
13 border: 1px solid #EAEAEA;
14 border-radius: @border-radius;
14 border-radius: @border-radius;
15 margin-bottom: 20px;
15 margin-bottom: 20px;
16
16
17 .summary-detail-header {
17 .summary-detail-header {
18 display: block;
18 display: block;
19 width: 100%;
19 width: 100%;
20 margin-bottom: 10px;
20 margin-bottom: 10px;
21 padding: 0 0 .5em 0;
21 padding: 0 0 .5em 0;
22 border-bottom: @border-thickness solid @border-default-color;
22 border-bottom: @border-thickness solid @border-default-color;
23
23
24 .breadcrumbs {
24 .breadcrumbs {
25 display: inline;
25 display: inline;
26 margin: 0;
26 margin: 0;
27 padding: 0;
27 padding: 0;
28 }
28 }
29
29
30 h4 {
30 h4 {
31 margin: 0 1em 0 0;
31 margin: 0 1em 0 0;
32 padding: 10px 0 5px 20px;
32 padding: 10px 0 5px 20px;
33 line-height: 1.2em;
33 line-height: 1.2em;
34 font-size: @basefontsize;
34 font-size: @basefontsize;
35 }
35 }
36
36
37 .action_link {
37 .action_link {
38 float: right;
38 float: right;
39 }
39 }
40
40
41 .new-file {
41 .new-file {
42 float: right;
42 float: right;
43 margin-top: -1.5em;
43 margin-top: -1.5em;
44 }
44 }
45 }
45 }
46
46
47 .summary-detail {
47 .summary-detail {
48 float: none;
48 float: none;
49 position: relative;
49 position: relative;
50 width: 100%;
50 width: 100%;
51 margin: 0;
51 margin: 0;
52 padding: 0 0 20px 0;
52 padding: 0 0 20px 0;
53
53
54 .file_diff_buttons {
54 .file_diff_buttons {
55 margin-top: @space;
55 margin-top: @space;
56 }
56 }
57
57
58 // commit message
58 // commit message
59 .commit {
59 .commit {
60 white-space: pre-wrap;
60 white-space: pre-wrap;
61 }
61 }
62
62
63 .left-clone {
63 .left-clone {
64 float: left;
64 float: left;
65 height: 30px;
65 height: 30px;
66 margin: 0;
66 margin: 0;
67 padding: 0;
67 padding: 0;
68 width: 130px;
68 width: 130px;
69 font-weight: @text-semibold-weight;
69 font-weight: @text-semibold-weight;
70 font-family: @text-semibold;
70 font-family: @text-semibold;
71 }
71 }
72 .left-clone select {
72 .left-clone select {
73 width: 130px;
73 width: 130px;
74 margin-right: 0;
74 margin-right: 0;
75 background-color: @grey7;
75 background-color: @grey7;
76 border-color: @grey4;
76 border-color: @grey4;
77 color: #5C5C5C;
77 color: #5C5C5C;
78 border-top-right-radius: 0;
78 border-top-right-radius: 0;
79 border-bottom-right-radius: 0;
79 border-bottom-right-radius: 0;
80 }
80 }
81
81
82 .right-clone {
82 .right-clone {
83 float: left;
83 float: left;
84 width: ~"calc(100% - 170px)";
84 width: ~"calc(100% - 170px)";
85
85
86 .clipboard-action {
86 .clipboard-action {
87 margin-left: -30px;
87 margin-left: -30px;
88 }
88 }
89 }
89 }
90
90
91 .clone_url_input {
91 .clone_url_input {
92 width: ~"calc(100% - 90px)";
92 width: ~"calc(100% - 90px)";
93 padding: 6px 30px 6px 10px;
93 padding: 6px 30px 6px 10px;
94 height: 14px;
94 height: 14px;
95 box-shadow: 0 1px 1px 0 rgba(0,0,0,0.07);
95 box-shadow: 0 1px 1px 0 rgba(0,0,0,0.07);
96 border-top-left-radius: 0;
96 border-top-left-radius: 0;
97 border-bottom-left-radius: 0;
97 border-bottom-left-radius: 0;
98 margin-left: -1px;
98 margin-left: -1px;
99 }
99 }
100
100
101 &.directory {
101 &.directory {
102 margin-bottom: 0;
102 margin-bottom: 0;
103 }
103 }
104
104
105 .desc {
105 .desc {
106 white-space: pre-wrap;
106 white-space: pre-wrap;
107 }
107 }
108 .disabled {
108 .disabled {
109 opacity: .5;
109 opacity: .5;
110 cursor: inherit;
110 cursor: inherit;
111 }
111 }
112 .help-block {
112 .help-block {
113 color: inherit;
113 color: inherit;
114 margin: 0;
114 margin: 0;
115 }
115 }
116 }
116 }
117
117
118 .sidebar-right {
118 .sidebar-right {
119 float: left;
119 float: left;
120 width: 24%;
120 width: 24%;
121 margin: 0;
121 margin: 0;
122 padding: 0;
122 padding: 0;
123
123
124 ul {
124 ul {
125 margin-left: 0;
125 margin-left: 0;
126 padding-left: 0;
126 padding-left: 0;
127
127
128 li {
128 li {
129 list-style-type: none;
129 list-style-type: none;
130 }
130 }
131 }
131 }
132 }
132 }
133
133
134 #clone_by_name, #clone_by_id{
134 #clone_by_name, #clone_by_id{
135 display: inline-block;
135 display: inline-block;
136 margin-left: 0px;
136 margin-left: 0px;
137 }
137 }
138
138
139 .codeblock {
139 .codeblock {
140 border: none;
140 border: none;
141 background-color: transparent;
141 background-color: transparent;
142 }
142 }
143
143
144 .code-body {
144 .code-body {
145 border: @border-thickness solid @border-default-color;
145 border: @border-thickness solid @border-default-color;
146 .border-radius(@border-radius);
146 .border-radius(@border-radius);
147 }
147 }
148
148
149 .btn-collapse {
149 .btn-collapse {
150 clear: both;
150 clear: both;
151 float: none;
151 float: none;
152 background: #F7F7F7;
152 background: #F7F7F7;
153 text-align: center;
153 text-align: center;
154 color: #949494;
154 color: #949494;
155 font-size: 11px;
155 font-size: 11px;
156 line-height: 1.3em;
156 line-height: 1.3em;
157
157
158 &:hover {
158 &:hover {
159 background: #f1f1f1;
159 background: #f1f1f1;
160 color: #2B2B2D;
160 color: #2B2B2D;
161 }
161 }
162 }
162 }
163 }
163 }
164
164
165 // this is used outside of just the summary
165 // this is used outside of just the summary
166 .fieldset, // similar to form fieldset
166 .fieldset, // similar to form fieldset
167 .summary .sidebar-right-content { // these have to match
167 .summary .sidebar-right-content { // these have to match
168 clear: both;
168 clear: both;
169 float: none;
169 float: none;
170 position: relative;
170 position: relative;
171 display:block;
171 display:block;
172 width: 100%;
172 width: 100%;
173 min-height: 20px;
173 min-height: 20px;
174 margin-bottom: 10px;
174 margin-bottom: 10px;
175 padding: 0;
175 padding: 0;
176 line-height: 1.2em;
176 line-height: 1.2em;
177
177
178 &:after { // clearfix
178 &:after { // clearfix
179 content: "";
179 content: "";
180 clear: both;
180 clear: both;
181 width: 100%;
181 width: 100%;
182 height: 1em;
182 height: 1em;
183 }
183 }
184 }
184 }
185
185
186 .summary .sidebar-right-content {
186 .summary .sidebar-right-content {
187 margin-bottom: 0;
187 margin-bottom: 0;
188
188
189 .rc-user {
189 .rc-user {
190 min-width: 0;
190 min-width: 0;
191 }
191 }
192
192
193 li {
193 li {
194 list-style: none;
194 list-style: none;
195 line-height: normal;
195 line-height: normal;
196 }
196 }
197 }
197 }
198
198
199 .summary {
199 .summary {
200 .fieldset {
200 .fieldset {
201 margin-bottom: 0;
201 margin-bottom: 0;
202 }
202 }
203
203
204 .tags-main {
204 .tags-main {
205 margin-bottom: 5px;
205 margin-bottom: 5px;
206 }
206 }
207 }
207 }
208
208
209 .fieldset {
209 .fieldset {
210
210
211 .left-label { // similar to form legend
211 .left-label { // similar to form legend
212 display: block;
212 display: block;
213 margin: 0;
213 margin: 0;
214 padding: 0;
214 padding: 0;
215 font-weight: @text-semibold-weight;
215 font-weight: @text-semibold-weight;
216 font-family: @text-semibold;
216 font-family: @text-semibold;
217 }
217 }
218
218
219 .left-label-summary {
219 .left-label-summary {
220 padding-left: 20px;
220 padding-left: 20px;
221 margin-bottom: 5px;
221 margin-bottom: 5px;
222
222
223 p {
223 p {
224 margin-bottom: 5px;
224 margin-bottom: 5px;
225 color: @grey1;
225 color: @grey1;
226 float: left;
226 float: left;
227 width: 130px;
227 width: 130px;
228
228
229 &.spacing {
229 &.spacing {
230 margin-top: 10px;
230 margin-top: 10px;
231 }
231 }
232 }
232 }
233
233
234 .right-label-summary {
234 .right-label-summary {
235 float: left;
235 float: left;
236 margin-top: 0px;
236 margin-top: 0px;
237 line-height: 2em;
237 line-height: 2em;
238 width: ~"calc(100% - 160px)";
238 width: ~"calc(100% - 160px)";
239 }
239 }
240 }
240 }
241
241
242 .left-label-summary-files {
242 .left-label-summary-files {
243 padding-left: 45px;
243 padding-left: 45px;
244 margin-top: 5px;
244 margin-top: 5px;
245
245
246 p {
246 p {
247 margin-bottom: 5px;
247 margin-bottom: 5px;
248 color: @grey1;
248 color: @grey1;
249 float: left;
249 float: left;
250 width: 130px;
250 width: 130px;
251
251
252 &.spacing {
252 &.spacing {
253 margin-top: 10px;
253 margin-top: 10px;
254 }
254 }
255 }
255 }
256
256
257 .right-label-summary {
257 .right-label-summary {
258 float: left;
258 float: left;
259 margin-top: 0px;
259 margin-top: 0px;
260 line-height: 2em;
260 line-height: 2em;
261 }
261 }
262 }
262 }
263
263
264 .left-content {
264 .left-content {
265 width: ~"calc(60% - 20px)";
265 width: ~"calc(60% - 20px)";
266 float: left;
266 float: left;
267 margin: 15px 0 15px 20px;
267 margin: 15px 0 15px 20px;
268
268
269 .rc-user {
269 .rc-user {
270 min-width: auto;
270 min-width: auto;
271 max-width: none;
271 max-width: none;
272 min-height: auto;
272 min-height: auto;
273 padding-right: 5px;
273 padding-right: 5px;
274 }
274 }
275
275
276 .left-content-avatar {
276 .left-content-avatar {
277 width: 45px;
277 width: 45px;
278 float: left;
278 float: left;
279 margin-top: 8px;
279 margin-top: 8px;
280 }
280 }
281
281
282 .left-content-message {
282 .left-content-message {
283 float: left;
283 float: left;
284 width: ~"calc(100% - 45px)";
284 width: ~"calc(100% - 45px)";
285 }
285 }
286 }
286 }
287
287
288 .right-content { // similar to form fields
288 .right-content { // similar to form fields
289 float: left;
289 float: left;
290 display: block;
290 display: block;
291 width: ~"calc(40% - 20px)";
291 width: ~"calc(40% - 20px)";
292 text-align: right;
292 text-align: right;
293 margin: 15px 20px 15px 0;
293 margin: 15px 20px 15px 0;
294
294
295 .truncate-wrap,
295 .truncate-wrap,
296 .truncate {
296 .truncate {
297 max-width: 100%;
297 max-width: 100%;
298 width: 100%;
298 width: 100%;
299 }
299 }
300
300
301 .commit-long {
301 .commit-long {
302 overflow-x: auto;
302 overflow-x: auto;
303 }
303 }
304
304
305 .commit-info {
305 .commit-info {
306 margin-top: 7px;
306 margin-top: 7px;
307 }
307 }
308
308
309 .summary-tag,
309 .summary-tag,
310 .summary-tagtag,
310 .summary-tagtag,
311 .summary-branchtag,
311 .summary-branchtag,
312 .summary-booktag,
312 .summary-booktag,
313 .summary-metatag,
313 .summary-metatag,
314 .summary-perm_tag {
314 .summary-perm_tag {
315 background:transparent;
315 background:transparent;
316 border: none;
316 border: none;
317 box-shadow: none;
317 box-shadow: none;
318 margin-left: 10px;
318 margin-left: 10px;
319 font-size: 13px;
319 font-size: 13px;
320 }
320 }
321
321
322 .summary-tag span,
322 .summary-tag span,
323 .summary-tag i,
323 .summary-tag i,
324 .summary-tag a {
324 .summary-tag a {
325 color: @grey1;
325 color: @grey1;
326 }
326 }
327
327
328 }
328 }
329 .commit {
329 .commit {
330 color: @grey1;
330 color: @grey1;
331 margin-bottom: 5px;
331 margin-bottom: 5px;
332 white-space: pre;
332 white-space: pre;
333 }
333 }
334 .commit.truncate-wrap {
334 .commit.truncate-wrap {
335 overflow:hidden;
335 overflow:hidden;
336 text-overflow: ellipsis;
336 text-overflow: ellipsis;
337 }
337 }
338 .commit-author {
338 .commit-author {
339 color: @grey1;
339 color: @grey1;
340 }
340 }
341 .commit-date {
341 .commit-date {
342 color: @grey4;
342 color: @grey4;
343 }
343 }
344 .fieldset-text-line {
344 .fieldset-text-line {
345 line-height: 36px;
345 line-height: 36px;
346 }
346 }
347 }
347 }
348
348
349 // expand commit message
349 // expand commit message
350 #message_expand {
350 #message_expand {
351 clear: both;
351 clear: both;
352 display: block;
352 display: block;
353 color: @rcblue;
353 color: @rcblue;
354 cursor: pointer;
354 cursor: pointer;
355 }
355 }
356
356
357 #trimmed_message_box {
357 #trimmed_message_box {
358 max-height: floor(2 * @basefontsize * 1.2); // 2 lines * line-height
358 max-height: floor(2 * @basefontsize * 1.2); // 2 lines * line-height
359 overflow: hidden;
359 overflow: hidden;
360 }
360 }
361
361
362 // show/hide comments button
362 // show/hide comments button
363 .show-inline-comments {
363 .show-inline-comments {
364 display: inline;
364 display: inline;
365 cursor: pointer;
365 cursor: pointer;
366
366
367 .comments-show { display: inline; }
367 .comments-show { display: inline; }
368 .comments-hide { display: none; }
368 .comments-hide { display: none; }
369
369
370 &.comments-visible {
370 &.comments-visible {
371 .comments-show { display: none; }
371 .comments-show { display: none; }
372 .comments-hide { display: inline; }
372 .comments-hide { display: inline; }
373 }
373 }
374 }
374 }
375
375
376 // Quick Start section
376 // Quick Start section
377
377
378 .empty-repo {
378 .empty-repo {
379 border: 1px solid #EAEAEA;
379 border: 1px solid #EAEAEA;
380 border-bottom: 0;
380 border-bottom: 0;
381 border-radius: @border-radius;
381 border-radius: @border-radius;
382 padding: 0 20px;
382 padding: 0 20px;
383 }
383 }
384
384
385 .empty-repo h3, .quick_start p {
385 .empty-repo h3, .quick_start p {
386 margin-bottom: 10px;
386 margin-bottom: 10px;
387 }
387 }
388
388
389 .quick_start pre {
389 .quick_start pre {
390 background: #FCFEFF;
390 background: #FCFEFF;
391 border: 1px solid #CBDBEB;
391 border: 1px solid #CBDBEB;
392 box-shadow: @button-shadow;
392 box-shadow: @button-shadow;
393 padding: 10px 15px;
393 padding: 10px 15px;
394 border-radius: 4px;
394 border-radius: 4px;
395 color: @grey2;
395 color: @grey2;
396 }
396 }
397
397
398 .clear-fix {
398 .clear-fix {
399 clear: both;
399 clear: both;
400 }
400 }
401
401
402 .quick_start {
402 .quick_start {
403 display: block;
403 display: block;
404 position: relative;
404 position: relative;
405 border: 1px solid #EAEAEA;
405 border: 1px solid #EAEAEA;
406 border-top: 0;
406 border-top: 0;
407 border-radius: @border-radius;
407 border-radius: @border-radius;
408 padding: 0 20px;
408 padding: 0 20px;
409
409
410 // adds some space to make copy and paste easier
410 // adds some space to make copy and paste easier
411 .left-label,
411 .left-label,
412 .right-content {
412 .right-content {
413 line-height: 1.6em;
413 line-height: 1.6em;
414 }
414 }
415 }
415 }
416
416
417
417
418 .submodule {
418 .submodule {
419 .summary-detail {
419 .summary-detail {
420 width: 100%;
420 width: 100%;
421
421
422 .btn-collapse {
422 .btn-collapse {
423 display: none;
423 display: none;
424 }
424 }
425 }
425 }
426 }
426 }
427
427
428 .codeblock-header {
428 .codeblock-header {
429 float: left;
429 float: left;
430 display: block;
430 display: block;
431 width: 100%;
431 width: 100%;
432 margin: 0;
432 margin: 0;
433
433
434 .file-filename {
434 .file-filename {
435 float:left;
435 float:left;
436 padding: 10px;
436 padding: 10px;
437 }
437 }
438
438
439 .file-stats {
439 .file-stats {
440 padding: 10px;
440 padding: 10px;
441 float:right;
441 float:right;
442 }
442 }
443
443
444
444
445 .stats-first-item {
445 .stats-first-item {
446 padding: 0px 0px 0px 3px;
446 padding: 0px 0px 0px 3px;
447 }
447 }
448
448
449 .stats-info {
449 .stats-info {
450 font-size: 11px;
450 font-size: 11px;
451 color: @grey4;
451 color: @grey4;
452 }
452 }
453
453
454 .buttons {
454 .buttons {
455 float: right;
455 float: right;
456 text-align: right;
456 text-align: right;
457 color: @grey4;
457 color: @grey4;
458 padding: 10px;
458 padding: 10px;
459 }
459 }
460
460
461 .file-container {
461 .file-container {
462 display: inline-block;
462 display: inline-block;
463 width: 100%;
463 width: 100%;
464 }
464 }
465
465
466 }
466 }
467
467
468 #summary-menu-stats {
468 #summary-menu-stats {
469
469
470 .stats-bullet {
470 .stats-bullet {
471 color: @grey3;
471 color: @grey3;
472 min-width: 3em;
472 min-width: 3em;
473 }
473 }
474
474
475 .repo-size {
475 .repo-size {
476 margin-bottom: .5em;
476 margin-bottom: .5em;
477 }
477 }
478
478
479 }
479 }
480
481 .rctable.repo_summary {
482 border: 1px solid #eaeaea;
483 border-radius: 2px;
484 border-collapse: inherit;
485 border-bottom: 0;
486
487 th {
488 background: @grey7;
489 border-bottom: 0;
490 }
491
492 td {
493 border-color: #eaeaea;
494 }
495
496 td.td-status {
497 padding: 0 0 0 10px;
498 }
499 }
@@ -1,566 +1,575 b''
1
1
2 // tables.less
2 // tables.less
3 // For use in RhodeCode application tables;
3 // For use in RhodeCode application tables;
4 // see style guide documentation for guidelines.
4 // see style guide documentation for guidelines.
5
5
6 // TABLES
6 // TABLES
7 table.rctable.table-bordered {
8 border: 1px solid #eaeaea;
9 border-radius: 2px;
10 border-collapse: inherit;
11 border-bottom: 0;
12
13 th {
14 background: @grey7;
15 border-bottom: 0;
16 }
17
18 td {
19 border-color: #eaeaea;
20 }
21
22 td.td-status {
23 padding: 0 0 0 10px;
24 }
25 }
7
26
8 .rctable,
27 .rctable,
9 table.rctable,
28 table.rctable,
10 table.dataTable {
29 table.dataTable {
11 clear:both;
30 clear:both;
12 width: 100%;
31 width: 100%;
13 margin: 0 auto @padding;
32 margin: 0 auto @padding;
14 padding: 0;
33 padding: 0;
15 vertical-align: baseline;
34 vertical-align: baseline;
16 line-height:1.5em;
35 line-height:1.5em;
17 border: none;
36 border: none;
18 outline: none;
37 outline: none;
19 border-collapse: collapse;
38 border-collapse: collapse;
20 border-spacing: 0;
39 border-spacing: 0;
21 color: @grey2;
40 color: @grey2;
22
41
23 b {
42 b {
24 font-weight: normal;
43 font-weight: normal;
25 }
44 }
26
45
27 em {
46 em {
28 font-weight: bold;
47 font-weight: bold;
29 font-style: normal;
48 font-style: normal;
30 }
49 }
31
50
32 .td-user {
51 .td-user {
33 .rc-user {
52 .rc-user {
34 white-space: nowrap;
53 white-space: nowrap;
35 }
54 }
36 .user-perm-duplicate {
55 .user-perm-duplicate {
37 color: @grey4;
56 color: @grey4;
38 a {
57 a {
39 color: @grey4;
58 color: @grey4;
40 }
59 }
41 }
60 }
42 }
61 }
43
62
44 .td-email {
63 .td-email {
45 white-space: nowrap;
64 white-space: nowrap;
46 }
65 }
47
66
48 th,
67 th,
49 td {
68 td {
50 height: auto;
69 height: auto;
51 max-width: 20%;
70 max-width: 20%;
52 padding: .65em 0 .65em 1em;
71 padding: .65em 0 .65em 1em;
53 vertical-align: middle;
72 vertical-align: middle;
54 border-bottom: @border-thickness solid @grey5;
73 border-bottom: @border-thickness solid @grey5;
55 white-space: normal;
74 white-space: normal;
56
75
57 &.td-radio,
76 &.td-radio,
58 &.td-checkbox {
77 &.td-checkbox {
59 padding-right: 0;
78 padding-right: 0;
60 text-align: center;
79 text-align: center;
61
80
62 input {
81 input {
63 margin: 0 1em;
82 margin: 0 1em;
64 }
83 }
65 }
84 }
66
85
67 &.truncate-wrap {
86 &.truncate-wrap {
68 white-space: nowrap !important;
87 white-space: nowrap !important;
69 }
88 }
70
89
71 pre {
90 pre {
72 margin: 0;
91 margin: 0;
73 }
92 }
74
93
75 .show_more {
94 .show_more {
76 height: inherit;
95 height: inherit;
77 }
96 }
78 }
97 }
79
98
80 .expired td {
99 .expired td {
81 background-color: @grey7;
100 background-color: @grey7;
82 }
101 }
83 .inactive td {
102 .inactive td {
84 background-color: @grey6;
103 background-color: @grey6;
85 }
104 }
86 th {
105 th {
87 text-align: left;
106 text-align: left;
88 font-weight: @text-semibold-weight;
107 font-weight: @text-semibold-weight;
89 font-family: @text-semibold;
108 font-family: @text-semibold;
90 }
109 }
91
110
92 .hl {
111 .hl {
93 td {
112 td {
94 background-color: lighten(@alert4,25%);
113 background-color: lighten(@alert4,25%);
95 }
114 }
96 }
115 }
97
116
98 // Special Data Cell Types
117 // Special Data Cell Types
99 // See style guide for desciptions and examples.
118 // See style guide for desciptions and examples.
100
119
101 td {
120 td {
102
121
103 &.user {
122 &.user {
104 padding-left: 1em;
123 padding-left: 1em;
105 }
124 }
106
125
107 &.td-rss {
126 &.td-rss {
108 width: 20px;
127 width: 20px;
109 min-width: 0;
128 min-width: 0;
110 margin: 0;
129 margin: 0;
111 }
130 }
112
131
113 &.quick_repo_menu {
132 &.quick_repo_menu {
114 width: 15px;
133 width: 15px;
115 text-align: center;
134 text-align: center;
116
135
117 &:hover {
136 &:hover {
118 background-color: @grey5;
137 background-color: @grey5;
119 }
138 }
120 }
139 }
121
140
122 &.td-icon {
141 &.td-icon {
123 min-width: 20px;
142 min-width: 20px;
124 width: 20px;
143 width: 20px;
125 }
144 }
126
145
127 &.td-hash {
146 &.td-hash {
128 min-width: 80px;
147 min-width: 80px;
129 width: 200px;
148 width: 200px;
130
149
131 .obsolete {
150 .obsolete {
132 text-decoration: line-through;
151 text-decoration: line-through;
133 color: lighten(@grey2,25%);
152 color: lighten(@grey2,25%);
134 }
153 }
135 }
154 }
136
155
137 &.td-sha {
156 &.td-sha {
138 white-space: nowrap;
157 white-space: nowrap;
139 }
158 }
140
159
141 &.td-graphbox {
160 &.td-graphbox {
142 width: 100px;
161 width: 100px;
143 max-width: 100px;
162 max-width: 100px;
144 min-width: 100px;
163 min-width: 100px;
145 }
164 }
146
165
147 &.td-time {
166 &.td-time {
148 width: 160px;
167 width: 160px;
149 white-space: nowrap;
168 white-space: nowrap;
150 }
169 }
151
170
152 &.annotate{
171 &.annotate{
153 padding-right: 0;
172 padding-right: 0;
154
173
155 div.annotatediv{
174 div.annotatediv{
156 margin: 0 0.7em;
175 margin: 0 0.7em;
157 }
176 }
158 }
177 }
159
178
160 &.tags-col {
179 &.tags-col {
161 padding-right: 0;
180 padding-right: 0;
162 }
181 }
163
182
164 &.td-description {
183 &.td-description {
165 min-width: 350px;
184 min-width: 350px;
166
185
167 &.truncate, .truncate-wrap {
186 &.truncate, .truncate-wrap {
168 white-space: nowrap;
187 white-space: nowrap;
169 overflow: hidden;
188 overflow: hidden;
170 text-overflow: ellipsis;
189 text-overflow: ellipsis;
171 max-width: 350px;
190 max-width: 350px;
172 }
191 }
173 }
192 }
174
193
175 &.td-grid-name {
194 &.td-grid-name {
176 white-space: nowrap;
195 white-space: nowrap;
177 min-width: 300px;
196 min-width: 300px;
178 }
197 }
179
198
180 &.td-componentname {
199 &.td-componentname {
181 white-space: nowrap;
200 white-space: nowrap;
182 }
201 }
183
202
184 &.td-name {
203 &.td-name {
185
204
186 }
205 }
187
206
188 &.td-journalaction {
207 &.td-journalaction {
189 min-width: 300px;
208 min-width: 300px;
190
209
191 .journal_action_params {
210 .journal_action_params {
192 // waiting for feedback
211 // waiting for feedback
193 }
212 }
194 }
213 }
195
214
196 &.td-active {
215 &.td-active {
197 padding-left: .65em;
216 padding-left: .65em;
198 }
217 }
199
218
200 &.td-issue-tracker-name {
219 &.td-issue-tracker-name {
201 width: 180px;
220 width: 180px;
202 input {
221 input {
203 width: 180px;
222 width: 180px;
204 }
223 }
205
224
206 }
225 }
207
226
208 &.td-issue-tracker-regex {
227 &.td-issue-tracker-regex {
209 white-space: nowrap;
228 white-space: nowrap;
210
229
211 min-width: 300px;
230 min-width: 300px;
212 input {
231 input {
213 min-width: 300px;
232 min-width: 300px;
214 }
233 }
215
234
216 }
235 }
217
236
218 &.td-url {
237 &.td-url {
219 white-space: nowrap;
238 white-space: nowrap;
220 }
239 }
221
240
222 &.td-comments {
241 &.td-comments {
223 min-width: 3em;
242 min-width: 3em;
224 }
243 }
225
244
226 &.td-buttons {
245 &.td-buttons {
227 padding: .3em 0;
246 padding: .3em 0;
228 }
247 }
229 &.td-align-top {
248 &.td-align-top {
230 vertical-align: text-top
249 vertical-align: text-top
231 }
250 }
232 &.td-action {
251 &.td-action {
233 // this is for the remove/delete/edit buttons
252 // this is for the remove/delete/edit buttons
234 padding-right: 0;
253 padding-right: 0;
235 min-width: 95px;
254 min-width: 95px;
236 text-transform: capitalize;
255 text-transform: capitalize;
237
256
238 i {
257 i {
239 display: none;
258 display: none;
240 }
259 }
241 }
260 }
242
261
243 // TODO: lisa: this needs to be cleaned up with the buttons
262 // TODO: lisa: this needs to be cleaned up with the buttons
244 .grid_edit,
263 .grid_edit,
245 .grid_delete {
264 .grid_delete {
246 display: inline-block;
265 display: inline-block;
247 margin: 0 @padding/3 0 0;
266 margin: 0 @padding/3 0 0;
248 font-family: @text-light;
267 font-family: @text-light;
249
268
250 i {
269 i {
251 display: none;
270 display: none;
252 }
271 }
253 }
272 }
254
273
255 .grid_edit + .grid_delete {
274 .grid_edit + .grid_delete {
256 border-left: @border-thickness solid @grey5;
275 border-left: @border-thickness solid @grey5;
257 padding-left: @padding/2;
276 padding-left: @padding/2;
258 }
277 }
259
278
260 &.td-compare {
279 &.td-compare {
261
280
262 input {
281 input {
263 margin-right: 1em;
282 margin-right: 1em;
264 }
283 }
265
284
266 .compare-radio-button {
285 .compare-radio-button {
267 margin: 0 1em 0 0;
286 margin: 0 1em 0 0;
268 }
287 }
269
288
270
289
271 }
290 }
272
291
273 &.td-tags {
292 &.td-tags {
274 padding: .5em 1em .5em 0;
293 padding: .5em 1em .5em 0;
275 width: 140px;
294 width: 140px;
276
295
277 .tag {
296 .tag {
278 margin: 1px;
297 margin: 1px;
279 float: left;
298 float: left;
280 }
299 }
281 }
300 }
282
301
283 .icon-svn, .icon-hg, .icon-git {
302 .icon-svn, .icon-hg, .icon-git {
284 font-size: 1.4em;
303 font-size: 1.4em;
285 }
304 }
286
305
287 &.collapse_commit,
306 &.collapse_commit,
288 &.expand_commit {
307 &.expand_commit {
289 padding-right: 0;
308 padding-right: 0;
290 padding-left: 1em;
309 padding-left: 1em;
291 cursor: pointer;
310 cursor: pointer;
292 width: 20px;
311 width: 20px;
293 }
312 }
294 }
313 }
295
314
296 .perm_admin_row {
315 .perm_admin_row {
297 color: @grey4;
316 color: @grey4;
298 background-color: @grey6;
317 background-color: @grey6;
299 }
318 }
300
319
301 .noborder {
320 .noborder {
302 border: none;
321 border: none;
303
322
304 td {
323 td {
305 border: none;
324 border: none;
306 }
325 }
307 }
326 }
308 }
327 }
328
309 .rctable.audit-log {
329 .rctable.audit-log {
310 td {
330 td {
311 vertical-align: top;
331 vertical-align: top;
312 }
332 }
313 }
333 }
314
334
335
315 // TRUNCATING
336 // TRUNCATING
316 // TODO: lisaq: should this possibly be moved out of tables.less?
337 // TODO: lisaq: should this possibly be moved out of tables.less?
317 // for truncated text
338 // for truncated text
318 // used inside of table cells and in code block headers
339 // used inside of table cells and in code block headers
319 .truncate-wrap {
340 .truncate-wrap {
320 white-space: nowrap !important;
341 white-space: nowrap !important;
321
342
322 //truncated text
343 //truncated text
323 .truncate {
344 .truncate {
324 max-width: 450px;
345 max-width: 450px;
325 width: 300px;
346 width: 300px;
326 overflow: hidden;
347 overflow: hidden;
327 text-overflow: ellipsis;
348 text-overflow: ellipsis;
328 -o-text-overflow: ellipsis;
349 -o-text-overflow: ellipsis;
329 -ms-text-overflow: ellipsis;
350 -ms-text-overflow: ellipsis;
330
351
331 &.autoexpand {
352 &.autoexpand {
332 width: 120px;
353 width: 120px;
333 margin-right: 200px;
354 margin-right: 200px;
334 }
355 }
335 }
356 }
336 &:hover .truncate.autoexpand {
357 &:hover .truncate.autoexpand {
337 overflow: visible;
358 overflow: visible;
338 }
359 }
339
360
340 .tags-truncate {
361 .tags-truncate {
341 width: 150px;
362 width: 150px;
342 height: 22px;
363 height: 22px;
343 overflow: hidden;
364 overflow: hidden;
344
365
345 .tag {
366 .tag {
346 display: inline-block;
367 display: inline-block;
347 }
368 }
348
369
349 &.truncate {
370 &.truncate {
350 height: 22px;
371 height: 22px;
351 max-height:2em;
372 max-height:2em;
352 width: 140px;
373 width: 140px;
353 }
374 }
354 }
375 }
355 }
376 }
356
377
357 .apikeys_wrap {
378 .apikeys_wrap {
358 margin-bottom: @padding;
379 margin-bottom: @padding;
359
380
360 table.rctable td:first-child {
381 table.rctable td:first-child {
361 width: 120px;
382 width: 120px;
362 }
383 }
363 }
384 }
364
385
365
386
366
387
367 // SPECIAL CASES
388 // SPECIAL CASES
368
389
369 // Repository Followers
390 // Repository Followers
370 table.rctable.followers_data {
391 table.rctable.followers_data {
371 width: 75%;
392 width: 75%;
372 margin: 0;
393 margin: 0;
373 }
394 }
374
395
375 // Repository List
396 // Repository List
376 // Group Members List
397 // Group Members List
377 table.rctable.group_members,
398 table.rctable.group_members,
378 table#repo_list_table {
399 table#repo_list_table {
379 min-width: 600px;
400 min-width: 600px;
380 }
401 }
381
402
382 #no_grid_data {
403 #no_grid_data {
383 text-align: center;
404 text-align: center;
384 }
405 }
385
406
386 #grid_data_loading {
407 #grid_data_loading {
387 text-align: center;
408 text-align: center;
388 font-weight: 600;
409 font-weight: 600;
389 font-size: 16px;
410 font-size: 16px;
390 padding: 80px 20px;
411 padding: 80px 20px;
391 }
412 }
392
413
393 // Keyboard mappings
414 // Keyboard mappings
394 table.keyboard-mappings {
415 table.keyboard-mappings {
395 th {
416 th {
396 text-align: left;
417 text-align: left;
397 font-weight: @text-semibold-weight;
418 font-weight: @text-semibold-weight;
398 font-family: @text-semibold;
419 font-family: @text-semibold;
399 }
420 }
400 }
421 }
401
422
402 // Branches, Tags, and Bookmarks
423 // Branches, Tags, and Bookmarks
403 #obj_list_table.dataTable {
424 #obj_list_table.dataTable {
404 td.td-time {
425 td.td-time {
405 padding-right: 1em;
426 padding-right: 1em;
406 }
427 }
407 }
428 }
408
429
409 // User Admin
430 // User Admin
410 .rctable.useremails,
431 .rctable.useremails,
411 .rctable.account_emails {
432 .rctable.account_emails {
412 .tag,
433 .tag,
413 .btn {
434 .btn {
414 float: right;
435 float: right;
415 }
436 }
416 .btn { //to line up with tags
437 .btn { //to line up with tags
417 margin-right: 1.65em;
438 margin-right: 1.65em;
418 }
439 }
419 }
440 }
420
441
421 // User List
442 // User List
422 #user_list_table {
443 #user_list_table {
423
444
424 td.td-user {
445 td.td-user {
425 min-width: 100px;
446 min-width: 100px;
426 }
447 }
427 }
448 }
428
449
429 // Pull Request List Table
430 #pull_request_list_table.dataTable {
431
432 //TODO: lisa: This needs to be removed once the description is adjusted
433 // for using an expand_commit button (see issue 765)
434 td {
435 vertical-align: middle;
436 }
437 }
438
450
439 // Settings (no border)
451 // Settings (no border)
440 table.rctable.dl-settings {
452 table.rctable.dl-settings {
441 td {
453 td {
442 border: none;
454 border: none;
443 vertical-align: baseline;
455 vertical-align: baseline;
444 }
456 }
445 }
457 }
446
458
447
459
448 // Statistics
460 // Statistics
449 table.trending_language_tbl {
461 table.trending_language_tbl {
450 width: 100%;
462 width: 100%;
451 line-height: 1em;
463 line-height: 1em;
452
464
453 td div {
465 td div {
454 overflow: visible;
466 overflow: visible;
455 }
467 }
456 }
468 }
457
469
458 .trending_language_tbl, .trending_language_tbl td {
470 .trending_language_tbl, .trending_language_tbl td {
459 border: 0;
471 border: 0;
460 margin: 0;
472 margin: 0;
461 padding: 0;
473 padding: 0;
462 background: transparent;
474 background: transparent;
463 }
475 }
464
476
465 .trending_language_tbl, .trending_language_tbl tr {
477 .trending_language_tbl, .trending_language_tbl tr {
466 border-spacing: 0 3px;
478 border-spacing: 0 3px;
467 }
479 }
468
480
469 .trending_language {
481 .trending_language {
470 position: relative;
482 position: relative;
471 overflow: hidden;
483 overflow: hidden;
472 color: @text-color;
484 color: @text-color;
473 width: 400px;
485 width: 400px;
474
486
475 .lang-bar {
487 .lang-bar {
476 z-index: 1;
488 z-index: 1;
477 overflow: hidden;
489 overflow: hidden;
478 background-color: @rcblue;
490 background-color: @rcblue;
479 color: #FFF;
491 color: #FFF;
480 text-decoration: none;
492 text-decoration: none;
481 }
493 }
482
494
483 }
495 }
484
496
485 // Changesets
497 // Changesets
486 #changesets.rctable {
498 #changesets.rctable {
487 th {
488 padding: 0 1em 0.65em 0;
489 }
490
499
491 // td must be fixed height for graph
500 // td must be fixed height for graph
492 td {
501 td {
493 height: 32px;
502 height: 32px;
494 padding: 0 1em 0 0;
503 padding: 0 1em 0 0;
495 vertical-align: middle;
504 vertical-align: middle;
496 white-space: nowrap;
505 white-space: nowrap;
497
506
498 &.td-description {
507 &.td-description {
499 white-space: normal;
508 white-space: normal;
500 }
509 }
501
510
502 &.expand_commit {
511 &.expand_commit {
503 padding-right: 0;
512 padding-right: 0;
504 cursor: pointer;
513 cursor: pointer;
505 width: 20px;
514 width: 20px;
506 }
515 }
507 }
516 }
508 }
517 }
509
518
510 // Compare
519 // Compare
511 table.compare_view_commits {
520 table.compare_view_commits {
512 margin-top: @space;
521 margin-top: @space;
513
522
514 td.td-time {
523 td.td-time {
515 padding-left: .5em;
524 padding-left: .5em;
516 }
525 }
517
526
518 // special case to not show hover actions on hidden indicator
527 // special case to not show hover actions on hidden indicator
519 tr.compare_select_hidden:hover {
528 tr.compare_select_hidden:hover {
520 cursor: inherit;
529 cursor: inherit;
521
530
522 td {
531 td {
523 background-color: inherit;
532 background-color: inherit;
524 }
533 }
525 }
534 }
526
535
527 tr:hover {
536 tr:hover {
528 cursor: pointer;
537 cursor: pointer;
529
538
530 td {
539 td {
531 background-color: lighten(@alert4,25%);
540 background-color: lighten(@alert4,25%);
532 }
541 }
533 }
542 }
534
543
535
544
536 }
545 }
537
546
538 .file_history {
547 .file_history {
539 td.td-actions {
548 td.td-actions {
540 text-align: right;
549 text-align: right;
541 }
550 }
542 }
551 }
543
552
544
553
545 // Gist List
554 // Gist List
546 #gist_list_table {
555 #gist_list_table {
547 td {
556 td {
548 vertical-align: middle;
557 vertical-align: middle;
549
558
550 div{
559 div{
551 display: inline-block;
560 display: inline-block;
552 vertical-align: middle;
561 vertical-align: middle;
553 }
562 }
554
563
555 img{
564 img{
556 vertical-align: middle;
565 vertical-align: middle;
557 }
566 }
558
567
559 &.td-expire {
568 &.td-expire {
560 width: 200px;
569 width: 200px;
561 }
570 }
562 &.td-gist-type {
571 &.td-gist-type {
563 width: 100px;
572 width: 100px;
564 }
573 }
565 }
574 }
566 }
575 }
@@ -1,614 +1,618 b''
1 //
1 //
2 // Typography
2 // Typography
3 // modified from Bootstrap
3 // modified from Bootstrap
4 // --------------------------------------------------
4 // --------------------------------------------------
5
5
6 // Base
6 // Base
7 body {
7 body {
8 font-size: @basefontsize;
8 font-size: @basefontsize;
9 font-family: @text-light;
9 font-family: @text-light;
10 letter-spacing: .02em;
10 letter-spacing: .02em;
11 color: @grey2;
11 color: @grey2;
12 }
12 }
13
13
14 #content, label{
14 #content, label{
15 font-size: @basefontsize;
15 font-size: @basefontsize;
16 }
16 }
17
17
18 label {
18 label {
19 color: @grey2;
19 color: @grey2;
20 }
20 }
21
21
22 ::selection { background: @rchighlightblue; }
22 ::selection { background: @rchighlightblue; }
23
23
24 // Headings
24 // Headings
25 // -------------------------
25 // -------------------------
26
26
27 h1, h2, h3, h4, h5, h6,
27 h1, h2, h3, h4, h5, h6,
28 .h1, .h2, .h3, .h4, .h5, .h6 {
28 .h1, .h2, .h3, .h4, .h5, .h6 {
29 margin: 0 0 @textmargin 0;
29 margin: 0 0 @textmargin 0;
30 padding: 0;
30 padding: 0;
31 line-height: 1.8em;
31 line-height: 1.8em;
32 color: @text-color;
32 color: @text-color;
33 a {
33 a {
34 color: @rcblue;
34 color: @rcblue;
35 }
35 }
36 }
36 }
37
37
38 h1, .h1 { font-size: 1.54em; font-weight: @text-bold-weight; font-family: @text-bold; }
38 h1, .h1 { font-size: 1.54em; font-weight: @text-bold-weight; font-family: @text-bold; }
39 h2, .h2 { font-size: 1.23em; font-weight: @text-semibold-weight; font-family: @text-semibold; }
39 h2, .h2 { font-size: 1.23em; font-weight: @text-semibold-weight; font-family: @text-semibold; }
40 h3, .h3 { font-size: 1.23em; font-family: @text-regular; }
40 h3, .h3 { font-size: 1.23em; font-family: @text-regular; }
41 h4, .h4 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
41 h4, .h4 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
42 h5, .h5 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
42 h5, .h5 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
43 h6, .h6 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
43 h6, .h6 { font-size: 1em; font-weight: @text-bold-weight; font-family: @text-bold; }
44
44
45 // Breadcrumbs
45 // Breadcrumbs
46 .breadcrumbs {
46 .breadcrumbs {
47 font-size: @repo-title-fontsize;
47 font-size: @repo-title-fontsize;
48 margin: 0;
48 margin: 0;
49 width: ~"calc(100% - 180px)";
49 width: ~"calc(100% - 180px)";
50 float: left;
50 float: left;
51
51
52 h4 {
52 h4 {
53 font-size: @basefontsize;
53 font-size: @basefontsize;
54 margin-bottom: 15px;
54 margin-bottom: 15px;
55 }
55 }
56 }
56 }
57
57
58 .breadcrumbs_light {
58 .breadcrumbs_light {
59 float:left;
59 float:left;
60 font-size: 1.3em;
60 font-size: 1.3em;
61 line-height: 38px;
61 line-height: 38px;
62 }
62 }
63
63
64 // Body text
64 // Body text
65 // -------------------------
65 // -------------------------
66
66
67 p {
67 p {
68 margin: 0 0 @textmargin 0;
68 margin: 0 0 @textmargin 0;
69 padding: 0;
69 padding: 0;
70 line-height: 2em;
70 line-height: 2em;
71 }
71 }
72
72
73 .lead {
73 .lead {
74 margin-bottom: @textmargin;
74 margin-bottom: @textmargin;
75 font-weight: 300;
75 font-weight: 300;
76 line-height: 1.4;
76 line-height: 1.4;
77
77
78 @media (min-width: @screen-sm-min) {
78 @media (min-width: @screen-sm-min) {
79 font-size: (@basefontsize * 1.5);
79 font-size: (@basefontsize * 1.5);
80 }
80 }
81 }
81 }
82
82
83 a,
83 a,
84 .link {
84 .link {
85 color: @rcblue;
85 color: @rcblue;
86 text-decoration: none;
86 text-decoration: none;
87 outline: none;
87 outline: none;
88 cursor: pointer;
88 cursor: pointer;
89
89
90 &:focus {
90 &:focus {
91 outline: none;
91 outline: none;
92 }
92 }
93
93
94 &:hover {
94 &:hover {
95 color: @rcdarkblue;
95 color: @rcdarkblue;
96 }
96 }
97 }
97 }
98
98
99 img {
99 img {
100 border: none;
100 border: none;
101 outline: none;
101 outline: none;
102 }
102 }
103
103
104 strong {
104 strong {
105 font-weight: @text-bold-weight;
105 font-weight: @text-bold-weight;
106 font-family: @text-bold;
106 font-family: @text-bold;
107 }
107 }
108
108
109 em {
109 em {
110 font-family: @text-italic;
110 font-family: @text-italic;
111 font-style: italic;
111 font-style: italic;
112 }
112 }
113
113
114 strong em,
114 strong em,
115 em strong {
115 em strong {
116 font-style: italic;
116 font-style: italic;
117 font-weight: @text-bold-italic-weight;
117 font-weight: @text-bold-italic-weight;
118 font-family: @text-bold-italic;
118 font-family: @text-bold-italic;
119 }
119 }
120
120
121 //TODO: lisa: b and i are depreciated, but we are still using them in places.
121 //TODO: lisa: b and i are depreciated, but we are still using them in places.
122 // Should probably make some decision whether to keep or lose these.
122 // Should probably make some decision whether to keep or lose these.
123 b {
123 b {
124
124
125 }
125 }
126
126
127 i {
127 i {
128 font-style: normal;
128 font-style: normal;
129 }
129 }
130
130
131 label {
131 label {
132 color: @text-color;
132 color: @text-color;
133
133
134 input[type="checkbox"] {
134 input[type="checkbox"] {
135 margin-right: 1em;
135 margin-right: 1em;
136 }
136 }
137 input[type="radio"] {
137 input[type="radio"] {
138 margin-right: 1em;
138 margin-right: 1em;
139 }
139 }
140 }
140 }
141
141
142 code,
142 code,
143 .code {
143 .code {
144 font-size: .95em;
144 font-size: .95em;
145 font-family: @text-code;
145 font-family: @text-code;
146 color: @grey3;
146 color: @grey3;
147
147
148 a {
148 a {
149 color: lighten(@rcblue,10%)
149 color: lighten(@rcblue,10%)
150 }
150 }
151 }
151 }
152
152
153 pre {
153 pre {
154 margin: 0;
154 margin: 0;
155 padding: 0;
155 padding: 0;
156 border: 0;
156 border: 0;
157 outline: 0;
157 outline: 0;
158 font-size: @basefontsize*.95;
158 font-size: @basefontsize*.95;
159 line-height: 1.4em;
159 line-height: 1.4em;
160 font-family: @text-code;
160 font-family: @text-code;
161 color: @grey3;
161 color: @grey3;
162 }
162 }
163
163
164 // Emphasis & misc
164 // Emphasis & misc
165 // -------------------------
165 // -------------------------
166 .discreet {
166 .discreet {
167 color: @grey4;
167 color: @grey4;
168 font-size: 85%;
168 font-size: 85%;
169 font-weight: normal;
169 font-weight: normal;
170
170
171 a {
171 a {
172 color: @grey4;
172 color: @grey4;
173
173
174 &:hover {
174 &:hover {
175 color: @rcdarkblue;
175 color: @rcdarkblue;
176 }
176 }
177 }
177 }
178 }
178 }
179
179
180 small,
180 small,
181 .small {
181 .small {
182 font-size: 75%;
182 font-size: 75%;
183 font-weight: normal;
183 font-weight: normal;
184 line-height: 1em;
184 line-height: 1em;
185 }
185 }
186
186
187 mark,
187 mark,
188 .mark {
188 .mark {
189 padding: .2em;
189 padding: .2em;
190 }
190 }
191
191
192 // Alignment
192 // Alignment
193 .text-left { text-align: left; }
193 .text-left { text-align: left; }
194 .text-right { text-align: right; }
194 .text-right { text-align: right; }
195 .text-center { text-align: center; }
195 .text-center { text-align: center; }
196 .text-justify { text-align: justify; }
196 .text-justify { text-align: justify; }
197 .text-nowrap { white-space: nowrap; }
197 .text-nowrap { white-space: nowrap; }
198
198
199 // Transformation
199 // Transformation
200 .text-lowercase { text-transform: lowercase; }
200 .text-lowercase { text-transform: lowercase; }
201 .text-uppercase { text-transform: uppercase; }
201 .text-uppercase { text-transform: uppercase; }
202 .text-capitalize { text-transform: capitalize; }
202 .text-capitalize { text-transform: capitalize; }
203
203
204 // Contextual colors
204 // Contextual colors
205 .text-muted {
205 .text-muted {
206 color: @grey4;
206 color: @grey4;
207 }
207 }
208 .text-primary {
208 .text-primary {
209 color: @rcblue;
209 color: @rcblue;
210 }
210 }
211 .text-success {
211 .text-success {
212 color: @alert1;
212 color: @alert1;
213 }
213 }
214 .text-info {
214 .text-info {
215 color: @alert4;
215 color: @alert4;
216 }
216 }
217 .text-warning {
217 .text-warning {
218 color: @alert3;
218 color: @alert3;
219 }
219 }
220 .text-danger {
220 .text-danger {
221 color: @alert2;
221 color: @alert2;
222 }
222 }
223
223
224 // Contextual backgrounds
224 // Contextual backgrounds
225 .bg-primary {
225 .bg-primary {
226 background-color: white;
226 background-color: white;
227 }
227 }
228 .bg-success {
228 .bg-success {
229 background-color: @alert1;
229 background-color: @alert1;
230 }
230 }
231 .bg-info {
231 .bg-info {
232 background-color: @alert4;
232 background-color: @alert4;
233 }
233 }
234 .bg-warning {
234 .bg-warning {
235 background-color: @alert3;
235 background-color: @alert3;
236 }
236 }
237 .bg-danger {
237 .bg-danger {
238 background-color: @alert2;
238 background-color: @alert2;
239 }
239 }
240
240
241
241
242 // Page header
242 // Page header
243 // -------------------------
243 // -------------------------
244
244
245 .page-header {
245 .page-header {
246 margin: @pagepadding 0 @textmargin;
246 margin: @pagepadding 0 @textmargin;
247 border-bottom: @border-thickness solid @grey5;
247 border-bottom: @border-thickness solid @grey5;
248 }
248 }
249
249
250 .title {
250 .title {
251 clear: both;
251 clear: both;
252 float: left;
252 float: left;
253 width: 100%;
253 width: 100%;
254 margin: @pagepadding/2 0 @pagepadding/4;
254 margin: @pagepadding/2 0 @pagepadding/4;
255 min-height: 25px;
255 min-height: 25px;
256
256
257 .breadcrumbs {
257 .breadcrumbs {
258 float: left;
258 float: left;
259 clear: both;
259 clear: both;
260 width: 700px;
260 width: 700px;
261 margin: 0;
261 margin: 0;
262
262
263 .q_filter_box {
263 .q_filter_box {
264 margin-right: @padding;
264 margin-right: @padding;
265 }
265 }
266 }
266 }
267
267
268 h1 a {
268 h1 a {
269 color: @rcblue;
269 color: @rcblue;
270 }
270 }
271
271
272 input{
272 input{
273 margin-right: @padding;
273 margin-right: @padding;
274 }
274 }
275
275
276 h5, .h5 {
276 h5, .h5 {
277 color: @grey1;
277 color: @grey1;
278 margin-bottom: @space;
278 margin-bottom: @space;
279
279
280 span {
280 span {
281 display: inline-block;
281 display: inline-block;
282 }
282 }
283 }
283 }
284
284
285 p {
285 p {
286 margin-bottom: 0;
286 margin-bottom: 0;
287 }
287 }
288
288
289 .links {
289 .links {
290 float: right;
290 float: right;
291 display: inline;
291 display: inline;
292 margin: 0;
292 margin: 0;
293 padding-left: 0;
293 padding-left: 0;
294 list-style: none;
294 list-style: none;
295 text-align: right;
295 text-align: right;
296
296
297 li {
297 li {
298 float: right;
298 float: right;
299 list-style-type: none;
299 list-style-type: none;
300 }
300 }
301
301
302 a {
302 a {
303 display: inline-block;
303 display: inline-block;
304 margin-left: @textmargin/2;
304 margin-left: @textmargin/2;
305 }
305 }
306 }
306 }
307
307
308 .title-content {
308 .title-content {
309
309
310 &.repo-title {
310 &.repo-title {
311 float: none
311 float: none
312 }
312 }
313
313
314 float: left;
314 float: left;
315 margin: 0;
315 margin: 0;
316 padding: 0;
316 padding: 0;
317
317
318 & + .breadcrumbs {
318 & + .breadcrumbs {
319 margin-top: @padding;
319 margin-top: @padding;
320 }
320 }
321
321
322 & + .links {
322 & + .links {
323 margin-top: -@button-padding;
323 margin-top: -@button-padding;
324
324
325 & + .breadcrumbs {
325 & + .breadcrumbs {
326 margin-top: @padding;
326 margin-top: @padding;
327 }
327 }
328 }
328 }
329
329
330 .repo-group-desc {
330 .repo-group-desc {
331 padding: 8px 0px 0px 0px;
331 padding: 8px 0px 0px 0px;
332 }
332 }
333 }
333 }
334
334
335 .title-main {
335 .title-main {
336 font-size: @repo-title-fontsize;
336 font-size: @repo-title-fontsize;
337 }
337 }
338
338
339 .title-description {
339 .title-description {
340 margin-top: .5em;
340 margin-top: .5em;
341 }
341 }
342
342
343 .q_filter_box {
343 .q_filter_box {
344 width: 200px;
344 width: 200px;
345 }
345 }
346
346
347 #obj_count {
348 line-height: 34px;
349 }
350
347 }
351 }
348
352
349 #readme .title {
353 #readme .title {
350 text-transform: none;
354 text-transform: none;
351 }
355 }
352
356
353 // Lists
357 // Lists
354 // -------------------------
358 // -------------------------
355
359
356 // Unordered and Ordered lists
360 // Unordered and Ordered lists
357 ul,
361 ul,
358 ol {
362 ol {
359 margin-top: 0;
363 margin-top: 0;
360 margin-bottom: @textmargin;
364 margin-bottom: @textmargin;
361 ul,
365 ul,
362 ol {
366 ol {
363 margin-bottom: 0;
367 margin-bottom: 0;
364 }
368 }
365 }
369 }
366
370
367 li {
371 li {
368 line-height: 2em;
372 line-height: 2em;
369 }
373 }
370
374
371 ul li {
375 ul li {
372 position: relative;
376 position: relative;
373 list-style-type: disc;
377 list-style-type: disc;
374
378
375 p:first-child {
379 p:first-child {
376 display:inline;
380 display:inline;
377 }
381 }
378 }
382 }
379
383
380 // List options
384 // List options
381
385
382 // Unstyled keeps list items block level, just removes default browser padding and list-style
386 // Unstyled keeps list items block level, just removes default browser padding and list-style
383 .list-unstyled {
387 .list-unstyled {
384 padding-left: 0;
388 padding-left: 0;
385 list-style: none;
389 list-style: none;
386 li:before { content: none; }
390 li:before { content: none; }
387 }
391 }
388
392
389 // Inline turns list items into inline-block
393 // Inline turns list items into inline-block
390 .list-inline {
394 .list-inline {
391 .list-unstyled();
395 .list-unstyled();
392 margin-left: -5px;
396 margin-left: -5px;
393
397
394 > li {
398 > li {
395 display: inline-block;
399 display: inline-block;
396 padding-left: 5px;
400 padding-left: 5px;
397 padding-right: 5px;
401 padding-right: 5px;
398 }
402 }
399 }
403 }
400
404
401 // Description Lists
405 // Description Lists
402
406
403 dl {
407 dl {
404 margin-top: 0; // Remove browser default
408 margin-top: 0; // Remove browser default
405 margin-bottom: @textmargin;
409 margin-bottom: @textmargin;
406 }
410 }
407
411
408 dt,
412 dt,
409 dd {
413 dd {
410 line-height: 1.4em;
414 line-height: 1.4em;
411 }
415 }
412
416
413 dt {
417 dt {
414 margin: @textmargin 0 0 0;
418 margin: @textmargin 0 0 0;
415 font-weight: @text-bold-weight;
419 font-weight: @text-bold-weight;
416 font-family: @text-bold;
420 font-family: @text-bold;
417 }
421 }
418
422
419 dd {
423 dd {
420 margin-left: 0; // Undo browser default
424 margin-left: 0; // Undo browser default
421 }
425 }
422
426
423 // Horizontal description lists
427 // Horizontal description lists
424 // Defaults to being stacked without any of the below styles applied, until the
428 // Defaults to being stacked without any of the below styles applied, until the
425 // grid breakpoint is reached (default of ~768px).
429 // grid breakpoint is reached (default of ~768px).
426 // These are used in forms as well; see style guide.
430 // These are used in forms as well; see style guide.
427 // TODO: lisa: These should really not be used in forms.
431 // TODO: lisa: These should really not be used in forms.
428
432
429 .dl-horizontal {
433 .dl-horizontal {
430
434
431 overflow: hidden;
435 overflow: hidden;
432 margin-bottom: @space;
436 margin-bottom: @space;
433
437
434 dt, dd {
438 dt, dd {
435 float: left;
439 float: left;
436 margin: 5px 0 5px 0;
440 margin: 5px 0 5px 0;
437 }
441 }
438
442
439 dt {
443 dt {
440 clear: left;
444 clear: left;
441 width: @label-width - @form-vertical-margin;
445 width: @label-width - @form-vertical-margin;
442 }
446 }
443
447
444 dd {
448 dd {
445 &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
449 &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
446 margin-left: @form-vertical-margin;
450 margin-left: @form-vertical-margin;
447 max-width: @form-max-width - (@label-width - @form-vertical-margin) - @form-vertical-margin;
451 max-width: @form-max-width - (@label-width - @form-vertical-margin) - @form-vertical-margin;
448 }
452 }
449
453
450 pre {
454 pre {
451 margin: 0;
455 margin: 0;
452 }
456 }
453
457
454 &.settings {
458 &.settings {
455 dt {
459 dt {
456 text-align: left;
460 text-align: left;
457 }
461 }
458 }
462 }
459
463
460 @media (min-width: 768px) {
464 @media (min-width: 768px) {
461 dt {
465 dt {
462 float: left;
466 float: left;
463 width: 185px;
467 width: 185px;
464 clear: left;
468 clear: left;
465 text-align: right;
469 text-align: right;
466 }
470 }
467 dd {
471 dd {
468 margin-left: 20px;
472 margin-left: 20px;
469 }
473 }
470 }
474 }
471
475
472 &.dt-300 {
476 &.dt-300 {
473 dt {
477 dt {
474 width: 300px;
478 width: 300px;
475 }
479 }
476 }
480 }
477
481
478 &.dt-400 {
482 &.dt-400 {
479 dt {
483 dt {
480 width: 400px;
484 width: 400px;
481 }
485 }
482 }
486 }
483
487
484 &.dt-500 {
488 &.dt-500 {
485 dt {
489 dt {
486 width: 500px;
490 width: 500px;
487 }
491 }
488 }
492 }
489
493
490 &.dt-600 {
494 &.dt-600 {
491 dt {
495 dt {
492 width: 600px;
496 width: 600px;
493 }
497 }
494 }
498 }
495
499
496 &.dt-700 {
500 &.dt-700 {
497 dt {
501 dt {
498 width: 700px;
502 width: 700px;
499 }
503 }
500 }
504 }
501
505
502 &.dt-800 {
506 &.dt-800 {
503 dt {
507 dt {
504 width: 800px;
508 width: 800px;
505 }
509 }
506 }
510 }
507 }
511 }
508
512
509
513
510 // Misc
514 // Misc
511 // -------------------------
515 // -------------------------
512
516
513 // Abbreviations and acronyms
517 // Abbreviations and acronyms
514 abbr[title],
518 abbr[title],
515 abbr[data-original-title] {
519 abbr[data-original-title] {
516 cursor: help;
520 cursor: help;
517 border-bottom: @border-thickness dotted @grey4;
521 border-bottom: @border-thickness dotted @grey4;
518 }
522 }
519 .initialism {
523 .initialism {
520 font-size: 90%;
524 font-size: 90%;
521 text-transform: uppercase;
525 text-transform: uppercase;
522 }
526 }
523
527
524 // Blockquotes
528 // Blockquotes
525 blockquote {
529 blockquote {
526 padding: 1em 2em;
530 padding: 1em 2em;
527 margin: 0 0 2em;
531 margin: 0 0 2em;
528 font-size: @basefontsize;
532 font-size: @basefontsize;
529 border-left: 2px solid @grey6;
533 border-left: 2px solid @grey6;
530
534
531 p,
535 p,
532 ul,
536 ul,
533 ol {
537 ol {
534 &:last-child {
538 &:last-child {
535 margin-bottom: 0;
539 margin-bottom: 0;
536 }
540 }
537 }
541 }
538
542
539 footer,
543 footer,
540 small,
544 small,
541 .small {
545 .small {
542 display: block;
546 display: block;
543 font-size: 80%;
547 font-size: 80%;
544
548
545 &:before {
549 &:before {
546 content: '\2014 \00A0'; // em dash, nbsp
550 content: '\2014 \00A0'; // em dash, nbsp
547 }
551 }
548 }
552 }
549 }
553 }
550
554
551 // Opposite alignment of blockquote
555 // Opposite alignment of blockquote
552 //
556 //
553 .blockquote-reverse,
557 .blockquote-reverse,
554 blockquote.pull-right {
558 blockquote.pull-right {
555 padding-right: 15px;
559 padding-right: 15px;
556 padding-left: 0;
560 padding-left: 0;
557 border-right: 5px solid @grey6;
561 border-right: 5px solid @grey6;
558 border-left: 0;
562 border-left: 0;
559 text-align: right;
563 text-align: right;
560
564
561 // Account for citation
565 // Account for citation
562 footer,
566 footer,
563 small,
567 small,
564 .small {
568 .small {
565 &:before { content: ''; }
569 &:before { content: ''; }
566 &:after {
570 &:after {
567 content: '\00A0 \2014'; // nbsp, em dash
571 content: '\00A0 \2014'; // nbsp, em dash
568 }
572 }
569 }
573 }
570 }
574 }
571
575
572 // Addresses
576 // Addresses
573 address {
577 address {
574 margin-bottom: 2em;
578 margin-bottom: 2em;
575 font-style: normal;
579 font-style: normal;
576 line-height: 1.8em;
580 line-height: 1.8em;
577 }
581 }
578
582
579 .error-message {
583 .error-message {
580 display: block;
584 display: block;
581 margin: @padding/3 0;
585 margin: @padding/3 0;
582 color: @alert2;
586 color: @alert2;
583 }
587 }
584
588
585 .issue-tracker-link {
589 .issue-tracker-link {
586 color: @rcblue;
590 color: @rcblue;
587 }
591 }
588
592
589 .info_text{
593 .info_text{
590 font-size: @basefontsize;
594 font-size: @basefontsize;
591 color: @grey4;
595 color: @grey4;
592 font-family: @text-regular;
596 font-family: @text-regular;
593 }
597 }
594
598
595 .help-block-inline {
599 .help-block-inline {
596 margin: 0 !important;
600 margin: 0 !important;
597 }
601 }
598
602
599 // help block text
603 // help block text
600 .help-block {
604 .help-block {
601 display: block;
605 display: block;
602 margin: 0 0 @padding;
606 margin: 0 0 @padding;
603 color: @grey4;
607 color: @grey4;
604 font-family: @text-light;
608 font-family: @text-light;
605 &.pre-formatting {
609 &.pre-formatting {
606 white-space: pre-wrap;
610 white-space: pre-wrap;
607 }
611 }
608 }
612 }
609
613
610 .error-message {
614 .error-message {
611 display: block;
615 display: block;
612 margin: @padding/3 0;
616 margin: @padding/3 0;
613 color: @alert2;
617 color: @alert2;
614 }
618 }
@@ -1,211 +1,212 b''
1 // # Copyright (C) 2016-2020 RhodeCode GmbH
1 // # Copyright (C) 2016-2020 RhodeCode GmbH
2 // #
2 // #
3 // # This program is free software: you can redistribute it and/or modify
3 // # This program is free software: you can redistribute it and/or modify
4 // # it under the terms of the GNU Affero General Public License, version 3
4 // # it under the terms of the GNU Affero General Public License, version 3
5 // # (only), as published by the Free Software Foundation.
5 // # (only), as published by the Free Software Foundation.
6 // #
6 // #
7 // # This program is distributed in the hope that it will be useful,
7 // # This program is distributed in the hope that it will be useful,
8 // # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 // # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 // # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // # GNU General Public License for more details.
10 // # GNU General Public License for more details.
11 // #
11 // #
12 // # You should have received a copy of the GNU Affero General Public License
12 // # You should have received a copy of the GNU Affero General Public License
13 // # along with this program. If not, see <http://www.gnu.org/licenses/>.
13 // # along with this program. If not, see <http://www.gnu.org/licenses/>.
14 // #
14 // #
15 // # This program is dual-licensed. If you wish to learn more about the
15 // # This program is dual-licensed. If you wish to learn more about the
16 // # RhodeCode Enterprise Edition, including its added features, Support services,
16 // # RhodeCode Enterprise Edition, including its added features, Support services,
17 // # and proprietary license terms, please see https://rhodecode.com/licenses/
17 // # and proprietary license terms, please see https://rhodecode.com/licenses/
18
18
19
19
20 var CommitsController = function () {
20 var CommitsController = function () {
21 var self = this;
21 var self = this;
22 this.$graphCanvas = $('#graph_canvas');
22 this.$graphCanvas = $('#graph_canvas');
23 this.$commitCounter = $('#commit-counter');
23 this.$commitCounter = $('#commit-counter');
24
24
25 this.getCurrentGraphData = function () {
25 this.getCurrentGraphData = function () {
26 // raw form
26 // raw form
27 return self.$graphCanvas.data('commits');
27 return self.$graphCanvas.data('commits');
28 };
28 };
29
29
30 this.setLabelText = function (graphData) {
30 this.setLabelText = function (graphData) {
31 var shown = $('.commit_hash').length;
31 var shown = $('.commit_hash').length;
32 var total = self.$commitCounter.data('total');
32 var total = self.$commitCounter.data('total');
33
33
34 if (shown == 1) {
34 if (shown == 1) {
35 var text = _gettext('showing {0} out of {1} commit').format(shown, total);
35 var text = _gettext('showing {0} out of {1} commit').format(shown, total);
36 } else {
36 } else {
37 var text = _gettext('showing {0} out of {1} commits').format(shown, total);
37 var text = _gettext('showing {0} out of {1} commits').format(shown, total);
38 }
38 }
39 self.$commitCounter.html(text)
39 self.$commitCounter.html(text)
40 };
40 };
41
41
42 this.reloadGraph = function (chunk) {
42 this.reloadGraph = function (chunk) {
43 chunk = chunk || 'next';
43 chunk = chunk || 'next';
44
44
45 // reset state on re-render !
45 // reset state on re-render !
46 self.$graphCanvas.html('');
46 self.$graphCanvas.html('');
47
47
48 var edgeData = $("[data-graph]").data('graph') || this.$graphCanvas.data('graph') || [];
48 var edgeData = $("[data-graph]").data('graph') || this.$graphCanvas.data('graph') || [];
49 var prev_link = $('.load-more-commits').find('.prev-commits').get(0);
49 var prev_link = $('.load-more-commits').find('.prev-commits').get(0);
50 var next_link = $('.load-more-commits').find('.next-commits').get(0);
50 var next_link = $('.load-more-commits').find('.next-commits').get(0);
51
51
52 // Determine max number of edges per row in graph
52 // Determine max number of edges per row in graph
53 var edgeCount = 1;
53 var edgeCount = 1;
54 $.each(edgeData, function (i, item) {
54 $.each(edgeData, function (i, item) {
55 $.each(item[2], function (key, value) {
55 $.each(item[2], function (key, value) {
56 if (value[1] > edgeCount) {
56 if (value[1] > edgeCount) {
57 edgeCount = value[1];
57 edgeCount = value[1];
58 }
58 }
59 });
59 });
60 });
60 });
61
61
62 if (prev_link && next_link) {
62 if (prev_link && next_link) {
63 var graph_padding = -64;
63 var graph_padding = -64;
64 }
64 }
65 else if (next_link) {
65 else if (next_link) {
66 var graph_padding = -32;
66 var graph_padding = -32;
67 } else {
67 } else {
68 var graph_padding = 0;
68 var graph_padding = 0;
69 }
69 }
70
70
71 var x_step = Math.min(10, Math.floor(86 / edgeCount));
71 var x_step = Math.min(10, Math.floor(86 / edgeCount));
72 var height = $('#changesets').find('.commits-range').height() + graph_padding;
72 var height = $('#changesets').find('.commits-range').height() + graph_padding;
73 var graph_options = {
73 var graph_options = {
74 width: 100,
74 width: 100,
75 height: height,
75 height: height,
76 x_step: x_step,
76 x_step: x_step,
77 y_step: 42,
77 y_step: 42,
78 dotRadius: 3.5,
78 dotRadius: 3.8,
79 lineWidth: 2.5
79 lineWidth: 2.8
80 };
80 };
81
81
82 var prevCommitsData = this.$graphCanvas.data('commits') || [];
82 var prevCommitsData = this.$graphCanvas.data('commits') || [];
83 var nextCommitsData = $("[data-graph]").data('commits') || [];
83 var nextCommitsData = $("[data-graph]").data('commits') || [];
84
84
85 if (chunk == 'next') {
85 if (chunk == 'next') {
86 var commitData = $.merge(prevCommitsData, nextCommitsData);
86 var commitData = $.merge(prevCommitsData, nextCommitsData);
87 } else {
87 } else {
88 var commitData = $.merge(nextCommitsData, prevCommitsData);
88 var commitData = $.merge(nextCommitsData, prevCommitsData);
89 }
89 }
90
90
91 this.$graphCanvas.data('graph', edgeData);
91 this.$graphCanvas.data('graph', edgeData);
92 this.$graphCanvas.data('commits', commitData);
92 this.$graphCanvas.data('commits', commitData);
93
93
94 // destroy dynamic loaded graph
94 // destroy dynamic loaded graph
95 $("[data-graph]").remove();
95 $("[data-graph]").remove();
96
96
97 this.$graphCanvas.commits(graph_options);
97 this.$graphCanvas.commits(graph_options);
98
98
99 this.setLabelText(edgeData);
99 this.setLabelText(edgeData);
100
100
101 var padding = 90;
101 // main padding from top, aligns the first dot graph
102 var padding = 100;
102 if (prev_link) {
103 if (prev_link) {
103 padding += 34;
104 padding += 34;
105 }
104
106
105 }
106 $('#graph_nodes').css({'padding-top': padding});
107 $('#graph_nodes').css({'padding-top': padding});
107
108
108 $.each($('.message.truncate'), function(idx, value) {
109 $.each($('.message.truncate'), function(idx, value) {
109 if(!(value.offsetWidth < value.scrollWidth)){
110 if(!(value.offsetWidth < value.scrollWidth)){
110 var expandTd = $(this).closest('td').siblings('.expand_commit');
111 var expandTd = $(this).closest('td').siblings('.expand_commit');
111 expandTd.find('i').hide();
112 expandTd.find('i').hide();
112 expandTd.removeAttr('title');
113 expandTd.removeAttr('title');
113 expandTd.removeClass('expand_commit');
114 expandTd.removeClass('expand_commit');
114 }
115 }
115 });
116 });
116
117
117 };
118 };
118
119
119 this.getChunkUrl = function (page, chunk, branch, commit_id, f_path) {
120 this.getChunkUrl = function (page, chunk, branch, commit_id, f_path) {
120 var urlData = {
121 var urlData = {
121 'repo_name': templateContext.repo_name,
122 'repo_name': templateContext.repo_name,
122 'page': page,
123 'page': page,
123 'chunk': chunk
124 'chunk': chunk
124 };
125 };
125
126
126 if (branch !== undefined && branch !== '') {
127 if (branch !== undefined && branch !== '') {
127 urlData['branch'] = branch;
128 urlData['branch'] = branch;
128 }
129 }
129 if (commit_id !== undefined && commit_id !== '') {
130 if (commit_id !== undefined && commit_id !== '') {
130 urlData['commit_id'] = commit_id;
131 urlData['commit_id'] = commit_id;
131 }
132 }
132 if (f_path !== undefined && f_path !== '') {
133 if (f_path !== undefined && f_path !== '') {
133 urlData['f_path'] = f_path;
134 urlData['f_path'] = f_path;
134 }
135 }
135
136
136 if (urlData['commit_id'] && urlData['f_path']) {
137 if (urlData['commit_id'] && urlData['f_path']) {
137 return pyroutes.url('repo_commits_elements_file', urlData);
138 return pyroutes.url('repo_commits_elements_file', urlData);
138 }
139 }
139 else {
140 else {
140 return pyroutes.url('repo_commits_elements', urlData);
141 return pyroutes.url('repo_commits_elements', urlData);
141 }
142 }
142
143
143 };
144 };
144
145
145 this.loadNext = function (node, page, branch, commit_id, f_path) {
146 this.loadNext = function (node, page, branch, commit_id, f_path) {
146 var loadUrl = this.getChunkUrl(page, 'next', branch, commit_id, f_path);
147 var loadUrl = this.getChunkUrl(page, 'next', branch, commit_id, f_path);
147 var postData = {'graph': JSON.stringify(this.getCurrentGraphData())};
148 var postData = {'graph': JSON.stringify(this.getCurrentGraphData())};
148 $(node).html('loading...').addClass('disabled').css({'cursor':'default'});
149 $(node).html('loading...').addClass('disabled').css({'cursor':'default'});
149 $.post(loadUrl, postData, function (data) {
150 $.post(loadUrl, postData, function (data) {
150 $(node).closest('tbody').append(data);
151 $(node).closest('tbody').append(data);
151 $(node).closest('td').remove();
152 $(node).closest('td').remove();
152 self.reloadGraph('next');
153 self.reloadGraph('next');
153 })
154 })
154 };
155 };
155
156
156 this.loadPrev = function (node, page, branch, commit_id, f_path) {
157 this.loadPrev = function (node, page, branch, commit_id, f_path) {
157 var loadUrl = this.getChunkUrl(page, 'prev', branch, commit_id, f_path);
158 var loadUrl = this.getChunkUrl(page, 'prev', branch, commit_id, f_path);
158 var postData = {'graph': JSON.stringify(this.getCurrentGraphData())};
159 var postData = {'graph': JSON.stringify(this.getCurrentGraphData())};
159 $(node).html('loading...').addClass('disabled').css({'cursor':'default'});
160 $(node).html('loading...').addClass('disabled').css({'cursor':'default'});
160 $.post(loadUrl, postData, function (data) {
161 $.post(loadUrl, postData, function (data) {
161 $(node).closest('tbody').prepend(data);
162 $(node).closest('tbody').prepend(data);
162 $(node).closest('td').remove();
163 $(node).closest('td').remove();
163 self.reloadGraph('prev');
164 self.reloadGraph('prev');
164 })
165 })
165 };
166 };
166
167
167 this.expandCommit = function (node, reloadGraph) {
168 this.expandCommit = function (node, reloadGraph) {
168 reloadGraph = reloadGraph || false;
169 reloadGraph = reloadGraph || false;
169
170
170 var target_expand = $(node);
171 var target_expand = $(node);
171 var cid = target_expand.data('commitId');
172 var cid = target_expand.data('commitId');
172
173
173 if (target_expand.hasClass('open')) {
174 if (target_expand.hasClass('open')) {
174 $('#c-' + cid).css({
175 $('#c-' + cid).css({
175 'height': '1.5em',
176 'height': '1.5em',
176 'white-space': 'nowrap',
177 'white-space': 'nowrap',
177 'text-overflow': 'ellipsis',
178 'text-overflow': 'ellipsis',
178 'overflow': 'hidden'
179 'overflow': 'hidden'
179 });
180 });
180 $('#t-' + cid).css({
181 $('#t-' + cid).css({
181 'height': 'auto',
182 'height': 'auto',
182 'line-height': '.9em',
183 'line-height': '.9em',
183 'text-overflow': 'ellipsis',
184 'text-overflow': 'ellipsis',
184 'overflow': 'hidden',
185 'overflow': 'hidden',
185 'white-space': 'nowrap'
186 'white-space': 'nowrap'
186 });
187 });
187 target_expand.removeClass('open');
188 target_expand.removeClass('open');
188 }
189 }
189 else {
190 else {
190 $('#c-' + cid).css({
191 $('#c-' + cid).css({
191 'height': 'auto',
192 'height': 'auto',
192 'white-space': 'pre-line',
193 'white-space': 'pre-line',
193 'text-overflow': 'initial',
194 'text-overflow': 'initial',
194 'overflow': 'visible'
195 'overflow': 'visible'
195 });
196 });
196 $('#t-' + cid).css({
197 $('#t-' + cid).css({
197 'height': 'auto',
198 'height': 'auto',
198 'max-height': 'none',
199 'max-height': 'none',
199 'text-overflow': 'initial',
200 'text-overflow': 'initial',
200 'overflow': 'visible',
201 'overflow': 'visible',
201 'white-space': 'normal'
202 'white-space': 'normal'
202 });
203 });
203 target_expand.addClass('open');
204 target_expand.addClass('open');
204 }
205 }
205
206
206 if (reloadGraph) {
207 if (reloadGraph) {
207 // redraw the graph
208 // redraw the graph
208 self.reloadGraph();
209 self.reloadGraph();
209 }
210 }
210 }
211 }
211 };
212 };
@@ -1,144 +1,144 b''
1 <%namespace name="base" file="/base/base.mako"/>
1 <%namespace name="base" file="/base/base.mako"/>
2
2
3 <div class="panel panel-default">
3 <div class="panel panel-default">
4 <div class="panel-body">
4 <div class="panel-body">
5 <div style="height: 35px">
5 <div style="height: 35px">
6 <%
6 <%
7 selected_filter = 'all'
7 selected_filter = 'all'
8 if c.closed:
8 if c.closed:
9 selected_filter = 'all_closed'
9 selected_filter = 'all_closed'
10 %>
10 %>
11
11
12 <ul class="button-links">
12 <ul class="button-links">
13 <li class="btn ${h.is_active('all', selected_filter)}"><a href="${h.route_path('my_account_pullrequests')}">${_('All')}</a></li>
13 <li class="btn ${h.is_active('all', selected_filter)}"><a href="${h.route_path('my_account_pullrequests')}">${_('All')}</a></li>
14 <li class="btn ${h.is_active('all_closed', selected_filter)}"><a href="${h.route_path('my_account_pullrequests', _query={'pr_show_closed':1})}">${_('All + Closed')}</a></li>
14 <li class="btn ${h.is_active('all_closed', selected_filter)}"><a href="${h.route_path('my_account_pullrequests', _query={'pr_show_closed':1})}">${_('All + Closed')}</a></li>
15 </ul>
15 </ul>
16
16
17 <div class="grid-quick-filter">
17 <div class="grid-quick-filter">
18 <ul class="grid-filter-box">
18 <ul class="grid-filter-box">
19 <li class="grid-filter-box-icon">
19 <li class="grid-filter-box-icon">
20 <i class="icon-search"></i>
20 <i class="icon-search"></i>
21 </li>
21 </li>
22 <li class="grid-filter-box-input">
22 <li class="grid-filter-box-input">
23 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
23 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
24 </li>
24 </li>
25 </ul>
25 </ul>
26 </div>
26 </div>
27 </div>
27 </div>
28 </div>
28 </div>
29 </div>
29 </div>
30
30
31 <div class="panel panel-default">
31 <div class="panel panel-default">
32 <div class="panel-heading">
32 <div class="panel-heading">
33 <h3 class="panel-title">${_('Pull Requests You Participate In')}</h3>
33 <h3 class="panel-title">${_('Pull Requests You Participate In')}</h3>
34 </div>
34 </div>
35 <div class="panel-body panel-body-min-height">
35 <div class="panel-body panel-body-min-height">
36 <table id="pull_request_list_table" class="display"></table>
36 <table id="pull_request_list_table" class="rctable table-bordered"></table>
37 </div>
37 </div>
38 </div>
38 </div>
39
39
40 <script type="text/javascript">
40 <script type="text/javascript">
41 $(document).ready(function () {
41 $(document).ready(function () {
42
42
43 var $pullRequestListTable = $('#pull_request_list_table');
43 var $pullRequestListTable = $('#pull_request_list_table');
44
44
45 // participating object list
45 // participating object list
46 $pullRequestListTable.DataTable({
46 $pullRequestListTable.DataTable({
47 processing: true,
47 processing: true,
48 serverSide: true,
48 serverSide: true,
49 ajax: {
49 ajax: {
50 "url": "${h.route_path('my_account_pullrequests_data')}",
50 "url": "${h.route_path('my_account_pullrequests_data')}",
51 "data": function (d) {
51 "data": function (d) {
52 d.closed = "${c.closed}";
52 d.closed = "${c.closed}";
53 },
53 },
54 "dataSrc": function (json) {
54 "dataSrc": function (json) {
55 return json.data;
55 return json.data;
56 }
56 }
57 },
57 },
58
58
59 dom: 'rtp',
59 dom: 'rtp',
60 pageLength: ${c.visual.dashboard_items},
60 pageLength: ${c.visual.dashboard_items},
61 order: [[2, "desc"]],
61 order: [[2, "desc"]],
62 columns: [
62 columns: [
63 {
63 {
64 data: {
64 data: {
65 "_": "target_repo",
65 "_": "target_repo",
66 "sort": "target_repo"
66 "sort": "target_repo"
67 }, title: "${_('Target Repo')}", className: "td-targetrepo", orderable: false
67 }, title: "${_('Target Repo')}", className: "td-targetrepo", orderable: false
68 },
68 },
69 {
69 {
70 data: {
70 data: {
71 "_": "status",
71 "_": "status",
72 "sort": "status"
72 "sort": "status"
73 }, title: "", className: "td-status", orderable: false
73 }, title: "", className: "td-status", orderable: false
74 },
74 },
75 {
75 {
76 data: {
76 data: {
77 "_": "name",
77 "_": "name",
78 "sort": "name_raw"
78 "sort": "name_raw"
79 }, title: "${_('Id')}", className: "td-componentname", "type": "num"
79 }, title: "${_('Id')}", className: "td-componentname", "type": "num"
80 },
80 },
81 {
81 {
82 data: {
82 data: {
83 "_": "title",
83 "_": "title",
84 "sort": "title"
84 "sort": "title"
85 }, title: "${_('Title')}", className: "td-description"
85 }, title: "${_('Title')}", className: "td-description"
86 },
86 },
87 {
87 {
88 data: {
88 data: {
89 "_": "author",
89 "_": "author",
90 "sort": "author_raw"
90 "sort": "author_raw"
91 }, title: "${_('Author')}", className: "td-user", orderable: false
91 }, title: "${_('Author')}", className: "td-user", orderable: false
92 },
92 },
93 {
93 {
94 data: {
94 data: {
95 "_": "comments",
95 "_": "comments",
96 "sort": "comments_raw"
96 "sort": "comments_raw"
97 }, title: "", className: "td-comments", orderable: false
97 }, title: "", className: "td-comments", orderable: false
98 },
98 },
99 {
99 {
100 data: {
100 data: {
101 "_": "updated_on",
101 "_": "updated_on",
102 "sort": "updated_on_raw"
102 "sort": "updated_on_raw"
103 }, title: "${_('Last Update')}", className: "td-time"
103 }, title: "${_('Last Update')}", className: "td-time"
104 }
104 }
105 ],
105 ],
106 language: {
106 language: {
107 paginate: DEFAULT_GRID_PAGINATION,
107 paginate: DEFAULT_GRID_PAGINATION,
108 sProcessing: _gettext('loading...'),
108 sProcessing: _gettext('loading...'),
109 emptyTable: _gettext("There are currently no open pull requests requiring your participation.")
109 emptyTable: _gettext("There are currently no open pull requests requiring your participation.")
110 },
110 },
111 "drawCallback": function (settings, json) {
111 "drawCallback": function (settings, json) {
112 timeagoActivate();
112 timeagoActivate();
113 tooltipActivate();
113 tooltipActivate();
114 },
114 },
115 "createdRow": function (row, data, index) {
115 "createdRow": function (row, data, index) {
116 if (data['closed']) {
116 if (data['closed']) {
117 $(row).addClass('closed');
117 $(row).addClass('closed');
118 }
118 }
119 if (data['owned']) {
119 if (data['owned']) {
120 $(row).addClass('owned');
120 $(row).addClass('owned');
121 }
121 }
122 }
122 }
123 });
123 });
124 $pullRequestListTable.on('xhr.dt', function (e, settings, json, xhr) {
124 $pullRequestListTable.on('xhr.dt', function (e, settings, json, xhr) {
125 $pullRequestListTable.css('opacity', 1);
125 $pullRequestListTable.css('opacity', 1);
126 });
126 });
127
127
128 $pullRequestListTable.on('preXhr.dt', function (e, settings, data) {
128 $pullRequestListTable.on('preXhr.dt', function (e, settings, data) {
129 $pullRequestListTable.css('opacity', 0.3);
129 $pullRequestListTable.css('opacity', 0.3);
130 });
130 });
131
131
132 // filter
132 // filter
133 $('#q_filter').on('keyup',
133 $('#q_filter').on('keyup',
134 $.debounce(250, function () {
134 $.debounce(250, function () {
135 $pullRequestListTable.DataTable().search(
135 $pullRequestListTable.DataTable().search(
136 $('#q_filter').val()
136 $('#q_filter').val()
137 ).draw();
137 ).draw();
138 })
138 })
139 );
139 );
140
140
141 });
141 });
142
142
143
143
144 </script>
144 </script>
@@ -1,102 +1,114 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.mako"/>
2 <%inherit file="/base/base.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('%s Bookmarks') % c.repo_name}
5 ${_('%s Bookmarks') % c.repo_name}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10
10
11 <%def name="breadcrumbs_links()"></%def>
11 <%def name="breadcrumbs_links()"></%def>
12
12
13 <%def name="menu_bar_nav()">
13 <%def name="menu_bar_nav()">
14 ${self.menu_items(active='repositories')}
14 ${self.menu_items(active='repositories')}
15 </%def>
15 </%def>
16
16
17 <%def name="menu_bar_subnav()">
17 <%def name="menu_bar_subnav()">
18 ${self.repo_menu(active='summary')}
18 ${self.repo_menu(active='summary')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <div class="title">
23 <div class="title">
24
24
25 %if c.has_references:
25 %if c.has_references:
26 <ul class="links">
26 <ul class="links">
27 <li>
27 <li>
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Bookmarks')}">
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Bookmarks')}">
29 </li>
29 </li>
30 </ul>
30 </ul>
31 %endif
31 %endif
32 %if c.has_references:
32 %if c.has_references:
33 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
33 <div class="grid-quick-filter">
34 <span id="obj_count">0</span> ${_('bookmarks')}
34 <ul class="grid-filter-box">
35 <li class="grid-filter-box-icon">
36 <i class="icon-search"></i>
37 </li>
38 <li class="grid-filter-box-input">
39 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
40 </li>
41 </ul>
42 </div>
43 <div id="obj_count">0</div>
35 %endif
44 %endif
36 </div>
45 </div>
37 <table id="obj_list_table" class="display"></table>
46
47 <table id="obj_list_table" class="rctable table-bordered"></table>
38 </div>
48 </div>
39
49
40
50
41 <script type="text/javascript">
51 <script type="text/javascript">
42 $(document).ready(function() {
52 $(document).ready(function() {
43
53
44 var get_datatable_count = function(){
54 var get_datatable_count = function(){
45 var api = $('#obj_list_table').dataTable().api();
55 var api = $('#obj_list_table').dataTable().api();
46 $('#obj_count').text(api.page.info().recordsDisplay);
56 var total = api.page.info().recordsDisplay
57 var _text = _ngettext('{0} bookmark', '{0} bookmarks', total).format(total);
58 $('#obj_count').text(_text);
47 };
59 };
48
60
49 // object list
61 // object list
50 $('#obj_list_table').DataTable({
62 $('#obj_list_table').DataTable({
51 data: ${c.data|n},
63 data: ${c.data|n},
52 dom: 'rtp',
64 dom: 'rtp',
53 pageLength: ${c.visual.dashboard_items},
65 pageLength: ${c.visual.dashboard_items},
54 order: [[ 0, "asc" ]],
66 order: [[ 0, "asc" ]],
55 columns: [
67 columns: [
56 { data: {"_": "name",
68 { data: {"_": "name",
57 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
69 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
58 { data: {"_": "date",
70 { data: {"_": "date",
59 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
71 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
60 { data: {"_": "author",
72 { data: {"_": "author",
61 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
73 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
62 { data: {"_": "commit",
74 { data: {"_": "commit",
63 "sort": "commit_raw",
75 "sort": "commit_raw",
64 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
76 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
65 { data: {"_": "compare",
77 { data: {"_": "compare",
66 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
78 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
67 ],
79 ],
68 language: {
80 language: {
69 paginate: DEFAULT_GRID_PAGINATION,
81 paginate: DEFAULT_GRID_PAGINATION,
70 emptyTable: _gettext("No bookmarks available yet.")
82 emptyTable: _gettext("No bookmarks available yet.")
71 },
83 },
72 "initComplete": function(settings, json) {
84 "initComplete": function(settings, json) {
73 get_datatable_count();
85 get_datatable_count();
74 timeagoActivate();
86 timeagoActivate();
75 tooltipActivate();
87 tooltipActivate();
76 compare_radio_buttons("${c.repo_name}", 'book');
88 compare_radio_buttons("${c.repo_name}", 'book');
77 }
89 }
78 });
90 });
79
91
80 // update when things change
92 // update when things change
81 $('#obj_list_table').on('draw.dt', function() {
93 $('#obj_list_table').on('draw.dt', function() {
82 get_datatable_count();
94 get_datatable_count();
83 timeagoActivate();
95 timeagoActivate();
84 tooltipActivate();
96 tooltipActivate();
85 });
97 });
86
98
87 // filter, filter both grids
99 // filter, filter both grids
88 $('#q_filter').on('keyup', function() {
100 $('#q_filter').on('keyup', function() {
89 var obj_api = $('#obj_list_table').dataTable().api();
101 var obj_api = $('#obj_list_table').dataTable().api();
90 obj_api
102 obj_api
91 .columns(0)
103 .columns(0)
92 .search(this.value)
104 .search(this.value)
93 .draw();
105 .draw();
94 });
106 });
95
107
96 // refilter table if page load via back button
108 // refilter table if page load via back button
97 $("#q_filter").trigger('keyup');
109 $("#q_filter").trigger('keyup');
98
110
99 });
111 });
100
112
101 </script>
113 </script>
102 </%def>
114 </%def>
@@ -1,101 +1,113 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.mako"/>
2 <%inherit file="/base/base.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('%s Branches') % c.repo_name}
5 ${_('%s Branches') % c.repo_name}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10
10
11 <%def name="breadcrumbs_links()"></%def>
11 <%def name="breadcrumbs_links()"></%def>
12
12
13 <%def name="menu_bar_nav()">
13 <%def name="menu_bar_nav()">
14 ${self.menu_items(active='repositories')}
14 ${self.menu_items(active='repositories')}
15 </%def>
15 </%def>
16
16
17 <%def name="menu_bar_subnav()">
17 <%def name="menu_bar_subnav()">
18 ${self.repo_menu(active='summary')}
18 ${self.repo_menu(active='summary')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <div class="title">
23 <div class="title">
24
24
25 %if c.has_references:
25 %if c.has_references:
26 <ul class="links">
26 <ul class="links">
27 <li>
27 <li>
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Branches')}"/>
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Branches')}"/>
29 </li>
29 </li>
30 </ul>
30 </ul>
31 %endif
31 %endif
32 %if c.has_references:
32 %if c.has_references:
33 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
33 <div class="grid-quick-filter">
34 <span id="obj_count">0</span> ${_('branches')}
34 <ul class="grid-filter-box">
35 <li class="grid-filter-box-icon">
36 <i class="icon-search"></i>
37 </li>
38 <li class="grid-filter-box-input">
39 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
40 </li>
41 </ul>
42 </div>
43 <div id="obj_count">0</div>
35 %endif
44 %endif
36 </div>
45 </div>
37 <table id="obj_list_table" class="display"></table>
46 <table id="obj_list_table" class="rctable table-bordered"></table>
38 </div>
47 </div>
39
48
40 <script type="text/javascript">
49 <script type="text/javascript">
41 $(document).ready(function() {
50 $(document).ready(function() {
42
51
43 var get_datatable_count = function(){
52 var get_datatable_count = function(){
44 var api = $('#obj_list_table').dataTable().api();
53 var api = $('#obj_list_table').dataTable().api();
45 $('#obj_count').text(api.page.info().recordsDisplay);
54 var total = api.page.info().recordsDisplay
55 var _text = _ngettext('{0} branch', '{0} branches', total).format(total);
56
57 $('#obj_count').text(_text);
46 };
58 };
47
59
48 // object list
60 // object list
49 $('#obj_list_table').DataTable({
61 $('#obj_list_table').DataTable({
50 data: ${c.data|n},
62 data: ${c.data|n},
51 dom: 'rtp',
63 dom: 'rtp',
52 pageLength: ${c.visual.dashboard_items},
64 pageLength: ${c.visual.dashboard_items},
53 order: [[ 0, "asc" ]],
65 order: [[ 0, "asc" ]],
54 columns: [
66 columns: [
55 { data: {"_": "name",
67 { data: {"_": "name",
56 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
68 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
57 { data: {"_": "date",
69 { data: {"_": "date",
58 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
70 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
59 { data: {"_": "author",
71 { data: {"_": "author",
60 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
72 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
61 { data: {"_": "commit",
73 { data: {"_": "commit",
62 "sort": "commit_raw",
74 "sort": "commit_raw",
63 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
75 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
64 { data: {"_": "compare",
76 { data: {"_": "compare",
65 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
77 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
66 ],
78 ],
67 language: {
79 language: {
68 paginate: DEFAULT_GRID_PAGINATION,
80 paginate: DEFAULT_GRID_PAGINATION,
69 emptyTable: _gettext("No branches available yet.")
81 emptyTable: _gettext("No branches available yet.")
70 },
82 },
71 "initComplete": function( settings, json ) {
83 "initComplete": function( settings, json ) {
72 get_datatable_count();
84 get_datatable_count();
73 timeagoActivate();
85 timeagoActivate();
74 tooltipActivate();
86 tooltipActivate();
75 compare_radio_buttons("${c.repo_name}", 'branch');
87 compare_radio_buttons("${c.repo_name}", 'branch');
76 }
88 }
77 });
89 });
78
90
79 // update when things change
91 // update when things change
80 $('#obj_list_table').on('draw.dt', function() {
92 $('#obj_list_table').on('draw.dt', function() {
81 get_datatable_count();
93 get_datatable_count();
82 timeagoActivate();
94 timeagoActivate();
83 tooltipActivate();
95 tooltipActivate();
84 });
96 });
85
97
86 // filter, filter both grids
98 // filter, filter both grids
87 $('#q_filter').on( 'keyup', function () {
99 $('#q_filter').on( 'keyup', function () {
88 var obj_api = $('#obj_list_table').dataTable().api();
100 var obj_api = $('#obj_list_table').dataTable().api();
89 obj_api
101 obj_api
90 .columns(0)
102 .columns(0)
91 .search(this.value)
103 .search(this.value)
92 .draw();
104 .draw();
93 });
105 });
94
106
95 // refilter table if page load via back button
107 // refilter table if page load via back button
96 $("#q_filter").trigger('keyup');
108 $("#q_filter").trigger('keyup');
97
109
98 });
110 });
99
111
100 </script>
112 </script>
101 </%def>
113 </%def>
@@ -1,326 +1,326 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2
2
3 <%inherit file="/base/base.mako"/>
3 <%inherit file="/base/base.mako"/>
4
4
5 <%def name="title()">
5 <%def name="title()">
6 ${_('%s Changelog') % c.repo_name}
6 ${_('%s Changelog') % c.repo_name}
7 %if c.changelog_for_path:
7 %if c.changelog_for_path:
8 /${c.changelog_for_path}
8 /${c.changelog_for_path}
9 %endif
9 %endif
10 %if c.rhodecode_name:
10 %if c.rhodecode_name:
11 &middot; ${h.branding(c.rhodecode_name)}
11 &middot; ${h.branding(c.rhodecode_name)}
12 %endif
12 %endif
13 </%def>
13 </%def>
14
14
15 <%def name="breadcrumbs_links()">
15 <%def name="breadcrumbs_links()">
16 %if c.changelog_for_path:
16 %if c.changelog_for_path:
17 /${c.changelog_for_path}
17 /${c.changelog_for_path}
18 %endif
18 %endif
19 </%def>
19 </%def>
20
20
21 <%def name="menu_bar_nav()">
21 <%def name="menu_bar_nav()">
22 ${self.menu_items(active='repositories')}
22 ${self.menu_items(active='repositories')}
23 </%def>
23 </%def>
24
24
25 <%def name="menu_bar_subnav()">
25 <%def name="menu_bar_subnav()">
26 ${self.repo_menu(active='commits')}
26 ${self.repo_menu(active='commits')}
27 </%def>
27 </%def>
28
28
29 <%def name="main()">
29 <%def name="main()">
30
30
31 <div class="box">
31 <div class="box">
32
32
33 <div class="title">
33 <div class="title">
34 <div id="filter_changelog">
34 <div id="filter_changelog">
35 ${h.hidden('branch_filter')}
35 ${h.hidden('branch_filter')}
36 %if c.selected_name:
36 %if c.selected_name:
37 <div class="btn btn-default" id="clear_filter" >
37 <div class="btn btn-default" id="clear_filter" >
38 ${_('Clear filter')}
38 ${_('Clear filter')}
39 </div>
39 </div>
40 %endif
40 %endif
41 </div>
41 </div>
42 <div class="pull-left obsolete-toggle">
42 <div class="pull-left obsolete-toggle">
43 % if h.is_hg(c.rhodecode_repo):
43 % if h.is_hg(c.rhodecode_repo):
44 % if c.show_hidden:
44 % if c.show_hidden:
45 <a class="action-link" href="${h.current_route_path(request, evolve=0)}">${_('Hide obsolete/hidden')}</a>
45 <a class="action-link" href="${h.current_route_path(request, evolve=0)}">${_('Hide obsolete/hidden')}</a>
46 % else:
46 % else:
47 <a class="action-link" href="${h.current_route_path(request, evolve=1)}">${_('Show obsolete/hidden')}</a>
47 <a class="action-link" href="${h.current_route_path(request, evolve=1)}">${_('Show obsolete/hidden')}</a>
48 % endif
48 % endif
49 % else:
49 % else:
50 <span class="action-link disabled">${_('Show hidden')}</span>
50 <span class="action-link disabled">${_('Show hidden')}</span>
51 % endif
51 % endif
52 </div>
52 </div>
53 <ul class="links">
53 <ul class="links">
54 <li>
54 <li>
55
55
56 %if c.rhodecode_db_repo.fork:
56 %if c.rhodecode_db_repo.fork:
57 <span>
57 <span>
58 <a id="compare_fork_button"
58 <a id="compare_fork_button"
59 title="${h.tooltip(_('Compare fork with %s' % c.rhodecode_db_repo.fork.repo_name))}"
59 title="${h.tooltip(_('Compare fork with %s' % c.rhodecode_db_repo.fork.repo_name))}"
60 class="btn btn-small"
60 class="btn btn-small"
61 href="${h.route_path('repo_compare',
61 href="${h.route_path('repo_compare',
62 repo_name=c.rhodecode_db_repo.fork.repo_name,
62 repo_name=c.rhodecode_db_repo.fork.repo_name,
63 source_ref_type=c.rhodecode_db_repo.landing_ref_type,
63 source_ref_type=c.rhodecode_db_repo.landing_ref_type,
64 source_ref=c.rhodecode_db_repo.landing_ref_name,
64 source_ref=c.rhodecode_db_repo.landing_ref_name,
65 target_ref_type='branch' if request.GET.get('branch') else c.rhodecode_db_repo.landing_ref_type,
65 target_ref_type='branch' if request.GET.get('branch') else c.rhodecode_db_repo.landing_ref_type,
66 target_ref=request.GET.get('branch') or c.rhodecode_db_repo.landing_ref_name,
66 target_ref=request.GET.get('branch') or c.rhodecode_db_repo.landing_ref_name,
67 _query=dict(merge=1, target_repo=c.repo_name))}"
67 _query=dict(merge=1, target_repo=c.repo_name))}"
68 >
68 >
69 ${_('Compare fork with Parent (%s)' % c.rhodecode_db_repo.fork.repo_name)}
69 ${_('Compare fork with Parent (%s)' % c.rhodecode_db_repo.fork.repo_name)}
70 </a>
70 </a>
71 </span>
71 </span>
72 %endif
72 %endif
73
73
74 ## pr open link
74 ## pr open link
75 %if h.is_hg(c.rhodecode_repo) or h.is_git(c.rhodecode_repo):
75 %if h.is_hg(c.rhodecode_repo) or h.is_git(c.rhodecode_repo):
76 <span>
76 <span>
77 <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
77 <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
78 ${_('Open new pull request')}
78 ${_('Open new pull request')}
79 </a>
79 </a>
80 </span>
80 </span>
81 %endif
81 %endif
82
82
83 </li>
83 </li>
84 </ul>
84 </ul>
85 </div>
85 </div>
86
86
87 % if c.pagination:
87 % if c.pagination:
88 <script type="text/javascript" src="${h.asset('js/src/plugins/jquery.commits-graph.js')}"></script>
88 <script type="text/javascript" src="${h.asset('js/src/plugins/jquery.commits-graph.js')}"></script>
89
89
90 <div class="graph-header">
90 <div class="graph-header">
91 ${self.breadcrumbs('breadcrumbs_light')}
91 ${self.breadcrumbs('breadcrumbs_light')}
92 </div>
92 </div>
93
93
94 <div id="graph">
94 <div id="graph">
95 <div class="graph-col-wrapper">
95 <div class="graph-col-wrapper">
96 <div id="graph_nodes">
96 <div id="graph_nodes">
97 <div id="graph_canvas"></div>
97 <div id="graph_canvas"></div>
98 </div>
98 </div>
99 <div id="graph_content" class="graph_full_width">
99 <div id="graph_content" class="graph_full_width">
100
100
101 <div class="table">
101 <div class="table">
102 <table id="changesets" class="rctable">
102 <table id="changesets" class="rctable table-bordered">
103 <tr>
103 <tr>
104 ## checkbox
104 ## checkbox
105 <th colspan="4">
105 <th colspan="4">
106 ## clear selection
106 ## clear selection
107 <div title="${_('Clear selection')}" class="btn btn-sm" id="rev_range_clear" style="display:none">
107 <div title="${_('Clear selection')}" class="btn btn-sm" id="rev_range_clear" style="display:none">
108 <i class="icon-cancel-circled2"></i>
108 <i class="icon-cancel-circled2"></i>
109 </div>
109 </div>
110 <div class="btn btn-sm disabled" disabled="disabled" id="rev_range_more" style="display:none;">${_('Select second commit')}</div>
110 <div class="btn btn-sm disabled" disabled="disabled" id="rev_range_more" style="display:none;">${_('Select second commit')}</div>
111 <a href="#" class="btn btn-success btn-sm" id="rev_range_container" style="display:none;"></a>
111 <a href="#" class="btn btn-success btn-sm" id="rev_range_container" style="display:none;"></a>
112 </th>
112 </th>
113
113
114 ## commit message expand arrow
114 ## commit message expand arrow
115 <th></th>
115 <th></th>
116 <th>${_('Commit Message')}</th>
116 <th>${_('Commit Message')}</th>
117
117
118 <th>${_('Age')}</th>
118 <th>${_('Age')}</th>
119 <th>${_('Author')}</th>
119 <th>${_('Author')}</th>
120
120
121 <th>${_('Refs')}</th>
121 <th>${_('Refs')}</th>
122 ## comments
122 ## comments
123 <th></th>
123 <th></th>
124 </tr>
124 </tr>
125
125
126 <tbody class="commits-range">
126 <tbody class="commits-range">
127 <%include file='changelog_elements.mako'/>
127 <%include file='changelog_elements.mako'/>
128 </tbody>
128 </tbody>
129 </table>
129 </table>
130 </div>
130 </div>
131 </div>
131 </div>
132 <div class="pagination-wh pagination-left">
132 <div class="pagination-wh pagination-left">
133 ${c.pagination.render()}
133 ${c.pagination.render()}
134 </div>
134 </div>
135 <div id="commit-counter" data-total=${c.total_cs} class="pull-right">
135 <div id="commit-counter" data-total=${c.total_cs} class="pull-right">
136 ${_ungettext('showing %d out of %d commit', 'showing %d out of %d commits', c.showing_commits) % (c.showing_commits, c.total_cs)}
136 ${_ungettext('showing %d out of %d commit', 'showing %d out of %d commits', c.showing_commits) % (c.showing_commits, c.total_cs)}
137 </div>
137 </div>
138 </div>
138 </div>
139
139
140 <script type="text/javascript">
140 <script type="text/javascript">
141 var cache = {};
141 var cache = {};
142 $(function(){
142 $(function(){
143
143
144 // Create links to commit ranges when range checkboxes are selected
144 // Create links to commit ranges when range checkboxes are selected
145 var $commitCheckboxes = $('.commit-range');
145 var $commitCheckboxes = $('.commit-range');
146 // cache elements
146 // cache elements
147 var $commitRangeMore = $('#rev_range_more');
147 var $commitRangeMore = $('#rev_range_more');
148 var $commitRangeContainer = $('#rev_range_container');
148 var $commitRangeContainer = $('#rev_range_container');
149 var $commitRangeClear = $('#rev_range_clear');
149 var $commitRangeClear = $('#rev_range_clear');
150
150
151 var checkboxRangeSelector = function(e){
151 var checkboxRangeSelector = function(e){
152 var selectedCheckboxes = [];
152 var selectedCheckboxes = [];
153 for (pos in $commitCheckboxes){
153 for (pos in $commitCheckboxes){
154 if($commitCheckboxes[pos].checked){
154 if($commitCheckboxes[pos].checked){
155 selectedCheckboxes.push($commitCheckboxes[pos]);
155 selectedCheckboxes.push($commitCheckboxes[pos]);
156 }
156 }
157 }
157 }
158 var open_new_pull_request = $('#open_new_pull_request');
158 var open_new_pull_request = $('#open_new_pull_request');
159
159
160 if (open_new_pull_request) {
160 if (open_new_pull_request) {
161 var selected_changes = selectedCheckboxes.length;
161 var selected_changes = selectedCheckboxes.length;
162 open_new_pull_request.hide();
162 open_new_pull_request.hide();
163 if (selected_changes == 1) {
163 if (selected_changes == 1) {
164 open_new_pull_request.html(_gettext('Open new pull request for selected commit'));
164 open_new_pull_request.html(_gettext('Open new pull request for selected commit'));
165 } else {
165 } else {
166 open_new_pull_request.html(_gettext('Open new pull request'));
166 open_new_pull_request.html(_gettext('Open new pull request'));
167 }
167 }
168 open_new_pull_request.show();
168 open_new_pull_request.show();
169 }
169 }
170
170
171 if (selectedCheckboxes.length > 0) {
171 if (selectedCheckboxes.length > 0) {
172 $('#compare_fork_button').hide();
172 $('#compare_fork_button').hide();
173 var commitStart = $(selectedCheckboxes[selectedCheckboxes.length-1]).data();
173 var commitStart = $(selectedCheckboxes[selectedCheckboxes.length-1]).data();
174
174
175 var revStart = commitStart.commitId;
175 var revStart = commitStart.commitId;
176
176
177 var commitEnd = $(selectedCheckboxes[0]).data();
177 var commitEnd = $(selectedCheckboxes[0]).data();
178 var revEnd = commitEnd.commitId;
178 var revEnd = commitEnd.commitId;
179
179
180 var lbl_start = '{0}'.format(commitStart.commitIdx, commitStart.shortId);
180 var lbl_start = '{0}'.format(commitStart.commitIdx, commitStart.shortId);
181 var lbl_end = '{0}'.format(commitEnd.commitIdx, commitEnd.shortId);
181 var lbl_end = '{0}'.format(commitEnd.commitIdx, commitEnd.shortId);
182
182
183 var url = pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}', 'commit_id': revStart+'...'+revEnd});
183 var url = pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}', 'commit_id': revStart+'...'+revEnd});
184 var link = _gettext('Show commit range {0} ... {1}').format(lbl_start, lbl_end);
184 var link = _gettext('Show commit range {0} ... {1}').format(lbl_start, lbl_end);
185
185
186 if (selectedCheckboxes.length > 1) {
186 if (selectedCheckboxes.length > 1) {
187 $commitRangeClear.show();
187 $commitRangeClear.show();
188 $commitRangeMore.hide();
188 $commitRangeMore.hide();
189
189
190 $commitRangeContainer
190 $commitRangeContainer
191 .attr('href',url)
191 .attr('href',url)
192 .html(link)
192 .html(link)
193 .show();
193 .show();
194
194
195
195
196 } else {
196 } else {
197 $commitRangeContainer.hide();
197 $commitRangeContainer.hide();
198 $commitRangeClear.show();
198 $commitRangeClear.show();
199 $commitRangeMore.show();
199 $commitRangeMore.show();
200 }
200 }
201
201
202 // pull-request link
202 // pull-request link
203 if (selectedCheckboxes.length == 1){
203 if (selectedCheckboxes.length == 1){
204 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'commit': revEnd});
204 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'commit': revEnd});
205 open_new_pull_request.attr('href', _url);
205 open_new_pull_request.attr('href', _url);
206 } else {
206 } else {
207 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
207 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
208 open_new_pull_request.attr('href', _url);
208 open_new_pull_request.attr('href', _url);
209 }
209 }
210
210
211 } else {
211 } else {
212 $commitRangeContainer.hide();
212 $commitRangeContainer.hide();
213 $commitRangeClear.hide();
213 $commitRangeClear.hide();
214 $commitRangeMore.hide();
214 $commitRangeMore.hide();
215
215
216 %if c.branch_name:
216 %if c.branch_name:
217 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'branch':'${c.branch_name}'});
217 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'branch':'${c.branch_name}'});
218 open_new_pull_request.attr('href', _url);
218 open_new_pull_request.attr('href', _url);
219 %else:
219 %else:
220 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
220 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
221 open_new_pull_request.attr('href', _url);
221 open_new_pull_request.attr('href', _url);
222 %endif
222 %endif
223 $('#compare_fork_button').show();
223 $('#compare_fork_button').show();
224 }
224 }
225 };
225 };
226
226
227 $commitCheckboxes.on('click', checkboxRangeSelector);
227 $commitCheckboxes.on('click', checkboxRangeSelector);
228
228
229 $commitRangeClear.on('click',function(e) {
229 $commitRangeClear.on('click',function(e) {
230 $commitCheckboxes.attr('checked', false);
230 $commitCheckboxes.attr('checked', false);
231 checkboxRangeSelector();
231 checkboxRangeSelector();
232 e.preventDefault();
232 e.preventDefault();
233 });
233 });
234
234
235 // make sure the buttons are consistent when navigate back and forth
235 // make sure the buttons are consistent when navigate back and forth
236 checkboxRangeSelector();
236 checkboxRangeSelector();
237
237
238 var msgs = $('.message');
238 var msgs = $('.message');
239 // get first element height
239 // get first element height
240 var el = $('#graph_content .container')[0];
240 var el = $('#graph_content .container')[0];
241 var row_h = el.clientHeight;
241 var row_h = el.clientHeight;
242 for (var i=0; i < msgs.length; i++) {
242 for (var i=0; i < msgs.length; i++) {
243 var m = msgs[i];
243 var m = msgs[i];
244
244
245 var h = m.clientHeight;
245 var h = m.clientHeight;
246 var pad = $(m).css('padding');
246 var pad = $(m).css('padding');
247 if (h > row_h) {
247 if (h > row_h) {
248 var offset = row_h - (h+12);
248 var offset = row_h - (h+12);
249 $(m.nextElementSibling).css('display','block');
249 $(m.nextElementSibling).css('display','block');
250 $(m.nextElementSibling).css('margin-top',offset+'px');
250 $(m.nextElementSibling).css('margin-top',offset+'px');
251 }
251 }
252 }
252 }
253
253
254 $("#clear_filter").on("click", function() {
254 $("#clear_filter").on("click", function() {
255 var filter = {'repo_name': '${c.repo_name}'};
255 var filter = {'repo_name': '${c.repo_name}'};
256 window.location = pyroutes.url('repo_commits', filter);
256 window.location = pyroutes.url('repo_commits', filter);
257 });
257 });
258
258
259 $("#branch_filter").select2({
259 $("#branch_filter").select2({
260 'dropdownAutoWidth': true,
260 'dropdownAutoWidth': true,
261 'width': 'resolve',
261 'width': 'resolve',
262 'placeholder': "${c.selected_name or _('Branch filter')}",
262 'placeholder': "${c.selected_name or _('Branch filter')}",
263 containerCssClass: "drop-menu",
263 containerCssClass: "drop-menu",
264 dropdownCssClass: "drop-menu-dropdown",
264 dropdownCssClass: "drop-menu-dropdown",
265 query: function(query){
265 query: function(query){
266 var key = 'cache';
266 var key = 'cache';
267 var cached = cache[key] ;
267 var cached = cache[key] ;
268 if(cached) {
268 if(cached) {
269 var data = {results: []};
269 var data = {results: []};
270 //filter results
270 //filter results
271 $.each(cached.results, function(){
271 $.each(cached.results, function(){
272 var section = this.text;
272 var section = this.text;
273 var children = [];
273 var children = [];
274 $.each(this.children, function(){
274 $.each(this.children, function(){
275 if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
275 if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
276 children.push({'id': this.id, 'text': this.text, 'type': this.type})
276 children.push({'id': this.id, 'text': this.text, 'type': this.type})
277 }
277 }
278 });
278 });
279 data.results.push({'text': section, 'children': children});
279 data.results.push({'text': section, 'children': children});
280 query.callback({results: data.results});
280 query.callback({results: data.results});
281 });
281 });
282 }else{
282 }else{
283 $.ajax({
283 $.ajax({
284 url: pyroutes.url('repo_refs_changelog_data', {'repo_name': '${c.repo_name}'}),
284 url: pyroutes.url('repo_refs_changelog_data', {'repo_name': '${c.repo_name}'}),
285 data: {},
285 data: {},
286 dataType: 'json',
286 dataType: 'json',
287 type: 'GET',
287 type: 'GET',
288 success: function(data) {
288 success: function(data) {
289 cache[key] = data;
289 cache[key] = data;
290 query.callback({results: data.results});
290 query.callback({results: data.results});
291 }
291 }
292 })
292 })
293 }
293 }
294 }
294 }
295 });
295 });
296 $('#branch_filter').on('change', function(e){
296 $('#branch_filter').on('change', function(e){
297 var data = $('#branch_filter').select2('data');
297 var data = $('#branch_filter').select2('data');
298 //type: branch_closed
298 //type: branch_closed
299 var selected = data.text;
299 var selected = data.text;
300 var filter = {'repo_name': '${c.repo_name}'};
300 var filter = {'repo_name': '${c.repo_name}'};
301 if(data.type == 'branch' || data.type == 'branch_closed'){
301 if(data.type == 'branch' || data.type == 'branch_closed'){
302 filter["branch"] = selected;
302 filter["branch"] = selected;
303 if (data.type == 'branch_closed') {
303 if (data.type == 'branch_closed') {
304 filter["evolve"] = '1';
304 filter["evolve"] = '1';
305 }
305 }
306 }
306 }
307 else if (data.type == 'book'){
307 else if (data.type == 'book'){
308 filter["bookmark"] = selected;
308 filter["bookmark"] = selected;
309 }
309 }
310 window.location = pyroutes.url('repo_commits', filter);
310 window.location = pyroutes.url('repo_commits', filter);
311 });
311 });
312
312
313 commitsController = new CommitsController();
313 commitsController = new CommitsController();
314 % if not c.changelog_for_path:
314 % if not c.changelog_for_path:
315 commitsController.reloadGraph();
315 commitsController.reloadGraph();
316 % endif
316 % endif
317
317
318 });
318 });
319
319
320 </script>
320 </script>
321 </div>
321 </div>
322 % else:
322 % else:
323 ${_('There are no changes yet')}
323 ${_('There are no changes yet')}
324 % endif
324 % endif
325 </div>
325 </div>
326 </%def>
326 </%def>
@@ -1,98 +1,98 b''
1 <%namespace name="base" file="/base/base.mako"/>
1 <%namespace name="base" file="/base/base.mako"/>
2
2
3 <%
3 <%
4 at_ref = request.GET.get('at')
4 at_ref = request.GET.get('at')
5 if at_ref:
5 if at_ref:
6 query={'at': at_ref}
6 query={'at': at_ref}
7 default_landing_ref = at_ref or c.rhodecode_db_repo.landing_ref_name
7 default_landing_ref = at_ref or c.rhodecode_db_repo.landing_ref_name
8 else:
8 else:
9 query=None
9 query=None
10 default_landing_ref = c.commit.raw_id
10 default_landing_ref = c.commit.raw_id
11 %>
11 %>
12 <div id="file-tree-wrapper" class="browser-body ${('full-load' if c.full_load else '')}">
12 <div id="file-tree-wrapper" class="browser-body ${('full-load' if c.full_load else '')}">
13 <table class="code-browser rctable repo_summary">
13 <table class="code-browser rctable table-bordered">
14 <thead>
14 <thead>
15 <tr>
15 <tr>
16 <th>${_('Name')}</th>
16 <th>${_('Name')}</th>
17 <th>${_('Size')}</th>
17 <th>${_('Size')}</th>
18 <th>${_('Modified')}</th>
18 <th>${_('Modified')}</th>
19 <th>${_('Last Commit')}</th>
19 <th>${_('Last Commit')}</th>
20 <th>${_('Author')}</th>
20 <th>${_('Author')}</th>
21 </tr>
21 </tr>
22 </thead>
22 </thead>
23
23
24 <tbody id="tbody">
24 <tbody id="tbody">
25 <tr>
25 <tr>
26 <td colspan="5">
26 <td colspan="5">
27 ${h.files_breadcrumbs(c.repo_name, c.rhodecode_db_repo.repo_type, c.commit.raw_id, c.file.path, c.rhodecode_db_repo.landing_ref_name, request.GET.get('at'), limit_items=True)}
27 ${h.files_breadcrumbs(c.repo_name, c.rhodecode_db_repo.repo_type, c.commit.raw_id, c.file.path, c.rhodecode_db_repo.landing_ref_name, request.GET.get('at'), limit_items=True)}
28 </td>
28 </td>
29 </tr>
29 </tr>
30
30
31 <% has_files = False %>
31 <% has_files = False %>
32 % for cnt,node in enumerate(c.file):
32 % for cnt,node in enumerate(c.file):
33 <% has_files = True %>
33 <% has_files = True %>
34 <tr class="parity${(cnt % 2)}">
34 <tr class="parity${(cnt % 2)}">
35 <td class="td-componentname">
35 <td class="td-componentname">
36 % if node.is_submodule():
36 % if node.is_submodule():
37 <span class="submodule-dir">
37 <span class="submodule-dir">
38 % if node.url.startswith('http://') or node.url.startswith('https://'):
38 % if node.url.startswith('http://') or node.url.startswith('https://'):
39 <a href="${node.url}">
39 <a href="${node.url}">
40 <i class="icon-directory browser-dir"></i>${node.name}
40 <i class="icon-directory browser-dir"></i>${node.name}
41 </a>
41 </a>
42 % else:
42 % else:
43 <i class="icon-directory browser-dir"></i>${node.name}
43 <i class="icon-directory browser-dir"></i>${node.name}
44 % endif
44 % endif
45 </span>
45 </span>
46 % else:
46 % else:
47 <a href="${h.repo_files_by_ref_url(c.repo_name, c.rhodecode_db_repo.repo_type, f_path=h.safe_unicode(node.path), ref_name=default_landing_ref, commit_id=c.commit.raw_id, query=query)}">
47 <a href="${h.repo_files_by_ref_url(c.repo_name, c.rhodecode_db_repo.repo_type, f_path=h.safe_unicode(node.path), ref_name=default_landing_ref, commit_id=c.commit.raw_id, query=query)}">
48 <i class="${('icon-file-text browser-file' if node.is_file() else 'icon-directory browser-dir')}"></i>${node.name}
48 <i class="${('icon-file-text browser-file' if node.is_file() else 'icon-directory browser-dir')}"></i>${node.name}
49 </a>
49 </a>
50 % endif
50 % endif
51 </td>
51 </td>
52 %if node.is_file():
52 %if node.is_file():
53 <td class="td-size" data-attr-name="size">
53 <td class="td-size" data-attr-name="size">
54 % if c.full_load:
54 % if c.full_load:
55 <span data-size="${node.size}">${h.format_byte_size_binary(node.size)}</span>
55 <span data-size="${node.size}">${h.format_byte_size_binary(node.size)}</span>
56 % else:
56 % else:
57 ${_('Loading ...')}
57 ${_('Loading ...')}
58 % endif
58 % endif
59 </td>
59 </td>
60 <td class="td-time" data-attr-name="modified_at">
60 <td class="td-time" data-attr-name="modified_at">
61 % if c.full_load:
61 % if c.full_load:
62 <span data-date="${node.last_commit.date}">${h.age_component(node.last_commit.date)}</span>
62 <span data-date="${node.last_commit.date}">${h.age_component(node.last_commit.date)}</span>
63 % endif
63 % endif
64 </td>
64 </td>
65 <td class="td-hash" data-attr-name="commit_id">
65 <td class="td-hash" data-attr-name="commit_id">
66 % if c.full_load:
66 % if c.full_load:
67 <div class="tooltip-hovercard" data-hovercard-alt="${node.last_commit.message}" data-hovercard-url="${h.route_path('hovercard_repo_commit', repo_name=c.repo_name, commit_id=node.last_commit.raw_id)}">
67 <div class="tooltip-hovercard" data-hovercard-alt="${node.last_commit.message}" data-hovercard-url="${h.route_path('hovercard_repo_commit', repo_name=c.repo_name, commit_id=node.last_commit.raw_id)}">
68 <pre data-commit-id="${node.last_commit.raw_id}">r${node.last_commit.idx}:${node.last_commit.short_id}</pre>
68 <pre data-commit-id="${node.last_commit.raw_id}">r${node.last_commit.idx}:${node.last_commit.short_id}</pre>
69 </div>
69 </div>
70 % endif
70 % endif
71 </td>
71 </td>
72 <td class="td-user" data-attr-name="author">
72 <td class="td-user" data-attr-name="author">
73 % if c.full_load:
73 % if c.full_load:
74 <span data-author="${node.last_commit.author}">${h.gravatar_with_user(request, node.last_commit.author, tooltip=True)|n}</span>
74 <span data-author="${node.last_commit.author}">${h.gravatar_with_user(request, node.last_commit.author, tooltip=True)|n}</span>
75 % endif
75 % endif
76 </td>
76 </td>
77 %else:
77 %else:
78 <td></td>
78 <td></td>
79 <td></td>
79 <td></td>
80 <td></td>
80 <td></td>
81 <td></td>
81 <td></td>
82 %endif
82 %endif
83 </tr>
83 </tr>
84 % endfor
84 % endfor
85
85
86 % if not has_files:
86 % if not has_files:
87 <tr>
87 <tr>
88 <td colspan="5">
88 <td colspan="5">
89 ##empty-dir mostly SVN
89 ##empty-dir mostly SVN
90 &nbsp;
90 &nbsp;
91 </td>
91 </td>
92 </tr>
92 </tr>
93 % endif
93 % endif
94
94
95 </tbody>
95 </tbody>
96 <tbody id="tbody_filtered"></tbody>
96 <tbody id="tbody_filtered"></tbody>
97 </table>
97 </table>
98 </div>
98 </div>
@@ -1,140 +1,140 b''
1 <%inherit file="/base/base.mako"/>
1 <%inherit file="/base/base.mako"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('{} Pull Requests').format(c.repo_name)}
4 ${_('{} Pull Requests').format(c.repo_name)}
5 %if c.rhodecode_name:
5 %if c.rhodecode_name:
6 &middot; ${h.branding(c.rhodecode_name)}
6 &middot; ${h.branding(c.rhodecode_name)}
7 %endif
7 %endif
8 </%def>
8 </%def>
9
9
10 <%def name="breadcrumbs_links()"></%def>
10 <%def name="breadcrumbs_links()"></%def>
11
11
12 <%def name="menu_bar_nav()">
12 <%def name="menu_bar_nav()">
13 ${self.menu_items(active='repositories')}
13 ${self.menu_items(active='repositories')}
14 </%def>
14 </%def>
15
15
16
16
17 <%def name="menu_bar_subnav()">
17 <%def name="menu_bar_subnav()">
18 ${self.repo_menu(active='showpullrequest')}
18 ${self.repo_menu(active='showpullrequest')}
19 </%def>
19 </%def>
20
20
21
21
22 <%def name="main()">
22 <%def name="main()">
23
23
24 <div class="box">
24 <div class="box">
25 <div class="title">
25 <div class="title">
26 <ul class="button-links">
26 <ul class="button-links">
27 <li class="btn ${h.is_active('open', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0})}">${_('Opened')}</a></li>
27 <li class="btn ${h.is_active('open', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0})}">${_('Opened')}</a></li>
28 <li class="btn ${h.is_active('my', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'my':1})}">${_('Opened by me')}</a></li>
28 <li class="btn ${h.is_active('my', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'my':1})}">${_('Opened by me')}</a></li>
29 <li class="btn ${h.is_active('awaiting', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_review':1})}">${_('Awaiting review')}</a></li>
29 <li class="btn ${h.is_active('awaiting', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_review':1})}">${_('Awaiting review')}</a></li>
30 <li class="btn ${h.is_active('awaiting_my', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_my_review':1})}">${_('Awaiting my review')}</a></li>
30 <li class="btn ${h.is_active('awaiting_my', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_my_review':1})}">${_('Awaiting my review')}</a></li>
31 <li class="btn ${h.is_active('closed', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'closed':1})}">${_('Closed')}</a></li>
31 <li class="btn ${h.is_active('closed', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'closed':1})}">${_('Closed')}</a></li>
32 <li class="btn ${h.is_active('source', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':1})}">${_('From this repo')}</a></li>
32 <li class="btn ${h.is_active('source', c.active)}"><a href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':1})}">${_('From this repo')}</a></li>
33 </ul>
33 </ul>
34
34
35 <ul class="links">
35 <ul class="links">
36 % if c.rhodecode_user.username != h.DEFAULT_USER:
36 % if c.rhodecode_user.username != h.DEFAULT_USER:
37 <li>
37 <li>
38 <span>
38 <span>
39 <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
39 <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
40 ${_('Open new Pull Request')}
40 ${_('Open new Pull Request')}
41 </a>
41 </a>
42 </span>
42 </span>
43 </li>
43 </li>
44 % endif
44 % endif
45
45
46 <li>
46 <li>
47 <div class="grid-quick-filter">
47 <div class="grid-quick-filter">
48 <ul class="grid-filter-box">
48 <ul class="grid-filter-box">
49 <li class="grid-filter-box-icon">
49 <li class="grid-filter-box-icon">
50 <i class="icon-search"></i>
50 <i class="icon-search"></i>
51 </li>
51 </li>
52 <li class="grid-filter-box-input">
52 <li class="grid-filter-box-input">
53 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
53 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
54 </li>
54 </li>
55 </ul>
55 </ul>
56 </div>
56 </div>
57 </li>
57 </li>
58
58
59 </ul>
59 </ul>
60
60
61 </div>
61 </div>
62
62
63 <div class="main-content-full-width">
63 <div class="main-content-full-width">
64 <table id="pull_request_list_table" class="display"></table>
64 <table id="pull_request_list_table" class="rctable table-bordered"></table>
65 </div>
65 </div>
66
66
67 </div>
67 </div>
68
68
69 <script type="text/javascript">
69 <script type="text/javascript">
70 $(document).ready(function() {
70 $(document).ready(function() {
71 var $pullRequestListTable = $('#pull_request_list_table');
71 var $pullRequestListTable = $('#pull_request_list_table');
72
72
73 // object list
73 // object list
74 $pullRequestListTable.DataTable({
74 $pullRequestListTable.DataTable({
75 processing: true,
75 processing: true,
76 serverSide: true,
76 serverSide: true,
77 ajax: {
77 ajax: {
78 "url": "${h.route_path('pullrequest_show_all_data', repo_name=c.repo_name)}",
78 "url": "${h.route_path('pullrequest_show_all_data', repo_name=c.repo_name)}",
79 "data": function (d) {
79 "data": function (d) {
80 d.source = "${c.source}";
80 d.source = "${c.source}";
81 d.closed = "${c.closed}";
81 d.closed = "${c.closed}";
82 d.my = "${c.my}";
82 d.my = "${c.my}";
83 d.awaiting_review = "${c.awaiting_review}";
83 d.awaiting_review = "${c.awaiting_review}";
84 d.awaiting_my_review = "${c.awaiting_my_review}";
84 d.awaiting_my_review = "${c.awaiting_my_review}";
85 }
85 }
86 },
86 },
87 dom: 'rtp',
87 dom: 'rtp',
88 pageLength: ${c.visual.dashboard_items},
88 pageLength: ${c.visual.dashboard_items},
89 order: [[ 1, "desc" ]],
89 order: [[ 1, "desc" ]],
90 columns: [
90 columns: [
91 { data: {"_": "status",
91 { data: {"_": "status",
92 "sort": "status"}, title: "", className: "td-status", orderable: false},
92 "sort": "status"}, title: "", className: "td-status", orderable: false},
93 { data: {"_": "name",
93 { data: {"_": "name",
94 "sort": "name_raw"}, title: "${_('Id')}", className: "td-componentname", "type": "num" },
94 "sort": "name_raw"}, title: "${_('Id')}", className: "td-componentname", "type": "num" },
95 { data: {"_": "title",
95 { data: {"_": "title",
96 "sort": "title"}, title: "${_('Title')}", className: "td-description" },
96 "sort": "title"}, title: "${_('Title')}", className: "td-description" },
97 { data: {"_": "author",
97 { data: {"_": "author",
98 "sort": "author_raw"}, title: "${_('Author')}", className: "td-user", orderable: false },
98 "sort": "author_raw"}, title: "${_('Author')}", className: "td-user", orderable: false },
99 { data: {"_": "comments",
99 { data: {"_": "comments",
100 "sort": "comments_raw"}, title: "", className: "td-comments", orderable: false},
100 "sort": "comments_raw"}, title: "", className: "td-comments", orderable: false},
101 { data: {"_": "updated_on",
101 { data: {"_": "updated_on",
102 "sort": "updated_on_raw"}, title: "${_('Last Update')}", className: "td-time" }
102 "sort": "updated_on_raw"}, title: "${_('Last Update')}", className: "td-time" }
103 ],
103 ],
104 language: {
104 language: {
105 paginate: DEFAULT_GRID_PAGINATION,
105 paginate: DEFAULT_GRID_PAGINATION,
106 sProcessing: _gettext('loading...'),
106 sProcessing: _gettext('loading...'),
107 emptyTable: _gettext("No pull requests available yet.")
107 emptyTable: _gettext("No pull requests available yet.")
108 },
108 },
109 "drawCallback": function( settings, json ) {
109 "drawCallback": function( settings, json ) {
110 timeagoActivate();
110 timeagoActivate();
111 tooltipActivate();
111 tooltipActivate();
112 },
112 },
113 "createdRow": function ( row, data, index ) {
113 "createdRow": function ( row, data, index ) {
114 if (data['closed']) {
114 if (data['closed']) {
115 $(row).addClass('closed');
115 $(row).addClass('closed');
116 }
116 }
117 }
117 }
118 });
118 });
119
119
120 $pullRequestListTable.on('xhr.dt', function(e, settings, json, xhr){
120 $pullRequestListTable.on('xhr.dt', function(e, settings, json, xhr){
121 $pullRequestListTable.css('opacity', 1);
121 $pullRequestListTable.css('opacity', 1);
122 });
122 });
123
123
124 $pullRequestListTable.on('preXhr.dt', function(e, settings, data){
124 $pullRequestListTable.on('preXhr.dt', function(e, settings, data){
125 $pullRequestListTable.css('opacity', 0.3);
125 $pullRequestListTable.css('opacity', 0.3);
126 });
126 });
127
127
128 // filter
128 // filter
129 $('#q_filter').on('keyup',
129 $('#q_filter').on('keyup',
130 $.debounce(250, function() {
130 $.debounce(250, function() {
131 $pullRequestListTable.DataTable().search(
131 $pullRequestListTable.DataTable().search(
132 $('#q_filter').val()
132 $('#q_filter').val()
133 ).draw();
133 ).draw();
134 })
134 })
135 );
135 );
136
136
137 });
137 });
138
138
139 </script>
139 </script>
140 </%def>
140 </%def>
@@ -1,167 +1,167 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%namespace name="base" file="/base/base.mako"/>
2 <%namespace name="base" file="/base/base.mako"/>
3 %if c.repo_commits:
3 %if c.repo_commits:
4 <table class="rctable repo_summary table_disp">
4 <table class="rctable table-bordered">
5 <tr>
5 <tr>
6
6
7 <th class="status"></th>
7 <th class="status"></th>
8 <th>${_('Commit')}</th>
8 <th></th>
9 <th>${_('Commit message')}</th>
9 <th>${_('Commit message')}</th>
10 <th>${_('Age')}</th>
10 <th>${_('Age')}</th>
11 <th>${_('Author')}</th>
11 <th>${_('Author')}</th>
12 <th colspan="2">${_('Refs')}</th>
12 <th colspan="2">${_('Refs')}</th>
13 </tr>
13 </tr>
14
14
15 ## to speed up lookups cache some functions before the loop
15 ## to speed up lookups cache some functions before the loop
16 <%
16 <%
17 active_patterns = h.get_active_pattern_entries(c.repo_name)
17 active_patterns = h.get_active_pattern_entries(c.repo_name)
18 urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
18 urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
19 %>
19 %>
20 %for cnt,cs in enumerate(c.repo_commits):
20 %for cnt,cs in enumerate(c.repo_commits):
21 <tr class="parity${cnt%2}">
21 <tr class="parity${cnt%2}">
22
22
23 <td class="td-status">
23 <td class="td-status">
24 %if c.statuses.get(cs.raw_id):
24 %if c.statuses.get(cs.raw_id):
25 <div class="changeset-status-ico shortlog">
25 <div class="changeset-status-ico shortlog">
26 %if c.statuses.get(cs.raw_id)[2]:
26 %if c.statuses.get(cs.raw_id)[2]:
27 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
27 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
28 <i class="icon-circle review-status-${c.statuses.get(cs.raw_id)[0]}"></i>
28 <i class="icon-circle review-status-${c.statuses.get(cs.raw_id)[0]}"></i>
29 </a>
29 </a>
30 %else:
30 %else:
31 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
31 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
32 <i class="icon-circle review-status-${c.statuses.get(cs.raw_id)[0]}"></i>
32 <i class="icon-circle review-status-${c.statuses.get(cs.raw_id)[0]}"></i>
33 </a>
33 </a>
34 %endif
34 %endif
35 </div>
35 </div>
36 %else:
36 %else:
37 <i class="icon-circle review-status-not_reviewed" title="${_('Commit status: Not Reviewed')}"></i>
37 <i class="icon-circle review-status-not_reviewed" title="${_('Commit status: Not Reviewed')}"></i>
38 %endif
38 %endif
39 </td>
39 </td>
40 <td class="td-hash">
40 <td class="td-hash">
41 <code>
41 <code>
42 <a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a>
42 <a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a>
43 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${cs.raw_id}" title="${_('Copy the full commit id')}"></i>
43 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${cs.raw_id}" title="${_('Copy the full commit id')}"></i>
44 </code>
44 </code>
45 </td>
45 </td>
46
46
47 <td class="td-description mid">
47 <td class="td-description mid">
48 <div class="log-container truncate-wrap">
48 <div class="log-container truncate-wrap">
49 <div class="message truncate" id="c-${cs.raw_id}">${urlify_commit_message(cs.message, c.repo_name)}</div>
49 <div class="message truncate" id="c-${cs.raw_id}">${urlify_commit_message(cs.message, c.repo_name)}</div>
50 </div>
50 </div>
51 </td>
51 </td>
52
52
53 <td class="td-time">
53 <td class="td-time">
54 ${h.age_component(cs.date)}
54 ${h.age_component(cs.date)}
55 </td>
55 </td>
56 <td class="td-user author">
56 <td class="td-user author">
57 ${base.gravatar_with_user(cs.author, tooltip=True)}
57 ${base.gravatar_with_user(cs.author, tooltip=True)}
58 </td>
58 </td>
59
59
60 <td class="td-tags">
60 <td class="td-tags">
61 <div class="autoexpand">
61 <div class="autoexpand">
62 %if h.is_hg(c.rhodecode_repo):
62 %if h.is_hg(c.rhodecode_repo):
63 %for book in cs.bookmarks:
63 %for book in cs.bookmarks:
64 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
64 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
65 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
65 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
66 </span>
66 </span>
67 %endfor
67 %endfor
68 %endif
68 %endif
69 ## tags
69 ## tags
70 %for tag in cs.tags:
70 %for tag in cs.tags:
71 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
71 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
72 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
72 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
73 </span>
73 </span>
74 %endfor
74 %endfor
75
75
76 ## branch
76 ## branch
77 %if cs.branch:
77 %if cs.branch:
78 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
78 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
79 <a href="${h.route_path('repo_commits',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
79 <a href="${h.route_path('repo_commits',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
80 </span>
80 </span>
81 %endif
81 %endif
82 </div>
82 </div>
83 </td>
83 </td>
84 <td class="td-comments">
84 <td class="td-comments">
85 <% cs_comments = c.comments.get(cs.raw_id,[]) %>
85 <% cs_comments = c.comments.get(cs.raw_id,[]) %>
86 % if cs_comments:
86 % if cs_comments:
87 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % cs_comments[0].comment_id)}">
87 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % cs_comments[0].comment_id)}">
88 <i class="icon-comment"></i> ${len(cs_comments)}
88 <i class="icon-comment"></i> ${len(cs_comments)}
89 </a>
89 </a>
90 % else:
90 % else:
91 <i class="icon-comment"></i> ${len(cs_comments)}
91 <i class="icon-comment"></i> ${len(cs_comments)}
92 % endif
92 % endif
93 </td>
93 </td>
94 </tr>
94 </tr>
95 %endfor
95 %endfor
96
96
97 </table>
97 </table>
98
98
99 <script type="text/javascript">
99 <script type="text/javascript">
100 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 5000, scrollTo: false, push: false});
100 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 5000, scrollTo: false, push: false});
101 $(document).on('pjax:success', function(){ timeagoActivate(); tooltipActivate();});
101 $(document).on('pjax:success', function(){ timeagoActivate(); tooltipActivate();});
102 $(document).on('pjax:timeout', function(event) {
102 $(document).on('pjax:timeout', function(event) {
103 // Prevent default timeout redirection behavior
103 // Prevent default timeout redirection behavior
104 event.preventDefault()
104 event.preventDefault()
105 })
105 })
106
106
107 </script>
107 </script>
108
108
109 <div class="pagination-wh pagination-left">
109 <div class="pagination-wh pagination-left">
110 ${c.repo_commits.render()}
110 ${c.repo_commits.render()}
111 </div>
111 </div>
112 %else:
112 %else:
113
113
114 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
114 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
115 <div class="quick_start">
115 <div class="quick_start">
116 <div class="fieldset">
116 <div class="fieldset">
117 <p><b>${_('Add or upload files directly via RhodeCode:')}</b></p>
117 <p><b>${_('Add or upload files directly via RhodeCode:')}</b></p>
118 <div class="pull-left">
118 <div class="pull-left">
119 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='')}" class="btn btn-default">${_('Add New File')}</a>
119 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='')}" class="btn btn-default">${_('Add New File')}</a>
120 </div>
120 </div>
121 <div class="pull-left">
121 <div class="pull-left">
122 <a href="${h.route_path('repo_files_upload_file',repo_name=c.repo_name,commit_id=0, f_path='')}" class="btn btn-default">${_('Upload New File')}</a>
122 <a href="${h.route_path('repo_files_upload_file',repo_name=c.repo_name,commit_id=0, f_path='')}" class="btn btn-default">${_('Upload New File')}</a>
123 </div>
123 </div>
124 %endif
124 %endif
125 </div>
125 </div>
126
126
127 <div class="fieldset">
127 <div class="fieldset">
128 <p><b>${_('Push new repo:')}</b></p>
128 <p><b>${_('Push new repo:')}</b></p>
129 <pre>
129 <pre>
130 %if h.is_git(c.rhodecode_repo):
130 %if h.is_git(c.rhodecode_repo):
131 git clone ${c.clone_repo_url}
131 git clone ${c.clone_repo_url}
132 git add README # add first file
132 git add README # add first file
133 git commit -m "Initial commit" # commit with message
133 git commit -m "Initial commit" # commit with message
134 git remote add origin ${c.clone_repo_url}
134 git remote add origin ${c.clone_repo_url}
135 git push -u origin master # push changes back to default master branch
135 git push -u origin master # push changes back to default master branch
136 %elif h.is_hg(c.rhodecode_repo):
136 %elif h.is_hg(c.rhodecode_repo):
137 hg clone ${c.clone_repo_url}
137 hg clone ${c.clone_repo_url}
138 hg add README # add first file
138 hg add README # add first file
139 hg commit -m "Initial commit" # commit with message
139 hg commit -m "Initial commit" # commit with message
140 hg push ${c.clone_repo_url}
140 hg push ${c.clone_repo_url}
141 %elif h.is_svn(c.rhodecode_repo):
141 %elif h.is_svn(c.rhodecode_repo):
142 svn co ${c.clone_repo_url}
142 svn co ${c.clone_repo_url}
143 svn add README # add first file
143 svn add README # add first file
144 svn commit -m "Initial commit"
144 svn commit -m "Initial commit"
145 svn commit # send changes back to the server
145 svn commit # send changes back to the server
146 %endif
146 %endif
147 </pre>
147 </pre>
148 </div>
148 </div>
149
149
150 <div class="fieldset">
150 <div class="fieldset">
151 <p><b>${_('Existing repository?')}</b></p>
151 <p><b>${_('Existing repository?')}</b></p>
152 <pre>
152 <pre>
153 %if h.is_git(c.rhodecode_repo):
153 %if h.is_git(c.rhodecode_repo):
154 git remote add origin ${c.clone_repo_url}
154 git remote add origin ${c.clone_repo_url}
155 git push -u origin master
155 git push -u origin master
156 %elif h.is_hg(c.rhodecode_repo):
156 %elif h.is_hg(c.rhodecode_repo):
157 hg push ${c.clone_repo_url}
157 hg push ${c.clone_repo_url}
158 %elif h.is_svn(c.rhodecode_repo):
158 %elif h.is_svn(c.rhodecode_repo):
159 svn co ${c.clone_repo_url}
159 svn co ${c.clone_repo_url}
160 %endif
160 %endif
161 </pre>
161 </pre>
162
162
163 </div>
163 </div>
164
164
165
165
166 </div>
166 </div>
167 %endif
167 %endif
@@ -1,101 +1,113 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.mako"/>
2 <%inherit file="/base/base.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('%s Tags') % c.repo_name}
5 ${_('%s Tags') % c.repo_name}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10
10
11 <%def name="breadcrumbs_links()"></%def>
11 <%def name="breadcrumbs_links()"></%def>
12
12
13 <%def name="menu_bar_nav()">
13 <%def name="menu_bar_nav()">
14 ${self.menu_items(active='repositories')}
14 ${self.menu_items(active='repositories')}
15 </%def>
15 </%def>
16
16
17 <%def name="menu_bar_subnav()">
17 <%def name="menu_bar_subnav()">
18 ${self.repo_menu(active='summary')}
18 ${self.repo_menu(active='summary')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <div class="title">
23 <div class="title">
24
24
25 %if c.has_references:
25 %if c.has_references:
26 <ul class="links">
26 <ul class="links">
27 <li>
27 <li>
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Tags')}">
28 <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Tags')}">
29 </li>
29 </li>
30 </ul>
30 </ul>
31 %endif
31 %endif
32 %if c.has_references:
32 %if c.has_references:
33 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
33 <div class="grid-quick-filter">
34 <span id="obj_count">0</span> ${_('tags')}
34 <ul class="grid-filter-box">
35 <li class="grid-filter-box-icon">
36 <i class="icon-search"></i>
37 </li>
38 <li class="grid-filter-box-input">
39 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
40 </li>
41 </ul>
42 </div>
43 <div id="obj_count">0</div>
35 %endif
44 %endif
36 </div>
45 </div>
37 <table id="obj_list_table" class="display"></table>
46 <table id="obj_list_table" class="rctable table-bordered"></table>
38 </div>
47 </div>
39
48
40
49
41 <script type="text/javascript">
50 <script type="text/javascript">
42 $(document).ready(function() {
51 $(document).ready(function() {
43
52
44 var get_datatable_count = function(){
53 var get_datatable_count = function(){
45 var api = $('#obj_list_table').dataTable().api();
54 var api = $('#obj_list_table').dataTable().api();
46 $('#obj_count').text(api.page.info().recordsDisplay);
55 var total = api.page.info().recordsDisplay
56 var _text = _ngettext('{0} tag', '{0} tags', total).format(total);
57
58 $('#obj_count').text(_text);
47 };
59 };
48
60
49 // object list
61 // object list
50 $('#obj_list_table').DataTable({
62 $('#obj_list_table').DataTable({
51 data: ${c.data|n},
63 data: ${c.data|n},
52 dom: 'rtp',
64 dom: 'rtp',
53 pageLength: ${c.visual.dashboard_items},
65 pageLength: ${c.visual.dashboard_items},
54 order: [[ 0, "asc" ]],
66 order: [[ 0, "asc" ]],
55 columns: [
67 columns: [
56 { data: {"_": "name",
68 { data: {"_": "name",
57 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
69 "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" },
58 { data: {"_": "date",
70 { data: {"_": "date",
59 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
71 "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" },
60 { data: {"_": "author",
72 { data: {"_": "author",
61 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
73 "sort": "author"}, title: "${_('Author')}", className: "td-user" },
62 { data: {"_": "commit",
74 { data: {"_": "commit",
63 "sort": "commit_raw",
75 "sort": "commit_raw",
64 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
76 "type": Number}, title: "${_('Commit')}", className: "td-hash" },
65 { data: {"_": "compare",
77 { data: {"_": "compare",
66 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
78 "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" }
67 ],
79 ],
68 language: {
80 language: {
69 paginate: DEFAULT_GRID_PAGINATION,
81 paginate: DEFAULT_GRID_PAGINATION,
70 emptyTable: _gettext("No tags available yet.")
82 emptyTable: _gettext("No tags available yet.")
71 },
83 },
72 "initComplete": function(settings, json) {
84 "initComplete": function(settings, json) {
73 get_datatable_count();
85 get_datatable_count();
74 timeagoActivate();
86 timeagoActivate();
75 tooltipActivate();
87 tooltipActivate();
76 compare_radio_buttons("${c.repo_name}", 'tag');
88 compare_radio_buttons("${c.repo_name}", 'tag');
77 }
89 }
78 });
90 });
79
91
80 // update when things change
92 // update when things change
81 $('#obj_list_table').on('draw.dt', function() {
93 $('#obj_list_table').on('draw.dt', function() {
82 get_datatable_count();
94 get_datatable_count();
83 timeagoActivate();
95 timeagoActivate();
84 tooltipActivate();
96 tooltipActivate();
85 });
97 });
86
98
87 // filter, filter both grids
99 // filter, filter both grids
88 $('#q_filter').on('keyup', function() {
100 $('#q_filter').on('keyup', function() {
89 var obj_api = $('#obj_list_table').dataTable().api();
101 var obj_api = $('#obj_list_table').dataTable().api();
90 obj_api
102 obj_api
91 .columns(0)
103 .columns(0)
92 .search(this.value)
104 .search(this.value)
93 .draw();
105 .draw();
94 });
106 });
95
107
96 // refilter table if page load via back button
108 // refilter table if page load via back button
97 $("#q_filter").trigger('keyup');
109 $("#q_filter").trigger('keyup');
98 });
110 });
99
111
100 </script>
112 </script>
101 </%def>
113 </%def>
General Comments 0
You need to be logged in to leave comments. Login now