##// END OF EJS Templates
styling: gravatar improvements for special cases
lisaq -
r8:d9e065f6 default
parent child Browse files
Show More
@@ -1,600 +1,605 b''
1 1 // Default styles
2 2
3 3 .diff-collapse {
4 4 margin: @padding 0;
5 5 text-align: right;
6 6 }
7 7
8 8 .diff-container {
9 9 margin-bottom: @space;
10 10
11 11 .diffblock {
12 12 margin-bottom: @space;
13 13 }
14 14
15 15 &.hidden {
16 16 display: none;
17 17 overflow: hidden;
18 18 }
19 19 }
20 20
21 21 .compare_view_files {
22 22
23 23 .diff-container {
24 24
25 25 .diffblock {
26 26 margin-bottom: 0;
27 27 }
28 28 }
29 29 }
30 30
31 31 div.diffblock .sidebyside {
32 32 background: #ffffff;
33 33 }
34 34
35 35 div.diffblock {
36 36 overflow-x: auto;
37 37 overflow-y: hidden;
38 38 clear: both;
39 39 padding: 0px;
40 40 background: @grey6;
41 41 border: @border-thickness solid @grey5;
42 42 -webkit-border-radius: @border-radius @border-radius 0px 0px;
43 43 border-radius: @border-radius @border-radius 0px 0px;
44 44
45 45
46 46 .comments-number {
47 47 float: right;
48 48 }
49 49
50 50 // BEGIN CODE-HEADER STYLES
51 51
52 52 .code-header {
53 53 background: @grey6;
54 54 padding: 10px 0 10px 0;
55 55 height: auto;
56 56 width: 100%;
57 57
58 58 .hash {
59 59 float: left;
60 60 padding: 2px 0 0 2px;
61 61 }
62 62
63 63 .date {
64 64 float: left;
65 65 text-transform: uppercase;
66 66 padding: 4px 0px 0px 2px;
67 67 }
68 68
69 69 div {
70 70 margin-left: 4px;
71 71 }
72 72
73 73 div.compare_header {
74 74 min-height: 40px;
75 75 margin: 0;
76 76 padding: 0 @padding;
77 77
78 78 .drop-menu {
79 79 float:left;
80 80 display: block;
81 81 margin:0 0 @padding 0;
82 82 }
83 83
84 84 .compare-label {
85 85 float: left;
86 86 clear: both;
87 87 display: inline-block;
88 88 min-width: 5em;
89 89 margin: 0;
90 90 padding: @button-padding @button-padding @button-padding 0;
91 91 font-family: @text-semibold;
92 92 }
93 93
94 94 .compare-buttons {
95 95 float: left;
96 96 margin: 0;
97 97 padding: 0 0 @padding;
98 98
99 99 .btn {
100 100 margin: 0 @padding 0 0;
101 101 }
102 102 }
103 103 }
104 104
105 105 }
106 106
107 107 .parents {
108 108 float: left;
109 109 width: 100px;
110 110 font-weight: 400;
111 111 vertical-align: middle;
112 112 padding: 0px 2px 0px 2px;
113 113 background-color: @grey6;
114 114
115 115 #parent_link {
116 116 margin: 00px 2px;
117 117
118 118 &.double {
119 119 margin: 0px 2px;
120 120 }
121 121
122 122 &.disabled{
123 123 margin-right: @padding;
124 124 }
125 125 }
126 126 }
127 127
128 128 .children {
129 129 float: right;
130 130 width: 100px;
131 131 font-weight: 400;
132 132 vertical-align: middle;
133 133 text-align: right;
134 134 padding: 0px 2px 0px 2px;
135 135 background-color: @grey6;
136 136
137 137 #child_link {
138 138 margin: 0px 2px;
139 139
140 140 &.double {
141 141 margin: 0px 2px;
142 142 }
143 143
144 144 &.disabled{
145 145 margin-right: @padding;
146 146 }
147 147 }
148 148 }
149 149
150 150 .changeset_header {
151 151 height: 16px;
152 152
153 153 & > div{
154 154 margin-right: @padding;
155 155 }
156 156 }
157 157
158 158 .changeset_file {
159 159 text-align: left;
160 160 float: left;
161 161 padding: 0;
162 162
163 163 a{
164 164 display: inline-block;
165 165 margin-right: 0.5em;
166 166 }
167 167
168 168 #selected_mode{
169 169 margin-left: 0;
170 170 }
171 171 }
172 172
173 173 .diff-menu-wrapper {
174 174 float: left;
175 175 }
176 176
177 177 .diff-menu {
178 178 position: absolute;
179 179 background: none repeat scroll 0 0 #FFFFFF;
180 180 border-color: #003367 @grey3 @grey3;
181 181 border-right: 1px solid @grey3;
182 182 border-style: solid solid solid;
183 183 border-width: @border-thickness;
184 184 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
185 185 margin-top: 5px;
186 186 margin-left: 1px;
187 187 }
188 188
189 189 .diff-actions, .editor-actions {
190 190 float: left;
191 191
192 192 input{
193 193 margin: 0 0.5em 0 0;
194 194 }
195 195 }
196 196
197 197 // END CODE-HEADER STYLES
198 198
199 199 // BEGIN CODE-BODY STYLES
200 200
201 201 .code-body {
202 202 background: white;
203 203 padding: 0;
204 204 background-color: #ffffff;
205 205 position: relative;
206 206 max-width: none;
207 207 box-sizing: border-box;
208 208 // TODO: johbo: Parent has overflow: auto, this forces the child here
209 209 // to have the intended size and to scroll. Should be simplified.
210 210 width: 100%;
211 211 overflow-x: auto;
212 212 }
213 213
214 214 pre.raw {
215 215 background: white;
216 216 color: @grey1;
217 217 }
218 218 // END CODE-BODY STYLES
219 219
220 220 }
221 221
222 222
223 223 table.code-difftable {
224 224 border-collapse: collapse;
225 225 width: 99%;
226 226 border-radius: 0px !important;
227 227
228 228 td {
229 229 padding: 0 !important;
230 230 background: none !important;
231 231 border: 0 !important;
232 232 }
233 233
234 234 .context {
235 235 background: none repeat scroll 0 0 #DDE7EF;
236 236 }
237 237
238 238 .add {
239 239 background: none repeat scroll 0 0 #DDFFDD;
240 240
241 241 ins {
242 242 background: none repeat scroll 0 0 #AAFFAA;
243 243 text-decoration: none;
244 244 }
245 245 }
246 246
247 247 .del {
248 248 background: none repeat scroll 0 0 #FFDDDD;
249 249
250 250 del {
251 251 background: none repeat scroll 0 0 #FFAAAA;
252 252 text-decoration: none;
253 253 }
254 254 }
255 255
256 256 /** LINE NUMBERS **/
257 257 .lineno {
258 258 padding-left: 2px;
259 259 padding-right: 2px;
260 260 text-align: right;
261 261 width: 32px;
262 262 -moz-user-select: none;
263 263 -webkit-user-select: none;
264 264 border-right: @border-thickness solid @grey5 !important;
265 265 border-left: 0px solid #CCC !important;
266 266 border-top: 0px solid #CCC !important;
267 267 border-bottom: none !important;
268 268
269 269 a {
270 270 &:extend(pre);
271 271 text-align: right;
272 272 padding-right: 2px;
273 273 cursor: pointer;
274 274 display: block;
275 275 width: 32px;
276 276 }
277 277 }
278 278
279 279 .context {
280 280 cursor: auto;
281 281 &:extend(pre);
282 282 }
283 283
284 284 .lineno-inline {
285 285 background: none repeat scroll 0 0 #FFF !important;
286 286 padding-left: 2px;
287 287 padding-right: 2px;
288 288 text-align: right;
289 289 width: 30px;
290 290 -moz-user-select: none;
291 291 -webkit-user-select: none;
292 292 }
293 293
294 294 /** CODE **/
295 295 .code {
296 296 display: block;
297 297 width: 100%;
298 298
299 299 td {
300 300 margin: 0;
301 301 padding: 0;
302 302 }
303 303
304 304 pre {
305 305 margin: 0;
306 306 padding: 0;
307 307 margin-left: .5em;
308 308 }
309 309 }
310 310 }
311 311
312 312
313 313 // Comments
314 314
315 315 div.comment:target {
316 316 border-left: 6px solid @comment-highlight-color;
317 317 padding-left: 3px;
318 318 margin-left: -9px;
319 319 }
320 320
321 321 //TODO: anderson: can't get an absolute number out of anything, so had to put the
322 322 //current values that might change. But to make it clear I put as a calculation
323 323 @comment-max-width: 1065px;
324 324 @pr-extra-margin: 34px;
325 325 @pr-border-spacing: 4px;
326 326 @pr-comment-width: @comment-max-width - @pr-extra-margin - @pr-border-spacing;
327 327
328 328 // Pull Request
329 329 .cs_files .code-difftable {
330 330 border: @border-thickness solid @grey5; //borders only on PRs
331 331
332 332 .comment-inline-form,
333 333 div.comment {
334 334 width: @pr-comment-width;
335 335 }
336 336 }
337 337
338 338 // Changeset
339 339 .code-difftable {
340 340 .comment-inline-form,
341 341 div.comment {
342 342 width: @comment-max-width;
343 343 }
344 344 }
345 345
346 346 //Style page
347 347 @style-extra-margin: @sidebar-width + (@sidebarpadding * 3) + @padding;
348 348 #style-page .code-difftable{
349 349 .comment-inline-form,
350 350 div.comment {
351 351 width: @comment-max-width - @style-extra-margin;
352 352 }
353 353 }
354 354
355 355 #context-bar > h2 {
356 356 font-size: 20px;
357 357 }
358 358
359 359 #context-bar > h2> a {
360 360 font-size: 20px;
361 361 }
362 362 // end of defaults
363 363
364 364 .file_diff_buttons {
365 365 padding: 0 0 @padding;
366 366
367 367 .drop-menu {
368 368 float: left;
369 369 margin: 0 @padding 0 0;
370 370 }
371 371 .btn {
372 372 margin: 0 @padding 0 0;
373 373 }
374 374 }
375 375
376 376 .code-body.textarea.editor {
377 377 max-width: none;
378 378 padding: 15px;
379 379 }
380 380
381 381 td.injected_diff{
382 382 max-width: 1178px;
383 383 overflow-x: auto;
384 384 overflow-y: hidden;
385 385
386 386 div.diff-container,
387 387 div.diffblock{
388 388 max-width: 100%;
389 389 }
390 390
391 391 div.code-body {
392 392 max-width: 1124px;
393 393 overflow-x: auto;
394 394 padding: 0;
395 395 }
396 396 div.diffblock {
397 397 border: none;
398 398 }
399 399
400 400 &.inline-form {
401 401 width: 99%
402 402 }
403 403 }
404 404
405 405
406 406 table.code-difftable {
407 407 width: 100%;
408 408 }
409 409
410 410 /** PYGMENTS COLORING **/
411 411 div.codeblock {
412 412
413 413 // TODO: johbo: Added interim to get rid of the margin around
414 414 // Select2 widgets. This needs further cleanup.
415 415 margin-top: @padding;
416 416
417 417 overflow: auto;
418 418 padding: 0px;
419 419 border: @border-thickness solid @grey5;
420 420 background: @grey6;
421 421 .border-radius(@border-radius);
422 422
423 423 #remove_gist {
424 424 float: right;
425 425 }
426 426
427 427 .author {
428 428 clear: both;
429 429 vertical-align: middle;
430 430 font-family: @text-bold;
431 431 }
432 432
433 433 .btn-mini {
434 434 float: left;
435 435 margin: 0 5px 0 0;
436 436 }
437 437
438 438 .code-header {
439 439 padding: @padding;
440 440 border-bottom: @border-thickness solid @grey5;
441 441
442 .rc-user {
443 min-width: 0;
444 margin-right: .5em;
445 }
446
442 447 .stats {
443 448 clear: both;
444 449 margin: 0 0 @padding 0;
445 450 padding: 0;
446 451 .left {
447 452 float: left;
448 453 clear: left;
449 454 max-width: 75%;
450 455 margin: 0 0 @padding 0;
451 456
452 457 &.item {
453 458 margin-right: @padding;
454 459 &.last { border-right: none; }
455 460 }
456 461 }
457 462 .buttons { float: right; }
458 463 .author {
459 464 height: 25px; margin-left: 15px; font-weight: bold;
460 465 }
461 466 }
462 467
463 468 .commit {
464 469 margin: 5px 0 0 26px;
465 470 font-weight: normal;
466 471 white-space: pre-wrap;
467 472 }
468 473 }
469 474
470 475 .message {
471 476 position: relative;
472 477 margin: @padding;
473 478
474 479 .codeblock-label {
475 480 margin: 0 0 1em 0;
476 481 }
477 482 }
478 483
479 484 .code-body {
480 485 padding: @padding;
481 486 background-color: #ffffff;
482 487 min-width: 100%;
483 488 box-sizing: border-box;
484 489 // TODO: johbo: Parent has overflow: auto, this forces the child here
485 490 // to have the intended size and to scroll. Should be simplified.
486 491 width: 100%;
487 492 overflow-x: auto;
488 493 }
489 494 }
490 495
491 496 .code-highlighttable,
492 497 div.codeblock .code-body table {
493 498 width: 0 !important;
494 499 border: 0px !important;
495 500 margin: 0;
496 501 letter-spacing: normal;
497 502
498 503
499 504 td {
500 505 border: 0px !important;
501 506 vertical-align: top;
502 507 }
503 508 }
504 509
505 510 div.codeblock .code-header .search-path { padding: 0 0 0 10px; }
506 511 div.search-code-body {
507 512 background-color: #ffffff; padding: 5px 0 5px 10px;
508 513 pre {
509 514 .match { background-color: #faffa6;}
510 515 .break { display: block; width: 100%; background-color: #DDE7EF; color: #747474; }
511 516 }
512 517 }
513 518
514 519 div.annotatediv { margin-left: 2px; margin-right: 4px; }
515 520 .code-highlight {
516 521 margin: 0; padding: 0; border-left: @border-thickness solid @grey5;
517 522 pre, .linenodiv pre { padding: 0 5px; margin: 0; }
518 523 pre div:target {background-color: @comment-highlight-color !important;}
519 524 }
520 525
521 526 .linenos a { text-decoration: none; }
522 527
523 528 .CodeMirror-selected { background: @rchighlightblue; }
524 529 .CodeMirror-focused .CodeMirror-selected { background: @rchighlightblue; }
525 530 .CodeMirror ::selection { background: @rchighlightblue; }
526 531 .CodeMirror ::-moz-selection { background: @rchighlightblue; }
527 532
528 533 .code { display: block; border:0px !important; }
529 534 .code-highlight,
530 535 .codehilite {
531 536 .hll { background-color: #ffffcc }
532 537 .c { color: #408080; font-style: italic } /* Comment */
533 538 .err, .codehilite .err { border: @border-thickness solid #FF0000 } /* Error */
534 539 .k { color: #008000; font-weight: bold } /* Keyword */
535 540 .o { color: #666666 } /* Operator */
536 541 .cm { color: #408080; font-style: italic } /* Comment.Multiline */
537 542 .cp { color: #BC7A00 } /* Comment.Preproc */
538 543 .c1 { color: #408080; font-style: italic } /* Comment.Single */
539 544 .cs { color: #408080; font-style: italic } /* Comment.Special */
540 545 .gd { color: #A00000 } /* Generic.Deleted */
541 546 .ge { font-style: italic } /* Generic.Emph */
542 547 .gr { color: #FF0000 } /* Generic.Error */
543 548 .gh { color: #000080; font-weight: bold } /* Generic.Heading */
544 549 .gi { color: #00A000 } /* Generic.Inserted */
545 550 .go { color: #808080 } /* Generic.Output */
546 551 .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
547 552 .gs { font-weight: bold } /* Generic.Strong */
548 553 .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
549 554 .gt { color: #0040D0 } /* Generic.Traceback */
550 555 .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
551 556 .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
552 557 .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
553 558 .kp { color: #008000 } /* Keyword.Pseudo */
554 559 .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
555 560 .kt { color: #B00040 } /* Keyword.Type */
556 561 .m { color: #666666 } /* Literal.Number */
557 562 .s { color: #BA2121 } /* Literal.String */
558 563 .na { color: #7D9029 } /* Name.Attribute */
559 564 .nb { color: #008000 } /* Name.Builtin */
560 565 .nc { color: #0000FF; font-weight: bold } /* Name.Class */
561 566 .no { color: #880000 } /* Name.Constant */
562 567 .nd { color: #AA22FF } /* Name.Decorator */
563 568 .ni { color: #999999; font-weight: bold } /* Name.Entity */
564 569 .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
565 570 .nf { color: #0000FF } /* Name.Function */
566 571 .nl { color: #A0A000 } /* Name.Label */
567 572 .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
568 573 .nt { color: #008000; font-weight: bold } /* Name.Tag */
569 574 .nv { color: #19177C } /* Name.Variable */
570 575 .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
571 576 .w { color: #bbbbbb } /* Text.Whitespace */
572 577 .mf { color: #666666 } /* Literal.Number.Float */
573 578 .mh { color: #666666 } /* Literal.Number.Hex */
574 579 .mi { color: #666666 } /* Literal.Number.Integer */
575 580 .mo { color: #666666 } /* Literal.Number.Oct */
576 581 .sb { color: #BA2121 } /* Literal.String.Backtick */
577 582 .sc { color: #BA2121 } /* Literal.String.Char */
578 583 .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
579 584 .s2 { color: #BA2121 } /* Literal.String.Double */
580 585 .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
581 586 .sh { color: #BA2121 } /* Literal.String.Heredoc */
582 587 .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
583 588 .sx { color: #008000 } /* Literal.String.Other */
584 589 .sr { color: #BB6688 } /* Literal.String.Regex */
585 590 .s1 { color: #BA2121 } /* Literal.String.Single */
586 591 .ss { color: #19177C } /* Literal.String.Symbol */
587 592 .bp { color: #008000 } /* Name.Builtin.Pseudo */
588 593 .vc { color: #19177C } /* Name.Variable.Class */
589 594 .vg { color: #19177C } /* Name.Variable.Global */
590 595 .vi { color: #19177C } /* Name.Variable.Instance */
591 596 .il { color: #666666 } /* Literal.Number.Integer.Long */
592 597 }
593 598
594 599 /* customized pre blocks for markdown/rst */
595 600 pre.literal-block, .codehilite pre{
596 601 padding: @padding;
597 602 border: 1px solid @grey6;
598 603 .border-radius(@border-radius);
599 604 background-color: @grey7;
600 605 }
@@ -1,356 +1,361 b''
1 1 // comments.less
2 2 // For use in RhodeCode applications;
3 3 // see style guide documentation for guidelines.
4 4
5 5
6 6 // Comments
7 7 .comments {
8 8 width: 100%;
9 9 }
10 10
11 11 tr.inline-comments div {
12 12 max-width: 100%;
13 13
14 14 p {
15 15 white-space: normal;
16 16 }
17 17
18 18 code, pre, .code, dd {
19 19 overflow-x: auto;
20 20 width: 1062px;
21 21 }
22 22
23 23 dd {
24 24 width: auto;
25 25 }
26 26 }
27 27
28 28 #injected_page_comments {
29 29 .comment-previous-link,
30 30 .comment-next-link,
31 31 .comment-links-divider {
32 32 display: none;
33 33 }
34 34 }
35 35
36 36 .add-comment {
37 37 margin-bottom: 10px;
38 38 }
39 39 .hide-comment-button .add-comment {
40 40 display: none;
41 41 }
42 42
43 43 .comment-bubble {
44 44 color: @grey4;
45 45 margin-top: 4px;
46 46 margin-right: 30px;
47 47 visibility: hidden;
48 48 }
49 49
50 50 .comment {
51 51 margin: @padding 0;
52 52 padding: 4px 0 0 0;
53 53 line-height: 1em;
54 54
55 .rc-user {
56 min-width: 0;
57 margin: -2px .5em 0 0;
58 }
59
55 60 .meta {
56 61 position: relative;
57 62 width: 100%;
58 63 margin: 0 0 .5em 0;
59 64
60 65 &:hover .permalink {
61 66 visibility: visible;
62 67 color: @rcblue;
63 68 }
64 69 }
65 70
66 71 .author,
67 72 .date {
68 73 display: inline;
69 74 margin: 0 .5 0 0;
70 75 padding: 0 .5 0 0;
71 76
72 77 &:after {
73 78 content: ' | ';
74 79 color: @grey5;
75 80 }
76 81 }
77 82
78 83 .status-change,
79 84 .permalink,
80 85 .changeset-status-lbl {
81 86 display: inline;
82 87 }
83 88
84 89 .permalink {
85 90 visibility: hidden;
86 91 }
87 92
88 93 .comment-links-divider {
89 94 display: inline;
90 95 }
91 96
92 97 .comment-links-block {
93 98 float:right;
94 99 text-align: right;
95 100 min-width: 85px;
96 101
97 102 [class^="icon-"]:before,
98 103 [class*=" icon-"]:before {
99 104 margin-left: 0;
100 105 margin-right: 0;
101 106 }
102 107 }
103 108
104 109 .comment-previous-link {
105 110 display: inline-block;
106 111
107 112 .arrow_comment_link{
108 113 cursor: pointer;
109 114 i {
110 115 font-size:10px;
111 116 }
112 117 }
113 118 .arrow_comment_link.disabled {
114 119 cursor: default;
115 120 color: @grey5;
116 121 }
117 122 }
118 123
119 124 .comment-next-link {
120 125 display: inline-block;
121 126
122 127 .arrow_comment_link{
123 128 cursor: pointer;
124 129 i {
125 130 font-size:10px;
126 131 }
127 132 }
128 133 .arrow_comment_link.disabled {
129 134 cursor: default;
130 135 color: @grey5;
131 136 }
132 137 }
133 138
134 139 .flag_status {
135 140 display: inline-block;
136 141 margin: -2px .5em 0 .25em
137 142 }
138 143
139 144 .delete-comment {
140 145 display: inline-block;
141 146 color: @rcblue;
142 147
143 148 &:hover {
144 149 cursor: pointer;
145 150 }
146 151 }
147 152
148 153
149 154 .text {
150 155 clear: both;
151 156 border: @border-thickness solid @grey5;
152 157 .border-radius(@border-radius);
153 158 .box-sizing(border-box);
154 159
155 160 .markdown-block p,
156 161 .rst-block p {
157 162 margin: .5em 0 !important;
158 163 // TODO: lisa: This is needed because of other rst !important rules :[
159 164 }
160 165 }
161 166 }
162 167
163 168 .show-outdated-comments {
164 169 display: inline;
165 170 color: @rcblue;
166 171 }
167 172
168 173 .outdated {
169 174 display: none;
170 175 opacity: 0.6;
171 176
172 177 .comment {
173 178 margin: 0 0 @padding;
174 179
175 180 .date:after {
176 181 content: none;
177 182 }
178 183 }
179 184 .outdated_comment_block {
180 185 padding: 0 0 @space 0;
181 186 }
182 187 }
183 188
184 189 // Comment Form
185 190 div.comment-form {
186 191 margin-top: 20px;
187 192 }
188 193
189 194 .comment-form strong {
190 195 display: block;
191 196 margin-bottom: 15px;
192 197 }
193 198
194 199 .comment-form textarea {
195 200 width: 100%;
196 201 height: 100px;
197 202 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
198 203 }
199 204
200 205 form.comment-form {
201 206 margin-top: 10px;
202 207 margin-left: 10px;
203 208 }
204 209
205 210 .comment-inline-form .comment-block-ta,
206 211 .comment-form .comment-block-ta,
207 212 .comment-form .preview-box {
208 213 border: @border-thickness solid @grey5;
209 214 .border-radius(@border-radius);
210 215 .box-sizing(border-box);
211 216 background-color: white;
212 217 }
213 218
214 219 .comment-form-submit {
215 220 margin-top: 5px;
216 221 margin-left: 525px;
217 222 }
218 223
219 224 .file-comments {
220 225 display: none;
221 226 }
222 227
223 228 .comment-form .preview-box.unloaded,
224 229 .comment-inline-form .preview-box.unloaded {
225 230 height: 50px;
226 231 text-align: center;
227 232 padding: 20px;
228 233 background-color: white;
229 234 }
230 235
231 236 .comment-footer {
232 237 position: relative;
233 238 width: 100%;
234 239 min-height: 42px;
235 240
236 241 .status_box,
237 242 .cancel-button {
238 243 float: left;
239 244 display: inline-block;
240 245 }
241 246
242 247 .action-buttons {
243 248 float: right;
244 249 display: inline-block;
245 250 }
246 251 }
247 252
248 253 .comment-form {
249 254
250 255 .comment {
251 256 margin-left: 10px;
252 257 }
253 258
254 259 .comment-help {
255 260 color: @grey4;
256 261 padding: 5px 0 5px 0;
257 262 }
258 263
259 264 .comment-title {
260 265 padding: 5px 0 5px 0;
261 266 }
262 267
263 268 .comment-button {
264 269 display: inline-block;
265 270 }
266 271
267 272 .comment-button .comment-button-input {
268 273 margin-right: 0;
269 274 }
270 275
271 276 .comment-footer {
272 277 margin-bottom: 110px;
273 278 }
274 279 }
275 280
276 281
277 282 .comment-form-login {
278 283 .comment-help {
279 284 padding: 0.9em; //same as the button
280 285 }
281 286
282 287 div.clearfix {
283 288 clear: both;
284 289 width: 100%;
285 290 display: block;
286 291 }
287 292 }
288 293
289 294 .preview-box {
290 295 padding: 10px;
291 296 min-height: 100px;
292 297 margin-bottom: 15px;
293 298 background-color: white;
294 299 border: @border-thickness solid #ccc;
295 300 .border-radius(@border-radius);
296 301 .box-sizing(border-box);
297 302 }
298 303
299 304 .add-another-button {
300 305 margin-left: 10px;
301 306 margin-top: 10px;
302 307 margin-bottom: 10px;
303 308 }
304 309
305 310 .comment .buttons {
306 311 float: right;
307 312 margin: -1px 0px 0px 0px;
308 313 }
309 314
310 315 // Inline Comment Form
311 316 .injected_diff .comment-inline-form,
312 317 .comment-inline-form {
313 318 background-color: @grey6;
314 319 margin-top: 10px;
315 320 margin-bottom: 20px;
316 321 }
317 322
318 323 .inline-form {
319 324 padding: 10px 7px;
320 325 }
321 326
322 327 .inline-form div {
323 328 max-width: 100%;
324 329 }
325 330
326 331 .overlay {
327 332 display: none;
328 333 position: absolute;
329 334 width: 100%;
330 335 text-align: center;
331 336 vertical-align: middle;
332 337 font-size: 16px;
333 338 background: none repeat scroll 0 0 white;
334 339
335 340 &.submitting {
336 341 display: block;
337 342 opacity: 0.5;
338 343 z-index: 100;
339 344 }
340 345 }
341 346 .comment-inline-form .overlay.submitting .overlay-text {
342 347 margin-top: 5%;
343 348 }
344 349
345 350 .comment-inline-form .clearfix,
346 351 .comment-form .clearfix {
347 352 .border-radius(@border-radius);
348 353 margin: 0px;
349 354 }
350 355
351 356 .hide-inline-form-button {
352 357 margin-left: 5px;
353 358 }
354 359 .comment-button .hide-inline-form {
355 360 background: white;
356 361 }
@@ -1,2076 +1,2087 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 'fonts';
9 9 @import 'variables';
10 10 @import 'bootstrap-variables';
11 11 @import 'form-bootstrap';
12 12 @import 'codemirror';
13 13 @import 'legacy_code_styles';
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
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-family: @text-semibold;
38 38 font-size: 120%;
39 39 color: white;
40 40 background-color: @alert2;
41 41 padding: 5px 0 5px 0;
42 42 }
43 43
44 44 html {
45 45 display: table;
46 46 height: 100%;
47 47 width: 100%;
48 48 }
49 49
50 50 body {
51 51 display: table-cell;
52 52 width: 100%;
53 53 }
54 54
55 55 //--- LAYOUT ------------------//
56 56
57 57 .hidden{
58 58 display: none !important;
59 59 }
60 60
61 61 .box{
62 62 float: left;
63 63 width: 100%;
64 64 }
65 65
66 66 .browser-header {
67 67 clear: both;
68 68 }
69 69 .main {
70 70 clear: both;
71 71 padding:0 0 @pagepadding;
72 72 height: auto;
73 73
74 74 &:after { //clearfix
75 75 content:"";
76 76 clear:both;
77 77 width:100%;
78 78 display:block;
79 79 }
80 80 }
81 81
82 82 .action-link{
83 83 margin-left: @padding;
84 84 padding-left: @padding;
85 85 border-left: @border-thickness solid @border-default-color;
86 86 }
87 87
88 88 input + .action-link, .action-link.first{
89 89 border-left: none;
90 90 }
91 91
92 92 .action-link.last{
93 93 margin-right: @padding;
94 94 padding-right: @padding;
95 95 }
96 96
97 97 .action-link.active,
98 98 .action-link.active a{
99 99 color: @grey4;
100 100 }
101 101
102 102 ul.simple-list{
103 103 list-style: none;
104 104 margin: 0;
105 105 padding: 0;
106 106 }
107 107
108 108 .main-content {
109 109 padding-bottom: @pagepadding;
110 110 }
111 111
112 112 .wrapper {
113 113 position: relative;
114 114 max-width: @wrapper-maxwidth;
115 115 margin: 0 auto;
116 116 }
117 117
118 118 #content {
119 119 clear: both;
120 120 padding: 0 @contentpadding;
121 121 }
122 122
123 123 .advanced-settings-fields{
124 124 input{
125 125 margin-left: @textmargin;
126 126 margin-right: @padding/2;
127 127 }
128 128 }
129 129
130 130 .cs_files_title {
131 131 margin: @pagepadding 0 0;
132 132 }
133 133
134 134 input.inline[type="file"] {
135 135 display: inline;
136 136 }
137 137
138 138 .error_page {
139 139 margin: 10% auto;
140 140
141 141 h1 {
142 142 color: @grey2;
143 143 }
144 144
145 145 .error-branding {
146 146 font-family: @text-semibold;
147 147 color: @grey4;
148 148 }
149 149
150 150 .error_message {
151 151 font-family: @text-regular;
152 152 }
153 153
154 154 .sidebar {
155 155 min-height: 275px;
156 156 margin: 0;
157 157 padding: 0 0 @sidebarpadding @sidebarpadding;
158 158 border: none;
159 159 }
160 160
161 161 .main-content {
162 162 position: relative;
163 163 margin: 0 @sidebarpadding @sidebarpadding;
164 164 padding: 0 0 0 @sidebarpadding;
165 165 border-left: @border-thickness solid @grey5;
166 166
167 167 @media (max-width:767px) {
168 168 clear: both;
169 169 width: 100%;
170 170 margin: 0;
171 171 border: none;
172 172 }
173 173 }
174 174
175 175 .inner-column {
176 176 float: left;
177 177 width: 29.75%;
178 178 min-height: 150px;
179 179 margin: @sidebarpadding 2% 0 0;
180 180 padding: 0 2% 0 0;
181 181 border-right: @border-thickness solid @grey5;
182 182
183 183 @media (max-width:767px) {
184 184 clear: both;
185 185 width: 100%;
186 186 border: none;
187 187 }
188 188
189 189 ul {
190 190 padding-left: 1.25em;
191 191 }
192 192
193 193 &:last-child {
194 194 margin: @sidebarpadding 0 0;
195 195 border: none;
196 196 }
197 197
198 198 h4 {
199 199 margin: 0 0 @padding;
200 200 font-family: @text-semibold;
201 201 }
202 202 }
203 203 }
204 204 .error-page-logo {
205 205 width: 130px;
206 206 height: 160px;
207 207 }
208 208
209 209 // HEADER
210 210 .header {
211 211
212 212 // TODO: johbo: Fix login pages, so that they work without a min-height
213 213 // for the header and then remove the min-height. I chose a smaller value
214 214 // intentionally here to avoid rendering issues in the main navigation.
215 215 min-height: 49px;
216 216
217 217 position: relative;
218 218 vertical-align: bottom;
219 219 padding: 0 @header-padding;
220 220 background-color: @grey2;
221 221 color: @grey5;
222 222
223 223 .title {
224 224 overflow: visible;
225 225 }
226 226
227 227 &:before,
228 228 &:after {
229 229 content: "";
230 230 clear: both;
231 231 width: 100%;
232 232 }
233 233
234 234 // TODO: johbo: Avoids breaking "Repositories" chooser
235 235 .select2-container .select2-choice .select2-arrow {
236 236 display: none;
237 237 }
238 238 }
239 239
240 240 #header-inner {
241 241 &.title {
242 242 margin: 0;
243 243 }
244 244 &:before,
245 245 &:after {
246 246 content: "";
247 247 clear: both;
248 248 }
249 249 }
250 250
251 251 // Gists
252 252 #files_data {
253 253 clear: both; //for firefox
254 254 }
255 255 #gistid {
256 256 margin-right: @padding;
257 257 }
258 258
259 259 // Global Settings Editor
260 260 .textarea.editor {
261 261 float: left;
262 262 position: relative;
263 263 max-width: @texteditor-width;
264 264
265 265 select {
266 266 position: absolute;
267 267 top:10px;
268 268 right:0;
269 269 }
270 270
271 271 .CodeMirror {
272 272 margin: 0;
273 273 }
274 274
275 275 .help-block {
276 276 margin: 0 0 @padding;
277 277 padding:.5em;
278 278 background-color: @grey6;
279 279 }
280 280 }
281 281
282 282 ul.auth_plugins {
283 283 margin: @padding 0 @padding @legend-width;
284 284 padding: 0;
285 285
286 286 li {
287 287 margin-bottom: @padding;
288 288 line-height: 1em;
289 289 list-style-type: none;
290 290
291 291 .auth_buttons .btn {
292 292 margin-right: @padding;
293 293 }
294 294
295 295 &:before { content: none; }
296 296 }
297 297 }
298 298
299 299 // Pull Requests
300 300
301 301 .pullrequestlist {
302 302 max-width: @pullrequest-width;
303 303 margin-bottom: @space;
304 304
305 305 // Tweaks for "My Account" / "Pull requests"
306 306 .prwrapper {
307 307 clear: left;
308 308
309 309 .pr {
310 310 margin: 0;
311 311 padding: 0;
312 312 border-bottom: none;
313 313 }
314 314
315 315 // TODO: johbo: Replace with something that makes up an inline form or
316 316 // similar.
317 317 .repolist_actions {
318 318 display: inline-block;
319 319 }
320 320 }
321 321
322 322 }
323 323
324 324 .pullrequests_section_head {
325 325 display: block;
326 326 clear: both;
327 327 margin: @padding 0;
328 328 font-family: @text-bold;
329 329 }
330 330
331 331 .pr-origininfo, .pr-targetinfo {
332 332 position: relative;
333 333
334 334 .tag {
335 335 display: inline-block;
336 336 margin: 0 1em .5em 0;
337 337 }
338 338
339 339 .clone-url {
340 340 display: inline-block;
341 341 margin: 0 0 .5em 0;
342 342 padding: 0;
343 343 line-height: 1.2em;
344 344 }
345 345 }
346 346
347 347 .pr-pullinfo {
348 348 clear: both;
349 349 margin: .5em 0;
350 350 }
351 351
352 352 #pr-title-input {
353 353 width: 72%;
354 354 font-size: 1em;
355 355 font-family: @text-bold;
356 356 margin: 0;
357 357 padding: 0 0 0 @padding/4;
358 358 line-height: 1.7em;
359 359 color: @text-color;
360 360 letter-spacing: .02em;
361 361 }
362 362
363 363 #pullrequest_title {
364 364 width: 100%;
365 365 box-sizing: border-box;
366 366 }
367 367
368 368 #pr_open_message {
369 369 border: @border-thickness solid #fff;
370 370 border-radius: @border-radius;
371 371 padding: @padding-large-vertical @padding-large-vertical @padding-large-vertical 0;
372 372 text-align: right;
373 373 overflow: hidden;
374 374 }
375 375
376 376 .pr-submit-button {
377 377 float: right;
378 378 margin: 0 0 0 5px;
379 379 }
380 380
381 381 .pr-spacing-container {
382 382 padding: 20px;
383 383 clear: both
384 384 }
385 385
386 386 #pr-description-input {
387 387 margin-bottom: 0;
388 388 }
389 389
390 390 .pr-description-label {
391 391 vertical-align: top;
392 392 }
393 393
394 394 .perms_section_head {
395 395 min-width: 625px;
396 396
397 397 h2 {
398 398 margin-bottom: 0;
399 399 }
400 400
401 401 .label-checkbox {
402 402 float: left;
403 403 }
404 404
405 405 &.field {
406 406 margin: @space 0 @padding;
407 407 }
408 408
409 409 &:first-child.field {
410 410 margin-top: 0;
411 411
412 412 .label {
413 413 margin-top: 0;
414 414 padding-top: 0;
415 415 }
416 416
417 417 .radios {
418 418 padding-top: 0;
419 419 }
420 420 }
421 421
422 422 .radios {
423 423 float: right;
424 424 position: relative;
425 425 width: 405px;
426 426 }
427 427 }
428 428
429 429 //--- MODULES ------------------//
430 430
431 431
432 432 // Fixed Sidebar Column
433 433 .sidebar-col-wrapper {
434 434 padding-left: @sidebar-all-width;
435 435
436 436 .sidebar {
437 437 width: @sidebar-width;
438 438 margin-left: -@sidebar-all-width;
439 439 }
440 440 }
441 441
442 442 .sidebar-col-wrapper.scw-small {
443 443 padding-left: @sidebar-small-all-width;
444 444
445 445 .sidebar {
446 446 width: @sidebar-small-width;
447 447 margin-left: -@sidebar-small-all-width;
448 448 }
449 449 }
450 450
451 451
452 452 // FOOTER
453 453 #footer {
454 454 padding: 0;
455 455 text-align: center;
456 456 vertical-align: middle;
457 457 color: @grey2;
458 458 background-color: @grey6;
459 459
460 460 p {
461 461 margin: 0;
462 462 padding: 1em;
463 463 line-height: 1em;
464 464 }
465 465
466 466 .server-instance { //server instance
467 467 display: none;
468 468 }
469 469
470 470 .title {
471 471 float: none;
472 472 margin: 0 auto;
473 473 }
474 474 }
475 475
476 476 button.close {
477 477 padding: 0;
478 478 cursor: pointer;
479 479 background: transparent;
480 480 border: 0;
481 481 .box-shadow(none);
482 482 -webkit-appearance: none;
483 483 }
484 484
485 485 .close {
486 486 float: right;
487 487 font-size: 21px;
488 488 font-family: @text-bootstrap;
489 489 line-height: 1em;
490 490 font-weight: bold;
491 491 color: @grey2;
492 492
493 493 &:hover,
494 494 &:focus {
495 495 color: @grey1;
496 496 text-decoration: none;
497 497 cursor: pointer;
498 498 }
499 499 }
500 500
501 501 // GRID
502 502 .sorting,
503 503 .sorting_desc,
504 504 .sorting_asc {
505 505 cursor: pointer;
506 506 }
507 507 .sorting_desc:after {
508 508 content: "\00A0\25B2";
509 509 font-size: .75em;
510 510 }
511 511 .sorting_asc:after {
512 512 content: "\00A0\25BC";
513 513 font-size: .68em;
514 514 }
515 515
516 516
517 517 .user_auth_tokens {
518 518
519 519 &.truncate {
520 520 white-space: nowrap;
521 521 overflow: hidden;
522 522 text-overflow: ellipsis;
523 523 }
524 524
525 525 .fields .field .input {
526 526 margin: 0;
527 527 }
528 528
529 529 input#description {
530 530 width: 100px;
531 531 margin: 0;
532 532 }
533 533
534 534 .drop-menu {
535 535 // TODO: johbo: Remove this, should work out of the box when
536 536 // having multiple inputs inline
537 537 margin: 0 0 0 5px;
538 538 }
539 539 }
540 540 #user_list_table {
541 541 .closed {
542 542 background-color: @grey6;
543 543 }
544 544 }
545 545
546 546
547 547 input {
548 548 &.disabled {
549 549 opacity: .5;
550 550 }
551 551 }
552 552
553 553 // remove extra padding in firefox
554 554 input::-moz-focus-inner { border:0; padding:0 }
555 555
556 556 .adjacent input {
557 557 margin-bottom: @padding;
558 558 }
559 559
560 560 .permissions_boxes {
561 561 display: block;
562 562 }
563 563
564 564 //TODO: lisa: this should be in tables
565 565 .show_more_col {
566 566 width: 20px;
567 567 }
568 568
569 569 //FORMS
570 570
571 571 .medium-inline,
572 572 input#description.medium-inline {
573 573 display: inline;
574 574 width: @medium-inline-input-width;
575 575 min-width: 100px;
576 576 }
577 577
578 578 select {
579 579 //reset
580 580 -webkit-appearance: none;
581 581 -moz-appearance: none;
582 582
583 583 display: inline-block;
584 584 height: 28px;
585 585 width: auto;
586 586 margin: 0 @padding @padding 0;
587 587 padding: 0 18px 0 8px;
588 588 line-height:1em;
589 589 font-size: @basefontsize;
590 590 border: @border-thickness solid @rcblue;
591 591 background:white url("../images/dt-arrow-dn.png") no-repeat 100% 50%;
592 592 color: @rcblue;
593 593
594 594 &:after {
595 595 content: "\00A0\25BE";
596 596 }
597 597
598 598 &:focus {
599 599 outline: none;
600 600 }
601 601 }
602 602
603 603 option {
604 604 &:focus {
605 605 outline: none;
606 606 }
607 607 }
608 608
609 609 input,
610 610 textarea {
611 611 padding: @input-padding;
612 612 border: @input-border-thickness solid @border-highlight-color;
613 613 .border-radius (@border-radius);
614 614 font-family: @text-light;
615 615 font-size: @basefontsize;
616 616
617 617 &.input-sm {
618 618 padding: 5px;
619 619 }
620 620
621 621 &#description {
622 622 min-width: @input-description-minwidth;
623 623 min-height: 1em;
624 624 padding: 10px;
625 625 }
626 626 }
627 627
628 628 .field-sm {
629 629 input,
630 630 textarea {
631 631 padding: 5px;
632 632 }
633 633 }
634 634
635 635 textarea {
636 636 display: block;
637 637 clear: both;
638 638 width: 100%;
639 639 min-height: 100px;
640 640 margin-bottom: @padding;
641 641 .box-sizing(border-box);
642 642 overflow: auto;
643 643 }
644 644
645 645 label {
646 646 font-family: @text-light;
647 647 }
648 648
649 649 // GRAVATARS
650 650 // centers gravatar on username to the right
651 651
652 652 .gravatar {
653 653 display: inline;
654 654 min-width: 16px;
655 655 min-height: 16px;
656 656 margin: -5px 0;
657 657 padding: 0;
658 658 line-height: 1em;
659 659 border: 1px solid @grey4;
660 660
661 661 &.gravatar-large {
662 662 margin: -0.5em .25em -0.5em 0;
663 663 }
664 664
665 665 & + .user {
666 666 display: inline;
667 667 margin: 0;
668 668 padding: 0 0 0 .17em;
669 669 line-height: 1em;
670 670 }
671 671 }
672 672
673 673 .rc-user { // gravatar + user wrapper
674 float: left;
674 675 position: relative;
675 676 min-width: 100px;
676 677 max-width: 200px;
677 678 min-height: (@gravatar-size + @border-thickness * 2); // account for border
678 679 display: block;
679 680 padding: 0 0 0 (@gravatar-size + @basefontsize/2 + @border-thickness * 2);
680 681
681 682
682 683 .gravatar {
683 684 display: block;
684 685 position: absolute;
685 686 top: 0;
686 687 left: 0;
687 688 min-width: @gravatar-size;
688 689 min-height: @gravatar-size;
689 690 margin: 0;
690 691 }
691 692
692 693 .user {
693 694 display: block;
694 695 max-width: 175px;
695 696 padding-top: 2px;
696 697 overflow: hidden;
697 698 text-overflow: ellipsis;
698 699 }
699 700 }
700 701
701 702 .gist-gravatar,
702 703 .journal_container {
703 704 .gravatar-large {
704 705 margin: 0 .5em -10px 0;
705 706 }
706 707 }
707 708
708 709
709 710 // ADMIN SETTINGS
710 711
711 712 // Tag Patterns
712 713 .tag_patterns {
713 714 .tag_input {
714 715 margin-bottom: @padding;
715 716 }
716 717 }
717 718
718 719 .locked_input {
719 720 position: relative;
720 721
721 722 input {
722 723 display: inline;
723 724 margin-top: 3px;
724 725 }
725 726
726 727 br {
727 728 display: none;
728 729 }
729 730
730 731 .error-message {
731 732 float: left;
732 733 width: 100%;
733 734 }
734 735
735 736 .lock_input_button {
736 737 display: inline;
737 738 }
738 739
739 740 .help-block {
740 741 clear: both;
741 742 }
742 743 }
743 744
744 745 // Notifications
745 746
746 747 .notifications_buttons {
747 748 margin: 0 0 @space 0;
748 749 padding: 0;
749 750
750 751 .btn {
751 752 display: inline-block;
752 753 }
753 754 }
754 755
755 756 .notification-list {
756 757
757 758 div {
758 759 display: inline-block;
759 760 vertical-align: middle;
760 761 }
761 762
762 763 .container {
763 764 display: block;
764 765 margin: 0 0 @padding 0;
765 766 }
766 767
767 768 .delete-notifications {
768 769 margin-left: @padding;
769 770 text-align: right;
770 771 cursor: pointer;
771 772 }
772 773
773 774 .read-notifications {
774 775 margin-left: @padding/2;
775 776 text-align: right;
776 777 width: 35px;
777 778 cursor: pointer;
778 779 }
779 780
780 781 .icon-minus-sign {
781 782 color: @alert2;
782 783 }
783 784
784 785 .icon-ok-sign {
785 786 color: @alert1;
786 787 }
787 788 }
788 789
789 790 .user_settings {
790 791 float: left;
791 792 clear: both;
792 793 display: block;
793 794 width: 100%;
794 795
795 796 .gravatar_box {
796 797 margin-bottom: @padding;
797 798
798 799 &:after {
799 800 content: " ";
800 801 clear: both;
801 802 width: 100%;
802 803 }
803 804 }
804 805
805 806 .fields .field {
806 807 clear: both;
807 808 }
808 809 }
809 810
810 811 .advanced_settings {
811 812 margin-bottom: @space;
812 813
813 814 .help-block {
814 815 margin-left: 0;
815 816 }
816 817
817 818 button + .help-block {
818 819 margin-top: @padding;
819 820 }
820 821 }
821 822
822 823 // admin settings radio buttons and labels
823 824 .label-2 {
824 825 float: left;
825 826 width: @label2-width;
826 827
827 828 label {
828 829 color: @grey1;
829 830 }
830 831 }
831 832 .checkboxes {
832 833 float: left;
833 834 width: @checkboxes-width;
834 835 margin-bottom: @padding;
835 836
836 837 .checkbox {
837 838 width: 100%;
838 839
839 840 label {
840 841 margin: 0;
841 842 padding: 0;
842 843 }
843 844 }
844 845
845 846 .checkbox + .checkbox {
846 847 display: inline-block;
847 848 }
848 849
849 850 label {
850 851 margin-right: 1em;
851 852 }
852 853 }
853 854
854 855 // CHANGELOG
855 856 .container_header {
856 857 float: left;
857 858 display: block;
858 859 width: 100%;
859 860 margin: @padding 0 @padding;
860 861
861 862 #filter_changelog {
862 863 float: left;
863 864 margin-right: @padding;
864 865 }
865 866
866 867 .breadcrumbs_light {
867 868 display: inline-block;
868 869 }
869 870 }
870 871
871 872 .info_box {
872 873 float: right;
873 874 }
874 875
875 876
876 877 #graph_nodes {
877 878 padding-top: 43px;
878 879 }
879 880
880 881 #graph_content{
881 882
882 883 // adjust for table headers so that graph renders properly
883 884 // #graph_nodes padding - table cell padding
884 885 padding-top: (@space - (@basefontsize * 2.4));
885 886
886 887 &.graph_full_width {
887 888 width: 100%;
888 889 max-width: 100%;
889 890 }
890 891 }
891 892
892 893 #graph {
893 894 .flag_status {
894 895 margin: 0;
895 896 }
896 897
897 898 .pagination-left {
898 899 float: left;
899 900 clear: both;
900 901 }
901 902
902 903 .log-container {
903 904 max-width: 345px;
904 905
905 906 .message{
906 907 max-width: 340px;
907 908 }
908 909 }
909 910
910 911 .graph-col-wrapper {
911 912 padding-left: 110px;
912 913
913 914 #graph_nodes {
914 915 width: 100px;
915 916 margin-left: -110px;
916 917 float: left;
917 918 clear: left;
918 919 }
919 920 }
920 921 }
921 922
922 923 #filter_changelog {
923 924 float: left;
924 925 }
925 926
926 927
927 928 //--- THEME ------------------//
928 929
929 930 #logo {
930 931 float: left;
931 932 margin: 9px 0 0 0;
932 933
933 934 .header {
934 935 background-color: transparent;
935 936 }
936 937
937 938 a {
938 939 display: inline-block;
939 940 }
940 941
941 942 img {
942 943 height:30px;
943 944 }
944 945 }
945 946
946 947 .logo-wrapper {
947 948 float:left;
948 949 }
949 950
950 951 .branding{
951 952 float: left;
952 953 padding: 9px 2px;
953 954 line-height: 1em;
954 955 font-size: @navigation-fontsize;
955 956 }
956 957
957 958 img {
958 959 border: none;
959 960 outline: none;
960 961 }
961 962 user-profile-header
962 963 label {
963 964
964 965 input[type="checkbox"] {
965 966 margin-right: 1em;
966 967 }
967 968 input[type="radio"] {
968 969 margin-right: 1em;
969 970 }
970 971 }
971 972
972 973 .flag_status {
973 974 margin: 2px 8px 6px 2px;
974 975 &.under_review {
975 976 .circle(5px, @alert3);
976 977 }
977 978 &.approved {
978 979 .circle(5px, @alert1);
979 980 }
980 981 &.rejected,
981 982 &.forced_closed{
982 983 .circle(5px, @alert2);
983 984 }
984 985 &.not_reviewed {
985 986 .circle(5px, @grey5);
986 987 }
987 988 }
988 989
989 990 .flag_status_comment_box {
990 991 margin: 5px 6px 0px 2px;
991 992 }
992 993 .test_pattern_preview {
993 994 margin: @space 0;
994 995
995 996 p {
996 997 margin-bottom: 0;
997 998 border-bottom: @border-thickness solid @border-default-color;
998 999 color: @grey3;
999 1000 }
1000 1001
1001 1002 .btn {
1002 1003 margin-bottom: @padding;
1003 1004 }
1004 1005 }
1005 1006 #test_pattern_result {
1006 1007 display: none;
1007 1008 &:extend(pre);
1008 1009 padding: .9em;
1009 1010 color: @grey3;
1010 1011 background-color: @grey7;
1011 1012 border-right: @border-thickness solid @border-default-color;
1012 1013 border-bottom: @border-thickness solid @border-default-color;
1013 1014 border-left: @border-thickness solid @border-default-color;
1014 1015 }
1015 1016
1016 1017 #repo_vcs_settings {
1017 1018 #inherit_overlay_vcs_default {
1018 1019 display: none;
1019 1020 }
1020 1021 #inherit_overlay_vcs_custom {
1021 1022 display: custom;
1022 1023 }
1023 1024 &.inherited {
1024 1025 #inherit_overlay_vcs_default {
1025 1026 display: block;
1026 1027 }
1027 1028 #inherit_overlay_vcs_custom {
1028 1029 display: none;
1029 1030 }
1030 1031 }
1031 1032 }
1032 1033
1033 1034 .issue-tracker-link {
1034 1035 color: @rcblue;
1035 1036 }
1036 1037
1037 1038 // Issue Tracker Table Show/Hide
1038 1039 #repo_issue_tracker {
1039 1040 #inherit_overlay {
1040 1041 display: none;
1041 1042 }
1042 1043 #custom_overlay {
1043 1044 display: custom;
1044 1045 }
1045 1046 &.inherited {
1046 1047 #inherit_overlay {
1047 1048 display: block;
1048 1049 }
1049 1050 #custom_overlay {
1050 1051 display: none;
1051 1052 }
1052 1053 }
1053 1054 }
1054 1055 table.issuetracker {
1055 1056 &.readonly {
1056 1057 tr, td {
1057 1058 color: @grey3;
1058 1059 }
1059 1060 }
1060 1061 .edit {
1061 1062 display: none;
1062 1063 }
1063 1064 .editopen {
1064 1065 .edit {
1065 1066 display: inline;
1066 1067 }
1067 1068 .entry {
1068 1069 display: none;
1069 1070 }
1070 1071 }
1071 1072 tr td.td-action {
1072 1073 min-width: 117px;
1073 1074 }
1074 1075 td input {
1075 1076 max-width: none;
1076 1077 min-width: 30px;
1077 1078 width: 80%;
1078 1079 }
1079 1080 .issuetracker_pref input {
1080 1081 width: 40%;
1081 1082 }
1082 1083 input.edit_issuetracker_update {
1083 1084 margin-right: 0;
1084 1085 width: auto;
1085 1086 }
1086 1087 }
1087 1088
1088 1089 //Permissions Settings
1089 1090 #add_perm {
1090 1091 margin: 0 0 @padding;
1091 1092 cursor: pointer;
1092 1093 }
1093 1094
1094 1095 .perm_ac {
1095 1096 input {
1096 1097 width: 95%;
1097 1098 }
1098 1099 }
1099 1100
1100 1101 .autocomplete-suggestions {
1101 1102 width: auto !important; // overrides autocomplete.js
1102 1103 margin: 0;
1103 1104 border: @border-thickness solid @rcblue;
1104 1105 border-radius: @border-radius;
1105 1106 color: @rcblue;
1106 1107 background-color: white;
1107 1108 }
1108 1109 .autocomplete-selected {
1109 1110 background: #F0F0F0;
1110 1111 }
1111 1112 .ac-container-wrap {
1112 1113 margin: 0;
1113 1114 padding: 8px;
1114 1115 border-bottom: @border-thickness solid @rclightblue;
1115 1116 list-style-type: none;
1116 1117 cursor: pointer;
1117 1118
1118 1119 &:hover {
1119 1120 background-color: @rclightblue;
1120 1121 }
1121 1122
1122 1123 img {
1123 1124 margin-right: 1em;
1124 1125 }
1125 1126
1126 1127 strong {
1127 1128 font-weight: normal;
1128 1129 }
1129 1130 }
1130 1131
1131 1132 // Settings Dropdown
1132 1133 .user-menu .container {
1133 1134 padding: 0 4px;
1134 1135 margin: 0;
1135 1136 }
1136 1137
1137 1138 .user-menu .gravatar {
1138 1139 cursor: pointer;
1139 1140 }
1140 1141
1141 1142 .codeblock {
1142 1143 margin-bottom: @padding;
1143 1144 clear: both;
1144 1145
1145 1146 .stats{
1146 1147 overflow: hidden;
1147 1148 }
1148 1149
1149 1150 .message{
1150 1151 textarea{
1151 1152 margin: 0;
1152 1153 }
1153 1154 }
1154 1155
1155 1156 .code-header {
1156 1157 .stats {
1157 1158 line-height: 2em;
1158 1159
1159 1160 .revision_id {
1160 1161 margin-left: 0;
1161 1162 }
1162 1163 .buttons {
1163 1164 padding-right: 0;
1164 1165 }
1165 1166 }
1166 1167
1167 1168 .item{
1168 1169 margin-right: 0.5em;
1169 1170 }
1170 1171 }
1171 1172
1172 1173 #editor_container{
1173 1174 position: relative;
1174 1175 margin: @padding;
1175 1176 }
1176 1177 }
1177 1178
1178 1179 #file_history_container {
1179 1180 display: none;
1180 1181 }
1181 1182
1182 1183 .file-history-inner {
1183 1184 margin-bottom: 10px;
1184 1185 }
1185 1186
1186 1187 // Pull Requests
1187 1188 .summary-details {
1188 1189 width: 72%;
1189 1190 }
1190 1191 .pr-summary {
1191 1192 border-bottom: @border-thickness solid @grey5;
1192 1193 margin-bottom: @space;
1193 1194 }
1194 1195 .reviewers-title {
1195 1196 width: 25%;
1196 1197 min-width: 200px;
1197 1198 }
1198 1199 .reviewers {
1199 1200 width: 25%;
1200 1201 min-width: 200px;
1201 1202 }
1202 1203 .reviewers ul li {
1203 1204 position: relative;
1204 1205 width: 100%;
1205 1206 margin-bottom: 8px;
1206 1207 }
1207 1208 .reviewers_member {
1208 1209 width: 100%;
1209 1210 overflow: auto;
1210 1211 }
1211 1212 .reviewer_status {
1212 1213 display: inline-block;
1213 1214 vertical-align: top;
1214 1215 width: 7%;
1215 1216 min-width: 20px;
1216 1217 height: 1.2em;
1217 1218 margin-top: 3px;
1218 1219 line-height: 1em;
1219 1220 }
1220 1221
1221 1222 .reviewer_name {
1222 1223 display: inline-block;
1223 1224 max-width: 83%;
1224 1225 padding-right: 20px;
1225 1226 vertical-align: middle;
1227 line-height: 1;
1228
1229 .rc-user {
1230 min-width: 0;
1231 margin: -2px 1em 0 0;
1232 }
1233
1234 .reviewer {
1235 float: left;
1236 }
1226 1237 }
1227 1238
1228 1239 .reviewer_member_remove {
1229 1240 position: absolute;
1230 1241 right: 0;
1231 1242 top: 0;
1232 1243 width: 16px;
1233 1244 margin-bottom: 10px;
1234 1245 padding: 0;
1235 1246 color: black;
1236 1247 }
1237 1248 .reviewer_member_status {
1238 1249 margin-top: 5px;
1239 1250 }
1240 1251 .pr-summary #summary{
1241 1252 width: 100%;
1242 1253 }
1243 1254 .pr-summary .action_button:hover {
1244 1255 border: 0;
1245 1256 cursor: pointer;
1246 1257 }
1247 1258 .pr-details-title {
1248 1259 padding-bottom: 8px;
1249 1260 border-bottom: @border-thickness solid @grey5;
1250 1261 .action_button {
1251 1262 color: @rcblue;
1252 1263 }
1253 1264 }
1254 1265 .pr-details-content {
1255 1266 margin-top: @textmargin;
1256 margin-bottom: @textmargin/2;
1267 margin-bottom: @textmargin;
1257 1268 }
1258 1269 .pr-description {
1259 1270 white-space:pre-wrap;
1260 1271 }
1261 1272 .group_members {
1262 1273 margin-top: 0;
1263 1274 padding: 0;
1264 1275 list-style: outside none none;
1265 1276 }
1266 1277 .reviewer_ac .ac-input {
1267 1278 width: 92%;
1268 1279 margin-bottom: 1em;
1269 1280 }
1270 1281 #update_commits {
1271 1282 float: right;
1272 1283 }
1273 1284 .compare_view_commits tr{
1274 1285 height: 20px;
1275 1286 }
1276 1287 .compare_view_commits td {
1277 1288 vertical-align: top;
1278 1289 padding-top: 10px;
1279 1290 }
1280 1291 .compare_view_commits .author {
1281 1292 margin-left: 5px;
1282 1293 }
1283 1294
1284 1295 .compare_view_files {
1285 1296 width: 100%;
1286 1297
1287 1298 td {
1288 1299 vertical-align: middle;
1289 1300 }
1290 1301 }
1291 1302
1292 1303 .compare_view_filepath {
1293 1304 color: @grey1;
1294 1305 }
1295 1306
1296 1307 .show_more {
1297 1308 display: inline-block;
1298 1309 position: relative;
1299 1310 vertical-align: middle;
1300 1311 width: 4px;
1301 1312 height: @basefontsize;
1302 1313
1303 1314 &:after {
1304 1315 content: "\00A0\25BE";
1305 1316 display: inline-block;
1306 1317 width:10px;
1307 1318 line-height: 5px;
1308 1319 font-size: 12px;
1309 1320 cursor: pointer;
1310 1321 }
1311 1322 }
1312 1323
1313 1324 .journal_more .show_more {
1314 1325 display: inline;
1315 1326
1316 1327 &:after {
1317 1328 content: none;
1318 1329 }
1319 1330 }
1320 1331
1321 1332 .open .show_more:after,
1322 1333 .select2-dropdown-open .show_more:after {
1323 1334 .rotate(180deg);
1324 1335 margin-left: 4px;
1325 1336 }
1326 1337
1327 1338
1328 1339 .compare_view_commits .collapse_commit:after {
1329 1340 cursor: pointer;
1330 1341 content: "\00A0\25B4";
1331 1342 margin-left: -3px;
1332 1343 font-size: 17px;
1333 1344 color: @grey4;
1334 1345 }
1335 1346
1336 1347 .diff_links {
1337 1348 margin-left: 8px;
1338 1349 }
1339 1350
1340 1351 p.ancestor {
1341 1352 margin: @padding 0;
1342 1353 }
1343 1354
1344 1355 .cs_icon_td input[type="checkbox"] {
1345 1356 display: none;
1346 1357 }
1347 1358
1348 1359 .cs_icon_td .expand_file_icon:after {
1349 1360 cursor: pointer;
1350 1361 content: "\00A0\25B6";
1351 1362 font-size: 12px;
1352 1363 color: @grey4;
1353 1364 }
1354 1365
1355 1366 .cs_icon_td .collapse_file_icon:after {
1356 1367 cursor: pointer;
1357 1368 content: "\00A0\25BC";
1358 1369 font-size: 12px;
1359 1370 color: @grey4;
1360 1371 }
1361 1372
1362 1373 /*new binary
1363 1374 NEW_FILENODE = 1
1364 1375 DEL_FILENODE = 2
1365 1376 MOD_FILENODE = 3
1366 1377 RENAMED_FILENODE = 4
1367 1378 COPIED_FILENODE = 5
1368 1379 CHMOD_FILENODE = 6
1369 1380 BIN_FILENODE = 7
1370 1381 */
1371 1382 .cs_files_expand {
1372 1383 font-size: @basefontsize + 5px;
1373 1384 line-height: 1.8em;
1374 1385 float: right;
1375 1386 }
1376 1387
1377 1388 .cs_files_expand span{
1378 1389 color: @rcblue;
1379 1390 cursor: pointer;
1380 1391 }
1381 1392 .cs_files {
1382 1393 clear: both;
1383 1394 padding-bottom: @padding;
1384 1395
1385 1396 .cur_cs {
1386 1397 margin: 10px 2px;
1387 1398 font-weight: bold;
1388 1399 }
1389 1400
1390 1401 .node {
1391 1402 float: left;
1392 1403 }
1393 1404
1394 1405 .changes {
1395 1406 float: right;
1396 1407 color: white;
1397 1408 font-size: @basefontsize - 4px;
1398 1409 margin-top: 4px;
1399 1410 opacity: 0.6;
1400 1411 filter: Alpha(opacity=60); /* IE8 and earlier */
1401 1412
1402 1413 .added {
1403 1414 background-color: @alert1;
1404 1415 float: left;
1405 1416 text-align: center;
1406 1417 }
1407 1418
1408 1419 .deleted {
1409 1420 background-color: @alert2;
1410 1421 float: left;
1411 1422 text-align: center;
1412 1423 }
1413 1424
1414 1425 .bin {
1415 1426 background-color: @alert1;
1416 1427 text-align: center;
1417 1428 }
1418 1429
1419 1430 /*new binary*/
1420 1431 .bin.bin1 {
1421 1432 background-color: @alert1;
1422 1433 text-align: center;
1423 1434 }
1424 1435
1425 1436 /*deleted binary*/
1426 1437 .bin.bin2 {
1427 1438 background-color: @alert2;
1428 1439 text-align: center;
1429 1440 }
1430 1441
1431 1442 /*mod binary*/
1432 1443 .bin.bin3 {
1433 1444 background-color: @grey2;
1434 1445 text-align: center;
1435 1446 }
1436 1447
1437 1448 /*rename file*/
1438 1449 .bin.bin4 {
1439 1450 background-color: @alert4;
1440 1451 text-align: center;
1441 1452 }
1442 1453
1443 1454 /*copied file*/
1444 1455 .bin.bin5 {
1445 1456 background-color: @alert4;
1446 1457 text-align: center;
1447 1458 }
1448 1459
1449 1460 /*chmod file*/
1450 1461 .bin.bin6 {
1451 1462 background-color: @grey2;
1452 1463 text-align: center;
1453 1464 }
1454 1465 }
1455 1466 }
1456 1467
1457 1468 .cs_files .cs_added, .cs_files .cs_A,
1458 1469 .cs_files .cs_added, .cs_files .cs_M,
1459 1470 .cs_files .cs_added, .cs_files .cs_D {
1460 1471 height: 16px;
1461 1472 padding-right: 10px;
1462 1473 margin-top: 7px;
1463 1474 text-align: left;
1464 1475 }
1465 1476
1466 1477 .cs_icon_td {
1467 1478 min-width: 16px;
1468 1479 width: 16px;
1469 1480 }
1470 1481
1471 1482 .pull-request-merge {
1472 1483 padding: 10px 0;
1473 1484 margin-top: 10px;
1474 1485 margin-bottom: 20px;
1475 1486 }
1476 1487
1477 1488 .pull-request-merge .pull-request-wrap {
1478 1489 height: 25px;
1479 1490 padding: 5px 0;
1480 1491 }
1481 1492
1482 1493 .pull-request-merge span {
1483 1494 margin-right: 10px;
1484 1495 }
1485 1496 #close_pull_request {
1486 1497 margin-right: 0px;
1487 1498 }
1488 1499
1489 1500 .empty_data {
1490 1501 color: @grey4;
1491 1502 }
1492 1503
1493 1504 #changeset_compare_view_content {
1494 1505 margin-bottom: @space;
1495 1506 clear: both;
1496 1507 width: 100%;
1497 1508 box-sizing: border-box;
1498 1509 .border-radius(@border-radius);
1499 1510
1500 1511 .help-block {
1501 1512 margin: @padding 0;
1502 1513 color: @text-color;
1503 1514 }
1504 1515
1505 1516 .empty_data {
1506 1517 margin: @padding 0;
1507 1518 }
1508 1519
1509 1520 .alert {
1510 1521 margin-bottom: @space;
1511 1522 }
1512 1523 }
1513 1524
1514 1525 .table_disp {
1515 1526 .status {
1516 1527 width: auto;
1517 1528
1518 1529 .flag_status {
1519 1530 float: left;
1520 1531 }
1521 1532 }
1522 1533 }
1523 1534
1524 1535 .status_box_menu {
1525 1536 margin: 0;
1526 1537 }
1527 1538
1528 1539 .notification-table{
1529 1540 margin-bottom: @space;
1530 1541 display: table;
1531 1542 width: 100%;
1532 1543
1533 1544 .container{
1534 1545 display: table-row;
1535 1546
1536 1547 .notification-header{
1537 1548 border-bottom: @border-thickness solid @border-default-color;
1538 1549 }
1539 1550
1540 1551 .notification-subject{
1541 1552 display: table-cell;
1542 1553 }
1543 1554 }
1544 1555 }
1545 1556
1546 1557 // Notifications
1547 1558 .notification-header{
1548 1559 display: table;
1549 1560 width: 100%;
1550 1561 padding: floor(@basefontsize/2) 0;
1551 1562 line-height: 1em;
1552 1563
1553 1564 .desc, .delete-notifications, .read-notifications{
1554 1565 display: table-cell;
1555 1566 text-align: left;
1556 1567 }
1557 1568
1558 1569 .desc{
1559 1570 width: 1163px;
1560 1571 }
1561 1572
1562 1573 .delete-notifications, .read-notifications{
1563 1574 width: 35px;
1564 1575 min-width: 35px; //fixes when only one button is displayed
1565 1576 }
1566 1577 }
1567 1578
1568 1579 .notification-body {
1569 1580 .markdown-block,
1570 1581 .rst-block {
1571 1582 padding: @padding 0;
1572 1583 }
1573 1584
1574 1585 .notification-subject {
1575 1586 padding: @textmargin 0;
1576 1587 border-bottom: @border-thickness solid @border-default-color;
1577 1588 }
1578 1589 }
1579 1590
1580 1591
1581 1592 .notifications_buttons{
1582 1593 float: right;
1583 1594 }
1584 1595
1585 1596 // Repositories
1586 1597
1587 1598 #summary.fields{
1588 1599 display: table;
1589 1600
1590 1601 .field{
1591 1602 display: table-row;
1592 1603
1593 1604 .label-summary{
1594 1605 display: table-cell;
1595 1606 min-width: @label-summary-minwidth;
1596 1607 padding-top: @padding/2;
1597 1608 padding-bottom: @padding/2;
1598 1609 padding-right: @padding/2;
1599 1610 }
1600 1611
1601 1612 .input{
1602 1613 display: table-cell;
1603 1614 padding: @padding/2;
1604 1615
1605 1616 input{
1606 1617 min-width: 29em;
1607 1618 padding: @padding/4;
1608 1619 }
1609 1620 }
1610 1621 .statistics, .downloads{
1611 1622 .disabled{
1612 1623 color: @grey4;
1613 1624 }
1614 1625 }
1615 1626 }
1616 1627 }
1617 1628
1618 1629 #summary{
1619 1630 width: 70%;
1620 1631 }
1621 1632
1622 1633
1623 1634 // Journal
1624 1635 .journal.title {
1625 1636 h5 {
1626 1637 float: left;
1627 1638 margin: 0;
1628 1639 width: 70%;
1629 1640 }
1630 1641
1631 1642 ul {
1632 1643 float: right;
1633 1644 display: inline-block;
1634 1645 margin: 0;
1635 1646 width: 30%;
1636 1647 text-align: right;
1637 1648
1638 1649 li {
1639 1650 display: inline;
1640 1651 font-size: @journal-fontsize;
1641 1652 line-height: 1em;
1642 1653
1643 1654 &:before { content: none; }
1644 1655 }
1645 1656 }
1646 1657 }
1647 1658
1648 1659 .filterexample {
1649 1660 position: absolute;
1650 1661 top: 95px;
1651 1662 left: @contentpadding;
1652 1663 color: @rcblue;
1653 1664 font-size: 11px;
1654 1665 font-family: @text-regular;
1655 1666 cursor: help;
1656 1667
1657 1668 &:hover {
1658 1669 color: @rcdarkblue;
1659 1670 }
1660 1671
1661 1672 @media (max-width:768px) {
1662 1673 position: relative;
1663 1674 top: auto;
1664 1675 left: auto;
1665 1676 display: block;
1666 1677 }
1667 1678 }
1668 1679
1669 1680
1670 1681 #journal{
1671 1682 margin-bottom: @space;
1672 1683
1673 1684 .journal_day{
1674 1685 margin-bottom: @textmargin/2;
1675 1686 padding-bottom: @textmargin/2;
1676 1687 font-size: @journal-fontsize;
1677 1688 border-bottom: @border-thickness solid @border-default-color;
1678 1689 }
1679 1690
1680 1691 .journal_container{
1681 1692 margin-bottom: @space;
1682 1693
1683 1694 .journal_user{
1684 1695 display: inline-block;
1685 1696 }
1686 1697 .journal_action_container{
1687 1698 display: block;
1688 1699 margin-top: @textmargin;
1689 1700
1690 1701 div{
1691 1702 display: inline;
1692 1703 }
1693 1704
1694 1705 div.journal_action_params{
1695 1706 display: block;
1696 1707 }
1697 1708
1698 1709 div.journal_repo:after{
1699 1710 content: "\A";
1700 1711 white-space: pre;
1701 1712 }
1702 1713
1703 1714 div.date{
1704 1715 display: block;
1705 1716 margin-bottom: @textmargin;
1706 1717 }
1707 1718 }
1708 1719 }
1709 1720 }
1710 1721
1711 1722 // Files
1712 1723 .edit-file-title {
1713 1724 border-bottom: @border-thickness solid @border-default-color;
1714 1725
1715 1726 .breadcrumbs {
1716 1727 margin-bottom: 0;
1717 1728 }
1718 1729 }
1719 1730
1720 1731 .edit-file-fieldset {
1721 1732 margin-top: @sidebarpadding;
1722 1733
1723 1734 .fieldset {
1724 1735 .left-label {
1725 1736 width: 13%;
1726 1737 }
1727 1738 .right-content {
1728 1739 width: 87%;
1729 1740 max-width: 100%;
1730 1741 }
1731 1742 .filename-label {
1732 1743 margin-top: 13px;
1733 1744 }
1734 1745 .commit-message-label {
1735 1746 margin-top: 4px;
1736 1747 }
1737 1748 .file-upload-input {
1738 1749 input {
1739 1750 display: none;
1740 1751 }
1741 1752 }
1742 1753 p {
1743 1754 margin-top: 5px;
1744 1755 }
1745 1756
1746 1757 }
1747 1758 .custom-path-link {
1748 1759 margin-left: 5px;
1749 1760 }
1750 1761 #commit {
1751 1762 resize: vertical;
1752 1763 }
1753 1764 }
1754 1765
1755 1766 .delete-file-preview {
1756 1767 max-height: 250px;
1757 1768 }
1758 1769
1759 1770 .new-file,
1760 1771 #filter_activate,
1761 1772 #filter_deactivate {
1762 1773 float: left;
1763 1774 margin: 0 0 0 15px;
1764 1775 }
1765 1776
1766 1777 h3.files_location{
1767 1778 line-height: 2.4em;
1768 1779 }
1769 1780
1770 1781 .browser-nav {
1771 1782 display: table;
1772 1783 margin-bottom: @space;
1773 1784
1774 1785
1775 1786 .info_box {
1776 1787 display: inline-table;
1777 1788 height: 2.5em;
1778 1789
1779 1790 .browser-cur-rev, .info_box_elem {
1780 1791 display: table-cell;
1781 1792 vertical-align: middle;
1782 1793 }
1783 1794
1784 1795 .info_box_elem {
1785 1796 border-top: @border-thickness solid @rcblue;
1786 1797 border-bottom: @border-thickness solid @rcblue;
1787 1798
1788 1799 #at_rev, a {
1789 1800 padding: 0.6em 0.9em;
1790 1801 margin: 0;
1791 1802 .box-shadow(none);
1792 1803 border: 0;
1793 1804 height: 12px;
1794 1805 }
1795 1806
1796 1807 input#at_rev {
1797 1808 max-width: 50px;
1798 1809 text-align: right;
1799 1810 }
1800 1811
1801 1812 &.previous {
1802 1813 border: @border-thickness solid @rcblue;
1803 1814 .disabled {
1804 1815 color: @grey4;
1805 1816 cursor: not-allowed;
1806 1817 }
1807 1818 }
1808 1819
1809 1820 &.next {
1810 1821 border: @border-thickness solid @rcblue;
1811 1822 .disabled {
1812 1823 color: @grey4;
1813 1824 cursor: not-allowed;
1814 1825 }
1815 1826 }
1816 1827 }
1817 1828
1818 1829 .browser-cur-rev {
1819 1830
1820 1831 span{
1821 1832 margin: 0;
1822 1833 color: @rcblue;
1823 1834 height: 12px;
1824 1835 display: inline-block;
1825 1836 padding: 0.7em 1em ;
1826 1837 border: @border-thickness solid @rcblue;
1827 1838 margin-right: @padding;
1828 1839 }
1829 1840 }
1830 1841 }
1831 1842
1832 1843 .search_activate {
1833 1844 display: table-cell;
1834 1845 vertical-align: middle;
1835 1846
1836 1847 input, label{
1837 1848 margin: 0;
1838 1849 padding: 0;
1839 1850 }
1840 1851
1841 1852 input{
1842 1853 margin-left: @textmargin;
1843 1854 }
1844 1855
1845 1856 }
1846 1857 }
1847 1858
1848 1859 .file_author{
1849 1860 margin-bottom: @padding;
1850 1861
1851 1862 div{
1852 1863 display: inline-block;
1853 1864 margin-right: 0.5em;
1854 1865 }
1855 1866 }
1856 1867
1857 1868 .browser-cur-rev{
1858 1869 margin-bottom: @textmargin;
1859 1870 }
1860 1871
1861 1872 #node_filter_box_loading{
1862 1873 .info_text;
1863 1874 }
1864 1875
1865 1876 .browser-search {
1866 1877 margin: -25px 0px 5px 0px;
1867 1878 }
1868 1879
1869 1880 .node-filter {
1870 1881 font-size: @repo-title-fontsize;
1871 1882 padding: 4px 0px 0px 0px;
1872 1883
1873 1884 .node-filter-path {
1874 1885 float: left;
1875 1886 color: @grey4;
1876 1887 }
1877 1888 .node-filter-input {
1878 1889 float: left;
1879 1890 margin: -2px 0px 0px 2px;
1880 1891 input {
1881 1892 padding: 2px;
1882 1893 border: none;
1883 1894 font-size: @repo-title-fontsize;
1884 1895 }
1885 1896 }
1886 1897 }
1887 1898
1888 1899
1889 1900 .browser-result{
1890 1901 td a{
1891 1902 margin-left: 0.5em;
1892 1903 display: inline-block;
1893 1904
1894 1905 em{
1895 1906 font-family: @text-bold;
1896 1907 }
1897 1908 }
1898 1909 }
1899 1910
1900 1911 .browser-highlight{
1901 1912 background-color: @grey5-alpha;
1902 1913 }
1903 1914
1904 1915
1905 1916 // Search
1906 1917
1907 1918 .search-form{
1908 1919 #q {
1909 1920 width: @search-form-width;
1910 1921 }
1911 1922 .fields{
1912 1923 margin: 0 0 @space;
1913 1924 }
1914 1925
1915 1926 label{
1916 1927 display: inline-block;
1917 1928 margin-right: @textmargin;
1918 1929 padding-top: 0.25em;
1919 1930 }
1920 1931
1921 1932
1922 1933 .results{
1923 1934 clear: both;
1924 1935 margin: 0 0 @padding;
1925 1936 }
1926 1937 }
1927 1938
1928 1939 div.search-feedback-items {
1929 1940 display: inline-block;
1930 1941 padding:0px 0px 0px 96px;
1931 1942 }
1932 1943
1933 1944 div.search-code-body {
1934 1945 background-color: #ffffff; padding: 5px 0 5px 10px;
1935 1946 pre {
1936 1947 .match { background-color: #faffa6;}
1937 1948 .break { display: block; width: 100%; background-color: #DDE7EF; color: #747474; }
1938 1949 }
1939 1950 }
1940 1951
1941 1952 .expand_commit.search {
1942 1953 .show_more.open {
1943 1954 height: auto;
1944 1955 max-height: none;
1945 1956 }
1946 1957 }
1947 1958
1948 1959 .search-results {
1949 1960
1950 1961 h2 {
1951 1962 margin-bottom: 0;
1952 1963 }
1953 1964 .codeblock {
1954 1965 border: none;
1955 1966 background: transparent;
1956 1967 }
1957 1968
1958 1969 .codeblock-header {
1959 1970 border: none;
1960 1971 background: transparent;
1961 1972 }
1962 1973
1963 1974 .code-body {
1964 1975 border: @border-thickness solid @border-default-color;
1965 1976 .border-radius(@border-radius);
1966 1977 }
1967 1978
1968 1979 .td-commit {
1969 1980 &:extend(pre);
1970 1981 border-bottom: @border-thickness solid @border-default-color;
1971 1982 }
1972 1983
1973 1984 .message {
1974 1985 height: auto;
1975 1986 max-width: 350px;
1976 1987 white-space: normal;
1977 1988 text-overflow: initial;
1978 1989 overflow: visible;
1979 1990
1980 1991 .match { background-color: #faffa6;}
1981 1992 .break { background-color: #DDE7EF; width: 100%; color: #747474; display: block; }
1982 1993 }
1983 1994
1984 1995 }
1985 1996
1986 1997 table.rctable td.td-search-results div {
1987 1998 max-width: 100%;
1988 1999 }
1989 2000
1990 2001 #tip-box, .tip-box{
1991 2002 padding: @menupadding/2;
1992 2003 display: block;
1993 2004 border: @border-thickness solid @border-highlight-color;
1994 2005 .border-radius(@border-radius);
1995 2006 background-color: white;
1996 2007 z-index: 99;
1997 2008 white-space: pre-wrap;
1998 2009 }
1999 2010
2000 2011 #linktt {
2001 2012 width: 79px;
2002 2013 }
2003 2014
2004 2015 #help_kb .modal-content{
2005 2016 max-width: 750px;
2006 2017 margin: 10% auto;
2007 2018
2008 2019 table{
2009 2020 td,th{
2010 2021 border-bottom: none;
2011 2022 line-height: 2.5em;
2012 2023 }
2013 2024 th{
2014 2025 padding-bottom: @textmargin/2;
2015 2026 }
2016 2027 td.keys{
2017 2028 text-align: center;
2018 2029 }
2019 2030 }
2020 2031
2021 2032 .block-left{
2022 2033 width: 45%;
2023 2034 margin-right: 5%;
2024 2035 }
2025 2036 .modal-footer{
2026 2037 clear: both;
2027 2038 }
2028 2039 .key.tag{
2029 2040 padding: 0.5em;
2030 2041 background-color: @rcblue;
2031 2042 color: white;
2032 2043 border-color: @rcblue;
2033 2044 .box-shadow(none);
2034 2045 }
2035 2046 }
2036 2047
2037 2048
2038 2049
2039 2050 //--- IMPORTS FOR REFACTORED STYLES ------------------//
2040 2051
2041 2052 @import 'statistics-graph';
2042 2053 @import 'tables';
2043 2054 @import 'forms';
2044 2055 @import 'diff';
2045 2056 @import 'summary';
2046 2057 @import 'navigation';
2047 2058
2048 2059 //--- SHOW/HIDE SECTIONS --//
2049 2060
2050 2061 .btn-collapse {
2051 2062 float: right;
2052 2063 text-align: right;
2053 2064 font-family: @text-light;
2054 2065 font-size: @basefontsize;
2055 2066 cursor: pointer;
2056 2067 border: none;
2057 2068 color: @rcblue;
2058 2069 }
2059 2070
2060 2071 table.rctable,
2061 2072 table.dataTable {
2062 2073 .btn-collapse {
2063 2074 float: right;
2064 2075 text-align: right;
2065 2076 }
2066 2077 }
2067 2078
2068 2079
2069 2080 // TODO: johbo: Fix for IE10, this avoids that we see a border
2070 2081 // and padding around checkboxes and radio boxes. Move to the right place,
2071 2082 // or better: Remove this once we did the form refactoring.
2072 2083 input[type=checkbox],
2073 2084 input[type=radio] {
2074 2085 padding: 0;
2075 2086 border: none;
2076 2087 }
@@ -1,568 +1,568 b''
1 1 <%inherit file="/base/base.html"/>
2 2
3 3 <%def name="title()">
4 4 ${_('%s Pull Request #%s') % (c.repo_name, c.pull_request.pull_request_id)}
5 5 %if c.rhodecode_name:
6 6 &middot; ${h.branding(c.rhodecode_name)}
7 7 %endif
8 8 </%def>
9 9
10 10 <%def name="breadcrumbs_links()">
11 11 <span id="pr-title">
12 12 ${c.pull_request.title}
13 13 %if c.pull_request.is_closed():
14 14 (${_('Closed')})
15 15 %endif
16 16 </span>
17 17 <div id="pr-title-edit" class="input" style="display: none;">
18 18 ${h.text('pullrequest_title', id_="pr-title-input", class_="large", value=c.pull_request.title)}
19 19 </div>
20 20 </%def>
21 21
22 22 <%def name="menu_bar_nav()">
23 23 ${self.menu_items(active='repositories')}
24 24 </%def>
25 25
26 26 <%def name="menu_bar_subnav()">
27 27 ${self.repo_menu(active='showpullrequest')}
28 28 </%def>
29 29
30 30 <%def name="main()">
31 31 <script type="text/javascript">
32 32 // TODO: marcink switch this to pyroutes
33 33 AJAX_COMMENT_DELETE_URL = "${url('pullrequest_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
34 34 templateContext.pull_request_data.pull_request_id = ${c.pull_request.pull_request_id};
35 35 </script>
36 36 <div class="box">
37 37 <div class="title">
38 38 ${self.repo_page_title(c.rhodecode_db_repo)}
39 39 </div>
40 40
41 41 ${self.breadcrumbs()}
42 42
43 43
44 44 <div class="box pr-summary">
45 45 <div class="summary-details block-left">
46 46 <%summary = lambda n:{False:'summary-short'}.get(n)%>
47 47 <div class="pr-details-title">
48 48 ${_('Pull request #%s') % c.pull_request.pull_request_id} ${_('From')} ${h.format_date(c.pull_request.created_on)}
49 49 %if c.allowed_to_update:
50 50 <span id="open_edit_pullrequest" class="block-right action_button">${_('Edit')}</span>
51 51 <span id="close_edit_pullrequest" class="block-right action_button" style="display: none;">${_('Close')}</span>
52 52 %endif
53 53 </div>
54 54
55 55 <div id="summary" class="fields pr-details-content">
56 56 <div class="field">
57 57 <div class="label-summary">
58 58 <label>${_('Origin')}:</label>
59 59 </div>
60 60 <div class="input">
61 61 <div class="pr-origininfo">
62 62 ## branch link is only valid if it is a branch
63 63 <span class="tag">
64 64 %if c.pull_request.source_ref_parts.type == 'branch':
65 65 <a href="${h.url('changelog_home', repo_name=c.pull_request.source_repo.repo_name, branch=c.pull_request.source_ref_parts.name)}">${c.pull_request.source_ref_parts.type}: ${c.pull_request.source_ref_parts.name}</a>
66 66 %else:
67 67 ${c.pull_request.source_ref_parts.type}: ${c.pull_request.source_ref_parts.name}
68 68 %endif
69 69 </span>
70 70 <span class="clone-url">
71 71 <a href="${h.url('summary_home', repo_name=c.pull_request.source_repo.repo_name)}">${c.pull_request.source_repo.clone_url()}</a>
72 72 </span>
73 73 </div>
74 74 <div class="pr-pullinfo">
75 75 %if h.is_hg(c.pull_request.source_repo):
76 76 <input type="text" value="hg pull -r ${h.short_id(c.source_ref)} ${c.pull_request.source_repo.clone_url()}" readonly="readonly">
77 77 %elif h.is_git(c.pull_request.source_repo):
78 78 <input type="text" value="git pull ${c.pull_request.source_repo.clone_url()} ${c.pull_request.source_ref_parts.name}" readonly="readonly">
79 79 %endif
80 80 </div>
81 81 </div>
82 82 </div>
83 83 <div class="field">
84 84 <div class="label-summary">
85 85 <label>${_('Target')}:</label>
86 86 </div>
87 87 <div class="input">
88 88 <div class="pr-targetinfo">
89 89 ## branch link is only valid if it is a branch
90 90 <span class="tag">
91 91 %if c.pull_request.target_ref_parts.type == 'branch':
92 92 <a href="${h.url('changelog_home', repo_name=c.pull_request.target_repo.repo_name, branch=c.pull_request.target_ref_parts.name)}">${c.pull_request.target_ref_parts.type}: ${c.pull_request.target_ref_parts.name}</a>
93 93 %else:
94 94 ${c.pull_request.target_ref_parts.type}: ${c.pull_request.target_ref_parts.name}
95 95 %endif
96 96 </span>
97 97 <span class="clone-url">
98 98 <a href="${h.url('summary_home', repo_name=c.pull_request.target_repo.repo_name)}">${c.pull_request.target_repo.clone_url()}</a>
99 99 </span>
100 100 </div>
101 101 </div>
102 102 </div>
103 103 <div class="field">
104 104 <div class="label-summary">
105 105 <label>${_('Review')}:</label>
106 106 </div>
107 107 <div class="input">
108 108 %if c.pull_request_review_status:
109 109 <div class="${'flag_status %s' % c.pull_request_review_status} tooltip pull-left"></div>
110 110 <span class="changeset-status-lbl tooltip">
111 111 %if c.pull_request.is_closed():
112 112 ${_('Closed')},
113 113 %endif
114 114 ${h.commit_status_lbl(c.pull_request_review_status)}
115 115 </span>
116 116 - ${ungettext('calculated based on %s reviewer vote', 'calculated based on %s reviewers votes', len(c.pull_request_reviewers)) % len(c.pull_request_reviewers)}
117 117 %endif
118 118 </div>
119 119 </div>
120 120 <div class="field">
121 121 <div class="pr-description-label label-summary">
122 122 <label>${_('Description')}:</label>
123 123 </div>
124 124 <div id="pr-desc" class="input">
125 125 <div class="pr-description">${h.urlify_commit_message(c.pull_request.description, c.repo_name)}</div>
126 126 </div>
127 127 <div id="pr-desc-edit" class="input textarea editor" style="display: none;">
128 128 <textarea id="pr-description-input" size="30">${c.pull_request.description}</textarea>
129 129 </div>
130 130 </div>
131 131 <div class="field">
132 132 <div class="label-summary">
133 133 <label>${_('Comments')}:</label>
134 134 </div>
135 135 <div class="input">
136 136 <div>
137 137 <div class="comments-number">
138 138 %if c.comments:
139 139 <a href="#comments">${ungettext("%d Pull request comment", "%d Pull request comments", len(c.comments)) % len(c.comments)}</a>,
140 140 %else:
141 141 ${ungettext("%d Pull request comment", "%d Pull request comments", len(c.comments)) % len(c.comments)}
142 142 %endif
143 143 %if c.inline_cnt:
144 144 ## this is replaced with a proper link to first comment via JS linkifyComments() func
145 145 <a href="#inline-comments" id="inline-comments-counter">${ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt}</a>
146 146 %else:
147 147 ${ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt}
148 148 %endif
149 149
150 150 % if c.outdated_cnt:
151 151 ,${ungettext("%d Outdated Comment", "%d Outdated Comments", c.outdated_cnt) % c.outdated_cnt} <span id="show-outdated-comments" class="btn btn-link">${_('(Show)')}</span>
152 152 % endif
153 153 </div>
154 154 </div>
155 155 </div>
156 156 </div>
157 157 <div id="pr-save" class="field" style="display: none;">
158 158 <div class="label-summary"></div>
159 159 <div class="input">
160 160 <span id="edit_pull_request" class="btn btn-small">${_('Save Changes')}</span>
161 161 </div>
162 162 </div>
163 163 </div>
164 164 </div>
165 165 <div>
166 166 ## AUTHOR
167 167 <div class="reviewers-title block-right">
168 168 <div class="pr-details-title">
169 169 ${_('Author')}
170 170 </div>
171 171 </div>
172 172 <div class="block-right pr-details-content reviewers">
173 173 <ul class="group_members">
174 174 <li>
175 175 ${self.gravatar_with_user(c.pull_request.author.email, 16)}
176 176 </li>
177 177 </ul>
178 178 </div>
179 179 ## REVIEWERS
180 180 <div class="reviewers-title block-right">
181 181 <div class="pr-details-title">
182 182 ${_('Pull request reviewers')}
183 183 %if c.allowed_to_update:
184 184 <span id="open_edit_reviewers" class="block-right action_button">${_('Edit')}</span>
185 185 <span id="close_edit_reviewers" class="block-right action_button" style="display: none;">${_('Close')}</span>
186 186 %endif
187 187 </div>
188 188 </div>
189 189 <div id="reviewers" class="block-right pr-details-content reviewers">
190 190 ## members goes here !
191 191 <ul id="review_members" class="group_members">
192 192 %for member,status in c.pull_request_reviewers:
193 193 <li id="reviewer_${member.user_id}">
194 194 <div class="reviewers_member">
195 195 <div class="reviewer_status tooltip" title="${h.tooltip(h.commit_status_lbl(status[0][1].status if status else 'not_reviewed'))}">
196 196 <div class="${'flag_status %s' % (status[0][1].status if status else 'not_reviewed')} pull-left reviewer_member_status"></div>
197 197 </div>
198 <span id="reviewer_${member.user_id}_name" class="reviewer_name">
199 ${self.gravatar_with_user(member.email, 16)}
200 (${_('owner') if c.pull_request.user_id == member.user_id else _('reviewer')})</span>
198 <div id="reviewer_${member.user_id}_name" class="reviewer_name">
199 ${self.gravatar_with_user(member.email, 16)} <div class="reviewer">(${_('owner') if c.pull_request.user_id == member.user_id else _('reviewer')})</div>
200 </div>
201 201 <input id="reviewer_${member.user_id}_input" type="hidden" value="${member.user_id}" name="review_members" />
202 202 %if c.allowed_to_update:
203 203 <div class="reviewer_member_remove action_button" onclick="removeReviewMember(${member.user_id}, true)" style="visibility: hidden;">
204 204 <i class="icon-remove-sign" ></i>
205 205 </div>
206 206 %endif
207 207 </div>
208 208 </li>
209 209 %endfor
210 210 </ul>
211 211 %if not c.pull_request.is_closed():
212 212 <div id="add_reviewer_input" class='ac' style="display: none;">
213 213 %if c.allowed_to_update:
214 214 <div class="reviewer_ac">
215 215 ${h.text('user', class_='ac-input', placeholder=_('Add reviewer'))}
216 216 <div id="reviewers_container"></div>
217 217 </div>
218 218 <div>
219 219 <span id="update_pull_request" class="btn btn-small">${_('Save Changes')}</span>
220 220 </div>
221 221 %endif
222 222 </div>
223 223 %endif
224 224 </div>
225 225 </div>
226 226 </div>
227 227 <div class="box">
228 228 ##DIFF
229 229 <div class="table" >
230 230 <div id="changeset_compare_view_content">
231 231 ##CS
232 232 % if c.missing_requirements:
233 233 <div class="box">
234 234 <div class="alert alert-warning">
235 235 <div>
236 236 <strong>${_('Missing requirements:')}</strong>
237 237 ${_('These commits cannot be displayed, because this repository uses the Mercurial largefiles extension, which was not enabled.')}
238 238 </div>
239 239 </div>
240 240 </div>
241 241 % elif c.missing_commits:
242 242 <div class="box">
243 243 <div class="alert alert-warning">
244 244 <div>
245 245 <strong>${_('Missing commits')}:</strong>
246 246 ${_('This pull request cannot be displayed, because one or more commits no longer exist in the source repository.')}
247 247 ${_('Please update this pull request, push the commits back into the source repository, or consider closing this pull request.')}
248 248 </div>
249 249 </div>
250 250 </div>
251 251 % endif
252 252 <div class="compare_view_commits_title">
253 253 % if c.allowed_to_update and not c.pull_request.is_closed():
254 254 <button id="update_commits" class="btn btn-small">${_('Update commits')}</button>
255 255 % endif
256 256 % if len(c.commit_ranges):
257 257 <h2>${ungettext('Compare View: %s commit','Compare View: %s commits', len(c.commit_ranges)) % len(c.commit_ranges)}</h2>
258 258 % endif
259 259 </div>
260 260 % if not c.missing_commits:
261 261 <%include file="/compare/compare_commits.html" />
262 262 ## FILES
263 263 <div class="cs_files_title">
264 264 <span class="cs_files_expand">
265 265 <span id="expand_all_files">${_('Expand All')}</span> | <span id="collapse_all_files">${_('Collapse All')}</span>
266 266 </span>
267 267 <h2>
268 268 ${diff_block.diff_summary_text(len(c.files), c.lines_added, c.lines_deleted, c.limited_diff)}
269 269 </h2>
270 270 </div>
271 271 % endif
272 272 <div class="cs_files">
273 273 %if not c.files and not c.missing_commits:
274 274 <span class="empty_data">${_('No files')}</span>
275 275 %endif
276 276 <table class="compare_view_files">
277 277 <%namespace name="diff_block" file="/changeset/diff_block.html"/>
278 278 %for FID, change, path, stats in c.files:
279 279 <tr class="cs_${change} collapse_file" fid="${FID}">
280 280 <td class="cs_icon_td">
281 281 <span class="collapse_file_icon" fid="${FID}"></span>
282 282 </td>
283 283 <td class="cs_icon_td">
284 284 <div class="flag_status not_reviewed hidden"></div>
285 285 </td>
286 286 <td class="cs_${change}" id="a_${FID}">
287 287 <div class="node">
288 288 <a href="#a_${FID}">
289 289 <i class="icon-file-${change.lower()}"></i>
290 290 ${h.safe_unicode(path)}
291 291 </a>
292 292 </div>
293 293 </td>
294 294 <td>
295 295 <div class="changes pull-right">${h.fancy_file_stats(stats)}</div>
296 296 <div class="comment-bubble pull-right" data-path="${path}">
297 297 <i class="icon-comment"></i>
298 298 </div>
299 299 </td>
300 300 </tr>
301 301 <tr fid="${FID}" id="diff_${FID}" class="diff_links">
302 302 <td></td>
303 303 <td></td>
304 304 <td class="cs_${change}">
305 305 %if c.target_repo.repo_name == c.repo_name:
306 306 ${diff_block.diff_menu(c.repo_name, h.safe_unicode(path), c.target_ref, c.source_ref, change)}
307 307 %else:
308 308 ## this is slightly different case later, since the other repo can have this
309 309 ## file in other state than the origin repo
310 310 ${diff_block.diff_menu(c.target_repo.repo_name, h.safe_unicode(path), c.target_ref, c.source_ref, change)}
311 311 %endif
312 312 </td>
313 313 <td class="td-actions rc-form">
314 314 </td>
315 315 </tr>
316 316 <tr id="tr_${FID}">
317 317 <td></td>
318 318 <td></td>
319 319 <td class="injected_diff" colspan="2">
320 320 ${diff_block.diff_block_simple([c.changes[FID]])}
321 321 </td>
322 322 </tr>
323 323
324 324 ## Loop through inline comments
325 325 % if c.outdated_comments.get(path,False):
326 326 <tr class="outdated">
327 327 <td></td>
328 328 <td></td>
329 329 <td colspan="2">
330 330 <p>${_('Outdated Inline Comments')}:</p>
331 331 </td>
332 332 </tr>
333 333 <tr class="outdated">
334 334 <td></td>
335 335 <td></td>
336 336 <td colspan="2" class="outdated_comment_block">
337 337 % for line, comments in c.outdated_comments[path].iteritems():
338 338 <div class="inline-comment-placeholder" path="${path}" target_id="${h.safeid(h.safe_unicode(path))}">
339 339 % for co in comments:
340 340 ${comment.comment_block_outdated(co)}
341 341 % endfor
342 342 </div>
343 343 % endfor
344 344 </td>
345 345 </tr>
346 346 % endif
347 347 %endfor
348 348 ## Loop through inline comments for deleted files
349 349 %for path in c.deleted_files:
350 350 <tr class="outdated deleted">
351 351 <td></td>
352 352 <td></td>
353 353 <td>${path}</td>
354 354 </tr>
355 355 <tr class="outdated deleted">
356 356 <td></td>
357 357 <td></td>
358 358 <td>(${_('Removed')})</td>
359 359 </tr>
360 360 % if path in c.outdated_comments:
361 361 <tr class="outdated deleted">
362 362 <td></td>
363 363 <td></td>
364 364 <td colspan="2">
365 365 <p>${_('Outdated Inline Comments')}:</p>
366 366 </td>
367 367 </tr>
368 368 <tr class="outdated">
369 369 <td></td>
370 370 <td></td>
371 371 <td colspan="2" class="outdated_comment_block">
372 372 % for line, comments in c.outdated_comments[path].iteritems():
373 373 <div class="inline-comment-placeholder" path="${path}" target_id="${h.safeid(h.safe_unicode(path))}">
374 374 % for co in comments:
375 375 ${comment.comment_block_outdated(co)}
376 376 % endfor
377 377 </div>
378 378 % endfor
379 379 </td>
380 380 </tr>
381 381 % endif
382 382 %endfor
383 383 </table>
384 384 </div>
385 385 % if c.limited_diff:
386 386 <h5>${_('Commit was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}" onclick="return confirm('${_("Showing a huge diff might take some time and resources")}')">${_('Show full diff')}</a></h5>
387 387 % endif
388 388 </div>
389 389 </div>
390 390
391 391 % if c.limited_diff:
392 392 <p>${_('Commit was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}" onclick="return confirm('${_("Showing a huge diff might take some time and resources")}')">${_('Show full diff')}</a></p>
393 393 % endif
394 394
395 395 ## template for inline comment form
396 396 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
397 397 ${comment.comment_inline_form()}
398 398
399 399 ## render comments and inlines
400 400 ${comment.generate_comments(include_pull_request=True, is_pull_request=True)}
401 401
402 402 % if not c.pull_request.is_closed():
403 403 ## main comment form and it status
404 404 ${comment.comments(h.url('pullrequest_comment', repo_name=c.repo_name,
405 405 pull_request_id=c.pull_request.pull_request_id),
406 406 c.pull_request_review_status,
407 407 is_pull_request=True, change_status=c.allowed_to_change_status)}
408 408 %endif
409 409
410 410 <script type="text/javascript">
411 411 if (location.href.indexOf('#') != -1) {
412 412 var id = '#'+location.href.substring(location.href.indexOf('#') + 1).split('#');
413 413 var line = $('html').find(id);
414 414 offsetScroll(line, 70);
415 415 }
416 416 $(function(){
417 417 ReviewerAutoComplete('user');
418 418 // custom code mirror
419 419 var codeMirrorInstance = initPullRequestsCodeMirror('#pr-description-input');
420 420
421 421 var PRDetails = {
422 422 editButton: $('#open_edit_pullrequest'),
423 423 closeButton: $('#close_edit_pullrequest'),
424 424 viewFields: $('#pr-desc, #pr-title'),
425 425 editFields: $('#pr-desc-edit, #pr-title-edit, #pr-save'),
426 426
427 427 init: function() {
428 428 var that = this;
429 429 this.editButton.on('click', function(e) { that.edit(); });
430 430 this.closeButton.on('click', function(e) { that.view(); });
431 431 },
432 432
433 433 edit: function(event) {
434 434 this.viewFields.hide();
435 435 this.editButton.hide();
436 436 this.editFields.show();
437 437 codeMirrorInstance.refresh();
438 438 },
439 439
440 440 view: function(event) {
441 441 this.editFields.hide();
442 442 this.closeButton.hide();
443 443 this.viewFields.show();
444 444 }
445 445 };
446 446
447 447 var ReviewersPanel = {
448 448 editButton: $('#open_edit_reviewers'),
449 449 closeButton: $('#close_edit_reviewers'),
450 450 addButton: $('#add_reviewer_input'),
451 451 removeButtons: $('.reviewer_member_remove'),
452 452
453 453 init: function() {
454 454 var that = this;
455 455 this.editButton.on('click', function(e) { that.edit(); });
456 456 this.closeButton.on('click', function(e) { that.close(); });
457 457 },
458 458
459 459 edit: function(event) {
460 460 this.editButton.hide();
461 461 this.closeButton.show();
462 462 this.addButton.show();
463 463 this.removeButtons.css('visibility', 'visible');
464 464 },
465 465
466 466 close: function(event) {
467 467 this.editButton.show();
468 468 this.closeButton.hide();
469 469 this.addButton.hide();
470 470 this.removeButtons.css('visibility', 'hidden');
471 471 }
472 472 };
473 473
474 474 PRDetails.init();
475 475 ReviewersPanel.init();
476 476
477 477 $('#show-outdated-comments').on('click', function(e){
478 478 var button = $(this);
479 479 var outdated = $('.outdated');
480 480 if (button.html() === "(Show)") {
481 481 button.html("(Hide)");
482 482 outdated.show();
483 483 } else {
484 484 button.html("(Show)");
485 485 outdated.hide();
486 486 }
487 487 });
488 488
489 489 $('.show-inline-comments').on('change', function(e){
490 490 var show = 'none';
491 491 var target = e.currentTarget;
492 492 if(target.checked){
493 493 show = ''
494 494 }
495 495 var boxid = $(target).attr('id_for');
496 496 var comments = $('#{0} .inline-comments'.format(boxid));
497 497 var fn_display = function(idx){
498 498 $(this).css('display', show);
499 499 };
500 500 $(comments).each(fn_display);
501 501 var btns = $('#{0} .inline-comments-button'.format(boxid));
502 502 $(btns).each(fn_display);
503 503 });
504 504
505 505 // inject comments into their proper positions
506 506 var file_comments = $('.inline-comment-placeholder');
507 507 %if c.pull_request.is_closed():
508 508 renderInlineComments(file_comments, false);
509 509 %else:
510 510 renderInlineComments(file_comments, true);
511 511 %endif
512 512 var commentTotals = {};
513 513 $.each(file_comments, function(i, comment) {
514 514 var path = $(comment).attr('path');
515 515 var comms = $(comment).children().length;
516 516 if (path in commentTotals) {
517 517 commentTotals[path] += comms;
518 518 } else {
519 519 commentTotals[path] = comms;
520 520 }
521 521 });
522 522 $.each(commentTotals, function(path, total) {
523 523 var elem = $('.comment-bubble[data-path="'+ path +'"]');
524 524 elem.css('visibility', 'visible');
525 525 elem.html(elem.html() + ' ' + total );
526 526 });
527 527
528 528 $('#merge_pull_request_form').submit(function() {
529 529 if (!$('#merge_pull_request').attr('disabled')) {
530 530 $('#merge_pull_request').attr('disabled', 'disabled');
531 531 }
532 532 return true;
533 533 });
534 534
535 535 $('#edit_pull_request').on('click', function(e){
536 536 var title = $('#pr-title-input').val();
537 537 var description = codeMirrorInstance.getValue();
538 538 editPullRequest(
539 539 "${c.repo_name}", "${c.pull_request.pull_request_id}",
540 540 title, description);
541 541 });
542 542
543 543 $('#update_pull_request').on('click', function(e){
544 544 updateReviewers(undefined, "${c.repo_name}", "${c.pull_request.pull_request_id}");
545 545 });
546 546
547 547 $('#update_commits').on('click', function(e){
548 548 var isDisabled = !$(e.currentTarget).attr('disabled');
549 549 $(e.currentTarget).text(_TM['Updating...']);
550 550 $(e.currentTarget).attr('disabled', 'disabled');
551 551 if(isDisabled){
552 552 updateCommits("${c.repo_name}", "${c.pull_request.pull_request_id}");
553 553 }
554 554
555 555 });
556 556 // fixing issue with caches on firefox
557 557 $('#update_commits').removeAttr("disabled");
558 558
559 559 $('#close_pull_request').on('click', function(e){
560 560 closePullRequest("${c.repo_name}", "${c.pull_request.pull_request_id}");
561 561 });
562 562 })
563 563 </script>
564 564
565 565 </div>
566 566 </div>
567 567
568 568 </%def>
General Comments 0
You need to be logged in to leave comments. Login now