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