##// END OF EJS Templates
artifacts: updated CE code for this EE feature.
marcink -
r3675:38553320 new-ui
parent child Browse files
Show More
@@ -1,2518 +1,2551 b''
1 1 //Primary CSS
2 2
3 3 //--- IMPORTS ------------------//
4 4
5 5 @import 'helpers';
6 6 @import 'mixins';
7 7 @import 'rcicons';
8 8 @import 'variables';
9 9 @import 'bootstrap-variables';
10 10 @import 'form-bootstrap';
11 11 @import 'codemirror';
12 12 @import 'legacy_code_styles';
13 13 @import 'readme-box';
14 14 @import 'progress-bar';
15 15
16 16 @import 'type';
17 17 @import 'alerts';
18 18 @import 'buttons';
19 19 @import 'tags';
20 20 @import 'code-block';
21 21 @import 'examples';
22 22 @import 'login';
23 23 @import 'main-content';
24 24 @import 'select2';
25 25 @import 'comments';
26 26 @import 'panels-bootstrap';
27 27 @import 'panels';
28 28 @import 'deform';
29 29
30 30 //--- BASE ------------------//
31 31 .noscript-error {
32 32 top: 0;
33 33 left: 0;
34 34 width: 100%;
35 35 z-index: 101;
36 36 text-align: center;
37 37 font-size: 120%;
38 38 color: white;
39 39 background-color: @alert2;
40 40 padding: 5px 0 5px 0;
41 41 font-weight: @text-semibold-weight;
42 42 font-family: @text-semibold;
43 43 }
44 44
45 45 html {
46 46 display: table;
47 47 height: 100%;
48 48 width: 100%;
49 49 }
50 50
51 51 body {
52 52 display: table-cell;
53 53 width: 100%;
54 54 }
55 55
56 56 //--- LAYOUT ------------------//
57 57
58 58 .hidden{
59 59 display: none !important;
60 60 }
61 61
62 62 .box{
63 63 float: left;
64 64 width: 100%;
65 65 }
66 66
67 67 .browser-header {
68 68 clear: both;
69 69 }
70 70 .main {
71 71 clear: both;
72 72 padding:0 0 @pagepadding;
73 73 height: auto;
74 74
75 75 &:after { //clearfix
76 76 content:"";
77 77 clear:both;
78 78 width:100%;
79 79 display:block;
80 80 }
81 81 }
82 82
83 83 .action-link{
84 84 margin-left: @padding;
85 85 padding-left: @padding;
86 86 border-left: @border-thickness solid @border-default-color;
87 87 }
88 88
89 89 input + .action-link, .action-link.first{
90 90 border-left: none;
91 91 }
92 92
93 93 .action-link.last{
94 94 margin-right: @padding;
95 95 padding-right: @padding;
96 96 }
97 97
98 98 .action-link.active,
99 99 .action-link.active a{
100 100 color: @grey4;
101 101 }
102 102
103 103 .action-link.disabled {
104 104 color: @grey4;
105 105 cursor: inherit;
106 106 }
107 107
108 108 .clipboard-action {
109 109 cursor: pointer;
110 110 }
111 111
112 112 ul.simple-list{
113 113 list-style: none;
114 114 margin: 0;
115 115 padding: 0;
116 116 }
117 117
118 118 .main-content {
119 119 padding-bottom: @pagepadding;
120 120 }
121 121
122 122 .wide-mode-wrapper {
123 123 max-width:4000px !important;
124 124 }
125 125
126 126 .wrapper {
127 127 position: relative;
128 128 max-width: @wrapper-maxwidth;
129 129 margin: 0 auto;
130 130 }
131 131
132 132 #content {
133 133 clear: both;
134 134 padding: 0 @contentpadding;
135 135 }
136 136
137 137 .advanced-settings-fields{
138 138 input{
139 139 margin-left: @textmargin;
140 140 margin-right: @padding/2;
141 141 }
142 142 }
143 143
144 144 .cs_files_title {
145 145 margin: @pagepadding 0 0;
146 146 }
147 147
148 148 input.inline[type="file"] {
149 149 display: inline;
150 150 }
151 151
152 152 .error_page {
153 153 margin: 10% auto;
154 154
155 155 h1 {
156 156 color: @grey2;
157 157 }
158 158
159 159 .alert {
160 160 margin: @padding 0;
161 161 }
162 162
163 163 .error-branding {
164 164 color: @grey4;
165 165 font-weight: @text-semibold-weight;
166 166 font-family: @text-semibold;
167 167 }
168 168
169 169 .error_message {
170 170 font-family: @text-regular;
171 171 }
172 172
173 173 .sidebar {
174 174 min-height: 275px;
175 175 margin: 0;
176 176 padding: 0 0 @sidebarpadding @sidebarpadding;
177 177 border: none;
178 178 }
179 179
180 180 .main-content {
181 181 position: relative;
182 182 margin: 0 @sidebarpadding @sidebarpadding;
183 183 padding: 0 0 0 @sidebarpadding;
184 184 border-left: @border-thickness solid @grey5;
185 185
186 186 @media (max-width:767px) {
187 187 clear: both;
188 188 width: 100%;
189 189 margin: 0;
190 190 border: none;
191 191 }
192 192 }
193 193
194 194 .inner-column {
195 195 float: left;
196 196 width: 29.75%;
197 197 min-height: 150px;
198 198 margin: @sidebarpadding 2% 0 0;
199 199 padding: 0 2% 0 0;
200 200 border-right: @border-thickness solid @grey5;
201 201
202 202 @media (max-width:767px) {
203 203 clear: both;
204 204 width: 100%;
205 205 border: none;
206 206 }
207 207
208 208 ul {
209 209 padding-left: 1.25em;
210 210 }
211 211
212 212 &:last-child {
213 213 margin: @sidebarpadding 0 0;
214 214 border: none;
215 215 }
216 216
217 217 h4 {
218 218 margin: 0 0 @padding;
219 219 font-weight: @text-semibold-weight;
220 220 font-family: @text-semibold;
221 221 }
222 222 }
223 223 }
224 224 .error-page-logo {
225 225 width: 130px;
226 226 height: 160px;
227 227 }
228 228
229 229 // HEADER
230 230 .header {
231 231
232 232 // TODO: johbo: Fix login pages, so that they work without a min-height
233 233 // for the header and then remove the min-height. I chose a smaller value
234 234 // intentionally here to avoid rendering issues in the main navigation.
235 235 min-height: 49px;
236 236
237 237 position: relative;
238 238 vertical-align: bottom;
239 239 padding: 0 @header-padding;
240 240 background-color: @grey1;
241 241 color: @grey5;
242 242
243 243 .title {
244 244 overflow: visible;
245 245 }
246 246
247 247 &:before,
248 248 &:after {
249 249 content: "";
250 250 clear: both;
251 251 width: 100%;
252 252 }
253 253
254 254 // TODO: johbo: Avoids breaking "Repositories" chooser
255 255 .select2-container .select2-choice .select2-arrow {
256 256 display: none;
257 257 }
258 258 }
259 259
260 260 #header-inner {
261 261 &.title {
262 262 margin: 0;
263 263 }
264 264 &:before,
265 265 &:after {
266 266 content: "";
267 267 clear: both;
268 268 }
269 269 }
270 270
271 271 // Gists
272 272 #files_data {
273 273 clear: both; //for firefox
274 274 }
275 275 #gistid {
276 276 margin-right: @padding;
277 277 }
278 278
279 279 // Global Settings Editor
280 280 .textarea.editor {
281 281 float: left;
282 282 position: relative;
283 283 max-width: @texteditor-width;
284 284
285 285 select {
286 286 position: absolute;
287 287 top:10px;
288 288 right:0;
289 289 }
290 290
291 291 .CodeMirror {
292 292 margin: 0;
293 293 }
294 294
295 295 .help-block {
296 296 margin: 0 0 @padding;
297 297 padding:.5em;
298 298 background-color: @grey6;
299 299 &.pre-formatting {
300 300 white-space: pre;
301 301 }
302 302 }
303 303 }
304 304
305 305 ul.auth_plugins {
306 306 margin: @padding 0 @padding @legend-width;
307 307 padding: 0;
308 308
309 309 li {
310 310 margin-bottom: @padding;
311 311 line-height: 1em;
312 312 list-style-type: none;
313 313
314 314 .auth_buttons .btn {
315 315 margin-right: @padding;
316 316 }
317 317
318 318 }
319 319 }
320 320
321 321
322 322 // My Account PR list
323 323
324 324 #show_closed {
325 325 margin: 0 1em 0 0;
326 326 }
327 327
328 328 .pullrequestlist {
329 329 .closed {
330 330 background-color: @grey6;
331 331 }
332 332 .td-status {
333 333 padding-left: .5em;
334 334 }
335 335 .log-container .truncate {
336 336 height: 2.75em;
337 337 white-space: pre-line;
338 338 }
339 339 table.rctable .user {
340 340 padding-left: 0;
341 341 }
342 342 table.rctable {
343 343 td.td-description,
344 344 .rc-user {
345 345 min-width: auto;
346 346 }
347 347 }
348 348 }
349 349
350 350 // Pull Requests
351 351
352 352 .pullrequests_section_head {
353 353 display: block;
354 354 clear: both;
355 355 margin: @padding 0;
356 356 font-weight: @text-bold-weight;
357 357 font-family: @text-bold;
358 358 }
359 359
360 360 .pr-origininfo, .pr-targetinfo {
361 361 position: relative;
362 362
363 363 .tag {
364 364 display: inline-block;
365 365 margin: 0 1em .5em 0;
366 366 }
367 367
368 368 .clone-url {
369 369 display: inline-block;
370 370 margin: 0 0 .5em 0;
371 371 padding: 0;
372 372 line-height: 1.2em;
373 373 }
374 374 }
375 375
376 376 .pr-mergeinfo {
377 377 min-width: 95% !important;
378 378 padding: 0 !important;
379 379 border: 0;
380 380 }
381 381 .pr-mergeinfo-copy {
382 382 padding: 0 0;
383 383 }
384 384
385 385 .pr-pullinfo {
386 386 min-width: 95% !important;
387 387 padding: 0 !important;
388 388 border: 0;
389 389 }
390 390 .pr-pullinfo-copy {
391 391 padding: 0 0;
392 392 }
393 393
394 394
395 395 #pr-title-input {
396 396 width: 72%;
397 397 font-size: 1em;
398 398 margin: 0;
399 399 padding: 0 0 0 @padding/4;
400 400 line-height: 1.7em;
401 401 color: @text-color;
402 402 letter-spacing: .02em;
403 403 font-weight: @text-bold-weight;
404 404 font-family: @text-bold;
405 405 }
406 406
407 407 #pullrequest_title {
408 408 width: 100%;
409 409 box-sizing: border-box;
410 410 }
411 411
412 412 #pr_open_message {
413 413 border: @border-thickness solid #fff;
414 414 border-radius: @border-radius;
415 415 padding: @padding-large-vertical @padding-large-vertical @padding-large-vertical 0;
416 416 text-align: left;
417 417 overflow: hidden;
418 418 }
419 419
420 420 .pr-submit-button {
421 421 float: right;
422 422 margin: 0 0 0 5px;
423 423 }
424 424
425 425 .pr-spacing-container {
426 426 padding: 20px;
427 427 clear: both
428 428 }
429 429
430 430 #pr-description-input {
431 431 margin-bottom: 0;
432 432 }
433 433
434 434 .pr-description-label {
435 435 vertical-align: top;
436 436 }
437 437
438 438 .perms_section_head {
439 439 min-width: 625px;
440 440
441 441 h2 {
442 442 margin-bottom: 0;
443 443 }
444 444
445 445 .label-checkbox {
446 446 float: left;
447 447 }
448 448
449 449 &.field {
450 450 margin: @space 0 @padding;
451 451 }
452 452
453 453 &:first-child.field {
454 454 margin-top: 0;
455 455
456 456 .label {
457 457 margin-top: 0;
458 458 padding-top: 0;
459 459 }
460 460
461 461 .radios {
462 462 padding-top: 0;
463 463 }
464 464 }
465 465
466 466 .radios {
467 467 position: relative;
468 468 width: 505px;
469 469 }
470 470 }
471 471
472 472 //--- MODULES ------------------//
473 473
474 474
475 475 // Server Announcement
476 476 #server-announcement {
477 477 width: 95%;
478 478 margin: @padding auto;
479 479 padding: @padding;
480 480 border-width: 2px;
481 481 border-style: solid;
482 482 .border-radius(2px);
483 483 font-weight: @text-bold-weight;
484 484 font-family: @text-bold;
485 485
486 486 &.info { border-color: @alert4; background-color: @alert4-inner; }
487 487 &.warning { border-color: @alert3; background-color: @alert3-inner; }
488 488 &.error { border-color: @alert2; background-color: @alert2-inner; }
489 489 &.success { border-color: @alert1; background-color: @alert1-inner; }
490 490 &.neutral { border-color: @grey3; background-color: @grey6; }
491 491 }
492 492
493 493 // Fixed Sidebar Column
494 494 .sidebar-col-wrapper {
495 495 padding-left: @sidebar-all-width;
496 496
497 497 .sidebar {
498 498 width: @sidebar-width;
499 499 margin-left: -@sidebar-all-width;
500 500 }
501 501 }
502 502
503 503 .sidebar-col-wrapper.scw-small {
504 504 padding-left: @sidebar-small-all-width;
505 505
506 506 .sidebar {
507 507 width: @sidebar-small-width;
508 508 margin-left: -@sidebar-small-all-width;
509 509 }
510 510 }
511 511
512 512
513 513 // FOOTER
514 514 #footer {
515 515 padding: 0;
516 516 text-align: center;
517 517 vertical-align: middle;
518 518 color: @grey2;
519 519 font-size: 11px;
520 520
521 521 p {
522 522 margin: 0;
523 523 padding: 1em;
524 524 line-height: 1em;
525 525 }
526 526
527 527 .server-instance { //server instance
528 528 display: none;
529 529 }
530 530
531 531 .title {
532 532 float: none;
533 533 margin: 0 auto;
534 534 }
535 535 }
536 536
537 537 button.close {
538 538 padding: 0;
539 539 cursor: pointer;
540 540 background: transparent;
541 541 border: 0;
542 542 .box-shadow(none);
543 543 -webkit-appearance: none;
544 544 }
545 545
546 546 .close {
547 547 float: right;
548 548 font-size: 21px;
549 549 font-family: @text-bootstrap;
550 550 line-height: 1em;
551 551 font-weight: bold;
552 552 color: @grey2;
553 553
554 554 &:hover,
555 555 &:focus {
556 556 color: @grey1;
557 557 text-decoration: none;
558 558 cursor: pointer;
559 559 }
560 560 }
561 561
562 562 // GRID
563 563 .sorting,
564 564 .sorting_desc,
565 565 .sorting_asc {
566 566 cursor: pointer;
567 567 }
568 568 .sorting_desc:after {
569 569 content: "\00A0\25B2";
570 570 font-size: .75em;
571 571 }
572 572 .sorting_asc:after {
573 573 content: "\00A0\25BC";
574 574 font-size: .68em;
575 575 }
576 576
577 577
578 578 .user_auth_tokens {
579 579
580 580 &.truncate {
581 581 white-space: nowrap;
582 582 overflow: hidden;
583 583 text-overflow: ellipsis;
584 584 }
585 585
586 586 .fields .field .input {
587 587 margin: 0;
588 588 }
589 589
590 590 input#description {
591 591 width: 100px;
592 592 margin: 0;
593 593 }
594 594
595 595 .drop-menu {
596 596 // TODO: johbo: Remove this, should work out of the box when
597 597 // having multiple inputs inline
598 598 margin: 0 0 0 5px;
599 599 }
600 600 }
601 601 #user_list_table {
602 602 .closed {
603 603 background-color: @grey6;
604 604 }
605 605 }
606 606
607 607
608 608 input, textarea {
609 609 &.disabled {
610 610 opacity: .5;
611 611 }
612 612
613 613 &:hover {
614 614 border-color: @grey3;
615 615 box-shadow: @button-shadow;
616 616 }
617 617
618 618 &:focus {
619 619 border-color: @rcblue;
620 620 box-shadow: @button-shadow;
621 621 }
622 622 }
623 623
624 624 // remove extra padding in firefox
625 625 input::-moz-focus-inner { border:0; padding:0 }
626 626
627 627 .adjacent input {
628 628 margin-bottom: @padding;
629 629 }
630 630
631 631 .permissions_boxes {
632 632 display: block;
633 633 }
634 634
635 635 //FORMS
636 636
637 637 .medium-inline,
638 638 input#description.medium-inline {
639 639 display: inline;
640 640 width: @medium-inline-input-width;
641 641 min-width: 100px;
642 642 }
643 643
644 644 select {
645 645 //reset
646 646 -webkit-appearance: none;
647 647 -moz-appearance: none;
648 648
649 649 display: inline-block;
650 650 height: 28px;
651 651 width: auto;
652 652 margin: 0 @padding @padding 0;
653 653 padding: 0 18px 0 8px;
654 654 line-height:1em;
655 655 font-size: @basefontsize;
656 656 border: @border-thickness solid @grey5;
657 657 border-radius: @border-radius;
658 658 background:white url("../images/dt-arrow-dn.png") no-repeat 100% 50%;
659 659 color: @grey4;
660 660 box-shadow: @button-shadow;
661 661
662 662 &:after {
663 663 content: "\00A0\25BE";
664 664 }
665 665
666 666 &:focus, &:hover {
667 667 outline: none;
668 668 border-color: @grey4;
669 669 color: @rcdarkblue;
670 670 }
671 671 }
672 672
673 673 option {
674 674 &:focus {
675 675 outline: none;
676 676 }
677 677 }
678 678
679 679 input,
680 680 textarea {
681 681 padding: @input-padding;
682 682 border: @input-border-thickness solid @border-highlight-color;
683 683 .border-radius (@border-radius);
684 684 font-family: @text-light;
685 685 font-size: @basefontsize;
686 686
687 687 &.input-sm {
688 688 padding: 5px;
689 689 }
690 690
691 691 &#description {
692 692 min-width: @input-description-minwidth;
693 693 min-height: 1em;
694 694 padding: 10px;
695 695 }
696 696 }
697 697
698 698 .field-sm {
699 699 input,
700 700 textarea {
701 701 padding: 5px;
702 702 }
703 703 }
704 704
705 705 textarea {
706 706 display: block;
707 707 clear: both;
708 708 width: 100%;
709 709 min-height: 100px;
710 710 margin-bottom: @padding;
711 711 .box-sizing(border-box);
712 712 overflow: auto;
713 713 }
714 714
715 715 label {
716 716 font-family: @text-light;
717 717 }
718 718
719 719 // GRAVATARS
720 720 // centers gravatar on username to the right
721 721
722 722 .gravatar {
723 723 display: inline;
724 724 min-width: 16px;
725 725 min-height: 16px;
726 726 margin: -5px 0;
727 727 padding: 0;
728 728 line-height: 1em;
729 729 box-sizing: content-box;
730 730 border-radius: 50%;
731 731
732 732 &.gravatar-large {
733 733 margin: -0.5em .25em -0.5em 0;
734 734 }
735 735
736 736 & + .user {
737 737 display: inline;
738 738 margin: 0;
739 739 padding: 0 0 0 .17em;
740 740 line-height: 1em;
741 741 }
742 742 }
743 743
744 744 .user-inline-data {
745 745 display: inline-block;
746 746 float: left;
747 747 padding-left: .5em;
748 748 line-height: 1.3em;
749 749 }
750 750
751 751 .rc-user { // gravatar + user wrapper
752 752 float: left;
753 753 position: relative;
754 754 min-width: 100px;
755 755 max-width: 200px;
756 756 min-height: (@gravatar-size + @border-thickness * 2); // account for border
757 757 display: block;
758 758 padding: 0 0 0 (@gravatar-size + @basefontsize/2 + @border-thickness * 2);
759 759
760 760
761 761 .gravatar {
762 762 display: block;
763 763 position: absolute;
764 764 top: 0;
765 765 left: 0;
766 766 min-width: @gravatar-size;
767 767 min-height: @gravatar-size;
768 768 margin: 0;
769 769 }
770 770
771 771 .user {
772 772 display: block;
773 773 max-width: 175px;
774 774 padding-top: 2px;
775 775 overflow: hidden;
776 776 text-overflow: ellipsis;
777 777 }
778 778 }
779 779
780 780 .gist-gravatar,
781 781 .journal_container {
782 782 .gravatar-large {
783 783 margin: 0 .5em -10px 0;
784 784 }
785 785 }
786 786
787 787
788 788 // ADMIN SETTINGS
789 789
790 790 // Tag Patterns
791 791 .tag_patterns {
792 792 .tag_input {
793 793 margin-bottom: @padding;
794 794 }
795 795 }
796 796
797 797 .locked_input {
798 798 position: relative;
799 799
800 800 input {
801 801 display: inline;
802 802 margin: 3px 5px 0px 0px;
803 803 }
804 804
805 805 br {
806 806 display: none;
807 807 }
808 808
809 809 .error-message {
810 810 float: left;
811 811 width: 100%;
812 812 }
813 813
814 814 .lock_input_button {
815 815 display: inline;
816 816 }
817 817
818 818 .help-block {
819 819 clear: both;
820 820 }
821 821 }
822 822
823 823 // Notifications
824 824
825 825 .notifications_buttons {
826 826 margin: 0 0 @space 0;
827 827 padding: 0;
828 828
829 829 .btn {
830 830 display: inline-block;
831 831 }
832 832 }
833 833
834 834 .notification-list {
835 835
836 836 div {
837 837 display: inline-block;
838 838 vertical-align: middle;
839 839 }
840 840
841 841 .container {
842 842 display: block;
843 843 margin: 0 0 @padding 0;
844 844 }
845 845
846 846 .delete-notifications {
847 847 margin-left: @padding;
848 848 text-align: right;
849 849 cursor: pointer;
850 850 }
851 851
852 852 .read-notifications {
853 853 margin-left: @padding/2;
854 854 text-align: right;
855 855 width: 35px;
856 856 cursor: pointer;
857 857 }
858 858
859 859 .icon-minus-sign {
860 860 color: @alert2;
861 861 }
862 862
863 863 .icon-ok-sign {
864 864 color: @alert1;
865 865 }
866 866 }
867 867
868 868 .user_settings {
869 869 float: left;
870 870 clear: both;
871 871 display: block;
872 872 width: 100%;
873 873
874 874 .gravatar_box {
875 875 margin-bottom: @padding;
876 876
877 877 &:after {
878 878 content: " ";
879 879 clear: both;
880 880 width: 100%;
881 881 }
882 882 }
883 883
884 884 .fields .field {
885 885 clear: both;
886 886 }
887 887 }
888 888
889 889 .advanced_settings {
890 890 margin-bottom: @space;
891 891
892 892 .help-block {
893 893 margin-left: 0;
894 894 }
895 895
896 896 button + .help-block {
897 897 margin-top: @padding;
898 898 }
899 899 }
900 900
901 901 // admin settings radio buttons and labels
902 902 .label-2 {
903 903 float: left;
904 904 width: @label2-width;
905 905
906 906 label {
907 907 color: @grey1;
908 908 }
909 909 }
910 910 .checkboxes {
911 911 float: left;
912 912 width: @checkboxes-width;
913 913 margin-bottom: @padding;
914 914
915 915 .checkbox {
916 916 width: 100%;
917 917
918 918 label {
919 919 margin: 0;
920 920 padding: 0;
921 921 }
922 922 }
923 923
924 924 .checkbox + .checkbox {
925 925 display: inline-block;
926 926 }
927 927
928 928 label {
929 929 margin-right: 1em;
930 930 }
931 931 }
932 932
933 933 // CHANGELOG
934 934 .container_header {
935 935 float: left;
936 936 display: block;
937 937 width: 100%;
938 938 margin: @padding 0 @padding;
939 939
940 940 #filter_changelog {
941 941 float: left;
942 942 margin-right: @padding;
943 943 }
944 944
945 945 .breadcrumbs_light {
946 946 display: inline-block;
947 947 }
948 948 }
949 949
950 950 .info_box {
951 951 float: right;
952 952 }
953 953
954 954
955 955 #graph_nodes {
956 956 padding-top: 43px;
957 957 }
958 958
959 959 #graph_content{
960 960
961 961 // adjust for table headers so that graph renders properly
962 962 // #graph_nodes padding - table cell padding
963 963 padding-top: (@space - (@basefontsize * 2.4));
964 964
965 965 &.graph_full_width {
966 966 width: 100%;
967 967 max-width: 100%;
968 968 }
969 969 }
970 970
971 971 #graph {
972 972 .flag_status {
973 973 margin: 0;
974 974 }
975 975
976 976 .pagination-left {
977 977 float: left;
978 978 clear: both;
979 979 }
980 980
981 981 .log-container {
982 982 max-width: 345px;
983 983
984 984 .message{
985 985 max-width: 340px;
986 986 }
987 987 }
988 988
989 989 .graph-col-wrapper {
990 990 padding-left: 110px;
991 991
992 992 #graph_nodes {
993 993 width: 100px;
994 994 margin-left: -110px;
995 995 float: left;
996 996 clear: left;
997 997 }
998 998 }
999 999
1000 1000 .load-more-commits {
1001 1001 text-align: center;
1002 1002 }
1003 1003 .load-more-commits:hover {
1004 1004 background-color: @grey7;
1005 1005 }
1006 1006 .load-more-commits {
1007 1007 a {
1008 1008 display: block;
1009 1009 }
1010 1010 }
1011 1011 }
1012 1012
1013 1013 #filter_changelog {
1014 1014 float: left;
1015 1015 }
1016 1016
1017 1017
1018 1018 //--- THEME ------------------//
1019 1019
1020 1020 #logo {
1021 1021 float: left;
1022 1022 margin: 9px 0 0 0;
1023 1023
1024 1024 .header {
1025 1025 background-color: transparent;
1026 1026 }
1027 1027
1028 1028 a {
1029 1029 display: inline-block;
1030 1030 }
1031 1031
1032 1032 img {
1033 1033 height:30px;
1034 1034 }
1035 1035 }
1036 1036
1037 1037 .logo-wrapper {
1038 1038 float:left;
1039 1039 }
1040 1040
1041 1041 .branding {
1042 1042 float: left;
1043 1043 padding: 9px 2px;
1044 1044 line-height: 1em;
1045 1045 font-size: @navigation-fontsize;
1046 1046
1047 1047 a {
1048 1048 color: @grey5
1049 1049 }
1050 1050 }
1051 1051
1052 1052 img {
1053 1053 border: none;
1054 1054 outline: none;
1055 1055 }
1056 1056 user-profile-header
1057 1057 label {
1058 1058
1059 1059 input[type="checkbox"] {
1060 1060 margin-right: 1em;
1061 1061 }
1062 1062 input[type="radio"] {
1063 1063 margin-right: 1em;
1064 1064 }
1065 1065 }
1066 1066
1067 1067 .flag_status {
1068 1068 margin: 2px;
1069 1069 &.under_review {
1070 1070 .circle(5px, @alert3);
1071 1071 }
1072 1072 &.approved {
1073 1073 .circle(5px, @alert1);
1074 1074 }
1075 1075 &.rejected,
1076 1076 &.forced_closed{
1077 1077 .circle(5px, @alert2);
1078 1078 }
1079 1079 &.not_reviewed {
1080 1080 .circle(5px, @grey5);
1081 1081 }
1082 1082 }
1083 1083
1084 1084 .flag_status_comment_box {
1085 1085 margin: 5px 6px 0px 2px;
1086 1086 }
1087 1087 .test_pattern_preview {
1088 1088 margin: @space 0;
1089 1089
1090 1090 p {
1091 1091 margin-bottom: 0;
1092 1092 border-bottom: @border-thickness solid @border-default-color;
1093 1093 color: @grey3;
1094 1094 }
1095 1095
1096 1096 .btn {
1097 1097 margin-bottom: @padding;
1098 1098 }
1099 1099 }
1100 1100 #test_pattern_result {
1101 1101 display: none;
1102 1102 &:extend(pre);
1103 1103 padding: .9em;
1104 1104 color: @grey3;
1105 1105 background-color: @grey7;
1106 1106 border-right: @border-thickness solid @border-default-color;
1107 1107 border-bottom: @border-thickness solid @border-default-color;
1108 1108 border-left: @border-thickness solid @border-default-color;
1109 1109 }
1110 1110
1111 1111 #repo_vcs_settings {
1112 1112 #inherit_overlay_vcs_default {
1113 1113 display: none;
1114 1114 }
1115 1115 #inherit_overlay_vcs_custom {
1116 1116 display: custom;
1117 1117 }
1118 1118 &.inherited {
1119 1119 #inherit_overlay_vcs_default {
1120 1120 display: block;
1121 1121 }
1122 1122 #inherit_overlay_vcs_custom {
1123 1123 display: none;
1124 1124 }
1125 1125 }
1126 1126 }
1127 1127
1128 1128 .issue-tracker-link {
1129 1129 color: @rcblue;
1130 1130 }
1131 1131
1132 1132 // Issue Tracker Table Show/Hide
1133 1133 #repo_issue_tracker {
1134 1134 #inherit_overlay {
1135 1135 display: none;
1136 1136 }
1137 1137 #custom_overlay {
1138 1138 display: custom;
1139 1139 }
1140 1140 &.inherited {
1141 1141 #inherit_overlay {
1142 1142 display: block;
1143 1143 }
1144 1144 #custom_overlay {
1145 1145 display: none;
1146 1146 }
1147 1147 }
1148 1148 }
1149 1149 table.issuetracker {
1150 1150 &.readonly {
1151 1151 tr, td {
1152 1152 color: @grey3;
1153 1153 }
1154 1154 }
1155 1155 .edit {
1156 1156 display: none;
1157 1157 }
1158 1158 .editopen {
1159 1159 .edit {
1160 1160 display: inline;
1161 1161 }
1162 1162 .entry {
1163 1163 display: none;
1164 1164 }
1165 1165 }
1166 1166 tr td.td-action {
1167 1167 min-width: 117px;
1168 1168 }
1169 1169 td input {
1170 1170 max-width: none;
1171 1171 min-width: 30px;
1172 1172 width: 80%;
1173 1173 }
1174 1174 .issuetracker_pref input {
1175 1175 width: 40%;
1176 1176 }
1177 1177 input.edit_issuetracker_update {
1178 1178 margin-right: 0;
1179 1179 width: auto;
1180 1180 }
1181 1181 }
1182 1182
1183 1183 table.integrations {
1184 1184 .td-icon {
1185 1185 width: 20px;
1186 1186 .integration-icon {
1187 1187 height: 20px;
1188 1188 width: 20px;
1189 1189 }
1190 1190 }
1191 1191 }
1192 1192
1193 1193 .integrations {
1194 1194 a.integration-box {
1195 1195 color: @text-color;
1196 1196 &:hover {
1197 1197 .panel {
1198 1198 background: #fbfbfb;
1199 1199 }
1200 1200 }
1201 1201 .integration-icon {
1202 1202 width: 30px;
1203 1203 height: 30px;
1204 1204 margin-right: 20px;
1205 1205 float: left;
1206 1206 }
1207 1207
1208 1208 .panel-body {
1209 1209 padding: 10px;
1210 1210 }
1211 1211 .panel {
1212 1212 margin-bottom: 10px;
1213 1213 }
1214 1214 h2 {
1215 1215 display: inline-block;
1216 1216 margin: 0;
1217 1217 min-width: 140px;
1218 1218 }
1219 1219 }
1220 1220 a.integration-box.dummy-integration {
1221 1221 color: @grey4
1222 1222 }
1223 1223 }
1224 1224
1225 1225 //Permissions Settings
1226 1226 #add_perm {
1227 1227 margin: 0 0 @padding;
1228 1228 cursor: pointer;
1229 1229 }
1230 1230
1231 1231 .perm_ac {
1232 1232 input {
1233 1233 width: 95%;
1234 1234 }
1235 1235 }
1236 1236
1237 1237 .autocomplete-suggestions {
1238 1238 width: auto !important; // overrides autocomplete.js
1239 1239 min-width: 278px;
1240 1240 margin: 0;
1241 1241 border: @border-thickness solid @grey5;
1242 1242 border-radius: @border-radius;
1243 1243 color: @grey2;
1244 1244 background-color: white;
1245 1245 }
1246 1246
1247 1247 .autocomplete-selected {
1248 1248 background: #F0F0F0;
1249 1249 }
1250 1250
1251 1251 .ac-container-wrap {
1252 1252 margin: 0;
1253 1253 padding: 8px;
1254 1254 border-bottom: @border-thickness solid @grey5;
1255 1255 list-style-type: none;
1256 1256 cursor: pointer;
1257 1257
1258 1258 &:hover {
1259 1259 background-color: @grey7;
1260 1260 }
1261 1261
1262 1262 img {
1263 1263 height: @gravatar-size;
1264 1264 width: @gravatar-size;
1265 1265 margin-right: 1em;
1266 1266 }
1267 1267
1268 1268 strong {
1269 1269 font-weight: normal;
1270 1270 }
1271 1271 }
1272 1272
1273 1273 // Settings Dropdown
1274 1274 .user-menu .container {
1275 1275 padding: 0 4px;
1276 1276 margin: 0;
1277 1277 }
1278 1278
1279 1279 .user-menu .gravatar {
1280 1280 cursor: pointer;
1281 1281 }
1282 1282
1283 1283 .codeblock {
1284 1284 margin-bottom: @padding;
1285 1285 clear: both;
1286 1286
1287 1287 .stats {
1288 1288 overflow: hidden;
1289 1289 }
1290 1290
1291 1291 .message{
1292 1292 textarea{
1293 1293 margin: 0;
1294 1294 }
1295 1295 }
1296 1296
1297 1297 .code-header {
1298 1298 .stats {
1299 1299 line-height: 2em;
1300 1300
1301 1301 .revision_id {
1302 1302 margin-left: 0;
1303 1303 }
1304 1304 .buttons {
1305 1305 padding-right: 0;
1306 1306 }
1307 1307 }
1308 1308
1309 1309 .item{
1310 1310 margin-right: 0.5em;
1311 1311 }
1312 1312 }
1313 1313
1314 1314 #editor_container{
1315 1315 position: relative;
1316 1316 margin: @padding;
1317 1317 }
1318 1318 }
1319 1319
1320 1320 #file_history_container {
1321 1321 display: none;
1322 1322 }
1323 1323
1324 1324 .file-history-inner {
1325 1325 margin-bottom: 10px;
1326 1326 }
1327 1327
1328 1328 // Pull Requests
1329 1329 .summary-details {
1330 1330 width: 72%;
1331 1331 }
1332 1332 .pr-summary {
1333 1333 border-bottom: @border-thickness solid @grey5;
1334 1334 margin-bottom: @space;
1335 1335 }
1336 1336 .reviewers-title {
1337 1337 width: 25%;
1338 1338 min-width: 200px;
1339 1339 }
1340 1340 .reviewers {
1341 1341 width: 25%;
1342 1342 min-width: 200px;
1343 1343 }
1344 1344 .reviewers ul li {
1345 1345 position: relative;
1346 1346 width: 100%;
1347 1347 padding-bottom: 8px;
1348 1348 list-style-type: none;
1349 1349 }
1350 1350
1351 1351 .reviewer_entry {
1352 1352 min-height: 55px;
1353 1353 }
1354 1354
1355 1355 .reviewers_member {
1356 1356 width: 100%;
1357 1357 overflow: auto;
1358 1358 }
1359 1359 .reviewer_reason {
1360 1360 padding-left: 20px;
1361 1361 line-height: 1.5em;
1362 1362 }
1363 1363 .reviewer_status {
1364 1364 display: inline-block;
1365 1365 vertical-align: top;
1366 1366 width: 25px;
1367 1367 min-width: 25px;
1368 1368 height: 1.2em;
1369 1369 margin-top: 3px;
1370 1370 line-height: 1em;
1371 1371 }
1372 1372
1373 1373 .reviewer_name {
1374 1374 display: inline-block;
1375 1375 max-width: 83%;
1376 1376 padding-right: 20px;
1377 1377 vertical-align: middle;
1378 1378 line-height: 1;
1379 1379
1380 1380 .rc-user {
1381 1381 min-width: 0;
1382 1382 margin: -2px 1em 0 0;
1383 1383 }
1384 1384
1385 1385 .reviewer {
1386 1386 float: left;
1387 1387 }
1388 1388 }
1389 1389
1390 1390 .reviewer_member_mandatory {
1391 1391 position: absolute;
1392 1392 left: 15px;
1393 1393 top: 8px;
1394 1394 width: 16px;
1395 1395 font-size: 11px;
1396 1396 margin: 0;
1397 1397 padding: 0;
1398 1398 color: black;
1399 1399 }
1400 1400
1401 1401 .reviewer_member_mandatory_remove,
1402 1402 .reviewer_member_remove {
1403 1403 position: absolute;
1404 1404 right: 0;
1405 1405 top: 0;
1406 1406 width: 16px;
1407 1407 margin-bottom: 10px;
1408 1408 padding: 0;
1409 1409 color: black;
1410 1410 }
1411 1411
1412 1412 .reviewer_member_mandatory_remove {
1413 1413 color: @grey4;
1414 1414 }
1415 1415
1416 1416 .reviewer_member_status {
1417 1417 margin-top: 5px;
1418 1418 }
1419 1419 .pr-summary #summary{
1420 1420 width: 100%;
1421 1421 }
1422 1422 .pr-summary .action_button:hover {
1423 1423 border: 0;
1424 1424 cursor: pointer;
1425 1425 }
1426 1426 .pr-details-title {
1427 1427 padding-bottom: 8px;
1428 1428 border-bottom: @border-thickness solid @grey5;
1429 1429
1430 1430 .action_button.disabled {
1431 1431 color: @grey4;
1432 1432 cursor: inherit;
1433 1433 }
1434 1434 .action_button {
1435 1435 color: @rcblue;
1436 1436 }
1437 1437 }
1438 1438 .pr-details-content {
1439 1439 margin-top: @textmargin;
1440 1440 margin-bottom: @textmargin;
1441 1441 }
1442 1442
1443 1443 .pr-reviewer-rules {
1444 1444 padding: 10px 0px 20px 0px;
1445 1445 }
1446 1446
1447 1447 .group_members {
1448 1448 margin-top: 0;
1449 1449 padding: 0;
1450 1450 list-style: outside none none;
1451 1451
1452 1452 img {
1453 1453 height: @gravatar-size;
1454 1454 width: @gravatar-size;
1455 1455 margin-right: .5em;
1456 1456 margin-left: 3px;
1457 1457 }
1458 1458
1459 1459 .to-delete {
1460 1460 .user {
1461 1461 text-decoration: line-through;
1462 1462 }
1463 1463 }
1464 1464 }
1465 1465
1466 1466 .compare_view_commits_title {
1467 1467 .disabled {
1468 1468 cursor: inherit;
1469 1469 &:hover{
1470 1470 background-color: inherit;
1471 1471 color: inherit;
1472 1472 }
1473 1473 }
1474 1474 }
1475 1475
1476 1476 .subtitle-compare {
1477 1477 margin: -15px 0px 0px 0px;
1478 1478 }
1479 1479
1480 1480 .comments-summary-td {
1481 1481 border-top: 1px dashed @grey5;
1482 1482 }
1483 1483
1484 1484 // new entry in group_members
1485 1485 .td-author-new-entry {
1486 1486 background-color: rgba(red(@alert1), green(@alert1), blue(@alert1), 0.3);
1487 1487 }
1488 1488
1489 1489 .usergroup_member_remove {
1490 1490 width: 16px;
1491 1491 margin-bottom: 10px;
1492 1492 padding: 0;
1493 1493 color: black !important;
1494 1494 cursor: pointer;
1495 1495 }
1496 1496
1497 1497 .reviewer_ac .ac-input {
1498 1498 width: 92%;
1499 1499 margin-bottom: 1em;
1500 1500 }
1501 1501
1502 1502 .compare_view_commits tr{
1503 1503 height: 20px;
1504 1504 }
1505 1505 .compare_view_commits td {
1506 1506 vertical-align: top;
1507 1507 padding-top: 10px;
1508 1508 }
1509 1509 .compare_view_commits .author {
1510 1510 margin-left: 5px;
1511 1511 }
1512 1512
1513 1513 .compare_view_commits {
1514 1514 .color-a {
1515 1515 color: @alert1;
1516 1516 }
1517 1517
1518 1518 .color-c {
1519 1519 color: @color3;
1520 1520 }
1521 1521
1522 1522 .color-r {
1523 1523 color: @color5;
1524 1524 }
1525 1525
1526 1526 .color-a-bg {
1527 1527 background-color: @alert1;
1528 1528 }
1529 1529
1530 1530 .color-c-bg {
1531 1531 background-color: @alert3;
1532 1532 }
1533 1533
1534 1534 .color-r-bg {
1535 1535 background-color: @alert2;
1536 1536 }
1537 1537
1538 1538 .color-a-border {
1539 1539 border: 1px solid @alert1;
1540 1540 }
1541 1541
1542 1542 .color-c-border {
1543 1543 border: 1px solid @alert3;
1544 1544 }
1545 1545
1546 1546 .color-r-border {
1547 1547 border: 1px solid @alert2;
1548 1548 }
1549 1549
1550 1550 .commit-change-indicator {
1551 1551 width: 15px;
1552 1552 height: 15px;
1553 1553 position: relative;
1554 1554 left: 15px;
1555 1555 }
1556 1556
1557 1557 .commit-change-content {
1558 1558 text-align: center;
1559 1559 vertical-align: middle;
1560 1560 line-height: 15px;
1561 1561 }
1562 1562 }
1563 1563
1564 1564 .compare_view_filepath {
1565 1565 color: @grey1;
1566 1566 }
1567 1567
1568 1568 .show_more {
1569 1569 display: inline-block;
1570 1570 width: 0;
1571 1571 height: 0;
1572 1572 vertical-align: middle;
1573 1573 content: "";
1574 1574 border: 4px solid;
1575 1575 border-right-color: transparent;
1576 1576 border-bottom-color: transparent;
1577 1577 border-left-color: transparent;
1578 1578 font-size: 0;
1579 1579 }
1580 1580
1581 1581 .journal_more .show_more {
1582 1582 display: inline;
1583 1583
1584 1584 &:after {
1585 1585 content: none;
1586 1586 }
1587 1587 }
1588 1588
1589 1589 .compare_view_commits .collapse_commit:after {
1590 1590 cursor: pointer;
1591 1591 content: "\00A0\25B4";
1592 1592 margin-left: -3px;
1593 1593 font-size: 17px;
1594 1594 color: @grey4;
1595 1595 }
1596 1596
1597 1597 .diff_links {
1598 1598 margin-left: 8px;
1599 1599 }
1600 1600
1601 1601 div.ancestor {
1602 1602 margin: -30px 0px;
1603 1603 }
1604 1604
1605 1605 .cs_icon_td input[type="checkbox"] {
1606 1606 display: none;
1607 1607 }
1608 1608
1609 1609 .cs_icon_td .expand_file_icon:after {
1610 1610 cursor: pointer;
1611 1611 content: "\00A0\25B6";
1612 1612 font-size: 12px;
1613 1613 color: @grey4;
1614 1614 }
1615 1615
1616 1616 .cs_icon_td .collapse_file_icon:after {
1617 1617 cursor: pointer;
1618 1618 content: "\00A0\25BC";
1619 1619 font-size: 12px;
1620 1620 color: @grey4;
1621 1621 }
1622 1622
1623 1623 /*new binary
1624 1624 NEW_FILENODE = 1
1625 1625 DEL_FILENODE = 2
1626 1626 MOD_FILENODE = 3
1627 1627 RENAMED_FILENODE = 4
1628 1628 COPIED_FILENODE = 5
1629 1629 CHMOD_FILENODE = 6
1630 1630 BIN_FILENODE = 7
1631 1631 */
1632 1632 .cs_files_expand {
1633 1633 font-size: @basefontsize + 5px;
1634 1634 line-height: 1.8em;
1635 1635 float: right;
1636 1636 }
1637 1637
1638 1638 .cs_files_expand span{
1639 1639 color: @rcblue;
1640 1640 cursor: pointer;
1641 1641 }
1642 1642 .cs_files {
1643 1643 clear: both;
1644 1644 padding-bottom: @padding;
1645 1645
1646 1646 .cur_cs {
1647 1647 margin: 10px 2px;
1648 1648 font-weight: bold;
1649 1649 }
1650 1650
1651 1651 .node {
1652 1652 float: left;
1653 1653 }
1654 1654
1655 1655 .changes {
1656 1656 float: right;
1657 1657 color: white;
1658 1658 font-size: @basefontsize - 4px;
1659 1659 margin-top: 4px;
1660 1660 opacity: 0.6;
1661 1661 filter: Alpha(opacity=60); /* IE8 and earlier */
1662 1662
1663 1663 .added {
1664 1664 background-color: @alert1;
1665 1665 float: left;
1666 1666 text-align: center;
1667 1667 }
1668 1668
1669 1669 .deleted {
1670 1670 background-color: @alert2;
1671 1671 float: left;
1672 1672 text-align: center;
1673 1673 }
1674 1674
1675 1675 .bin {
1676 1676 background-color: @alert1;
1677 1677 text-align: center;
1678 1678 }
1679 1679
1680 1680 /*new binary*/
1681 1681 .bin.bin1 {
1682 1682 background-color: @alert1;
1683 1683 text-align: center;
1684 1684 }
1685 1685
1686 1686 /*deleted binary*/
1687 1687 .bin.bin2 {
1688 1688 background-color: @alert2;
1689 1689 text-align: center;
1690 1690 }
1691 1691
1692 1692 /*mod binary*/
1693 1693 .bin.bin3 {
1694 1694 background-color: @grey2;
1695 1695 text-align: center;
1696 1696 }
1697 1697
1698 1698 /*rename file*/
1699 1699 .bin.bin4 {
1700 1700 background-color: @alert4;
1701 1701 text-align: center;
1702 1702 }
1703 1703
1704 1704 /*copied file*/
1705 1705 .bin.bin5 {
1706 1706 background-color: @alert4;
1707 1707 text-align: center;
1708 1708 }
1709 1709
1710 1710 /*chmod file*/
1711 1711 .bin.bin6 {
1712 1712 background-color: @grey2;
1713 1713 text-align: center;
1714 1714 }
1715 1715 }
1716 1716 }
1717 1717
1718 1718 .cs_files .cs_added, .cs_files .cs_A,
1719 1719 .cs_files .cs_added, .cs_files .cs_M,
1720 1720 .cs_files .cs_added, .cs_files .cs_D {
1721 1721 height: 16px;
1722 1722 padding-right: 10px;
1723 1723 margin-top: 7px;
1724 1724 text-align: left;
1725 1725 }
1726 1726
1727 1727 .cs_icon_td {
1728 1728 min-width: 16px;
1729 1729 width: 16px;
1730 1730 }
1731 1731
1732 1732 .pull-request-merge {
1733 1733 border: 1px solid @grey5;
1734 1734 padding: 10px 0px 20px;
1735 1735 margin-top: 10px;
1736 1736 margin-bottom: 20px;
1737 1737 }
1738 1738
1739 1739 .pull-request-merge ul {
1740 1740 padding: 0px 0px;
1741 1741 }
1742 1742
1743 1743 .pull-request-merge li {
1744 1744 list-style-type: none;
1745 1745 }
1746 1746
1747 1747 .pull-request-merge .pull-request-wrap {
1748 1748 height: auto;
1749 1749 padding: 0px 0px;
1750 1750 text-align: right;
1751 1751 }
1752 1752
1753 1753 .pull-request-merge span {
1754 1754 margin-right: 5px;
1755 1755 }
1756 1756
1757 1757 .pull-request-merge-actions {
1758 1758 min-height: 30px;
1759 1759 padding: 0px 0px;
1760 1760 }
1761 1761
1762 1762 .pull-request-merge-info {
1763 1763 padding: 0px 5px 5px 0px;
1764 1764 }
1765 1765
1766 1766 .merge-status {
1767 1767 margin-right: 5px;
1768 1768 }
1769 1769
1770 1770 .merge-message {
1771 1771 font-size: 1.2em
1772 1772 }
1773 1773
1774 1774 .merge-message.success i,
1775 1775 .merge-icon.success i {
1776 1776 color:@alert1;
1777 1777 }
1778 1778
1779 1779 .merge-message.warning i,
1780 1780 .merge-icon.warning i {
1781 1781 color: @alert3;
1782 1782 }
1783 1783
1784 1784 .merge-message.error i,
1785 1785 .merge-icon.error i {
1786 1786 color:@alert2;
1787 1787 }
1788 1788
1789 1789 .pr-versions {
1790 1790 font-size: 1.1em;
1791 1791
1792 1792 table {
1793 1793 padding: 0px 5px;
1794 1794 }
1795 1795
1796 1796 td {
1797 1797 line-height: 15px;
1798 1798 }
1799 1799
1800 1800 .flag_status {
1801 1801 margin: 0;
1802 1802 }
1803 1803
1804 1804 .compare-radio-button {
1805 1805 position: relative;
1806 1806 top: -3px;
1807 1807 }
1808 1808 }
1809 1809
1810 1810
1811 1811 #close_pull_request {
1812 1812 margin-right: 0px;
1813 1813 }
1814 1814
1815 1815 .empty_data {
1816 1816 color: @grey4;
1817 1817 }
1818 1818
1819 1819 #changeset_compare_view_content {
1820 1820 margin-bottom: @space;
1821 1821 clear: both;
1822 1822 width: 100%;
1823 1823 box-sizing: border-box;
1824 1824 .border-radius(@border-radius);
1825 1825
1826 1826 .help-block {
1827 1827 margin: @padding 0;
1828 1828 color: @text-color;
1829 1829 &.pre-formatting {
1830 1830 white-space: pre;
1831 1831 }
1832 1832 }
1833 1833
1834 1834 .empty_data {
1835 1835 margin: @padding 0;
1836 1836 }
1837 1837
1838 1838 .alert {
1839 1839 margin-bottom: @space;
1840 1840 }
1841 1841 }
1842 1842
1843 1843 .table_disp {
1844 1844 .status {
1845 1845 width: auto;
1846 1846
1847 1847 .flag_status {
1848 1848 float: left;
1849 1849 }
1850 1850 }
1851 1851 }
1852 1852
1853 1853
1854 1854 .creation_in_progress {
1855 1855 color: @grey4
1856 1856 }
1857 1857
1858 1858 .status_box_menu {
1859 1859 margin: 0;
1860 1860 }
1861 1861
1862 1862 .notification-table{
1863 1863 margin-bottom: @space;
1864 1864 display: table;
1865 1865 width: 100%;
1866 1866
1867 1867 .container{
1868 1868 display: table-row;
1869 1869
1870 1870 .notification-header{
1871 1871 border-bottom: @border-thickness solid @border-default-color;
1872 1872 }
1873 1873
1874 1874 .notification-subject{
1875 1875 display: table-cell;
1876 1876 }
1877 1877 }
1878 1878 }
1879 1879
1880 1880 // Notifications
1881 1881 .notification-header{
1882 1882 display: table;
1883 1883 width: 100%;
1884 1884 padding: floor(@basefontsize/2) 0;
1885 1885 line-height: 1em;
1886 1886
1887 1887 .desc, .delete-notifications, .read-notifications{
1888 1888 display: table-cell;
1889 1889 text-align: left;
1890 1890 }
1891 1891
1892 1892 .desc{
1893 1893 width: 1163px;
1894 1894 }
1895 1895
1896 1896 .delete-notifications, .read-notifications{
1897 1897 width: 35px;
1898 1898 min-width: 35px; //fixes when only one button is displayed
1899 1899 }
1900 1900 }
1901 1901
1902 1902 .notification-body {
1903 1903 .markdown-block,
1904 1904 .rst-block {
1905 1905 padding: @padding 0;
1906 1906 }
1907 1907
1908 1908 .notification-subject {
1909 1909 padding: @textmargin 0;
1910 1910 border-bottom: @border-thickness solid @border-default-color;
1911 1911 }
1912 1912 }
1913 1913
1914 1914
1915 1915 .notifications_buttons{
1916 1916 float: right;
1917 1917 }
1918 1918
1919 1919 #notification-status{
1920 1920 display: inline;
1921 1921 }
1922 1922
1923 1923 // Repositories
1924 1924
1925 1925 #summary.fields{
1926 1926 display: table;
1927 1927
1928 1928 .field{
1929 1929 display: table-row;
1930 1930
1931 1931 .label-summary{
1932 1932 display: table-cell;
1933 1933 min-width: @label-summary-minwidth;
1934 1934 padding-top: @padding/2;
1935 1935 padding-bottom: @padding/2;
1936 1936 padding-right: @padding/2;
1937 1937 }
1938 1938
1939 1939 .input{
1940 1940 display: table-cell;
1941 1941 padding: @padding/2;
1942 1942
1943 1943 input{
1944 1944 min-width: 29em;
1945 1945 padding: @padding/4;
1946 1946 }
1947 1947 }
1948 1948 .statistics, .downloads{
1949 1949 .disabled{
1950 1950 color: @grey4;
1951 1951 }
1952 1952 }
1953 1953 }
1954 1954 }
1955 1955
1956 1956 #summary{
1957 1957 width: 70%;
1958 1958 }
1959 1959
1960 1960
1961 1961 // Journal
1962 1962 .journal.title {
1963 1963 h5 {
1964 1964 float: left;
1965 1965 margin: 0;
1966 1966 width: 70%;
1967 1967 }
1968 1968
1969 1969 ul {
1970 1970 float: right;
1971 1971 display: inline-block;
1972 1972 margin: 0;
1973 1973 width: 30%;
1974 1974 text-align: right;
1975 1975
1976 1976 li {
1977 1977 display: inline;
1978 1978 font-size: @journal-fontsize;
1979 1979 line-height: 1em;
1980 1980
1981 1981 list-style-type: none;
1982 1982 }
1983 1983 }
1984 1984 }
1985 1985
1986 1986 .filterexample {
1987 1987 position: absolute;
1988 1988 top: 95px;
1989 1989 left: @contentpadding;
1990 1990 color: @rcblue;
1991 1991 font-size: 11px;
1992 1992 font-family: @text-regular;
1993 1993 cursor: help;
1994 1994
1995 1995 &:hover {
1996 1996 color: @rcdarkblue;
1997 1997 }
1998 1998
1999 1999 @media (max-width:768px) {
2000 2000 position: relative;
2001 2001 top: auto;
2002 2002 left: auto;
2003 2003 display: block;
2004 2004 }
2005 2005 }
2006 2006
2007 2007
2008 2008 #journal{
2009 2009 margin-bottom: @space;
2010 2010
2011 2011 .journal_day{
2012 2012 margin-bottom: @textmargin/2;
2013 2013 padding-bottom: @textmargin/2;
2014 2014 font-size: @journal-fontsize;
2015 2015 border-bottom: @border-thickness solid @border-default-color;
2016 2016 }
2017 2017
2018 2018 .journal_container{
2019 2019 margin-bottom: @space;
2020 2020
2021 2021 .journal_user{
2022 2022 display: inline-block;
2023 2023 }
2024 2024 .journal_action_container{
2025 2025 display: block;
2026 2026 margin-top: @textmargin;
2027 2027
2028 2028 div{
2029 2029 display: inline;
2030 2030 }
2031 2031
2032 2032 div.journal_action_params{
2033 2033 display: block;
2034 2034 }
2035 2035
2036 2036 div.journal_repo:after{
2037 2037 content: "\A";
2038 2038 white-space: pre;
2039 2039 }
2040 2040
2041 2041 div.date{
2042 2042 display: block;
2043 2043 margin-bottom: @textmargin;
2044 2044 }
2045 2045 }
2046 2046 }
2047 2047 }
2048 2048
2049 2049 // Files
2050 2050 .edit-file-title {
2051 2051 border-bottom: @border-thickness solid @border-default-color;
2052 2052
2053 2053 .breadcrumbs {
2054 2054 margin-bottom: 0;
2055 2055 }
2056 2056 }
2057 2057
2058 2058 .edit-file-fieldset {
2059 2059 margin-top: @sidebarpadding;
2060 2060
2061 2061 .fieldset {
2062 2062 .left-label {
2063 2063 width: 13%;
2064 2064 }
2065 2065 .right-content {
2066 2066 width: 87%;
2067 2067 max-width: 100%;
2068 2068 }
2069 2069 .filename-label {
2070 2070 margin-top: 13px;
2071 2071 }
2072 2072 .commit-message-label {
2073 2073 margin-top: 4px;
2074 2074 }
2075 2075 .file-upload-input {
2076 2076 input {
2077 2077 display: none;
2078 2078 }
2079 2079 margin-top: 10px;
2080 2080 }
2081 2081 .file-upload-label {
2082 2082 margin-top: 10px;
2083 2083 }
2084 2084 p {
2085 2085 margin-top: 5px;
2086 2086 }
2087 2087
2088 2088 }
2089 2089 .custom-path-link {
2090 2090 margin-left: 5px;
2091 2091 }
2092 2092 #commit {
2093 2093 resize: vertical;
2094 2094 }
2095 2095 }
2096 2096
2097 2097 .delete-file-preview {
2098 2098 max-height: 250px;
2099 2099 }
2100 2100
2101 2101 .new-file,
2102 2102 #filter_activate,
2103 2103 #filter_deactivate {
2104 2104 float: left;
2105 2105 margin: 0 0 0 15px;
2106 2106 }
2107 2107
2108 2108 h3.files_location{
2109 2109 line-height: 2.4em;
2110 2110 }
2111 2111
2112 2112 .browser-nav {
2113 2113 display: table;
2114 2114 margin-bottom: @space;
2115 2115
2116 2116
2117 2117 .info_box {
2118 2118 display: inline-table;
2119 2119 height: 2.5em;
2120 2120
2121 2121 .browser-cur-rev, .info_box_elem {
2122 2122 display: table-cell;
2123 2123 vertical-align: middle;
2124 2124 }
2125 2125
2126 2126 .info_box_elem {
2127 2127 border-top: @border-thickness solid @grey5;
2128 2128 border-bottom: @border-thickness solid @grey5;
2129 2129 box-shadow: @button-shadow;
2130 2130
2131 2131 #at_rev, a {
2132 2132 padding: 0.6em 0.4em;
2133 2133 margin: 0;
2134 2134 .box-shadow(none);
2135 2135 border: 0;
2136 2136 height: 12px;
2137 2137 color: @grey2;
2138 2138 }
2139 2139
2140 2140 input#at_rev {
2141 2141 max-width: 50px;
2142 2142 text-align: center;
2143 2143 }
2144 2144
2145 2145 &.previous {
2146 2146 border: @border-thickness solid @grey5;
2147 2147 border-top-left-radius: @border-radius;
2148 2148 border-bottom-left-radius: @border-radius;
2149 2149
2150 2150 &:hover {
2151 2151 border-color: @grey4;
2152 2152 }
2153 2153
2154 2154 .disabled {
2155 2155 color: @grey5;
2156 2156 cursor: not-allowed;
2157 2157 opacity: 0.5;
2158 2158 }
2159 2159 }
2160 2160
2161 2161 &.next {
2162 2162 border: @border-thickness solid @grey5;
2163 2163 border-top-right-radius: @border-radius;
2164 2164 border-bottom-right-radius: @border-radius;
2165 2165
2166 2166 &:hover {
2167 2167 border-color: @grey4;
2168 2168 }
2169 2169
2170 2170 .disabled {
2171 2171 color: @grey5;
2172 2172 cursor: not-allowed;
2173 2173 opacity: 0.5;
2174 2174 }
2175 2175 }
2176 2176 }
2177 2177
2178 2178 .browser-cur-rev {
2179 2179
2180 2180 span{
2181 2181 margin: 0;
2182 2182 color: @rcblue;
2183 2183 height: 12px;
2184 2184 display: inline-block;
2185 2185 padding: 0.7em 1em ;
2186 2186 border: @border-thickness solid @rcblue;
2187 2187 margin-right: @padding;
2188 2188 }
2189 2189 }
2190 2190
2191 2191 .select-index-number {
2192 2192 margin: 0 0 0 20px;
2193 2193 color: @grey3;
2194 2194 }
2195 2195 }
2196 2196
2197 2197 .search_activate {
2198 2198 display: table-cell;
2199 2199 vertical-align: middle;
2200 2200
2201 2201 input, label{
2202 2202 margin: 0;
2203 2203 padding: 0;
2204 2204 }
2205 2205
2206 2206 input{
2207 2207 margin-left: @textmargin;
2208 2208 }
2209 2209
2210 2210 }
2211 2211 }
2212 2212
2213 2213 .browser-cur-rev{
2214 2214 margin-bottom: @textmargin;
2215 2215 }
2216 2216
2217 2217 #node_filter_box_loading{
2218 2218 .info_text;
2219 2219 }
2220 2220
2221 2221 .browser-search {
2222 2222 margin: -25px 0px 5px 0px;
2223 2223 }
2224 2224
2225 2225 .node-filter {
2226 2226 font-size: @repo-title-fontsize;
2227 2227 padding: 4px 0px 0px 0px;
2228 2228
2229 2229 .node-filter-path {
2230 2230 float: left;
2231 2231 color: @grey4;
2232 2232 }
2233 2233 .node-filter-input {
2234 2234 float: left;
2235 2235 margin: -2px 0px 0px 2px;
2236 2236 input {
2237 2237 padding: 2px;
2238 2238 border: none;
2239 2239 font-size: @repo-title-fontsize;
2240 2240 }
2241 2241 }
2242 2242 }
2243 2243
2244 2244
2245 2245 .browser-result{
2246 2246 td a{
2247 2247 margin-left: 0.5em;
2248 2248 display: inline-block;
2249 2249
2250 2250 em {
2251 2251 font-weight: @text-bold-weight;
2252 2252 font-family: @text-bold;
2253 2253 }
2254 2254 }
2255 2255 }
2256 2256
2257 2257 .browser-highlight{
2258 2258 background-color: @grey5-alpha;
2259 2259 }
2260 2260
2261 2261
2262 2262 // Search
2263 2263
2264 2264 .search-form{
2265 2265 #q {
2266 2266 width: @search-form-width;
2267 2267 }
2268 2268 .fields{
2269 2269 margin: 0 0 @space;
2270 2270 }
2271 2271
2272 2272 label{
2273 2273 display: inline-block;
2274 2274 margin-right: @textmargin;
2275 2275 padding-top: 0.25em;
2276 2276 }
2277 2277
2278 2278
2279 2279 .results{
2280 2280 clear: both;
2281 2281 margin: 0 0 @padding;
2282 2282 }
2283 2283
2284 2284 .search-tags {
2285 2285 padding: 5px 0;
2286 2286 }
2287 2287 }
2288 2288
2289 2289 div.search-feedback-items {
2290 2290 display: inline-block;
2291 2291 }
2292 2292
2293 2293 div.search-code-body {
2294 2294 background-color: #ffffff; padding: 5px 0 5px 10px;
2295 2295 pre {
2296 2296 .match { background-color: #faffa6;}
2297 2297 .break { display: block; width: 100%; background-color: #DDE7EF; color: #747474; }
2298 2298 }
2299 2299 }
2300 2300
2301 2301 .expand_commit.search {
2302 2302 .show_more.open {
2303 2303 height: auto;
2304 2304 max-height: none;
2305 2305 }
2306 2306 }
2307 2307
2308 2308 .search-results {
2309 2309
2310 2310 h2 {
2311 2311 margin-bottom: 0;
2312 2312 }
2313 2313 .codeblock {
2314 2314 border: none;
2315 2315 background: transparent;
2316 2316 }
2317 2317
2318 2318 .codeblock-header {
2319 2319 border: none;
2320 2320 background: transparent;
2321 2321 }
2322 2322
2323 2323 .code-body {
2324 2324 border: @border-thickness solid @border-default-color;
2325 2325 .border-radius(@border-radius);
2326 2326 }
2327 2327
2328 2328 .td-commit {
2329 2329 &:extend(pre);
2330 2330 border-bottom: @border-thickness solid @border-default-color;
2331 2331 }
2332 2332
2333 2333 .message {
2334 2334 height: auto;
2335 2335 max-width: 350px;
2336 2336 white-space: normal;
2337 2337 text-overflow: initial;
2338 2338 overflow: visible;
2339 2339
2340 2340 .match { background-color: #faffa6;}
2341 2341 .break { background-color: #DDE7EF; width: 100%; color: #747474; display: block; }
2342 2342 }
2343 2343
2344 2344 }
2345 2345
2346 2346 table.rctable td.td-search-results div {
2347 2347 max-width: 100%;
2348 2348 }
2349 2349
2350 2350 #tip-box, .tip-box{
2351 2351 padding: @menupadding/2;
2352 2352 display: block;
2353 2353 border: @border-thickness solid @border-highlight-color;
2354 2354 .border-radius(@border-radius);
2355 2355 background-color: white;
2356 2356 z-index: 99;
2357 2357 white-space: pre-wrap;
2358 2358 }
2359 2359
2360 2360 #linktt {
2361 2361 width: 79px;
2362 2362 }
2363 2363
2364 2364 #help_kb .modal-content{
2365 2365 max-width: 750px;
2366 2366 margin: 10% auto;
2367 2367
2368 2368 table{
2369 2369 td,th{
2370 2370 border-bottom: none;
2371 2371 line-height: 2.5em;
2372 2372 }
2373 2373 th{
2374 2374 padding-bottom: @textmargin/2;
2375 2375 }
2376 2376 td.keys{
2377 2377 text-align: center;
2378 2378 }
2379 2379 }
2380 2380
2381 2381 .block-left{
2382 2382 width: 45%;
2383 2383 margin-right: 5%;
2384 2384 }
2385 2385 .modal-footer{
2386 2386 clear: both;
2387 2387 }
2388 2388 .key.tag{
2389 2389 padding: 0.5em;
2390 2390 background-color: @rcblue;
2391 2391 color: white;
2392 2392 border-color: @rcblue;
2393 2393 .box-shadow(none);
2394 2394 }
2395 2395 }
2396 2396
2397 2397
2398 2398
2399 2399 //--- IMPORTS FOR REFACTORED STYLES ------------------//
2400 2400
2401 2401 @import 'statistics-graph';
2402 2402 @import 'tables';
2403 2403 @import 'forms';
2404 2404 @import 'diff';
2405 2405 @import 'summary';
2406 2406 @import 'navigation';
2407 2407
2408 2408 //--- SHOW/HIDE SECTIONS --//
2409 2409
2410 2410 .btn-collapse {
2411 2411 float: right;
2412 2412 text-align: right;
2413 2413 font-family: @text-light;
2414 2414 font-size: @basefontsize;
2415 2415 cursor: pointer;
2416 2416 border: none;
2417 2417 color: @rcblue;
2418 2418 }
2419 2419
2420 2420 table.rctable,
2421 2421 table.dataTable {
2422 2422 .btn-collapse {
2423 2423 float: right;
2424 2424 text-align: right;
2425 2425 }
2426 2426 }
2427 2427
2428 2428 table.rctable {
2429 2429 &.permissions {
2430 2430
2431 2431 th.td-owner {
2432 2432 padding: 0;
2433 2433 }
2434 2434
2435 2435 th {
2436 2436 font-weight: normal;
2437 2437 padding: 0 5px;
2438 2438 }
2439 2439
2440 2440 }
2441 2441 }
2442 2442
2443 2443
2444 2444 // TODO: johbo: Fix for IE10, this avoids that we see a border
2445 2445 // and padding around checkboxes and radio boxes. Move to the right place,
2446 2446 // or better: Remove this once we did the form refactoring.
2447 2447 input[type=checkbox],
2448 2448 input[type=radio] {
2449 2449 padding: 0;
2450 2450 border: none;
2451 2451 }
2452 2452
2453 2453 .toggle-ajax-spinner{
2454 2454 height: 16px;
2455 2455 width: 16px;
2456 2456 }
2457 2457
2458 2458
2459 2459 .markup-form .clearfix {
2460 2460 .border-radius(@border-radius);
2461 2461 margin: 0px;
2462 2462 }
2463 2463
2464 2464 .markup-form-area {
2465 2465 padding: 8px 12px;
2466 2466 border: 1px solid @grey4;
2467 2467 .border-radius(@border-radius);
2468 2468 }
2469 2469
2470 2470 .markup-form-area-header .nav-links {
2471 2471 display: flex;
2472 2472 flex-flow: row wrap;
2473 2473 -webkit-flex-flow: row wrap;
2474 2474 width: 100%;
2475 2475 }
2476 2476
2477 2477 .markup-form-area-footer {
2478 2478 display: flex;
2479 2479 }
2480 2480
2481 2481 .markup-form-area-footer .toolbar {
2482 2482
2483 2483 }
2484 2484
2485 2485 // markup Form
2486 2486 div.markup-form {
2487 2487 margin-top: 20px;
2488 2488 }
2489 2489
2490 2490 .markup-form strong {
2491 2491 display: block;
2492 2492 margin-bottom: 15px;
2493 2493 }
2494 2494
2495 2495 .markup-form textarea {
2496 2496 width: 100%;
2497 2497 height: 100px;
2498 2498 font-family: @text-monospace;
2499 2499 }
2500 2500
2501 2501 form.markup-form {
2502 2502 margin-top: 10px;
2503 2503 margin-left: 10px;
2504 2504 }
2505 2505
2506 2506 .markup-form .comment-block-ta,
2507 2507 .markup-form .preview-box {
2508 2508 .border-radius(@border-radius);
2509 2509 .box-sizing(border-box);
2510 2510 background-color: white;
2511 2511 }
2512 2512
2513 2513 .markup-form .preview-box.unloaded {
2514 2514 height: 50px;
2515 2515 text-align: center;
2516 2516 padding: 20px;
2517 2517 background-color: white;
2518 2518 }
2519
2520 .dropzone {
2521 border: 2px dashed @rcdarkblue;
2522 border-radius: 5px;
2523 background: white;
2524 min-height: 200px;
2525 padding: 54px;
2526 }
2527 .dropzone .dz-message {
2528 font-weight: 700;
2529 }
2530
2531 .dropzone .dz-message {
2532 text-align: center;
2533 margin: 2em 0;
2534 }
2535
2536 .dz-preview {
2537 margin: 10px -40px !important;
2538 position: relative;
2539 vertical-align: top;
2540 border: 1px solid @grey4;
2541 border-radius: 5px;
2542 padding: 10px;
2543 }
2544
2545 .dz-filename {
2546 font-weight: 700;
2547 }
2548
2549 .dz-error-message {
2550 color: @alert2;
2551 } No newline at end of file
@@ -1,496 +1,501 b''
1 1
2 2 // tables.less
3 3 // For use in RhodeCode application tables;
4 4 // see style guide documentation for guidelines.
5 5
6 6 // TABLES
7 7
8 8 .rctable,
9 9 table.rctable,
10 10 table.dataTable {
11 11 clear:both;
12 12 width: 100%;
13 13 margin: 0 auto @padding;
14 14 padding: 0;
15 15 vertical-align: baseline;
16 16 line-height:1.5em;
17 17 border: none;
18 18 outline: none;
19 19 border-collapse: collapse;
20 20 border-spacing: 0;
21 21 color: @grey2;
22 22
23 23 b {
24 24 font-weight: normal;
25 25 }
26 26
27 27 em {
28 28 font-weight: bold;
29 29 font-style: normal;
30 30 }
31 31
32 32 th,
33 33 td {
34 34 height: auto;
35 35 max-width: 20%;
36 36 padding: .65em 1em .65em 0;
37 37 vertical-align: middle;
38 38 border-bottom: @border-thickness solid @grey5;
39 39 white-space: normal;
40 40
41 41 &.td-radio,
42 42 &.td-checkbox {
43 43 padding-right: 0;
44 44 text-align: center;
45 45
46 46 input {
47 47 margin: 0 1em;
48 48 }
49 49 }
50 50
51 51 &.truncate-wrap {
52 52 white-space: nowrap !important;
53 53 }
54 54
55 55 pre {
56 56 margin: 0;
57 57 }
58 58
59 59 .show_more {
60 60 height: inherit;
61 61 }
62 62 }
63 63
64 64 .expired td {
65 65 background-color: @grey7;
66 66 }
67 67 .inactive td {
68 68 background-color: @grey6;
69 69 }
70 70 th {
71 71 text-align: left;
72 72 font-weight: @text-semibold-weight;
73 73 font-family: @text-semibold;
74 74 }
75 75
76 76 .hl {
77 77 td {
78 78 background-color: lighten(@alert4,25%);
79 79 }
80 80 }
81 81
82 82 // Special Data Cell Types
83 83 // See style guide for desciptions and examples.
84 84
85 85 td {
86 86
87 87 &.user {
88 88 padding-left: 1em;
89 89 }
90 90
91 91 &.td-rss {
92 92 width: 20px;
93 93 min-width: 0;
94 94 margin: 0;
95 95 }
96 96
97 97 &.quick_repo_menu {
98 98 width: 15px;
99 99 text-align: center;
100 100
101 101 &:hover {
102 102 background-color: @grey5;
103 103 }
104 104 }
105 105
106 &.td-icon {
107 min-width: 20px;
108 width: 20px;
109 }
110
106 111 &.td-hash {
107 112 min-width: 80px;
108 113 width: 200px;
109 114
110 115 .obsolete {
111 116 text-decoration: line-through;
112 117 color: lighten(@grey2,25%);
113 118 }
114 119 }
115 120
116 121 &.td-time {
117 122 width: 160px;
118 123 white-space: nowrap;
119 124 }
120 125
121 126 &.annotate{
122 127 padding-right: 0;
123 128
124 129 div.annotatediv{
125 130 margin: 0 0.7em;
126 131 }
127 132 }
128 133
129 134 &.tags-col {
130 135 padding-right: 0;
131 136 }
132 137
133 138 &.td-description {
134 139 min-width: 350px;
135 140
136 141 &.truncate, .truncate-wrap {
137 142 white-space: nowrap;
138 143 overflow: hidden;
139 144 text-overflow: ellipsis;
140 145 max-width: 350px;
141 146 }
142 147 }
143 148
144 149 &.td-grid-name {
145 150 white-space: nowrap;
146 151 min-width: 300px;
147 152 }
148 153
149 154 &.td-componentname {
150 155 white-space: nowrap;
151 156 }
152 157
153 158 &.td-name {
154 159
155 160 }
156 161
157 162 &.td-journalaction {
158 163 min-width: 300px;
159 164
160 165 .journal_action_params {
161 166 // waiting for feedback
162 167 }
163 168 }
164 169
165 170 &.td-active {
166 171 padding-left: .65em;
167 172 }
168 173
169 174 &.td-url {
170 175 white-space: nowrap;
171 176 }
172 177
173 178 &.td-comments {
174 179 min-width: 3em;
175 180 }
176 181
177 182 &.td-buttons {
178 183 padding: .3em 0;
179 184 }
180 185 &.td-align-top {
181 186 vertical-align: text-top
182 187 }
183 188 &.td-action {
184 189 // this is for the remove/delete/edit buttons
185 190 padding-right: 0;
186 191 min-width: 95px;
187 192 text-transform: capitalize;
188 193
189 194 i {
190 195 display: none;
191 196 }
192 197 }
193 198
194 199 // TODO: lisa: this needs to be cleaned up with the buttons
195 200 .grid_edit,
196 201 .grid_delete {
197 202 display: inline-block;
198 203 margin: 0 @padding/3 0 0;
199 204 font-family: @text-light;
200 205
201 206 i {
202 207 display: none;
203 208 }
204 209 }
205 210
206 211 .grid_edit + .grid_delete {
207 212 border-left: @border-thickness solid @grey5;
208 213 padding-left: @padding/2;
209 214 }
210 215
211 216 &.td-compare {
212 217
213 218 input {
214 219 margin-right: 1em;
215 220 }
216 221
217 222 .compare-radio-button {
218 223 margin: 0 1em 0 0;
219 224 }
220 225
221 226
222 227 }
223 228
224 229 &.td-tags {
225 230 padding: .5em 1em .5em 0;
226 231 width: 140px;
227 232
228 233 .tag {
229 234 margin: 1px;
230 235 float: left;
231 236 }
232 237 }
233 238
234 239 .icon-svn, .icon-hg, .icon-git {
235 240 font-size: 1.4em;
236 241 }
237 242
238 243 &.collapse_commit,
239 244 &.expand_commit {
240 245 padding-right: 0;
241 246 padding-left: 1em;
242 247 cursor: pointer;
243 248 width: 20px;
244 249 }
245 250 }
246 251
247 252 .perm_admin_row {
248 253 color: @grey4;
249 254 background-color: @grey6;
250 255 }
251 256
252 257 .noborder {
253 258 border: none;
254 259
255 260 td {
256 261 border: none;
257 262 }
258 263 }
259 264 }
260 265 .rctable.audit-log {
261 266 td {
262 267 vertical-align: top;
263 268 }
264 269 }
265 270
266 271 // TRUNCATING
267 272 // TODO: lisaq: should this possibly be moved out of tables.less?
268 273 // for truncated text
269 274 // used inside of table cells and in code block headers
270 275 .truncate-wrap {
271 276 white-space: nowrap !important;
272 277
273 278 //truncated text
274 279 .truncate {
275 280 max-width: 450px;
276 281 width: 300px;
277 282 overflow: hidden;
278 283 text-overflow: ellipsis;
279 284 -o-text-overflow: ellipsis;
280 285 -ms-text-overflow: ellipsis;
281 286
282 287 &.autoexpand {
283 288 width: 120px;
284 289 margin-right: 200px;
285 290 }
286 291 }
287 292 &:hover .truncate.autoexpand {
288 293 overflow: visible;
289 294 }
290 295
291 296 .tags-truncate {
292 297 width: 150px;
293 298 height: 22px;
294 299 overflow: hidden;
295 300
296 301 .tag {
297 302 display: inline-block;
298 303 }
299 304
300 305 &.truncate {
301 306 height: 22px;
302 307 max-height:2em;
303 308 width: 140px;
304 309 }
305 310 }
306 311 }
307 312
308 313 .apikeys_wrap {
309 314 margin-bottom: @padding;
310 315
311 316 table.rctable td:first-child {
312 317 width: 340px;
313 318 }
314 319 }
315 320
316 321
317 322
318 323 // SPECIAL CASES
319 324
320 325 // Repository Followers
321 326 table.rctable.followers_data {
322 327 width: 75%;
323 328 margin: 0;
324 329 }
325 330
326 331 // Repository List
327 332 // Group Members List
328 333 table.rctable.group_members,
329 334 table#repo_list_table {
330 335 min-width: 600px;
331 336 }
332 337
333 338 // Keyboard mappings
334 339 table.keyboard-mappings {
335 340 th {
336 341 text-align: left;
337 342 font-weight: @text-semibold-weight;
338 343 font-family: @text-semibold;
339 344 }
340 345 }
341 346
342 347 // Branches, Tags, and Bookmarks
343 348 #obj_list_table.dataTable {
344 349 td.td-time {
345 350 padding-right: 1em;
346 351 }
347 352 }
348 353
349 354 // User Admin
350 355 .rctable.useremails,
351 356 .rctable.account_emails {
352 357 .tag,
353 358 .btn {
354 359 float: right;
355 360 }
356 361 .btn { //to line up with tags
357 362 margin-right: 1.65em;
358 363 }
359 364 }
360 365
361 366 // User List
362 367 #user_list_table {
363 368
364 369 td.td-user {
365 370 min-width: 100px;
366 371 }
367 372 }
368 373
369 374 // Pull Request List Table
370 375 #pull_request_list_table.dataTable {
371 376
372 377 //TODO: lisa: This needs to be removed once the description is adjusted
373 378 // for using an expand_commit button (see issue 765)
374 379 td {
375 380 vertical-align: middle;
376 381 }
377 382 }
378 383
379 384 // Settings (no border)
380 385 table.rctable.dl-settings {
381 386 td {
382 387 border: none;
383 388 vertical-align: baseline;
384 389 }
385 390 }
386 391
387 392
388 393 // Statistics
389 394 table.trending_language_tbl {
390 395 width: 100%;
391 396 line-height: 1em;
392 397
393 398 td div {
394 399 overflow: visible;
395 400 }
396 401 }
397 402
398 403 .trending_language_tbl, .trending_language_tbl td {
399 404 border: 0;
400 405 margin: 0;
401 406 padding: 0;
402 407 background: transparent;
403 408 }
404 409
405 410 .trending_language_tbl, .trending_language_tbl tr {
406 411 border-spacing: 0 3px;
407 412 }
408 413
409 414 .trending_language {
410 415 position: relative;
411 416 overflow: hidden;
412 417 color: @text-color;
413 418 width: 400px;
414 419
415 420 .lang-bar {
416 421 z-index: 1;
417 422 overflow: hidden;
418 423 background-color: @rcblue;
419 424 color: #FFF;
420 425 text-decoration: none;
421 426 }
422 427
423 428 }
424 429
425 430 // Changesets
426 431 #changesets.rctable {
427 432
428 433 // td must be fixed height for graph
429 434 td {
430 435 height: 32px;
431 436 padding: 0 1em 0 0;
432 437 vertical-align: middle;
433 438 white-space: nowrap;
434 439
435 440 &.td-description {
436 441 white-space: normal;
437 442 }
438 443
439 444 &.expand_commit {
440 445 padding-right: 0;
441 446 cursor: pointer;
442 447 width: 20px;
443 448 }
444 449 }
445 450 }
446 451
447 452 // Compare
448 453 table.compare_view_commits {
449 454 margin-top: @space;
450 455
451 456 td.td-time {
452 457 padding-left: .5em;
453 458 }
454 459
455 460 // special case to not show hover actions on hidden indicator
456 461 tr.compare_select_hidden:hover {
457 462 cursor: inherit;
458 463
459 464 td {
460 465 background-color: inherit;
461 466 }
462 467 }
463 468
464 469 tr:hover {
465 470 cursor: pointer;
466 471
467 472 td {
468 473 background-color: lighten(@alert4,25%);
469 474 }
470 475 }
471 476
472 477
473 478 }
474 479
475 480 .file_history {
476 481 td.td-actions {
477 482 text-align: right;
478 483 }
479 484 }
480 485
481 486
482 487 // Gist List
483 488 #gist_list_table {
484 489 td {
485 490 vertical-align: middle;
486 491
487 492 div{
488 493 display: inline-block;
489 494 vertical-align: middle;
490 495 }
491 496
492 497 img{
493 498 vertical-align: middle;
494 499 }
495 500 }
496 501 }
@@ -1,364 +1,370 b''
1 1
2 2 /******************************************************************************
3 3 * *
4 4 * DO NOT CHANGE THIS FILE MANUALLY *
5 5 * *
6 6 * *
7 7 * This file is automatically generated when the app starts up with *
8 8 * generate_js_files = true *
9 9 * *
10 10 * To add a route here pass jsroute=True to the route definition in the app *
11 11 * *
12 12 ******************************************************************************/
13 13 function registerRCRoutes() {
14 14 // routes registration
15 15 pyroutes.register('favicon', '/favicon.ico', []);
16 16 pyroutes.register('robots', '/robots.txt', []);
17 17 pyroutes.register('global_integrations_new', '/_admin/integrations/new', []);
18 18 pyroutes.register('global_integrations_home', '/_admin/integrations', []);
19 19 pyroutes.register('global_integrations_list', '/_admin/integrations/%(integration)s', ['integration']);
20 20 pyroutes.register('global_integrations_create', '/_admin/integrations/%(integration)s/new', ['integration']);
21 21 pyroutes.register('global_integrations_edit', '/_admin/integrations/%(integration)s/%(integration_id)s', ['integration', 'integration_id']);
22 22 pyroutes.register('repo_group_integrations_home', '/%(repo_group_name)s/_settings/integrations', ['repo_group_name']);
23 23 pyroutes.register('repo_group_integrations_new', '/%(repo_group_name)s/_settings/integrations/new', ['repo_group_name']);
24 24 pyroutes.register('repo_group_integrations_list', '/%(repo_group_name)s/_settings/integrations/%(integration)s', ['repo_group_name', 'integration']);
25 25 pyroutes.register('repo_group_integrations_create', '/%(repo_group_name)s/_settings/integrations/%(integration)s/new', ['repo_group_name', 'integration']);
26 26 pyroutes.register('repo_group_integrations_edit', '/%(repo_group_name)s/_settings/integrations/%(integration)s/%(integration_id)s', ['repo_group_name', 'integration', 'integration_id']);
27 27 pyroutes.register('repo_integrations_home', '/%(repo_name)s/settings/integrations', ['repo_name']);
28 28 pyroutes.register('repo_integrations_new', '/%(repo_name)s/settings/integrations/new', ['repo_name']);
29 29 pyroutes.register('repo_integrations_list', '/%(repo_name)s/settings/integrations/%(integration)s', ['repo_name', 'integration']);
30 30 pyroutes.register('repo_integrations_create', '/%(repo_name)s/settings/integrations/%(integration)s/new', ['repo_name', 'integration']);
31 31 pyroutes.register('repo_integrations_edit', '/%(repo_name)s/settings/integrations/%(integration)s/%(integration_id)s', ['repo_name', 'integration', 'integration_id']);
32 32 pyroutes.register('auth_home', '/_admin/auth*traverse', []);
33 33 pyroutes.register('ops_ping', '/_admin/ops/ping', []);
34 34 pyroutes.register('ops_error_test', '/_admin/ops/error', []);
35 35 pyroutes.register('ops_redirect_test', '/_admin/ops/redirect', []);
36 36 pyroutes.register('ops_ping_legacy', '/_admin/ping', []);
37 37 pyroutes.register('ops_error_test_legacy', '/_admin/error_test', []);
38 38 pyroutes.register('admin_home', '/_admin', []);
39 39 pyroutes.register('admin_audit_logs', '/_admin/audit_logs', []);
40 40 pyroutes.register('admin_audit_log_entry', '/_admin/audit_logs/%(audit_log_id)s', ['audit_log_id']);
41 41 pyroutes.register('pull_requests_global_0', '/_admin/pull_requests/%(pull_request_id)s', ['pull_request_id']);
42 42 pyroutes.register('pull_requests_global_1', '/_admin/pull-requests/%(pull_request_id)s', ['pull_request_id']);
43 43 pyroutes.register('pull_requests_global', '/_admin/pull-request/%(pull_request_id)s', ['pull_request_id']);
44 44 pyroutes.register('admin_settings_open_source', '/_admin/settings/open_source', []);
45 45 pyroutes.register('admin_settings_vcs_svn_generate_cfg', '/_admin/settings/vcs/svn_generate_cfg', []);
46 46 pyroutes.register('admin_settings_system', '/_admin/settings/system', []);
47 47 pyroutes.register('admin_settings_system_update', '/_admin/settings/system/updates', []);
48 48 pyroutes.register('admin_settings_exception_tracker', '/_admin/settings/exceptions', []);
49 49 pyroutes.register('admin_settings_exception_tracker_delete_all', '/_admin/settings/exceptions/delete', []);
50 50 pyroutes.register('admin_settings_exception_tracker_show', '/_admin/settings/exceptions/%(exception_id)s', ['exception_id']);
51 51 pyroutes.register('admin_settings_exception_tracker_delete', '/_admin/settings/exceptions/%(exception_id)s/delete', ['exception_id']);
52 52 pyroutes.register('admin_settings_sessions', '/_admin/settings/sessions', []);
53 53 pyroutes.register('admin_settings_sessions_cleanup', '/_admin/settings/sessions/cleanup', []);
54 54 pyroutes.register('admin_settings_process_management', '/_admin/settings/process_management', []);
55 55 pyroutes.register('admin_settings_process_management_data', '/_admin/settings/process_management/data', []);
56 56 pyroutes.register('admin_settings_process_management_signal', '/_admin/settings/process_management/signal', []);
57 57 pyroutes.register('admin_settings_process_management_master_signal', '/_admin/settings/process_management/master_signal', []);
58 58 pyroutes.register('admin_defaults_repositories', '/_admin/defaults/repositories', []);
59 59 pyroutes.register('admin_defaults_repositories_update', '/_admin/defaults/repositories/update', []);
60 60 pyroutes.register('admin_settings', '/_admin/settings', []);
61 61 pyroutes.register('admin_settings_update', '/_admin/settings/update', []);
62 62 pyroutes.register('admin_settings_global', '/_admin/settings/global', []);
63 63 pyroutes.register('admin_settings_global_update', '/_admin/settings/global/update', []);
64 64 pyroutes.register('admin_settings_vcs', '/_admin/settings/vcs', []);
65 65 pyroutes.register('admin_settings_vcs_update', '/_admin/settings/vcs/update', []);
66 66 pyroutes.register('admin_settings_vcs_svn_pattern_delete', '/_admin/settings/vcs/svn_pattern_delete', []);
67 67 pyroutes.register('admin_settings_mapping', '/_admin/settings/mapping', []);
68 68 pyroutes.register('admin_settings_mapping_update', '/_admin/settings/mapping/update', []);
69 69 pyroutes.register('admin_settings_visual', '/_admin/settings/visual', []);
70 70 pyroutes.register('admin_settings_visual_update', '/_admin/settings/visual/update', []);
71 71 pyroutes.register('admin_settings_issuetracker', '/_admin/settings/issue-tracker', []);
72 72 pyroutes.register('admin_settings_issuetracker_update', '/_admin/settings/issue-tracker/update', []);
73 73 pyroutes.register('admin_settings_issuetracker_test', '/_admin/settings/issue-tracker/test', []);
74 74 pyroutes.register('admin_settings_issuetracker_delete', '/_admin/settings/issue-tracker/delete', []);
75 75 pyroutes.register('admin_settings_email', '/_admin/settings/email', []);
76 76 pyroutes.register('admin_settings_email_update', '/_admin/settings/email/update', []);
77 77 pyroutes.register('admin_settings_hooks', '/_admin/settings/hooks', []);
78 78 pyroutes.register('admin_settings_hooks_update', '/_admin/settings/hooks/update', []);
79 79 pyroutes.register('admin_settings_hooks_delete', '/_admin/settings/hooks/delete', []);
80 80 pyroutes.register('admin_settings_search', '/_admin/settings/search', []);
81 81 pyroutes.register('admin_settings_labs', '/_admin/settings/labs', []);
82 82 pyroutes.register('admin_settings_labs_update', '/_admin/settings/labs/update', []);
83 83 pyroutes.register('admin_permissions_application', '/_admin/permissions/application', []);
84 84 pyroutes.register('admin_permissions_application_update', '/_admin/permissions/application/update', []);
85 85 pyroutes.register('admin_permissions_global', '/_admin/permissions/global', []);
86 86 pyroutes.register('admin_permissions_global_update', '/_admin/permissions/global/update', []);
87 87 pyroutes.register('admin_permissions_object', '/_admin/permissions/object', []);
88 88 pyroutes.register('admin_permissions_object_update', '/_admin/permissions/object/update', []);
89 89 pyroutes.register('admin_permissions_ips', '/_admin/permissions/ips', []);
90 90 pyroutes.register('admin_permissions_overview', '/_admin/permissions/overview', []);
91 91 pyroutes.register('admin_permissions_auth_token_access', '/_admin/permissions/auth_token_access', []);
92 92 pyroutes.register('admin_permissions_ssh_keys', '/_admin/permissions/ssh_keys', []);
93 93 pyroutes.register('admin_permissions_ssh_keys_data', '/_admin/permissions/ssh_keys/data', []);
94 94 pyroutes.register('admin_permissions_ssh_keys_update', '/_admin/permissions/ssh_keys/update', []);
95 95 pyroutes.register('users', '/_admin/users', []);
96 96 pyroutes.register('users_data', '/_admin/users_data', []);
97 97 pyroutes.register('users_create', '/_admin/users/create', []);
98 98 pyroutes.register('users_new', '/_admin/users/new', []);
99 99 pyroutes.register('user_edit', '/_admin/users/%(user_id)s/edit', ['user_id']);
100 100 pyroutes.register('user_edit_advanced', '/_admin/users/%(user_id)s/edit/advanced', ['user_id']);
101 101 pyroutes.register('user_edit_global_perms', '/_admin/users/%(user_id)s/edit/global_permissions', ['user_id']);
102 102 pyroutes.register('user_edit_global_perms_update', '/_admin/users/%(user_id)s/edit/global_permissions/update', ['user_id']);
103 103 pyroutes.register('user_update', '/_admin/users/%(user_id)s/update', ['user_id']);
104 104 pyroutes.register('user_delete', '/_admin/users/%(user_id)s/delete', ['user_id']);
105 105 pyroutes.register('user_enable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_enable', ['user_id']);
106 106 pyroutes.register('user_disable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_disable', ['user_id']);
107 107 pyroutes.register('user_create_personal_repo_group', '/_admin/users/%(user_id)s/create_repo_group', ['user_id']);
108 108 pyroutes.register('edit_user_auth_tokens_delete', '/_admin/users/%(user_id)s/edit/auth_tokens/delete', ['user_id']);
109 109 pyroutes.register('edit_user_ssh_keys', '/_admin/users/%(user_id)s/edit/ssh_keys', ['user_id']);
110 110 pyroutes.register('edit_user_ssh_keys_generate_keypair', '/_admin/users/%(user_id)s/edit/ssh_keys/generate', ['user_id']);
111 111 pyroutes.register('edit_user_ssh_keys_add', '/_admin/users/%(user_id)s/edit/ssh_keys/new', ['user_id']);
112 112 pyroutes.register('edit_user_ssh_keys_delete', '/_admin/users/%(user_id)s/edit/ssh_keys/delete', ['user_id']);
113 113 pyroutes.register('edit_user_emails', '/_admin/users/%(user_id)s/edit/emails', ['user_id']);
114 114 pyroutes.register('edit_user_emails_add', '/_admin/users/%(user_id)s/edit/emails/new', ['user_id']);
115 115 pyroutes.register('edit_user_emails_delete', '/_admin/users/%(user_id)s/edit/emails/delete', ['user_id']);
116 116 pyroutes.register('edit_user_ips', '/_admin/users/%(user_id)s/edit/ips', ['user_id']);
117 117 pyroutes.register('edit_user_ips_add', '/_admin/users/%(user_id)s/edit/ips/new', ['user_id']);
118 118 pyroutes.register('edit_user_ips_delete', '/_admin/users/%(user_id)s/edit/ips/delete', ['user_id']);
119 119 pyroutes.register('edit_user_perms_summary', '/_admin/users/%(user_id)s/edit/permissions_summary', ['user_id']);
120 120 pyroutes.register('edit_user_perms_summary_json', '/_admin/users/%(user_id)s/edit/permissions_summary/json', ['user_id']);
121 121 pyroutes.register('edit_user_groups_management', '/_admin/users/%(user_id)s/edit/groups_management', ['user_id']);
122 122 pyroutes.register('edit_user_groups_management_updates', '/_admin/users/%(user_id)s/edit/edit_user_groups_management/updates', ['user_id']);
123 123 pyroutes.register('edit_user_audit_logs', '/_admin/users/%(user_id)s/edit/audit', ['user_id']);
124 124 pyroutes.register('edit_user_caches', '/_admin/users/%(user_id)s/edit/caches', ['user_id']);
125 125 pyroutes.register('edit_user_caches_update', '/_admin/users/%(user_id)s/edit/caches/update', ['user_id']);
126 126 pyroutes.register('user_groups', '/_admin/user_groups', []);
127 127 pyroutes.register('user_groups_data', '/_admin/user_groups_data', []);
128 128 pyroutes.register('user_groups_new', '/_admin/user_groups/new', []);
129 129 pyroutes.register('user_groups_create', '/_admin/user_groups/create', []);
130 130 pyroutes.register('repos', '/_admin/repos', []);
131 131 pyroutes.register('repo_new', '/_admin/repos/new', []);
132 132 pyroutes.register('repo_create', '/_admin/repos/create', []);
133 133 pyroutes.register('repo_groups', '/_admin/repo_groups', []);
134 pyroutes.register('repo_groups_data', '/_admin/repo_groups_data', []);
134 135 pyroutes.register('repo_group_new', '/_admin/repo_group/new', []);
135 136 pyroutes.register('repo_group_create', '/_admin/repo_group/create', []);
136 137 pyroutes.register('channelstream_connect', '/_admin/channelstream/connect', []);
137 138 pyroutes.register('channelstream_subscribe', '/_admin/channelstream/subscribe', []);
138 139 pyroutes.register('channelstream_proxy', '/_channelstream', []);
139 140 pyroutes.register('upload_file', '/_file_store/upload', []);
140 141 pyroutes.register('download_file', '/_file_store/download/%(fid)s', ['fid']);
141 142 pyroutes.register('logout', '/_admin/logout', []);
142 143 pyroutes.register('reset_password', '/_admin/password_reset', []);
143 144 pyroutes.register('reset_password_confirmation', '/_admin/password_reset_confirmation', []);
144 145 pyroutes.register('home', '/', []);
145 146 pyroutes.register('user_autocomplete_data', '/_users', []);
146 147 pyroutes.register('user_group_autocomplete_data', '/_user_groups', []);
147 148 pyroutes.register('repo_list_data', '/_repos', []);
148 149 pyroutes.register('repo_group_list_data', '/_repo_groups', []);
149 150 pyroutes.register('goto_switcher_data', '/_goto_data', []);
150 151 pyroutes.register('markup_preview', '/_markup_preview', []);
151 152 pyroutes.register('store_user_session_value', '/_store_session_attr', []);
152 153 pyroutes.register('journal', '/_admin/journal', []);
153 154 pyroutes.register('journal_rss', '/_admin/journal/rss', []);
154 155 pyroutes.register('journal_atom', '/_admin/journal/atom', []);
155 156 pyroutes.register('journal_public', '/_admin/public_journal', []);
156 157 pyroutes.register('journal_public_atom', '/_admin/public_journal/atom', []);
157 158 pyroutes.register('journal_public_atom_old', '/_admin/public_journal_atom', []);
158 159 pyroutes.register('journal_public_rss', '/_admin/public_journal/rss', []);
159 160 pyroutes.register('journal_public_rss_old', '/_admin/public_journal_rss', []);
160 161 pyroutes.register('toggle_following', '/_admin/toggle_following', []);
161 162 pyroutes.register('repo_creating', '/%(repo_name)s/repo_creating', ['repo_name']);
162 163 pyroutes.register('repo_creating_check', '/%(repo_name)s/repo_creating_check', ['repo_name']);
163 164 pyroutes.register('repo_summary_explicit', '/%(repo_name)s/summary', ['repo_name']);
164 165 pyroutes.register('repo_summary_commits', '/%(repo_name)s/summary-commits', ['repo_name']);
165 166 pyroutes.register('repo_commit', '/%(repo_name)s/changeset/%(commit_id)s', ['repo_name', 'commit_id']);
166 167 pyroutes.register('repo_commit_children', '/%(repo_name)s/changeset_children/%(commit_id)s', ['repo_name', 'commit_id']);
167 168 pyroutes.register('repo_commit_parents', '/%(repo_name)s/changeset_parents/%(commit_id)s', ['repo_name', 'commit_id']);
168 169 pyroutes.register('repo_commit_raw', '/%(repo_name)s/changeset-diff/%(commit_id)s', ['repo_name', 'commit_id']);
169 170 pyroutes.register('repo_commit_patch', '/%(repo_name)s/changeset-patch/%(commit_id)s', ['repo_name', 'commit_id']);
170 171 pyroutes.register('repo_commit_download', '/%(repo_name)s/changeset-download/%(commit_id)s', ['repo_name', 'commit_id']);
171 172 pyroutes.register('repo_commit_data', '/%(repo_name)s/changeset-data/%(commit_id)s', ['repo_name', 'commit_id']);
172 173 pyroutes.register('repo_commit_comment_create', '/%(repo_name)s/changeset/%(commit_id)s/comment/create', ['repo_name', 'commit_id']);
173 174 pyroutes.register('repo_commit_comment_preview', '/%(repo_name)s/changeset/%(commit_id)s/comment/preview', ['repo_name', 'commit_id']);
174 175 pyroutes.register('repo_commit_comment_delete', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_id)s/delete', ['repo_name', 'commit_id', 'comment_id']);
175 176 pyroutes.register('repo_commit_raw_deprecated', '/%(repo_name)s/raw-changeset/%(commit_id)s', ['repo_name', 'commit_id']);
176 177 pyroutes.register('repo_archivefile', '/%(repo_name)s/archive/%(fname)s', ['repo_name', 'fname']);
177 178 pyroutes.register('repo_files_diff', '/%(repo_name)s/diff/%(f_path)s', ['repo_name', 'f_path']);
178 179 pyroutes.register('repo_files_diff_2way_redirect', '/%(repo_name)s/diff-2way/%(f_path)s', ['repo_name', 'f_path']);
179 180 pyroutes.register('repo_files', '/%(repo_name)s/files/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
180 181 pyroutes.register('repo_files:default_path', '/%(repo_name)s/files/%(commit_id)s/', ['repo_name', 'commit_id']);
181 182 pyroutes.register('repo_files:default_commit', '/%(repo_name)s/files', ['repo_name']);
182 183 pyroutes.register('repo_files:rendered', '/%(repo_name)s/render/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
183 184 pyroutes.register('repo_files:annotated', '/%(repo_name)s/annotate/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
184 185 pyroutes.register('repo_files:annotated_previous', '/%(repo_name)s/annotate-previous/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
185 186 pyroutes.register('repo_nodetree_full', '/%(repo_name)s/nodetree_full/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
186 187 pyroutes.register('repo_nodetree_full:default_path', '/%(repo_name)s/nodetree_full/%(commit_id)s/', ['repo_name', 'commit_id']);
187 188 pyroutes.register('repo_files_nodelist', '/%(repo_name)s/nodelist/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
188 189 pyroutes.register('repo_file_raw', '/%(repo_name)s/raw/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
189 190 pyroutes.register('repo_file_download', '/%(repo_name)s/download/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
190 191 pyroutes.register('repo_file_download:legacy', '/%(repo_name)s/rawfile/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
191 192 pyroutes.register('repo_file_history', '/%(repo_name)s/history/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
192 193 pyroutes.register('repo_file_authors', '/%(repo_name)s/authors/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
193 194 pyroutes.register('repo_files_remove_file', '/%(repo_name)s/remove_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
194 195 pyroutes.register('repo_files_delete_file', '/%(repo_name)s/delete_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
195 196 pyroutes.register('repo_files_edit_file', '/%(repo_name)s/edit_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
196 197 pyroutes.register('repo_files_update_file', '/%(repo_name)s/update_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
197 198 pyroutes.register('repo_files_add_file', '/%(repo_name)s/add_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
198 199 pyroutes.register('repo_files_create_file', '/%(repo_name)s/create_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
199 200 pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']);
200 201 pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']);
201 202 pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']);
202 203 pyroutes.register('repo_changelog', '/%(repo_name)s/changelog', ['repo_name']);
203 204 pyroutes.register('repo_changelog_file', '/%(repo_name)s/changelog/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
204 205 pyroutes.register('repo_changelog_elements', '/%(repo_name)s/changelog_elements', ['repo_name']);
205 206 pyroutes.register('repo_changelog_elements_file', '/%(repo_name)s/changelog_elements/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
206 207 pyroutes.register('repo_compare_select', '/%(repo_name)s/compare', ['repo_name']);
207 208 pyroutes.register('repo_compare', '/%(repo_name)s/compare/%(source_ref_type)s@%(source_ref)s...%(target_ref_type)s@%(target_ref)s', ['repo_name', 'source_ref_type', 'source_ref', 'target_ref_type', 'target_ref']);
208 209 pyroutes.register('tags_home', '/%(repo_name)s/tags', ['repo_name']);
209 210 pyroutes.register('branches_home', '/%(repo_name)s/branches', ['repo_name']);
210 211 pyroutes.register('bookmarks_home', '/%(repo_name)s/bookmarks', ['repo_name']);
211 212 pyroutes.register('repo_fork_new', '/%(repo_name)s/fork', ['repo_name']);
212 213 pyroutes.register('repo_fork_create', '/%(repo_name)s/fork/create', ['repo_name']);
213 214 pyroutes.register('repo_forks_show_all', '/%(repo_name)s/forks', ['repo_name']);
214 215 pyroutes.register('repo_forks_data', '/%(repo_name)s/forks/data', ['repo_name']);
215 216 pyroutes.register('pullrequest_show', '/%(repo_name)s/pull-request/%(pull_request_id)s', ['repo_name', 'pull_request_id']);
216 217 pyroutes.register('pullrequest_show_all', '/%(repo_name)s/pull-request', ['repo_name']);
217 218 pyroutes.register('pullrequest_show_all_data', '/%(repo_name)s/pull-request-data', ['repo_name']);
218 219 pyroutes.register('pullrequest_repo_refs', '/%(repo_name)s/pull-request/refs/%(target_repo_name)s', ['repo_name', 'target_repo_name']);
219 220 pyroutes.register('pullrequest_repo_targets', '/%(repo_name)s/pull-request/repo-targets', ['repo_name']);
220 221 pyroutes.register('pullrequest_new', '/%(repo_name)s/pull-request/new', ['repo_name']);
221 222 pyroutes.register('pullrequest_create', '/%(repo_name)s/pull-request/create', ['repo_name']);
222 223 pyroutes.register('pullrequest_update', '/%(repo_name)s/pull-request/%(pull_request_id)s/update', ['repo_name', 'pull_request_id']);
223 224 pyroutes.register('pullrequest_merge', '/%(repo_name)s/pull-request/%(pull_request_id)s/merge', ['repo_name', 'pull_request_id']);
224 225 pyroutes.register('pullrequest_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/delete', ['repo_name', 'pull_request_id']);
225 226 pyroutes.register('pullrequest_comment_create', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment', ['repo_name', 'pull_request_id']);
226 227 pyroutes.register('pullrequest_comment_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment/%(comment_id)s/delete', ['repo_name', 'pull_request_id', 'comment_id']);
227 228 pyroutes.register('edit_repo', '/%(repo_name)s/settings', ['repo_name']);
228 229 pyroutes.register('edit_repo_advanced', '/%(repo_name)s/settings/advanced', ['repo_name']);
229 230 pyroutes.register('edit_repo_advanced_archive', '/%(repo_name)s/settings/advanced/archive', ['repo_name']);
230 231 pyroutes.register('edit_repo_advanced_delete', '/%(repo_name)s/settings/advanced/delete', ['repo_name']);
231 232 pyroutes.register('edit_repo_advanced_locking', '/%(repo_name)s/settings/advanced/locking', ['repo_name']);
232 233 pyroutes.register('edit_repo_advanced_journal', '/%(repo_name)s/settings/advanced/journal', ['repo_name']);
233 234 pyroutes.register('edit_repo_advanced_fork', '/%(repo_name)s/settings/advanced/fork', ['repo_name']);
234 235 pyroutes.register('edit_repo_advanced_hooks', '/%(repo_name)s/settings/advanced/hooks', ['repo_name']);
235 236 pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']);
236 237 pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']);
237 238 pyroutes.register('edit_repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']);
238 239 pyroutes.register('edit_repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']);
239 240 pyroutes.register('edit_repo_fields', '/%(repo_name)s/settings/fields', ['repo_name']);
240 241 pyroutes.register('edit_repo_fields_create', '/%(repo_name)s/settings/fields/create', ['repo_name']);
241 242 pyroutes.register('edit_repo_fields_delete', '/%(repo_name)s/settings/fields/%(field_id)s/delete', ['repo_name', 'field_id']);
242 243 pyroutes.register('repo_edit_toggle_locking', '/%(repo_name)s/settings/toggle_locking', ['repo_name']);
243 244 pyroutes.register('edit_repo_remote', '/%(repo_name)s/settings/remote', ['repo_name']);
244 245 pyroutes.register('edit_repo_remote_pull', '/%(repo_name)s/settings/remote/pull', ['repo_name']);
245 246 pyroutes.register('edit_repo_statistics', '/%(repo_name)s/settings/statistics', ['repo_name']);
246 247 pyroutes.register('edit_repo_statistics_reset', '/%(repo_name)s/settings/statistics/update', ['repo_name']);
247 248 pyroutes.register('edit_repo_issuetracker', '/%(repo_name)s/settings/issue_trackers', ['repo_name']);
248 249 pyroutes.register('edit_repo_issuetracker_test', '/%(repo_name)s/settings/issue_trackers/test', ['repo_name']);
249 250 pyroutes.register('edit_repo_issuetracker_delete', '/%(repo_name)s/settings/issue_trackers/delete', ['repo_name']);
250 251 pyroutes.register('edit_repo_issuetracker_update', '/%(repo_name)s/settings/issue_trackers/update', ['repo_name']);
251 252 pyroutes.register('edit_repo_vcs', '/%(repo_name)s/settings/vcs', ['repo_name']);
252 253 pyroutes.register('edit_repo_vcs_update', '/%(repo_name)s/settings/vcs/update', ['repo_name']);
253 254 pyroutes.register('edit_repo_vcs_svn_pattern_delete', '/%(repo_name)s/settings/vcs/svn_pattern/delete', ['repo_name']);
254 255 pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']);
255 256 pyroutes.register('repo_default_reviewers_data', '/%(repo_name)s/settings/review/default-reviewers', ['repo_name']);
256 257 pyroutes.register('edit_repo_strip', '/%(repo_name)s/settings/strip', ['repo_name']);
257 258 pyroutes.register('strip_check', '/%(repo_name)s/settings/strip_check', ['repo_name']);
258 259 pyroutes.register('strip_execute', '/%(repo_name)s/settings/strip_execute', ['repo_name']);
259 260 pyroutes.register('edit_repo_audit_logs', '/%(repo_name)s/settings/audit_logs', ['repo_name']);
260 261 pyroutes.register('rss_feed_home', '/%(repo_name)s/feed/rss', ['repo_name']);
261 262 pyroutes.register('atom_feed_home', '/%(repo_name)s/feed/atom', ['repo_name']);
262 263 pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']);
263 264 pyroutes.register('repo_summary_slash', '/%(repo_name)s/', ['repo_name']);
264 265 pyroutes.register('edit_repo_group', '/%(repo_group_name)s/_edit', ['repo_group_name']);
265 266 pyroutes.register('edit_repo_group_advanced', '/%(repo_group_name)s/_settings/advanced', ['repo_group_name']);
266 267 pyroutes.register('edit_repo_group_advanced_delete', '/%(repo_group_name)s/_settings/advanced/delete', ['repo_group_name']);
267 268 pyroutes.register('edit_repo_group_perms', '/%(repo_group_name)s/_settings/permissions', ['repo_group_name']);
268 269 pyroutes.register('edit_repo_group_perms_update', '/%(repo_group_name)s/_settings/permissions/update', ['repo_group_name']);
269 270 pyroutes.register('repo_group_home', '/%(repo_group_name)s', ['repo_group_name']);
270 271 pyroutes.register('repo_group_home_slash', '/%(repo_group_name)s/', ['repo_group_name']);
271 272 pyroutes.register('user_group_members_data', '/_admin/user_groups/%(user_group_id)s/members', ['user_group_id']);
272 273 pyroutes.register('edit_user_group_perms_summary', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary', ['user_group_id']);
273 274 pyroutes.register('edit_user_group_perms_summary_json', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary/json', ['user_group_id']);
274 275 pyroutes.register('edit_user_group', '/_admin/user_groups/%(user_group_id)s/edit', ['user_group_id']);
275 276 pyroutes.register('user_groups_update', '/_admin/user_groups/%(user_group_id)s/update', ['user_group_id']);
276 277 pyroutes.register('edit_user_group_global_perms', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions', ['user_group_id']);
277 278 pyroutes.register('edit_user_group_global_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions/update', ['user_group_id']);
278 279 pyroutes.register('edit_user_group_perms', '/_admin/user_groups/%(user_group_id)s/edit/permissions', ['user_group_id']);
279 280 pyroutes.register('edit_user_group_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/permissions/update', ['user_group_id']);
280 281 pyroutes.register('edit_user_group_advanced', '/_admin/user_groups/%(user_group_id)s/edit/advanced', ['user_group_id']);
281 282 pyroutes.register('edit_user_group_advanced_sync', '/_admin/user_groups/%(user_group_id)s/edit/advanced/sync', ['user_group_id']);
282 283 pyroutes.register('user_groups_delete', '/_admin/user_groups/%(user_group_id)s/delete', ['user_group_id']);
283 284 pyroutes.register('search', '/_admin/search', []);
284 285 pyroutes.register('search_repo', '/%(repo_name)s/_search', ['repo_name']);
285 286 pyroutes.register('search_repo_alt', '/%(repo_name)s/search', ['repo_name']);
286 287 pyroutes.register('search_repo_group', '/%(repo_group_name)s/_search', ['repo_group_name']);
287 288 pyroutes.register('user_profile', '/_profiles/%(username)s', ['username']);
288 289 pyroutes.register('user_group_profile', '/_profile_user_group/%(user_group_name)s', ['user_group_name']);
289 290 pyroutes.register('my_account_profile', '/_admin/my_account/profile', []);
290 291 pyroutes.register('my_account_edit', '/_admin/my_account/edit', []);
291 292 pyroutes.register('my_account_update', '/_admin/my_account/update', []);
292 293 pyroutes.register('my_account_password', '/_admin/my_account/password', []);
293 294 pyroutes.register('my_account_password_update', '/_admin/my_account/password/update', []);
294 295 pyroutes.register('my_account_auth_tokens_delete', '/_admin/my_account/auth_tokens/delete', []);
295 296 pyroutes.register('my_account_ssh_keys', '/_admin/my_account/ssh_keys', []);
296 297 pyroutes.register('my_account_ssh_keys_generate', '/_admin/my_account/ssh_keys/generate', []);
297 298 pyroutes.register('my_account_ssh_keys_add', '/_admin/my_account/ssh_keys/new', []);
298 299 pyroutes.register('my_account_ssh_keys_delete', '/_admin/my_account/ssh_keys/delete', []);
299 300 pyroutes.register('my_account_user_group_membership', '/_admin/my_account/user_group_membership', []);
300 301 pyroutes.register('my_account_emails', '/_admin/my_account/emails', []);
301 302 pyroutes.register('my_account_emails_add', '/_admin/my_account/emails/new', []);
302 303 pyroutes.register('my_account_emails_delete', '/_admin/my_account/emails/delete', []);
303 304 pyroutes.register('my_account_repos', '/_admin/my_account/repos', []);
304 305 pyroutes.register('my_account_watched', '/_admin/my_account/watched', []);
305 306 pyroutes.register('my_account_bookmarks', '/_admin/my_account/bookmarks', []);
306 307 pyroutes.register('my_account_bookmarks_update', '/_admin/my_account/bookmarks/update', []);
307 308 pyroutes.register('my_account_goto_bookmark', '/_admin/my_account/bookmark/%(bookmark_id)s', ['bookmark_id']);
308 309 pyroutes.register('my_account_perms', '/_admin/my_account/perms', []);
309 310 pyroutes.register('my_account_notifications', '/_admin/my_account/notifications', []);
310 311 pyroutes.register('my_account_notifications_toggle_visibility', '/_admin/my_account/toggle_visibility', []);
311 312 pyroutes.register('my_account_pullrequests', '/_admin/my_account/pull_requests', []);
312 313 pyroutes.register('my_account_pullrequests_data', '/_admin/my_account/pull_requests/data', []);
313 314 pyroutes.register('notifications_show_all', '/_admin/notifications', []);
314 315 pyroutes.register('notifications_mark_all_read', '/_admin/notifications/mark_all_read', []);
315 316 pyroutes.register('notifications_show', '/_admin/notifications/%(notification_id)s', ['notification_id']);
316 317 pyroutes.register('notifications_update', '/_admin/notifications/%(notification_id)s/update', ['notification_id']);
317 318 pyroutes.register('notifications_delete', '/_admin/notifications/%(notification_id)s/delete', ['notification_id']);
318 319 pyroutes.register('my_account_notifications_test_channelstream', '/_admin/my_account/test_channelstream', []);
319 320 pyroutes.register('gists_show', '/_admin/gists', []);
320 321 pyroutes.register('gists_new', '/_admin/gists/new', []);
321 322 pyroutes.register('gists_create', '/_admin/gists/create', []);
322 323 pyroutes.register('gist_show', '/_admin/gists/%(gist_id)s', ['gist_id']);
323 324 pyroutes.register('gist_delete', '/_admin/gists/%(gist_id)s/delete', ['gist_id']);
324 325 pyroutes.register('gist_edit', '/_admin/gists/%(gist_id)s/edit', ['gist_id']);
325 326 pyroutes.register('gist_edit_check_revision', '/_admin/gists/%(gist_id)s/edit/check_revision', ['gist_id']);
326 327 pyroutes.register('gist_update', '/_admin/gists/%(gist_id)s/update', ['gist_id']);
327 328 pyroutes.register('gist_show_rev', '/_admin/gists/%(gist_id)s/%(revision)s', ['gist_id', 'revision']);
328 329 pyroutes.register('gist_show_formatted', '/_admin/gists/%(gist_id)s/%(revision)s/%(format)s', ['gist_id', 'revision', 'format']);
329 330 pyroutes.register('gist_show_formatted_path', '/_admin/gists/%(gist_id)s/%(revision)s/%(format)s/%(f_path)s', ['gist_id', 'revision', 'format', 'f_path']);
330 331 pyroutes.register('debug_style_home', '/_admin/debug_style', []);
331 332 pyroutes.register('debug_style_template', '/_admin/debug_style/t/%(t_path)s', ['t_path']);
332 333 pyroutes.register('apiv2', '/_admin/api', []);
333 334 pyroutes.register('admin_settings_license', '/_admin/settings/license', []);
334 335 pyroutes.register('admin_settings_license_unlock', '/_admin/settings/license_unlock', []);
335 336 pyroutes.register('login', '/_admin/login', []);
336 337 pyroutes.register('register', '/_admin/register', []);
337 338 pyroutes.register('repo_reviewers_review_rule_new', '/%(repo_name)s/settings/review/rules/new', ['repo_name']);
338 339 pyroutes.register('repo_reviewers_review_rule_edit', '/%(repo_name)s/settings/review/rules/%(rule_id)s', ['repo_name', 'rule_id']);
339 340 pyroutes.register('repo_reviewers_review_rule_delete', '/%(repo_name)s/settings/review/rules/%(rule_id)s/delete', ['repo_name', 'rule_id']);
340 341 pyroutes.register('plugin_admin_chat', '/_admin/plugin_admin_chat/%(action)s', ['action']);
341 342 pyroutes.register('edit_user_auth_tokens', '/_admin/users/%(user_id)s/edit/auth_tokens', ['user_id']);
342 343 pyroutes.register('edit_user_auth_tokens_add', '/_admin/users/%(user_id)s/edit/auth_tokens/new', ['user_id']);
343 344 pyroutes.register('admin_settings_scheduler_show_tasks', '/_admin/settings/scheduler/_tasks', []);
344 345 pyroutes.register('admin_settings_scheduler_show_all', '/_admin/settings/scheduler', []);
345 346 pyroutes.register('admin_settings_scheduler_new', '/_admin/settings/scheduler/new', []);
346 347 pyroutes.register('admin_settings_scheduler_create', '/_admin/settings/scheduler/create', []);
347 348 pyroutes.register('admin_settings_scheduler_edit', '/_admin/settings/scheduler/%(schedule_id)s', ['schedule_id']);
348 349 pyroutes.register('admin_settings_scheduler_update', '/_admin/settings/scheduler/%(schedule_id)s/update', ['schedule_id']);
349 350 pyroutes.register('admin_settings_scheduler_delete', '/_admin/settings/scheduler/%(schedule_id)s/delete', ['schedule_id']);
350 351 pyroutes.register('admin_settings_scheduler_execute', '/_admin/settings/scheduler/%(schedule_id)s/execute', ['schedule_id']);
351 352 pyroutes.register('admin_settings_automation', '/_admin/settings/automation', []);
352 353 pyroutes.register('admin_settings_automation_update', '/_admin/settings/automation/%(entry_id)s/update', ['entry_id']);
353 354 pyroutes.register('admin_permissions_branch', '/_admin/permissions/branch', []);
354 355 pyroutes.register('admin_permissions_branch_update', '/_admin/permissions/branch/update', []);
355 356 pyroutes.register('my_account_auth_tokens', '/_admin/my_account/auth_tokens', []);
356 357 pyroutes.register('my_account_auth_tokens_add', '/_admin/my_account/auth_tokens/new', []);
357 358 pyroutes.register('my_account_external_identity', '/_admin/my_account/external-identity', []);
358 359 pyroutes.register('my_account_external_identity_delete', '/_admin/my_account/external-identity/delete', []);
360 pyroutes.register('repo_artifacts_list', '/%(repo_name)s/artifacts', ['repo_name']);
361 pyroutes.register('repo_artifacts_data', '/%(repo_name)s/artifacts_data', ['repo_name']);
362 pyroutes.register('repo_artifacts_new', '/%(repo_name)s/artifacts/new', ['repo_name']);
363 pyroutes.register('repo_artifacts_store', '/%(repo_name)s/artifacts/store', ['repo_name']);
364 pyroutes.register('repo_artifacts_delete', '/%(repo_name)s/artifacts/delete/%(uid)s', ['repo_name', 'uid']);
359 365 pyroutes.register('repo_automation', '/%(repo_name)s/settings/automation', ['repo_name']);
360 366 pyroutes.register('repo_automation_update', '/%(repo_name)s/settings/automation/%(entry_id)s/update', ['repo_name', 'entry_id']);
361 367 pyroutes.register('edit_repo_remote_push', '/%(repo_name)s/settings/remote/push', ['repo_name']);
362 368 pyroutes.register('edit_repo_perms_branch', '/%(repo_name)s/settings/branch_permissions', ['repo_name']);
363 369 pyroutes.register('edit_repo_perms_branch_delete', '/%(repo_name)s/settings/branch_permissions/%(rule_id)s/delete', ['repo_name', 'rule_id']);
364 370 }
@@ -1,426 +1,448 b''
1 1 ## DATA TABLE RE USABLE ELEMENTS
2 2 ## usage:
3 3 ## <%namespace name="dt" file="/data_table/_dt_elements.mako"/>
4 4 <%namespace name="base" file="/base/base.mako"/>
5 5
6 6 <%def name="metatags_help()">
7 7 <table>
8 8 <%
9 9 example_tags = [
10 10 ('state','[stable]'),
11 11 ('state','[stale]'),
12 12 ('state','[featured]'),
13 13 ('state','[dev]'),
14 14 ('state','[dead]'),
15 15 ('state','[deprecated]'),
16 16
17 17 ('label','[personal]'),
18 18 ('generic','[v2.0.0]'),
19 19
20 20 ('lang','[lang =&gt; JavaScript]'),
21 21 ('license','[license =&gt; LicenseName]'),
22 22
23 23 ('ref','[requires =&gt; RepoName]'),
24 24 ('ref','[recommends =&gt; GroupName]'),
25 25 ('ref','[conflicts =&gt; SomeName]'),
26 26 ('ref','[base =&gt; SomeName]'),
27 27 ('url','[url =&gt; [linkName](https://rhodecode.com)]'),
28 28 ('see','[see =&gt; http://rhodecode.com]'),
29 29 ]
30 30 %>
31 31 % for tag_type, tag in example_tags:
32 32 <tr>
33 33 <td>${tag|n}</td>
34 34 <td>${h.style_metatag(tag_type, tag)|n}</td>
35 35 </tr>
36 36 % endfor
37 37 </table>
38 38 </%def>
39 39
40 40 ## REPOSITORY RENDERERS
41 41 <%def name="quick_menu(repo_name)">
42 42 <i class="icon-more"></i>
43 43 <div class="menu_items_container hidden">
44 44 <ul class="menu_items">
45 45 <li>
46 46 <a title="${_('Summary')}" href="${h.route_path('repo_summary',repo_name=repo_name)}">
47 47 <span>${_('Summary')}</span>
48 48 </a>
49 49 </li>
50 50 <li>
51 51 <a title="${_('Changelog')}" href="${h.route_path('repo_changelog',repo_name=repo_name)}">
52 52 <span>${_('Changelog')}</span>
53 53 </a>
54 54 </li>
55 55 <li>
56 56 <a title="${_('Files')}" href="${h.route_path('repo_files:default_commit',repo_name=repo_name)}">
57 57 <span>${_('Files')}</span>
58 58 </a>
59 59 </li>
60 60 <li>
61 61 <a title="${_('Fork')}" href="${h.route_path('repo_fork_new',repo_name=repo_name)}">
62 62 <span>${_('Fork')}</span>
63 63 </a>
64 64 </li>
65 65 </ul>
66 66 </div>
67 67 </%def>
68 68
69 69 <%def name="repo_name(name,rtype,rstate,private,archived,fork_of,short_name=False,admin=False)">
70 70 <%
71 71 def get_name(name,short_name=short_name):
72 72 if short_name:
73 73 return name.split('/')[-1]
74 74 else:
75 75 return name
76 76 %>
77 77 <div class="${'repo_state_pending' if rstate == 'repo_state_pending' else ''} truncate">
78 78 ##NAME
79 79 <a href="${h.route_path('edit_repo',repo_name=name) if admin else h.route_path('repo_summary',repo_name=name)}">
80 80
81 81 ##TYPE OF REPO
82 82 %if h.is_hg(rtype):
83 83 <span title="${_('Mercurial repository')}"><i class="icon-hg" style="font-size: 14px;"></i></span>
84 84 %elif h.is_git(rtype):
85 85 <span title="${_('Git repository')}"><i class="icon-git" style="font-size: 14px"></i></span>
86 86 %elif h.is_svn(rtype):
87 87 <span title="${_('Subversion repository')}"><i class="icon-svn" style="font-size: 14px"></i></span>
88 88 %endif
89 89
90 90 ##PRIVATE/PUBLIC
91 91 %if private is True and c.visual.show_private_icon:
92 92 <i class="icon-lock" title="${_('Private repository')}"></i>
93 93 %elif private is False and c.visual.show_public_icon:
94 94 <i class="icon-unlock-alt" title="${_('Public repository')}"></i>
95 95 %else:
96 96 <span></span>
97 97 %endif
98 98 ${get_name(name)}
99 99 </a>
100 100 %if fork_of:
101 101 <a href="${h.route_path('repo_summary',repo_name=fork_of.repo_name)}"><i class="icon-code-fork"></i></a>
102 102 %endif
103 103 %if rstate == 'repo_state_pending':
104 104 <span class="creation_in_progress tooltip" title="${_('This repository is being created in a background task')}">
105 105 (${_('creating...')})
106 106 </span>
107 107 %endif
108 108
109 109 </div>
110 110 </%def>
111 111
112 112 <%def name="repo_desc(description, stylify_metatags)">
113 113 <%
114 114 tags, description = h.extract_metatags(description)
115 115 %>
116 116
117 117 <div class="truncate-wrap">
118 118 % if stylify_metatags:
119 119 % for tag_type, tag in tags:
120 120 ${h.style_metatag(tag_type, tag)|n}
121 121 % endfor
122 122 % endif
123 123 ${description}
124 124 </div>
125 125
126 126 </%def>
127 127
128 128 <%def name="last_change(last_change)">
129 129 ${h.age_component(last_change, time_is_local=True)}
130 130 </%def>
131 131
132 132 <%def name="revision(name,rev,tip,author,last_msg, commit_date)">
133 133 <div>
134 134 %if rev >= 0:
135 135 <code><a title="${h.tooltip('%s\n%s\n\n%s' % (author, commit_date, last_msg))}" class="tooltip" href="${h.route_path('repo_commit',repo_name=name,commit_id=tip)}">${'r%s:%s' % (rev,h.short_id(tip))}</a></code>
136 136 %else:
137 137 ${_('No commits yet')}
138 138 %endif
139 139 </div>
140 140 </%def>
141 141
142 142 <%def name="rss(name)">
143 143 %if c.rhodecode_user.username != h.DEFAULT_USER:
144 144 <a title="${h.tooltip(_('Subscribe to %s rss feed')% name)}" href="${h.route_path('rss_feed_home', repo_name=name, _query=dict(auth_token=c.rhodecode_user.feed_token))}"><i class="icon-rss-sign"></i></a>
145 145 %else:
146 146 <a title="${h.tooltip(_('Subscribe to %s rss feed')% name)}" href="${h.route_path('rss_feed_home', repo_name=name)}"><i class="icon-rss-sign"></i></a>
147 147 %endif
148 148 </%def>
149 149
150 150 <%def name="atom(name)">
151 151 %if c.rhodecode_user.username != h.DEFAULT_USER:
152 152 <a title="${h.tooltip(_('Subscribe to %s atom feed')% name)}" href="${h.route_path('atom_feed_home', repo_name=name, _query=dict(auth_token=c.rhodecode_user.feed_token))}"><i class="icon-rss-sign"></i></a>
153 153 %else:
154 154 <a title="${h.tooltip(_('Subscribe to %s atom feed')% name)}" href="${h.route_path('atom_feed_home', repo_name=name)}"><i class="icon-rss-sign"></i></a>
155 155 %endif
156 156 </%def>
157 157
158 158 <%def name="user_gravatar(email, size=16)">
159 159 <div class="rc-user tooltip" title="${h.tooltip(h.author_string(email))}">
160 160 ${base.gravatar(email, 16)}
161 161 </div>
162 162 </%def>
163 163
164 164 <%def name="repo_actions(repo_name, super_user=True)">
165 165 <div>
166 166 <div class="grid_edit">
167 167 <a href="${h.route_path('edit_repo',repo_name=repo_name)}" title="${_('Edit')}">
168 168 <i class="icon-pencil"></i>Edit</a>
169 169 </div>
170 170 <div class="grid_delete">
171 171 ${h.secure_form(h.route_path('edit_repo_advanced_delete', repo_name=repo_name), request=request)}
172 172 ${h.submit('remove_%s' % repo_name,_('Delete'),class_="btn btn-link btn-danger",
173 173 onclick="return confirm('"+_('Confirm to delete this repository: %s') % repo_name+"');")}
174 174 ${h.end_form()}
175 175 </div>
176 176 </div>
177 177 </%def>
178 178
179 179 <%def name="repo_state(repo_state)">
180 180 <div>
181 181 %if repo_state == 'repo_state_pending':
182 182 <div class="tag tag4">${_('Creating')}</div>
183 183 %elif repo_state == 'repo_state_created':
184 184 <div class="tag tag1">${_('Created')}</div>
185 185 %else:
186 186 <div class="tag alert2" title="${h.tooltip(repo_state)}">invalid</div>
187 187 %endif
188 188 </div>
189 189 </%def>
190 190
191 191
192 192 ## REPO GROUP RENDERERS
193 193 <%def name="quick_repo_group_menu(repo_group_name)">
194 194 <i class="icon-more"></i>
195 195 <div class="menu_items_container hidden">
196 196 <ul class="menu_items">
197 197 <li>
198 198 <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}">${_('Summary')}</a>
199 199 </li>
200 200
201 201 </ul>
202 202 </div>
203 203 </%def>
204 204
205 205 <%def name="repo_group_name(repo_group_name, children_groups=None)">
206 206 <div>
207 207 <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}">
208 208 <i class="icon-folder-close" title="${_('Repository group')}" style="font-size: 16px"></i>
209 209 %if children_groups:
210 210 ${h.literal(' &raquo; '.join(children_groups))}
211 211 %else:
212 212 ${repo_group_name}
213 213 %endif
214 214 </a>
215 215 </div>
216 216 </%def>
217 217
218 218 <%def name="repo_group_desc(description, personal, stylify_metatags)">
219 219
220 220 <%
221 221 tags, description = h.extract_metatags(description)
222 222 %>
223 223
224 224 <div class="truncate-wrap">
225 225 % if personal:
226 226 <div class="metatag" tag="personal">${_('personal')}</div>
227 227 % endif
228 228
229 229 % if stylify_metatags:
230 230 % for tag_type, tag in tags:
231 231 ${h.style_metatag(tag_type, tag)|n}
232 232 % endfor
233 233 % endif
234 234 ${description}
235 235 </div>
236 236
237 237 </%def>
238 238
239 239 <%def name="repo_group_actions(repo_group_id, repo_group_name, gr_count)">
240 240 <div class="grid_edit">
241 241 <a href="${h.route_path('edit_repo_group',repo_group_name=repo_group_name)}" title="${_('Edit')}">Edit</a>
242 242 </div>
243 243 <div class="grid_delete">
244 244 ${h.secure_form(h.route_path('edit_repo_group_advanced_delete', repo_group_name=repo_group_name), request=request)}
245 245 ${h.submit('remove_%s' % repo_group_name,_('Delete'),class_="btn btn-link btn-danger",
246 246 onclick="return confirm('"+_ungettext('Confirm to delete this group: %s with %s repository','Confirm to delete this group: %s with %s repositories',gr_count) % (repo_group_name, gr_count)+"');")}
247 247 ${h.end_form()}
248 248 </div>
249 249 </%def>
250 250
251 251
252 252 <%def name="user_actions(user_id, username)">
253 253 <div class="grid_edit">
254 254 <a href="${h.route_path('user_edit',user_id=user_id)}" title="${_('Edit')}">
255 255 <i class="icon-pencil"></i>${_('Edit')}</a>
256 256 </div>
257 257 <div class="grid_delete">
258 258 ${h.secure_form(h.route_path('user_delete', user_id=user_id), request=request)}
259 259 ${h.submit('remove_',_('Delete'),id="remove_user_%s" % user_id, class_="btn btn-link btn-danger",
260 260 onclick="return confirm('"+_('Confirm to delete this user: %s') % username+"');")}
261 261 ${h.end_form()}
262 262 </div>
263 263 </%def>
264 264
265 265 <%def name="user_group_actions(user_group_id, user_group_name)">
266 266 <div class="grid_edit">
267 267 <a href="${h.route_path('edit_user_group', user_group_id=user_group_id)}" title="${_('Edit')}">Edit</a>
268 268 </div>
269 269 <div class="grid_delete">
270 270 ${h.secure_form(h.route_path('user_groups_delete', user_group_id=user_group_id), request=request)}
271 271 ${h.submit('remove_',_('Delete'),id="remove_group_%s" % user_group_id, class_="btn btn-link btn-danger",
272 272 onclick="return confirm('"+_('Confirm to delete this user group: %s') % user_group_name+"');")}
273 273 ${h.end_form()}
274 274 </div>
275 275 </%def>
276 276
277 277
278 278 <%def name="user_name(user_id, username)">
279 279 ${h.link_to(h.person(username, 'username_or_name_or_email'), h.route_path('user_edit', user_id=user_id))}
280 280 </%def>
281 281
282 282 <%def name="user_profile(username)">
283 283 ${base.gravatar_with_user(username, 16)}
284 284 </%def>
285 285
286 286 <%def name="user_group_name(user_group_name)">
287 287 <div>
288 288 <i class="icon-user-group" title="${_('User group')}"></i>
289 289 ${h.link_to_group(user_group_name)}
290 290 </div>
291 291 </%def>
292 292
293 293
294 294 ## GISTS
295 295
296 296 <%def name="gist_gravatar(full_contact)">
297 297 <div class="gist_gravatar">
298 298 ${base.gravatar(full_contact, 30)}
299 299 </div>
300 300 </%def>
301 301
302 302 <%def name="gist_access_id(gist_access_id, full_contact)">
303 303 <div>
304 304 <b>
305 305 <a href="${h.route_path('gist_show', gist_id=gist_access_id)}">gist: ${gist_access_id}</a>
306 306 </b>
307 307 </div>
308 308 </%def>
309 309
310 310 <%def name="gist_author(full_contact, created_on, expires)">
311 311 ${base.gravatar_with_user(full_contact, 16)}
312 312 </%def>
313 313
314 314
315 315 <%def name="gist_created(created_on)">
316 316 <div class="created">
317 317 ${h.age_component(created_on, time_is_local=True)}
318 318 </div>
319 319 </%def>
320 320
321 321 <%def name="gist_expires(expires)">
322 322 <div class="created">
323 323 %if expires == -1:
324 324 ${_('never')}
325 325 %else:
326 326 ${h.age_component(h.time_to_utcdatetime(expires))}
327 327 %endif
328 328 </div>
329 329 </%def>
330 330
331 331 <%def name="gist_type(gist_type)">
332 332 %if gist_type != 'public':
333 333 <div class="tag">${_('Private')}</div>
334 334 %endif
335 335 </%def>
336 336
337 337 <%def name="gist_description(gist_description)">
338 338 ${gist_description}
339 339 </%def>
340 340
341 341
342 342 ## PULL REQUESTS GRID RENDERERS
343 343
344 344 <%def name="pullrequest_target_repo(repo_name)">
345 345 <div class="truncate">
346 346 ${h.link_to(repo_name,h.route_path('repo_summary',repo_name=repo_name))}
347 347 </div>
348 348 </%def>
349 349 <%def name="pullrequest_status(status)">
350 350 <div class="${'flag_status %s' % status} pull-left"></div>
351 351 </%def>
352 352
353 353 <%def name="pullrequest_title(title, description)">
354 354 ${title}
355 355 </%def>
356 356
357 357 <%def name="pullrequest_comments(comments_nr)">
358 358 <i class="icon-comment"></i> ${comments_nr}
359 359 </%def>
360 360
361 361 <%def name="pullrequest_name(pull_request_id, target_repo_name, short=False)">
362 362 <a href="${h.route_path('pullrequest_show',repo_name=target_repo_name,pull_request_id=pull_request_id)}">
363 363 % if short:
364 364 #${pull_request_id}
365 365 % else:
366 366 ${_('Pull request #%(pr_number)s') % {'pr_number': pull_request_id,}}
367 367 % endif
368 368 </a>
369 369 </%def>
370 370
371 371 <%def name="pullrequest_updated_on(updated_on)">
372 372 ${h.age_component(h.time_to_utcdatetime(updated_on))}
373 373 </%def>
374 374
375 375 <%def name="pullrequest_author(full_contact)">
376 376 ${base.gravatar_with_user(full_contact, 16)}
377 377 </%def>
378 378
379 379
380 ## ARTIFACT RENDERERS
381
382 <%def name="repo_artifact_uid(file_uid)">
383 <code><a href="${h.route_path('download_file', fid=file_uid)}">${file_uid}</a></code>
384 </%def>
385
386 <%def name="repo_artifact_uid_action(file_uid)">
387 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${h.route_url('download_file', fid=file_uid)}" title="${_('Copy the full url')}"></i>
388 </%def>
389
390 <%def name="repo_artifact_actions(repo_name, file_store_id, file_uid)">
391 ## <div class="grid_edit">
392 ## <a href="#Edit" title="${_('Edit')}">${_('Edit')}</a>
393 ## </div>
394 <div class="grid_delete">
395 ${h.secure_form(h.route_path('repo_artifacts_delete', repo_name=repo_name, uid=file_store_id), request=request)}
396 ${h.submit('remove_',_('Delete'),id="remove_artifact_%s" % file_store_id, class_="btn btn-link btn-danger",
397 onclick="return confirm('"+_('Confirm to delete this artifact: %s') % file_uid+"');")}
398 ${h.end_form()}
399 </div>
400 </%def>
401
380 402 <%def name="markup_form(form_id, form_text='', help_text=None)">
381 403
382 404 <div class="markup-form">
383 405 <div class="markup-form-area">
384 406 <div class="markup-form-area-header">
385 407 <ul class="nav-links clearfix">
386 408 <li class="active">
387 409 <a href="#edit-text" tabindex="-1" id="edit-btn_${form_id}">${_('Write')}</a>
388 410 </li>
389 411 <li class="">
390 412 <a href="#preview-text" tabindex="-1" id="preview-btn_${form_id}">${_('Preview')}</a>
391 413 </li>
392 414 </ul>
393 415 </div>
394 416
395 417 <div class="markup-form-area-write" style="display: block;">
396 418 <div id="edit-container_${form_id}">
397 419 <textarea id="${form_id}" name="${form_id}" class="comment-block-ta ac-input">${form_text if form_text else ''}</textarea>
398 420 </div>
399 421 <div id="preview-container_${form_id}" class="clearfix" style="display: none;">
400 422 <div id="preview-box_${form_id}" class="preview-box"></div>
401 423 </div>
402 424 </div>
403 425
404 426 <div class="markup-form-area-footer">
405 427 <div class="toolbar">
406 428 <div class="toolbar-text">
407 429 ${(_('Parsed using %s syntax') % (
408 430 ('<a href="%s">%s</a>' % (h.route_url('%s_help' % c.visual.default_renderer), c.visual.default_renderer.upper())),
409 431 )
410 432 )|n}
411 433 </div>
412 434 </div>
413 435 </div>
414 436 </div>
415 437
416 438 <div class="markup-form-footer">
417 439 % if help_text:
418 440 <span class="help-block">${help_text}</span>
419 441 % endif
420 442 </div>
421 443 </div>
422 444 <script type="text/javascript">
423 445 new MarkupForm('${form_id}');
424 446 </script>
425 447
426 448 </%def>
General Comments 0
You need to be logged in to leave comments. Login now