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