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