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