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