##// END OF EJS Templates
fixed source selection link pop-up tooltip
marcink -
r3081:b2c7f7c5 beta
parent child Browse files
Show More
@@ -1,4811 +1,4830
1 1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
2 2 {
3 3 border: 0;
4 4 outline: 0;
5 5 font-size: 100%;
6 6 vertical-align: baseline;
7 7 background: transparent;
8 8 margin: 0;
9 9 padding: 0;
10 10 }
11 11
12 12 body {
13 13 line-height: 1;
14 14 height: 100%;
15 15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
16 16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
17 17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
18 18 color: #000;
19 19 margin: 0;
20 20 padding: 0;
21 21 font-size: 12px;
22 22 }
23 23
24 24 ol,ul {
25 25 list-style: none;
26 26 }
27 27
28 28 blockquote,q {
29 29 quotes: none;
30 30 }
31 31
32 32 blockquote:before,blockquote:after,q:before,q:after {
33 33 content: none;
34 34 }
35 35
36 36 :focus {
37 37 outline: 0;
38 38 }
39 39
40 40 del {
41 41 text-decoration: line-through;
42 42 }
43 43
44 44 table {
45 45 border-collapse: collapse;
46 46 border-spacing: 0;
47 47 }
48 48
49 49 html {
50 50 height: 100%;
51 51 }
52 52
53 53 a {
54 54 color: #003367;
55 55 text-decoration: none;
56 56 cursor: pointer;
57 57 }
58 58
59 59 a:hover {
60 60 color: #316293;
61 61 text-decoration: underline;
62 62 }
63 63
64 64 h1,h2,h3,h4,h5,h6,
65 65 div.h1,div.h2,div.h3,div.h4,div.h5,div.h6 {
66 66 color: #292929;
67 67 font-weight: 700;
68 68 }
69 69
70 70 h1,div.h1 {
71 71 font-size: 22px;
72 72 }
73 73
74 74 h2,div.h2 {
75 75 font-size: 20px;
76 76 }
77 77
78 78 h3,div.h3 {
79 79 font-size: 18px;
80 80 }
81 81
82 82 h4,div.h4 {
83 83 font-size: 16px;
84 84 }
85 85
86 86 h5,div.h5 {
87 87 font-size: 14px;
88 88 }
89 89
90 90 h6,div.h6 {
91 91 font-size: 11px;
92 92 }
93 93
94 94 ul.circle {
95 95 list-style-type: circle;
96 96 }
97 97
98 98 ul.disc {
99 99 list-style-type: disc;
100 100 }
101 101
102 102 ul.square {
103 103 list-style-type: square;
104 104 }
105 105
106 106 ol.lower-roman {
107 107 list-style-type: lower-roman;
108 108 }
109 109
110 110 ol.upper-roman {
111 111 list-style-type: upper-roman;
112 112 }
113 113
114 114 ol.lower-alpha {
115 115 list-style-type: lower-alpha;
116 116 }
117 117
118 118 ol.upper-alpha {
119 119 list-style-type: upper-alpha;
120 120 }
121 121
122 122 ol.decimal {
123 123 list-style-type: decimal;
124 124 }
125 125
126 126 div.color {
127 127 clear: both;
128 128 overflow: hidden;
129 129 position: absolute;
130 130 background: #FFF;
131 131 margin: 7px 0 0 60px;
132 132 padding: 1px 1px 1px 0;
133 133 }
134 134
135 135 div.color a {
136 136 width: 15px;
137 137 height: 15px;
138 138 display: block;
139 139 float: left;
140 140 margin: 0 0 0 1px;
141 141 padding: 0;
142 142 }
143 143
144 144 div.options {
145 145 clear: both;
146 146 overflow: hidden;
147 147 position: absolute;
148 148 background: #FFF;
149 149 margin: 7px 0 0 162px;
150 150 padding: 0;
151 151 }
152 152
153 153 div.options a {
154 154 height: 1%;
155 155 display: block;
156 156 text-decoration: none;
157 157 margin: 0;
158 158 padding: 3px 8px;
159 159 }
160 160
161 161 .top-left-rounded-corner {
162 162 -webkit-border-top-left-radius: 8px;
163 163 -khtml-border-radius-topleft: 8px;
164 164 -moz-border-radius-topleft: 8px;
165 165 border-top-left-radius: 8px;
166 166 }
167 167
168 168 .top-right-rounded-corner {
169 169 -webkit-border-top-right-radius: 8px;
170 170 -khtml-border-radius-topright: 8px;
171 171 -moz-border-radius-topright: 8px;
172 172 border-top-right-radius: 8px;
173 173 }
174 174
175 175 .bottom-left-rounded-corner {
176 176 -webkit-border-bottom-left-radius: 8px;
177 177 -khtml-border-radius-bottomleft: 8px;
178 178 -moz-border-radius-bottomleft: 8px;
179 179 border-bottom-left-radius: 8px;
180 180 }
181 181
182 182 .bottom-right-rounded-corner {
183 183 -webkit-border-bottom-right-radius: 8px;
184 184 -khtml-border-radius-bottomright: 8px;
185 185 -moz-border-radius-bottomright: 8px;
186 186 border-bottom-right-radius: 8px;
187 187 }
188 188
189 189 .top-left-rounded-corner-mid {
190 190 -webkit-border-top-left-radius: 4px;
191 191 -khtml-border-radius-topleft: 4px;
192 192 -moz-border-radius-topleft: 4px;
193 193 border-top-left-radius: 4px;
194 194 }
195 195
196 196 .top-right-rounded-corner-mid {
197 197 -webkit-border-top-right-radius: 4px;
198 198 -khtml-border-radius-topright: 4px;
199 199 -moz-border-radius-topright: 4px;
200 200 border-top-right-radius: 4px;
201 201 }
202 202
203 203 .bottom-left-rounded-corner-mid {
204 204 -webkit-border-bottom-left-radius: 4px;
205 205 -khtml-border-radius-bottomleft: 4px;
206 206 -moz-border-radius-bottomleft: 4px;
207 207 border-bottom-left-radius: 4px;
208 208 }
209 209
210 210 .bottom-right-rounded-corner-mid {
211 211 -webkit-border-bottom-right-radius: 4px;
212 212 -khtml-border-radius-bottomright: 4px;
213 213 -moz-border-radius-bottomright: 4px;
214 214 border-bottom-right-radius: 4px;
215 215 }
216 216
217 217 .help-block {
218 218 color: #999999;
219 219 display: block;
220 220 margin-bottom: 0;
221 221 margin-top: 5px;
222 222 }
223 223
224 224 .empty_data{
225 225 color:#B9B9B9;
226 226 }
227 227
228 228 a.permalink{
229 229 visibility: hidden;
230 230 }
231 231
232 232 a.permalink:hover{
233 233 text-decoration: none;
234 234 }
235 235
236 236 h1:hover > a.permalink,
237 237 h2:hover > a.permalink,
238 238 h3:hover > a.permalink,
239 239 h4:hover > a.permalink,
240 240 h5:hover > a.permalink,
241 241 h6:hover > a.permalink,
242 242 div:hover > a.permalink {
243 243 visibility: visible;
244 244 }
245 245
246 246 #header {
247 247 margin: 0;
248 248 padding: 0 10px;
249 249 }
250 250
251 251 #header ul#logged-user {
252 252 margin-bottom: 5px !important;
253 253 -webkit-border-radius: 0px 0px 8px 8px;
254 254 -khtml-border-radius: 0px 0px 8px 8px;
255 255 -moz-border-radius: 0px 0px 8px 8px;
256 256 border-radius: 0px 0px 8px 8px;
257 257 height: 37px;
258 258 background-color: #003B76;
259 259 background-repeat: repeat-x;
260 260 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
261 261 background-image: -moz-linear-gradient(top, #003b76, #00376e);
262 262 background-image: -ms-linear-gradient(top, #003b76, #00376e);
263 263 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
264 264 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
265 265 background-image: -o-linear-gradient(top, #003b76, #00376e);
266 266 background-image: linear-gradient(top, #003b76, #00376e);
267 267 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
268 268 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
269 269 }
270 270
271 271 #header ul#logged-user li {
272 272 list-style: none;
273 273 float: left;
274 274 margin: 8px 0 0;
275 275 padding: 4px 12px;
276 276 border-left: 1px solid #316293;
277 277 }
278 278
279 279 #header ul#logged-user li.first {
280 280 border-left: none;
281 281 margin: 4px;
282 282 }
283 283
284 284 #header ul#logged-user li.first div.gravatar {
285 285 margin-top: -2px;
286 286 }
287 287
288 288 #header ul#logged-user li.first div.account {
289 289 padding-top: 4px;
290 290 float: left;
291 291 }
292 292
293 293 #header ul#logged-user li.last {
294 294 border-right: none;
295 295 }
296 296
297 297 #header ul#logged-user li a {
298 298 color: #fff;
299 299 font-weight: 700;
300 300 text-decoration: none;
301 301 }
302 302
303 303 #header ul#logged-user li a:hover {
304 304 text-decoration: underline;
305 305 }
306 306
307 307 #header ul#logged-user li.highlight a {
308 308 color: #fff;
309 309 }
310 310
311 311 #header ul#logged-user li.highlight a:hover {
312 312 color: #FFF;
313 313 }
314 314
315 315 #header #header-inner {
316 316 min-height: 44px;
317 317 clear: both;
318 318 position: relative;
319 319 background-color: #003B76;
320 320 background-repeat: repeat-x;
321 321 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
322 322 background-image: -moz-linear-gradient(top, #003b76, #00376e);
323 323 background-image: -ms-linear-gradient(top, #003b76, #00376e);
324 324 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),color-stop(100%, #00376e) );
325 325 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
326 326 background-image: -o-linear-gradient(top, #003b76, #00376e);
327 327 background-image: linear-gradient(top, #003b76, #00376e);
328 328 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
329 329 margin: 0;
330 330 padding: 0;
331 331 display: block;
332 332 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
333 333 -webkit-border-radius: 4px 4px 4px 4px;
334 334 -khtml-border-radius: 4px 4px 4px 4px;
335 335 -moz-border-radius: 4px 4px 4px 4px;
336 336 border-radius: 4px 4px 4px 4px;
337 337 }
338 338 #header #header-inner.hover{
339 339 position: fixed !important;
340 340 width: 100% !important;
341 341 margin-left: -10px !important;
342 342 z-index: 10000;
343 343 -webkit-border-radius: 0px 0px 0px 0px;
344 344 -khtml-border-radius: 0px 0px 0px 0px;
345 345 -moz-border-radius: 0px 0px 0px 0px;
346 346 border-radius: 0px 0px 0px 0px;
347 347 }
348 348
349 349 .ie7 #header #header-inner.hover,
350 350 .ie8 #header #header-inner.hover,
351 351 .ie9 #header #header-inner.hover
352 352 {
353 353 z-index: auto !important;
354 354 }
355 355
356 356 .header-pos-fix, .anchor{
357 357 margin-top: -46px;
358 358 padding-top: 46px;
359 359 }
360 360
361 361 #header #header-inner #home a {
362 362 height: 40px;
363 363 width: 46px;
364 364 display: block;
365 365 background: url("../images/button_home.png");
366 366 background-position: 0 0;
367 367 margin: 0;
368 368 padding: 0;
369 369 }
370 370
371 371 #header #header-inner #home a:hover {
372 372 background-position: 0 -40px;
373 373 }
374 374
375 375 #header #header-inner #logo {
376 376 float: left;
377 377 position: absolute;
378 378 }
379 379
380 380 #header #header-inner #logo h1 {
381 381 color: #FFF;
382 382 font-size: 20px;
383 383 margin: 12px 0 0 13px;
384 384 padding: 0;
385 385 }
386 386
387 387 #header #header-inner #logo a {
388 388 color: #fff;
389 389 text-decoration: none;
390 390 }
391 391
392 392 #header #header-inner #logo a:hover {
393 393 color: #bfe3ff;
394 394 }
395 395
396 396 #header #header-inner #quick,#header #header-inner #quick ul {
397 397 position: relative;
398 398 float: right;
399 399 list-style-type: none;
400 400 list-style-position: outside;
401 401 margin: 8px 8px 0 0;
402 402 padding: 0;
403 403 }
404 404
405 405 #header #header-inner #quick li {
406 406 position: relative;
407 407 float: left;
408 408 margin: 0 5px 0 0;
409 409 padding: 0;
410 410 }
411 411
412 412 #header #header-inner #quick li a.menu_link {
413 413 top: 0;
414 414 left: 0;
415 415 height: 1%;
416 416 display: block;
417 417 clear: both;
418 418 overflow: hidden;
419 419 color: #FFF;
420 420 font-weight: 700;
421 421 text-decoration: none;
422 422 background: #369;
423 423 padding: 0;
424 424 -webkit-border-radius: 4px 4px 4px 4px;
425 425 -khtml-border-radius: 4px 4px 4px 4px;
426 426 -moz-border-radius: 4px 4px 4px 4px;
427 427 border-radius: 4px 4px 4px 4px;
428 428 }
429 429
430 430 #header #header-inner #quick li span.short {
431 431 padding: 9px 6px 8px 6px;
432 432 }
433 433
434 434 #header #header-inner #quick li span {
435 435 top: 0;
436 436 right: 0;
437 437 height: 1%;
438 438 display: block;
439 439 float: left;
440 440 border-left: 1px solid #3f6f9f;
441 441 margin: 0;
442 442 padding: 10px 12px 8px 10px;
443 443 }
444 444
445 445 #header #header-inner #quick li span.normal {
446 446 border: none;
447 447 padding: 10px 12px 8px;
448 448 }
449 449
450 450 #header #header-inner #quick li span.icon {
451 451 top: 0;
452 452 left: 0;
453 453 border-left: none;
454 454 border-right: 1px solid #2e5c89;
455 455 padding: 8px 6px 4px;
456 456 }
457 457
458 458 #header #header-inner #quick li span.icon_short {
459 459 top: 0;
460 460 left: 0;
461 461 border-left: none;
462 462 border-right: 1px solid #2e5c89;
463 463 padding: 8px 6px 4px;
464 464 }
465 465
466 466 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
467 467 {
468 468 margin: 0px -2px 0px 0px;
469 469 }
470 470
471 471 #header #header-inner #quick li a:hover {
472 472 background: #4e4e4e no-repeat top left;
473 473 }
474 474
475 475 #header #header-inner #quick li a:hover span {
476 476 border-left: 1px solid #545454;
477 477 }
478 478
479 479 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
480 480 {
481 481 border-left: none;
482 482 border-right: 1px solid #464646;
483 483 }
484 484
485 485 #header #header-inner #quick ul {
486 486 top: 29px;
487 487 right: 0;
488 488 min-width: 200px;
489 489 display: none;
490 490 position: absolute;
491 491 background: #FFF;
492 492 border: 1px solid #666;
493 493 border-top: 1px solid #003367;
494 494 z-index: 100;
495 495 margin: 0px 0px 0px 0px;
496 496 padding: 0;
497 497 }
498 498
499 499 #header #header-inner #quick ul.repo_switcher {
500 500 max-height: 275px;
501 501 overflow-x: hidden;
502 502 overflow-y: auto;
503 503 }
504 504
505 505 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
506 506 float: none;
507 507 margin: 0;
508 508 border-bottom: 2px solid #003367;
509 509 }
510 510
511 511 #header #header-inner #quick .repo_switcher_type {
512 512 position: absolute;
513 513 left: 0;
514 514 top: 9px;
515 515 }
516 516
517 517 #header #header-inner #quick li ul li {
518 518 border-bottom: 1px solid #ddd;
519 519 }
520 520
521 521 #header #header-inner #quick li ul li a {
522 522 width: 182px;
523 523 height: auto;
524 524 display: block;
525 525 float: left;
526 526 background: #FFF;
527 527 color: #003367;
528 528 font-weight: 400;
529 529 margin: 0;
530 530 padding: 7px 9px;
531 531 }
532 532
533 533 #header #header-inner #quick li ul li a:hover {
534 534 color: #000;
535 535 background: #FFF;
536 536 }
537 537
538 538 #header #header-inner #quick ul ul {
539 539 top: auto;
540 540 }
541 541
542 542 #header #header-inner #quick li ul ul {
543 543 right: 200px;
544 544 max-height: 275px;
545 545 overflow: auto;
546 546 overflow-x: hidden;
547 547 white-space: normal;
548 548 }
549 549
550 550 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
551 551 {
552 552 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
553 553 #FFF;
554 554 width: 167px;
555 555 margin: 0;
556 556 padding: 12px 9px 7px 24px;
557 557 }
558 558
559 559 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
560 560 {
561 561 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
562 562 #FFF;
563 563 min-width: 167px;
564 564 margin: 0;
565 565 padding: 12px 9px 7px 24px;
566 566 }
567 567
568 568 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
569 569 {
570 570 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
571 571 9px #FFF;
572 572 min-width: 167px;
573 573 margin: 0;
574 574 padding: 12px 9px 7px 24px;
575 575 }
576 576
577 577 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
578 578 {
579 579 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
580 580 #FFF;
581 581 min-width: 167px;
582 582 margin: 0 0 0 14px;
583 583 padding: 12px 9px 7px 24px;
584 584 }
585 585
586 586 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
587 587 {
588 588 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
589 589 #FFF;
590 590 min-width: 167px;
591 591 margin: 0 0 0 14px;
592 592 padding: 12px 9px 7px 24px;
593 593 }
594 594
595 595 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
596 596 {
597 597 background: url("../images/icons/database_edit.png") no-repeat scroll
598 598 4px 9px #FFF;
599 599 width: 167px;
600 600 margin: 0;
601 601 padding: 12px 9px 7px 24px;
602 602 }
603 603
604 604 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
605 605 {
606 606 background: url("../images/icons/database_link.png") no-repeat scroll
607 607 4px 9px #FFF;
608 608 width: 167px;
609 609 margin: 0;
610 610 padding: 12px 9px 7px 24px;
611 611 }
612 612
613 613 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
614 614 {
615 615 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
616 616 width: 167px;
617 617 margin: 0;
618 618 padding: 12px 9px 7px 24px;
619 619 }
620 620
621 621 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
622 622 {
623 623 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
624 624 width: 167px;
625 625 margin: 0;
626 626 padding: 12px 9px 7px 24px;
627 627 }
628 628
629 629 #header #header-inner #quick li ul li a.defaults,#header #header-inner #quick li ul li a.defaults:hover
630 630 {
631 631 background: #FFF url("../images/icons/wrench.png") no-repeat 4px 9px;
632 632 width: 167px;
633 633 margin: 0;
634 634 padding: 12px 9px 7px 24px;
635 635 }
636 636
637 637 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
638 638 {
639 639 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
640 640 width: 167px;
641 641 margin: 0;
642 642 padding: 12px 9px 7px 24px;
643 643 }
644 644
645 645 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
646 646 {
647 647 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
648 648 width: 167px;
649 649 margin: 0;
650 650 padding: 12px 9px 7px 24px;
651 651 }
652 652
653 653 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
654 654 {
655 655 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
656 656 width: 167px;
657 657 margin: 0;
658 658 padding: 12px 9px 7px 24px;
659 659 }
660 660
661 661 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
662 662 {
663 663 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
664 664 9px;
665 665 width: 167px;
666 666 margin: 0;
667 667 padding: 12px 9px 7px 24px;
668 668 }
669 669
670 670 #header #header-inner #quick li ul li a.locking_add,#header #header-inner #quick li ul li a.locking_add:hover
671 671 {
672 672 background: #FFF url("../images/icons/lock_add.png") no-repeat 4px
673 673 9px;
674 674 width: 167px;
675 675 margin: 0;
676 676 padding: 12px 9px 7px 24px;
677 677 }
678 678
679 679 #header #header-inner #quick li ul li a.locking_del,#header #header-inner #quick li ul li a.locking_del:hover
680 680 {
681 681 background: #FFF url("../images/icons/lock_delete.png") no-repeat 4px
682 682 9px;
683 683 width: 167px;
684 684 margin: 0;
685 685 padding: 12px 9px 7px 24px;
686 686 }
687 687
688 688 #header #header-inner #quick li ul li a.pull_request,#header #header-inner #quick li ul li a.pull_request:hover
689 689 {
690 690 background: #FFF url("../images/icons/arrow_join.png") no-repeat 4px
691 691 9px;
692 692 width: 167px;
693 693 margin: 0;
694 694 padding: 12px 9px 7px 24px;
695 695 }
696 696
697 697 #header #header-inner #quick li ul li a.compare_request,#header #header-inner #quick li ul li a.compare_request:hover
698 698 {
699 699 background: #FFF url("../images/icons/arrow_inout.png") no-repeat 4px
700 700 9px;
701 701 width: 167px;
702 702 margin: 0;
703 703 padding: 12px 9px 7px 24px;
704 704 }
705 705
706 706 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
707 707 {
708 708 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
709 709 width: 167px;
710 710 margin: 0;
711 711 padding: 12px 9px 7px 24px;
712 712 }
713 713
714 714 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
715 715 {
716 716 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
717 717 width: 167px;
718 718 margin: 0;
719 719 padding: 12px 9px 7px 24px;
720 720 }
721 721
722 722 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
723 723 {
724 724 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
725 725 9px;
726 726 width: 167px;
727 727 margin: 0;
728 728 padding: 12px 9px 7px 24px;
729 729 }
730 730
731 731 #header #header-inner #quick li ul li a.tags,
732 732 #header #header-inner #quick li ul li a.tags:hover{
733 733 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
734 734 width: 167px;
735 735 margin: 0;
736 736 padding: 12px 9px 7px 24px;
737 737 }
738 738
739 739 #header #header-inner #quick li ul li a.bookmarks,
740 740 #header #header-inner #quick li ul li a.bookmarks:hover{
741 741 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
742 742 width: 167px;
743 743 margin: 0;
744 744 padding: 12px 9px 7px 24px;
745 745 }
746 746
747 747 #header #header-inner #quick li ul li a.admin,
748 748 #header #header-inner #quick li ul li a.admin:hover{
749 749 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
750 750 width: 167px;
751 751 margin: 0;
752 752 padding: 12px 9px 7px 24px;
753 753 }
754 754
755 755 .groups_breadcrumbs a {
756 756 color: #fff;
757 757 }
758 758
759 759 .groups_breadcrumbs a:hover {
760 760 color: #bfe3ff;
761 761 text-decoration: none;
762 762 }
763 763
764 764 td.quick_repo_menu {
765 765 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
766 766 cursor: pointer;
767 767 width: 8px;
768 768 border: 1px solid transparent;
769 769 }
770 770
771 771 td.quick_repo_menu.active {
772 772 background: url("../images/dt-arrow-dn.png") no-repeat scroll 5px 50% #FFFFFF !important;
773 773 border: 1px solid #003367;
774 774 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
775 775 cursor: pointer;
776 776 }
777 777
778 778 td.quick_repo_menu .menu_items {
779 779 margin-top: 10px;
780 780 margin-left:-6px;
781 781 width: 150px;
782 782 position: absolute;
783 783 background-color: #FFF;
784 784 background: none repeat scroll 0 0 #FFFFFF;
785 785 border-color: #003367 #666666 #666666;
786 786 border-right: 1px solid #666666;
787 787 border-style: solid;
788 788 border-width: 1px;
789 789 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
790 790 border-top-style: none;
791 791 }
792 792
793 793 td.quick_repo_menu .menu_items li {
794 794 padding: 0 !important;
795 795 }
796 796
797 797 td.quick_repo_menu .menu_items a {
798 798 display: block;
799 799 padding: 4px 12px 4px 8px;
800 800 }
801 801
802 802 td.quick_repo_menu .menu_items a:hover {
803 803 background-color: #EEE;
804 804 text-decoration: none;
805 805 }
806 806
807 807 td.quick_repo_menu .menu_items .icon img {
808 808 margin-bottom: -2px;
809 809 }
810 810
811 811 td.quick_repo_menu .menu_items.hidden {
812 812 display: none;
813 813 }
814 814
815 815 .yui-dt-first th {
816 816 text-align: left;
817 817 }
818 818
819 819 /*
820 820 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
821 821 Code licensed under the BSD License:
822 822 http://developer.yahoo.com/yui/license.html
823 823 version: 2.9.0
824 824 */
825 825 .yui-skin-sam .yui-dt-mask {
826 826 position: absolute;
827 827 z-index: 9500;
828 828 }
829 829 .yui-dt-tmp {
830 830 position: absolute;
831 831 left: -9000px;
832 832 }
833 833 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
834 834 .yui-dt-scrollable .yui-dt-hd {
835 835 overflow: hidden;
836 836 position: relative;
837 837 }
838 838 .yui-dt-scrollable .yui-dt-bd thead tr,
839 839 .yui-dt-scrollable .yui-dt-bd thead th {
840 840 position: absolute;
841 841 left: -1500px;
842 842 }
843 843 .yui-dt-scrollable tbody { -moz-outline: 0 }
844 844 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
845 845 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
846 846 .yui-dt-coltarget {
847 847 position: absolute;
848 848 z-index: 999;
849 849 }
850 850 .yui-dt-hd { zoom: 1 }
851 851 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
852 852 .yui-dt-resizer {
853 853 position: absolute;
854 854 right: 0;
855 855 bottom: 0;
856 856 height: 100%;
857 857 cursor: e-resize;
858 858 cursor: col-resize;
859 859 background-color: #CCC;
860 860 opacity: 0;
861 861 filter: alpha(opacity=0);
862 862 }
863 863 .yui-dt-resizerproxy {
864 864 visibility: hidden;
865 865 position: absolute;
866 866 z-index: 9000;
867 867 background-color: #CCC;
868 868 opacity: 0;
869 869 filter: alpha(opacity=0);
870 870 }
871 871 th.yui-dt-hidden .yui-dt-liner,
872 872 td.yui-dt-hidden .yui-dt-liner,
873 873 th.yui-dt-hidden .yui-dt-resizer { display: none }
874 874 .yui-dt-editor,
875 875 .yui-dt-editor-shim {
876 876 position: absolute;
877 877 z-index: 9000;
878 878 }
879 879 .yui-skin-sam .yui-dt table {
880 880 margin: 0;
881 881 padding: 0;
882 882 font-family: arial;
883 883 font-size: inherit;
884 884 border-collapse: separate;
885 885 *border-collapse: collapse;
886 886 border-spacing: 0;
887 887 border: 1px solid #7f7f7f;
888 888 }
889 889 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
890 890 .yui-skin-sam .yui-dt caption {
891 891 color: #000;
892 892 font-size: 85%;
893 893 font-weight: normal;
894 894 font-style: italic;
895 895 line-height: 1;
896 896 padding: 1em 0;
897 897 text-align: center;
898 898 }
899 899 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
900 900 .yui-skin-sam .yui-dt th,
901 901 .yui-skin-sam .yui-dt th a {
902 902 font-weight: normal;
903 903 text-decoration: none;
904 904 color: #000;
905 905 vertical-align: bottom;
906 906 }
907 907 .yui-skin-sam .yui-dt th {
908 908 margin: 0;
909 909 padding: 0;
910 910 border: 0;
911 911 border-right: 1px solid #cbcbcb;
912 912 }
913 913 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
914 914 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
915 915 .yui-skin-sam .yui-dt-liner {
916 916 margin: 0;
917 917 padding: 0;
918 918 }
919 919 .yui-skin-sam .yui-dt-coltarget {
920 920 width: 5px;
921 921 background-color: red;
922 922 }
923 923 .yui-skin-sam .yui-dt td {
924 924 margin: 0;
925 925 padding: 0;
926 926 border: 0;
927 927 border-right: 1px solid #cbcbcb;
928 928 text-align: left;
929 929 }
930 930 .yui-skin-sam .yui-dt-list td { border-right: 0 }
931 931 .yui-skin-sam .yui-dt-resizer { width: 6px }
932 932 .yui-skin-sam .yui-dt-mask {
933 933 background-color: #000;
934 934 opacity: .25;
935 935 filter: alpha(opacity=25);
936 936 }
937 937 .yui-skin-sam .yui-dt-message { background-color: #FFF }
938 938 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
939 939 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
940 940 border-left: 1px solid #7f7f7f;
941 941 border-top: 1px solid #7f7f7f;
942 942 border-right: 1px solid #7f7f7f;
943 943 }
944 944 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
945 945 border-left: 1px solid #7f7f7f;
946 946 border-bottom: 1px solid #7f7f7f;
947 947 border-right: 1px solid #7f7f7f;
948 948 background-color: #FFF;
949 949 }
950 950 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
951 951 .yui-skin-sam th.yui-dt-asc,
952 952 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
953 953 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
954 954 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
955 955 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
956 956 tbody .yui-dt-editable { cursor: pointer }
957 957 .yui-dt-editor {
958 958 text-align: left;
959 959 background-color: #f2f2f2;
960 960 border: 1px solid #808080;
961 961 padding: 6px;
962 962 }
963 963 .yui-dt-editor label {
964 964 padding-left: 4px;
965 965 padding-right: 6px;
966 966 }
967 967 .yui-dt-editor .yui-dt-button {
968 968 padding-top: 6px;
969 969 text-align: right;
970 970 }
971 971 .yui-dt-editor .yui-dt-button button {
972 972 background: url(../images/sprite.png) repeat-x 0 0;
973 973 border: 1px solid #999;
974 974 width: 4em;
975 975 height: 1.8em;
976 976 margin-left: 6px;
977 977 }
978 978 .yui-dt-editor .yui-dt-button button.yui-dt-default {
979 979 background: url(../images/sprite.png) repeat-x 0 -1400px;
980 980 background-color: #5584e0;
981 981 border: 1px solid #304369;
982 982 color: #FFF;
983 983 }
984 984 .yui-dt-editor .yui-dt-button button:hover {
985 985 background: url(../images/sprite.png) repeat-x 0 -1300px;
986 986 color: #000;
987 987 }
988 988 .yui-dt-editor .yui-dt-button button:active {
989 989 background: url(../images/sprite.png) repeat-x 0 -1700px;
990 990 color: #000;
991 991 }
992 992 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
993 993 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
994 994 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
995 995 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
996 996 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
997 997 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
998 998 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
999 999 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
1000 1000 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
1001 1001 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
1002 1002 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
1003 1003 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
1004 1004 .yui-skin-sam th.yui-dt-highlighted,
1005 1005 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
1006 1006 .yui-skin-sam tr.yui-dt-highlighted,
1007 1007 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
1008 1008 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
1009 1009 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
1010 1010 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
1011 1011 cursor: pointer;
1012 1012 background-color: #b2d2ff;
1013 1013 }
1014 1014 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
1015 1015 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
1016 1016 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
1017 1017 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
1018 1018 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
1019 1019 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
1020 1020 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
1021 1021 cursor: pointer;
1022 1022 background-color: #b2d2ff;
1023 1023 }
1024 1024 .yui-skin-sam th.yui-dt-selected,
1025 1025 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
1026 1026 .yui-skin-sam tr.yui-dt-selected td,
1027 1027 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
1028 1028 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
1029 1029 background-color: #426fd9;
1030 1030 color: #FFF;
1031 1031 }
1032 1032 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
1033 1033 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
1034 1034 background-color: #446cd7;
1035 1035 color: #FFF;
1036 1036 }
1037 1037 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
1038 1038 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
1039 1039 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
1040 1040 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
1041 1041 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
1042 1042 background-color: #426fd9;
1043 1043 color: #FFF;
1044 1044 }
1045 1045 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
1046 1046 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
1047 1047 background-color: #446cd7;
1048 1048 color: #FFF;
1049 1049 }
1050 1050 .yui-skin-sam .yui-dt-paginator {
1051 1051 display: block;
1052 1052 margin: 6px 0;
1053 1053 white-space: nowrap;
1054 1054 }
1055 1055 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
1056 1056 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
1057 1057 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
1058 1058 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
1059 1059 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
1060 1060 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
1061 1061 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
1062 1062 .yui-skin-sam a.yui-dt-page {
1063 1063 border: 1px solid #cbcbcb;
1064 1064 padding: 2px 6px;
1065 1065 text-decoration: none;
1066 1066 background-color: #fff;
1067 1067 }
1068 1068 .yui-skin-sam .yui-dt-selected {
1069 1069 border: 1px solid #fff;
1070 1070 background-color: #fff;
1071 1071 }
1072 1072
1073 1073 #content #left {
1074 1074 left: 0;
1075 1075 width: 280px;
1076 1076 position: absolute;
1077 1077 }
1078 1078
1079 1079 #content #right {
1080 1080 margin: 0 60px 10px 290px;
1081 1081 }
1082 1082
1083 1083 #content div.box {
1084 1084 clear: both;
1085 1085 overflow: hidden;
1086 1086 background: #fff;
1087 1087 margin: 0 0 10px;
1088 1088 padding: 0 0 10px;
1089 1089 -webkit-border-radius: 4px 4px 4px 4px;
1090 1090 -khtml-border-radius: 4px 4px 4px 4px;
1091 1091 -moz-border-radius: 4px 4px 4px 4px;
1092 1092 border-radius: 4px 4px 4px 4px;
1093 1093 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1094 1094 }
1095 1095
1096 1096 #content div.box-left {
1097 1097 width: 49%;
1098 1098 clear: none;
1099 1099 float: left;
1100 1100 margin: 0 0 10px;
1101 1101 }
1102 1102
1103 1103 #content div.box-right {
1104 1104 width: 49%;
1105 1105 clear: none;
1106 1106 float: right;
1107 1107 margin: 0 0 10px;
1108 1108 }
1109 1109
1110 1110 #content div.box div.title {
1111 1111 clear: both;
1112 1112 overflow: hidden;
1113 1113 background-color: #003B76;
1114 1114 background-repeat: repeat-x;
1115 1115 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
1116 1116 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1117 1117 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1118 1118 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
1119 1119 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
1120 1120 background-image: -o-linear-gradient(top, #003b76, #00376e);
1121 1121 background-image: linear-gradient(top, #003b76, #00376e);
1122 1122 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1123 1123 margin: 0 0 20px;
1124 1124 padding: 0;
1125 1125 }
1126 1126
1127 1127 #content div.box div.title h5 {
1128 1128 float: left;
1129 1129 border: none;
1130 1130 color: #fff;
1131 1131 text-transform: uppercase;
1132 1132 margin: 0;
1133 1133 padding: 11px 0 11px 10px;
1134 1134 }
1135 1135
1136 1136 #content div.box div.title .link-white{
1137 1137 color: #FFFFFF;
1138 1138 }
1139 1139
1140 1140 #content div.box div.title .link-white.current{
1141 1141 color: #BFE3FF;
1142 1142 }
1143 1143
1144 1144 #content div.box div.title ul.links li {
1145 1145 list-style: none;
1146 1146 float: left;
1147 1147 margin: 0;
1148 1148 padding: 0;
1149 1149 }
1150 1150
1151 1151 #content div.box div.title ul.links li a {
1152 1152 border-left: 1px solid #316293;
1153 1153 color: #FFFFFF;
1154 1154 display: block;
1155 1155 float: left;
1156 1156 font-size: 13px;
1157 1157 font-weight: 700;
1158 1158 height: 1%;
1159 1159 margin: 0;
1160 1160 padding: 11px 22px 12px;
1161 1161 text-decoration: none;
1162 1162 }
1163 1163
1164 1164 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6,
1165 1165 #content div.box div.h1,#content div.box div.h2,#content div.box div.h3,#content div.box div.h4,#content div.box div.h5,#content div.box div.h6
1166 1166
1167 1167 {
1168 1168 clear: both;
1169 1169 overflow: hidden;
1170 1170 border-bottom: 1px solid #DDD;
1171 1171 margin: 10px 20px;
1172 1172 padding: 0 0 15px;
1173 1173 }
1174 1174
1175 1175 #content div.box p {
1176 1176 color: #5f5f5f;
1177 1177 font-size: 12px;
1178 1178 line-height: 150%;
1179 1179 margin: 0 24px 10px;
1180 1180 padding: 0;
1181 1181 }
1182 1182
1183 1183 #content div.box blockquote {
1184 1184 border-left: 4px solid #DDD;
1185 1185 color: #5f5f5f;
1186 1186 font-size: 11px;
1187 1187 line-height: 150%;
1188 1188 margin: 0 34px;
1189 1189 padding: 0 0 0 14px;
1190 1190 }
1191 1191
1192 1192 #content div.box blockquote p {
1193 1193 margin: 10px 0;
1194 1194 padding: 0;
1195 1195 }
1196 1196
1197 1197 #content div.box dl {
1198 1198 margin: 10px 0px;
1199 1199 }
1200 1200
1201 1201 #content div.box dt {
1202 1202 font-size: 12px;
1203 1203 margin: 0;
1204 1204 }
1205 1205
1206 1206 #content div.box dd {
1207 1207 font-size: 12px;
1208 1208 margin: 0;
1209 1209 padding: 8px 0 8px 15px;
1210 1210 }
1211 1211
1212 1212 #content div.box li {
1213 1213 font-size: 12px;
1214 1214 padding: 4px 0;
1215 1215 }
1216 1216
1217 1217 #content div.box ul.disc,#content div.box ul.circle {
1218 1218 margin: 10px 24px 10px 38px;
1219 1219 }
1220 1220
1221 1221 #content div.box ul.square {
1222 1222 margin: 10px 24px 10px 40px;
1223 1223 }
1224 1224
1225 1225 #content div.box img.left {
1226 1226 border: none;
1227 1227 float: left;
1228 1228 margin: 10px 10px 10px 0;
1229 1229 }
1230 1230
1231 1231 #content div.box img.right {
1232 1232 border: none;
1233 1233 float: right;
1234 1234 margin: 10px 0 10px 10px;
1235 1235 }
1236 1236
1237 1237 #content div.box div.messages {
1238 1238 clear: both;
1239 1239 overflow: hidden;
1240 1240 margin: 0 20px;
1241 1241 padding: 0;
1242 1242 }
1243 1243
1244 1244 #content div.box div.message {
1245 1245 clear: both;
1246 1246 overflow: hidden;
1247 1247 margin: 0;
1248 1248 padding: 5px 0;
1249 1249 white-space: pre-wrap;
1250 1250 }
1251 1251 #content div.box div.expand {
1252 1252 width: 110%;
1253 1253 height:14px;
1254 1254 font-size:10px;
1255 1255 text-align:center;
1256 1256 cursor: pointer;
1257 1257 color:#666;
1258 1258
1259 1259 background:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(64,96,128,0.1)));
1260 1260 background:-webkit-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1261 1261 background:-moz-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1262 1262 background:-o-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1263 1263 background:-ms-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1264 1264 background:linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1265 1265
1266 1266 display: none;
1267 1267 }
1268 1268 #content div.box div.expand .expandtext {
1269 1269 background-color: #ffffff;
1270 1270 padding: 2px;
1271 1271 border-radius: 2px;
1272 1272 }
1273 1273
1274 1274 #content div.box div.message a {
1275 1275 font-weight: 400 !important;
1276 1276 }
1277 1277
1278 1278 #content div.box div.message div.image {
1279 1279 float: left;
1280 1280 margin: 9px 0 0 5px;
1281 1281 padding: 6px;
1282 1282 }
1283 1283
1284 1284 #content div.box div.message div.image img {
1285 1285 vertical-align: middle;
1286 1286 margin: 0;
1287 1287 }
1288 1288
1289 1289 #content div.box div.message div.text {
1290 1290 float: left;
1291 1291 margin: 0;
1292 1292 padding: 9px 6px;
1293 1293 }
1294 1294
1295 1295 #content div.box div.message div.dismiss a {
1296 1296 height: 16px;
1297 1297 width: 16px;
1298 1298 display: block;
1299 1299 background: url("../images/icons/cross.png") no-repeat;
1300 1300 margin: 15px 14px 0 0;
1301 1301 padding: 0;
1302 1302 }
1303 1303
1304 1304 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6
1305 1305 {
1306 1306 border: none;
1307 1307 margin: 0;
1308 1308 padding: 0;
1309 1309 }
1310 1310
1311 1311 #content div.box div.message div.text span {
1312 1312 height: 1%;
1313 1313 display: block;
1314 1314 margin: 0;
1315 1315 padding: 5px 0 0;
1316 1316 }
1317 1317
1318 1318 #content div.box div.message-error {
1319 1319 height: 1%;
1320 1320 clear: both;
1321 1321 overflow: hidden;
1322 1322 background: #FBE3E4;
1323 1323 border: 1px solid #FBC2C4;
1324 1324 color: #860006;
1325 1325 }
1326 1326
1327 1327 #content div.box div.message-error h6 {
1328 1328 color: #860006;
1329 1329 }
1330 1330
1331 1331 #content div.box div.message-warning {
1332 1332 height: 1%;
1333 1333 clear: both;
1334 1334 overflow: hidden;
1335 1335 background: #FFF6BF;
1336 1336 border: 1px solid #FFD324;
1337 1337 color: #5f5200;
1338 1338 }
1339 1339
1340 1340 #content div.box div.message-warning h6 {
1341 1341 color: #5f5200;
1342 1342 }
1343 1343
1344 1344 #content div.box div.message-notice {
1345 1345 height: 1%;
1346 1346 clear: both;
1347 1347 overflow: hidden;
1348 1348 background: #8FBDE0;
1349 1349 border: 1px solid #6BACDE;
1350 1350 color: #003863;
1351 1351 }
1352 1352
1353 1353 #content div.box div.message-notice h6 {
1354 1354 color: #003863;
1355 1355 }
1356 1356
1357 1357 #content div.box div.message-success {
1358 1358 height: 1%;
1359 1359 clear: both;
1360 1360 overflow: hidden;
1361 1361 background: #E6EFC2;
1362 1362 border: 1px solid #C6D880;
1363 1363 color: #4e6100;
1364 1364 }
1365 1365
1366 1366 #content div.box div.message-success h6 {
1367 1367 color: #4e6100;
1368 1368 }
1369 1369
1370 1370 #content div.box div.form div.fields div.field {
1371 1371 height: 1%;
1372 1372 border-bottom: 1px solid #DDD;
1373 1373 clear: both;
1374 1374 margin: 0;
1375 1375 padding: 10px 0;
1376 1376 }
1377 1377
1378 1378 #content div.box div.form div.fields div.field-first {
1379 1379 padding: 0 0 10px;
1380 1380 }
1381 1381
1382 1382 #content div.box div.form div.fields div.field-noborder {
1383 1383 border-bottom: 0 !important;
1384 1384 }
1385 1385
1386 1386 #content div.box div.form div.fields div.field span.error-message {
1387 1387 height: 1%;
1388 1388 display: inline-block;
1389 1389 color: red;
1390 1390 margin: 8px 0 0 4px;
1391 1391 padding: 0;
1392 1392 }
1393 1393
1394 1394 #content div.box div.form div.fields div.field span.success {
1395 1395 height: 1%;
1396 1396 display: block;
1397 1397 color: #316309;
1398 1398 margin: 8px 0 0;
1399 1399 padding: 0;
1400 1400 }
1401 1401
1402 1402 #content div.box div.form div.fields div.field div.label {
1403 1403 left: 70px;
1404 1404 width: 155px;
1405 1405 position: absolute;
1406 1406 margin: 0;
1407 1407 padding: 5px 0 0 0px;
1408 1408 }
1409 1409
1410 1410 #content div.box div.form div.fields div.field div.label-summary {
1411 1411 left: 30px;
1412 1412 width: 155px;
1413 1413 position: absolute;
1414 1414 margin: 0;
1415 1415 padding: 0px 0 0 0px;
1416 1416 }
1417 1417
1418 1418 #content div.box-left div.form div.fields div.field div.label,
1419 1419 #content div.box-right div.form div.fields div.field div.label,
1420 1420 #content div.box-left div.form div.fields div.field div.label,
1421 1421 #content div.box-left div.form div.fields div.field div.label-summary,
1422 1422 #content div.box-right div.form div.fields div.field div.label-summary,
1423 1423 #content div.box-left div.form div.fields div.field div.label-summary
1424 1424 {
1425 1425 clear: both;
1426 1426 overflow: hidden;
1427 1427 left: 0;
1428 1428 width: auto;
1429 1429 position: relative;
1430 1430 margin: 0;
1431 1431 padding: 0 0 8px;
1432 1432 }
1433 1433
1434 1434 #content div.box div.form div.fields div.field div.label-select {
1435 1435 padding: 5px 0 0 5px;
1436 1436 }
1437 1437
1438 1438 #content div.box-left div.form div.fields div.field div.label-select,
1439 1439 #content div.box-right div.form div.fields div.field div.label-select
1440 1440 {
1441 1441 padding: 0 0 8px;
1442 1442 }
1443 1443
1444 1444 #content div.box-left div.form div.fields div.field div.label-textarea,
1445 1445 #content div.box-right div.form div.fields div.field div.label-textarea
1446 1446 {
1447 1447 padding: 0 0 8px !important;
1448 1448 }
1449 1449
1450 1450 #content div.box div.form div.fields div.field div.label label,div.label label
1451 1451 {
1452 1452 color: #393939;
1453 1453 font-weight: 700;
1454 1454 }
1455 1455 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1456 1456 {
1457 1457 color: #393939;
1458 1458 font-weight: 700;
1459 1459 }
1460 1460 #content div.box div.form div.fields div.field div.input {
1461 1461 margin: 0 0 0 200px;
1462 1462 }
1463 1463
1464 1464 #content div.box div.form div.fields div.field div.input.summary {
1465 1465 margin: 0 0 0 110px;
1466 1466 }
1467 1467 #content div.box div.form div.fields div.field div.input.summary-short {
1468 1468 margin: 0 0 0 110px;
1469 1469 }
1470 1470 #content div.box div.form div.fields div.field div.file {
1471 1471 margin: 0 0 0 200px;
1472 1472 }
1473 1473
1474 1474 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1475 1475 {
1476 1476 margin: 0 0 0 0px;
1477 1477 }
1478 1478
1479 1479 #content div.box div.form div.fields div.field div.input input,
1480 1480 .reviewer_ac input {
1481 1481 background: #FFF;
1482 1482 border-top: 1px solid #b3b3b3;
1483 1483 border-left: 1px solid #b3b3b3;
1484 1484 border-right: 1px solid #eaeaea;
1485 1485 border-bottom: 1px solid #eaeaea;
1486 1486 color: #000;
1487 1487 font-size: 11px;
1488 1488 margin: 0;
1489 1489 padding: 7px 7px 6px;
1490 1490 }
1491 1491
1492 1492 #content div.box div.form div.fields div.field div.input input#clone_url,
1493 1493 #content div.box div.form div.fields div.field div.input input#clone_url_id
1494 1494 {
1495 1495 font-size: 16px;
1496 1496 padding: 2px;
1497 1497 }
1498 1498
1499 1499 #content div.box div.form div.fields div.field div.file input {
1500 1500 background: none repeat scroll 0 0 #FFFFFF;
1501 1501 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1502 1502 border-style: solid;
1503 1503 border-width: 1px;
1504 1504 color: #000000;
1505 1505 font-size: 11px;
1506 1506 margin: 0;
1507 1507 padding: 7px 7px 6px;
1508 1508 }
1509 1509
1510 1510 input.disabled {
1511 1511 background-color: #F5F5F5 !important;
1512 1512 }
1513 1513 #content div.box div.form div.fields div.field div.input input.small {
1514 1514 width: 30%;
1515 1515 }
1516 1516
1517 1517 #content div.box div.form div.fields div.field div.input input.medium {
1518 1518 width: 55%;
1519 1519 }
1520 1520
1521 1521 #content div.box div.form div.fields div.field div.input input.large {
1522 1522 width: 85%;
1523 1523 }
1524 1524
1525 1525 #content div.box div.form div.fields div.field div.input input.date {
1526 1526 width: 177px;
1527 1527 }
1528 1528
1529 1529 #content div.box div.form div.fields div.field div.input input.button {
1530 1530 background: #D4D0C8;
1531 1531 border-top: 1px solid #FFF;
1532 1532 border-left: 1px solid #FFF;
1533 1533 border-right: 1px solid #404040;
1534 1534 border-bottom: 1px solid #404040;
1535 1535 color: #000;
1536 1536 margin: 0;
1537 1537 padding: 4px 8px;
1538 1538 }
1539 1539
1540 1540 #content div.box div.form div.fields div.field div.textarea {
1541 1541 border-top: 1px solid #b3b3b3;
1542 1542 border-left: 1px solid #b3b3b3;
1543 1543 border-right: 1px solid #eaeaea;
1544 1544 border-bottom: 1px solid #eaeaea;
1545 1545 margin: 0 0 0 200px;
1546 1546 padding: 10px;
1547 1547 }
1548 1548
1549 1549 #content div.box div.form div.fields div.field div.textarea-editor {
1550 1550 border: 1px solid #ddd;
1551 1551 padding: 0;
1552 1552 }
1553 1553
1554 1554 #content div.box div.form div.fields div.field div.textarea textarea {
1555 1555 width: 100%;
1556 1556 height: 220px;
1557 1557 overflow: hidden;
1558 1558 background: #FFF;
1559 1559 color: #000;
1560 1560 font-size: 11px;
1561 1561 outline: none;
1562 1562 border-width: 0;
1563 1563 margin: 0;
1564 1564 padding: 0;
1565 1565 }
1566 1566
1567 1567 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea
1568 1568 {
1569 1569 width: 100%;
1570 1570 height: 100px;
1571 1571 }
1572 1572
1573 1573 #content div.box div.form div.fields div.field div.textarea table {
1574 1574 width: 100%;
1575 1575 border: none;
1576 1576 margin: 0;
1577 1577 padding: 0;
1578 1578 }
1579 1579
1580 1580 #content div.box div.form div.fields div.field div.textarea table td {
1581 1581 background: #DDD;
1582 1582 border: none;
1583 1583 padding: 0;
1584 1584 }
1585 1585
1586 1586 #content div.box div.form div.fields div.field div.textarea table td table
1587 1587 {
1588 1588 width: auto;
1589 1589 border: none;
1590 1590 margin: 0;
1591 1591 padding: 0;
1592 1592 }
1593 1593
1594 1594 #content div.box div.form div.fields div.field div.textarea table td table td
1595 1595 {
1596 1596 font-size: 11px;
1597 1597 padding: 5px 5px 5px 0;
1598 1598 }
1599 1599
1600 1600 #content div.box div.form div.fields div.field input[type=text]:focus,
1601 1601 #content div.box div.form div.fields div.field input[type=password]:focus,
1602 1602 #content div.box div.form div.fields div.field input[type=file]:focus,
1603 1603 #content div.box div.form div.fields div.field textarea:focus,
1604 1604 #content div.box div.form div.fields div.field select:focus,
1605 1605 .reviewer_ac input:focus
1606 1606 {
1607 1607 background: #f6f6f6;
1608 1608 border-color: #666;
1609 1609 }
1610 1610
1611 1611 .reviewer_ac {
1612 1612 padding:10px
1613 1613 }
1614 1614
1615 1615 div.form div.fields div.field div.button {
1616 1616 margin: 0;
1617 1617 padding: 0 0 0 8px;
1618 1618 }
1619 1619 #content div.box table.noborder {
1620 1620 border: 1px solid transparent;
1621 1621 }
1622 1622
1623 1623 #content div.box table {
1624 1624 width: 100%;
1625 1625 border-collapse: separate;
1626 1626 margin: 0;
1627 1627 padding: 0;
1628 1628 border: 1px solid #eee;
1629 1629 -webkit-border-radius: 4px;
1630 1630 -moz-border-radius: 4px;
1631 1631 border-radius: 4px;
1632 1632 }
1633 1633
1634 1634 #content div.box table th {
1635 1635 background: #eee;
1636 1636 border-bottom: 1px solid #ddd;
1637 1637 padding: 5px 0px 5px 5px;
1638 1638 text-align: left;
1639 1639 }
1640 1640
1641 1641 #content div.box table th.left {
1642 1642 text-align: left;
1643 1643 }
1644 1644
1645 1645 #content div.box table th.right {
1646 1646 text-align: right;
1647 1647 }
1648 1648
1649 1649 #content div.box table th.center {
1650 1650 text-align: center;
1651 1651 }
1652 1652
1653 1653 #content div.box table th.selected {
1654 1654 vertical-align: middle;
1655 1655 padding: 0;
1656 1656 }
1657 1657
1658 1658 #content div.box table td {
1659 1659 background: #fff;
1660 1660 border-bottom: 1px solid #cdcdcd;
1661 1661 vertical-align: middle;
1662 1662 padding: 5px;
1663 1663 }
1664 1664
1665 1665 #content div.box table tr.selected td {
1666 1666 background: #FFC;
1667 1667 }
1668 1668
1669 1669 #content div.box table td.selected {
1670 1670 width: 3%;
1671 1671 text-align: center;
1672 1672 vertical-align: middle;
1673 1673 padding: 0;
1674 1674 }
1675 1675
1676 1676 #content div.box table td.action {
1677 1677 width: 45%;
1678 1678 text-align: left;
1679 1679 }
1680 1680
1681 1681 #content div.box table td.date {
1682 1682 width: 33%;
1683 1683 text-align: center;
1684 1684 }
1685 1685
1686 1686 #content div.box div.action {
1687 1687 float: right;
1688 1688 background: #FFF;
1689 1689 text-align: right;
1690 1690 margin: 10px 0 0;
1691 1691 padding: 0;
1692 1692 }
1693 1693
1694 1694 #content div.box div.action select {
1695 1695 font-size: 11px;
1696 1696 margin: 0;
1697 1697 }
1698 1698
1699 1699 #content div.box div.action .ui-selectmenu {
1700 1700 margin: 0;
1701 1701 padding: 0;
1702 1702 }
1703 1703
1704 1704 #content div.box div.pagination {
1705 1705 height: 1%;
1706 1706 clear: both;
1707 1707 overflow: hidden;
1708 1708 margin: 10px 0 0;
1709 1709 padding: 0;
1710 1710 }
1711 1711
1712 1712 #content div.box div.pagination ul.pager {
1713 1713 float: right;
1714 1714 text-align: right;
1715 1715 margin: 0;
1716 1716 padding: 0;
1717 1717 }
1718 1718
1719 1719 #content div.box div.pagination ul.pager li {
1720 1720 height: 1%;
1721 1721 float: left;
1722 1722 list-style: none;
1723 1723 background: #ebebeb url("../images/pager.png") repeat-x;
1724 1724 border-top: 1px solid #dedede;
1725 1725 border-left: 1px solid #cfcfcf;
1726 1726 border-right: 1px solid #c4c4c4;
1727 1727 border-bottom: 1px solid #c4c4c4;
1728 1728 color: #4A4A4A;
1729 1729 font-weight: 700;
1730 1730 margin: 0 0 0 4px;
1731 1731 padding: 0;
1732 1732 }
1733 1733
1734 1734 #content div.box div.pagination ul.pager li.separator {
1735 1735 padding: 6px;
1736 1736 }
1737 1737
1738 1738 #content div.box div.pagination ul.pager li.current {
1739 1739 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1740 1740 border-top: 1px solid #ccc;
1741 1741 border-left: 1px solid #bebebe;
1742 1742 border-right: 1px solid #b1b1b1;
1743 1743 border-bottom: 1px solid #afafaf;
1744 1744 color: #515151;
1745 1745 padding: 6px;
1746 1746 }
1747 1747
1748 1748 #content div.box div.pagination ul.pager li a {
1749 1749 height: 1%;
1750 1750 display: block;
1751 1751 float: left;
1752 1752 color: #515151;
1753 1753 text-decoration: none;
1754 1754 margin: 0;
1755 1755 padding: 6px;
1756 1756 }
1757 1757
1758 1758 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1759 1759 {
1760 1760 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1761 1761 border-top: 1px solid #ccc;
1762 1762 border-left: 1px solid #bebebe;
1763 1763 border-right: 1px solid #b1b1b1;
1764 1764 border-bottom: 1px solid #afafaf;
1765 1765 margin: -1px;
1766 1766 }
1767 1767
1768 1768 #content div.box div.pagination-wh {
1769 1769 height: 1%;
1770 1770 clear: both;
1771 1771 overflow: hidden;
1772 1772 text-align: right;
1773 1773 margin: 10px 0 0;
1774 1774 padding: 0;
1775 1775 }
1776 1776
1777 1777 #content div.box div.pagination-right {
1778 1778 float: right;
1779 1779 }
1780 1780
1781 1781 #content div.box div.pagination-wh a,
1782 1782 #content div.box div.pagination-wh span.pager_dotdot,
1783 1783 #content div.box div.pagination-wh span.yui-pg-previous,
1784 1784 #content div.box div.pagination-wh span.yui-pg-last,
1785 1785 #content div.box div.pagination-wh span.yui-pg-next,
1786 1786 #content div.box div.pagination-wh span.yui-pg-first
1787 1787 {
1788 1788 height: 1%;
1789 1789 float: left;
1790 1790 background: #ebebeb url("../images/pager.png") repeat-x;
1791 1791 border-top: 1px solid #dedede;
1792 1792 border-left: 1px solid #cfcfcf;
1793 1793 border-right: 1px solid #c4c4c4;
1794 1794 border-bottom: 1px solid #c4c4c4;
1795 1795 color: #4A4A4A;
1796 1796 font-weight: 700;
1797 1797 margin: 0 0 0 4px;
1798 1798 padding: 6px;
1799 1799 }
1800 1800
1801 1801 #content div.box div.pagination-wh span.pager_curpage {
1802 1802 height: 1%;
1803 1803 float: left;
1804 1804 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1805 1805 border-top: 1px solid #ccc;
1806 1806 border-left: 1px solid #bebebe;
1807 1807 border-right: 1px solid #b1b1b1;
1808 1808 border-bottom: 1px solid #afafaf;
1809 1809 color: #515151;
1810 1810 font-weight: 700;
1811 1811 margin: 0 0 0 4px;
1812 1812 padding: 6px;
1813 1813 }
1814 1814
1815 1815 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1816 1816 {
1817 1817 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1818 1818 border-top: 1px solid #ccc;
1819 1819 border-left: 1px solid #bebebe;
1820 1820 border-right: 1px solid #b1b1b1;
1821 1821 border-bottom: 1px solid #afafaf;
1822 1822 text-decoration: none;
1823 1823 }
1824 1824
1825 1825 #content div.box div.traffic div.legend {
1826 1826 clear: both;
1827 1827 overflow: hidden;
1828 1828 border-bottom: 1px solid #ddd;
1829 1829 margin: 0 0 10px;
1830 1830 padding: 0 0 10px;
1831 1831 }
1832 1832
1833 1833 #content div.box div.traffic div.legend h6 {
1834 1834 float: left;
1835 1835 border: none;
1836 1836 margin: 0;
1837 1837 padding: 0;
1838 1838 }
1839 1839
1840 1840 #content div.box div.traffic div.legend li {
1841 1841 list-style: none;
1842 1842 float: left;
1843 1843 font-size: 11px;
1844 1844 margin: 0;
1845 1845 padding: 0 8px 0 4px;
1846 1846 }
1847 1847
1848 1848 #content div.box div.traffic div.legend li.visits {
1849 1849 border-left: 12px solid #edc240;
1850 1850 }
1851 1851
1852 1852 #content div.box div.traffic div.legend li.pageviews {
1853 1853 border-left: 12px solid #afd8f8;
1854 1854 }
1855 1855
1856 1856 #content div.box div.traffic table {
1857 1857 width: auto;
1858 1858 }
1859 1859
1860 1860 #content div.box div.traffic table td {
1861 1861 background: transparent;
1862 1862 border: none;
1863 1863 padding: 2px 3px 3px;
1864 1864 }
1865 1865
1866 1866 #content div.box div.traffic table td.legendLabel {
1867 1867 padding: 0 3px 2px;
1868 1868 }
1869 1869
1870 1870 #summary {
1871 1871
1872 1872 }
1873 1873
1874 1874 #summary .metatag {
1875 1875 display: inline-block;
1876 1876 padding: 3px 5px;
1877 1877 margin-bottom: 3px;
1878 1878 margin-right: 1px;
1879 1879 border-radius: 5px;
1880 1880 }
1881 1881
1882 1882 #content div.box #summary p {
1883 1883 margin-bottom: -5px;
1884 1884 width: 600px;
1885 1885 white-space: pre-wrap;
1886 1886 }
1887 1887
1888 1888 #content div.box #summary p:last-child {
1889 1889 margin-bottom: 9px;
1890 1890 }
1891 1891
1892 1892 #content div.box #summary p:first-of-type {
1893 1893 margin-top: 9px;
1894 1894 }
1895 1895
1896 1896 .metatag {
1897 1897 display: inline-block;
1898 1898 margin-right: 1px;
1899 1899 -webkit-border-radius: 4px 4px 4px 4px;
1900 1900 -khtml-border-radius: 4px 4px 4px 4px;
1901 1901 -moz-border-radius: 4px 4px 4px 4px;
1902 1902 border-radius: 4px 4px 4px 4px;
1903 1903
1904 1904 border: solid 1px #9CF;
1905 1905 padding: 2px 3px 2px 3px !important;
1906 1906 background-color: #DEF;
1907 1907 }
1908 1908
1909 1909 .metatag[tag="dead"] {
1910 1910 background-color: #E44;
1911 1911 }
1912 1912
1913 1913 .metatag[tag="stale"] {
1914 1914 background-color: #EA4;
1915 1915 }
1916 1916
1917 1917 .metatag[tag="featured"] {
1918 1918 background-color: #AEA;
1919 1919 }
1920 1920
1921 1921 .metatag[tag="requires"] {
1922 1922 background-color: #9CF;
1923 1923 }
1924 1924
1925 1925 .metatag[tag="recommends"] {
1926 1926 background-color: #BDF;
1927 1927 }
1928 1928
1929 1929 .metatag[tag="lang"] {
1930 1930 background-color: #FAF474;
1931 1931 }
1932 1932
1933 1933 .metatag[tag="license"] {
1934 1934 border: solid 1px #9CF;
1935 1935 background-color: #DEF;
1936 1936 target-new: tab !important;
1937 1937 }
1938 1938 .metatag[tag="see"] {
1939 1939 border: solid 1px #CBD;
1940 1940 background-color: #EDF;
1941 1941 }
1942 1942
1943 1943 a.metatag[tag="license"]:hover {
1944 1944 background-color: #003367;
1945 1945 color: #FFF;
1946 1946 text-decoration: none;
1947 1947 }
1948 1948
1949 1949 #summary .desc {
1950 1950 white-space: pre;
1951 1951 width: 100%;
1952 1952 }
1953 1953
1954 1954 #summary .repo_name {
1955 1955 font-size: 1.6em;
1956 1956 font-weight: bold;
1957 1957 vertical-align: baseline;
1958 1958 clear: right
1959 1959 }
1960 1960
1961 1961 #footer {
1962 1962 clear: both;
1963 1963 overflow: hidden;
1964 1964 text-align: right;
1965 1965 margin: 0;
1966 1966 padding: 0 10px 4px;
1967 1967 margin: -10px 0 0;
1968 1968 }
1969 1969
1970 1970 #footer div#footer-inner {
1971 1971 background-color: #003B76;
1972 1972 background-repeat : repeat-x;
1973 1973 background-image : -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1974 1974 background-image : -moz-linear-gradient(top, #003b76, #00376e);
1975 1975 background-image : -ms-linear-gradient( top, #003b76, #00376e);
1976 1976 background-image : -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1977 1977 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1978 1978 background-image : -o-linear-gradient( top, #003b76, #00376e));
1979 1979 background-image : linear-gradient( top, #003b76, #00376e);
1980 1980 filter :progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1981 1981 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1982 1982 -webkit-border-radius: 4px 4px 4px 4px;
1983 1983 -khtml-border-radius: 4px 4px 4px 4px;
1984 1984 -moz-border-radius: 4px 4px 4px 4px;
1985 1985 border-radius: 4px 4px 4px 4px;
1986 1986 }
1987 1987
1988 1988 #footer div#footer-inner p {
1989 1989 padding: 15px 25px 15px 0;
1990 1990 color: #FFF;
1991 1991 font-weight: 700;
1992 1992 }
1993 1993
1994 1994 #footer div#footer-inner .footer-link {
1995 1995 float: left;
1996 1996 padding-left: 10px;
1997 1997 }
1998 1998
1999 1999 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
2000 2000 {
2001 2001 color: #FFF;
2002 2002 }
2003 2003
2004 2004 #login div.title {
2005 2005 width: 420px;
2006 2006 clear: both;
2007 2007 overflow: hidden;
2008 2008 position: relative;
2009 2009 background-color: #003B76;
2010 2010 background-repeat : repeat-x;
2011 2011 background-image : -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
2012 2012 background-image : -moz-linear-gradient( top, #003b76, #00376e);
2013 2013 background-image : -ms-linear-gradient( top, #003b76, #00376e);
2014 2014 background-image : -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
2015 2015 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
2016 2016 background-image : -o-linear-gradient( top, #003b76, #00376e));
2017 2017 background-image : linear-gradient( top, #003b76, #00376e);
2018 2018 filter : progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
2019 2019 margin: 0 auto;
2020 2020 padding: 0;
2021 2021 }
2022 2022
2023 2023 #login div.inner {
2024 2024 width: 380px;
2025 2025 background: #FFF url("../images/login.png") no-repeat top left;
2026 2026 border-top: none;
2027 2027 border-bottom: none;
2028 2028 margin: 0 auto;
2029 2029 padding: 20px;
2030 2030 }
2031 2031
2032 2032 #login div.form div.fields div.field div.label {
2033 2033 width: 173px;
2034 2034 float: left;
2035 2035 text-align: right;
2036 2036 margin: 2px 10px 0 0;
2037 2037 padding: 5px 0 0 5px;
2038 2038 }
2039 2039
2040 2040 #login div.form div.fields div.field div.input input {
2041 2041 width: 176px;
2042 2042 background: #FFF;
2043 2043 border-top: 1px solid #b3b3b3;
2044 2044 border-left: 1px solid #b3b3b3;
2045 2045 border-right: 1px solid #eaeaea;
2046 2046 border-bottom: 1px solid #eaeaea;
2047 2047 color: #000;
2048 2048 font-size: 11px;
2049 2049 margin: 0;
2050 2050 padding: 7px 7px 6px;
2051 2051 }
2052 2052
2053 2053 #login div.form div.fields div.buttons {
2054 2054 clear: both;
2055 2055 overflow: hidden;
2056 2056 border-top: 1px solid #DDD;
2057 2057 text-align: right;
2058 2058 margin: 0;
2059 2059 padding: 10px 0 0;
2060 2060 }
2061 2061
2062 2062 #login div.form div.links {
2063 2063 clear: both;
2064 2064 overflow: hidden;
2065 2065 margin: 10px 0 0;
2066 2066 padding: 0 0 2px;
2067 2067 }
2068 2068
2069 2069 .user-menu{
2070 2070 margin: 0px !important;
2071 2071 float: left;
2072 2072 }
2073 2073
2074 2074 .user-menu .container{
2075 2075 padding:0px 4px 0px 4px;
2076 2076 margin: 0px 0px 0px 0px;
2077 2077 }
2078 2078
2079 2079 .user-menu .gravatar{
2080 2080 margin: 0px 0px 0px 0px;
2081 2081 cursor: pointer;
2082 2082 }
2083 2083 .user-menu .gravatar.enabled{
2084 2084 background-color: #FDF784 !important;
2085 2085 }
2086 2086 .user-menu .gravatar:hover{
2087 2087 background-color: #FDF784 !important;
2088 2088 }
2089 2089 #quick_login{
2090 2090 min-height: 80px;
2091 2091 margin: 37px 0 0 -251px;
2092 2092 padding: 4px;
2093 2093 position: absolute;
2094 2094 width: 278px;
2095 2095 background-color: #003B76;
2096 2096 background-repeat: repeat-x;
2097 2097 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
2098 2098 background-image: -moz-linear-gradient(top, #003b76, #00376e);
2099 2099 background-image: -ms-linear-gradient(top, #003b76, #00376e);
2100 2100 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
2101 2101 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
2102 2102 background-image: -o-linear-gradient(top, #003b76, #00376e);
2103 2103 background-image: linear-gradient(top, #003b76, #00376e);
2104 2104 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
2105 2105
2106 2106 z-index: 999;
2107 2107 -webkit-border-radius: 0px 0px 4px 4px;
2108 2108 -khtml-border-radius: 0px 0px 4px 4px;
2109 2109 -moz-border-radius: 0px 0px 4px 4px;
2110 2110 border-radius: 0px 0px 4px 4px;
2111 2111 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2112 2112 }
2113 2113 #quick_login h4{
2114 2114 color: #fff;
2115 2115 padding: 5px 0px 5px 14px;
2116 2116 }
2117 2117
2118 2118 #quick_login .password_forgoten {
2119 2119 padding-right: 10px;
2120 2120 padding-top: 0px;
2121 2121 text-align: left;
2122 2122 }
2123 2123
2124 2124 #quick_login .password_forgoten a {
2125 2125 font-size: 10px;
2126 2126 color: #fff;
2127 2127 }
2128 2128
2129 2129 #quick_login .register {
2130 2130 padding-right: 10px;
2131 2131 padding-top: 5px;
2132 2132 text-align: left;
2133 2133 }
2134 2134
2135 2135 #quick_login .register a {
2136 2136 font-size: 10px;
2137 2137 color: #fff;
2138 2138 }
2139 2139
2140 2140 #quick_login .submit {
2141 2141 margin: -20px 0 0 0px;
2142 2142 position: absolute;
2143 2143 right: 15px;
2144 2144 }
2145 2145
2146 2146 #quick_login .links_left{
2147 2147 float: left;
2148 2148 }
2149 2149 #quick_login .links_right{
2150 2150 float: right;
2151 2151 }
2152 2152 #quick_login .full_name{
2153 2153 color: #FFFFFF;
2154 2154 font-weight: bold;
2155 2155 padding: 3px;
2156 2156 }
2157 2157 #quick_login .big_gravatar{
2158 2158 padding:4px 0px 0px 6px;
2159 2159 }
2160 2160 #quick_login .inbox{
2161 2161 padding:4px 0px 0px 6px;
2162 2162 color: #FFFFFF;
2163 2163 font-weight: bold;
2164 2164 }
2165 2165 #quick_login .inbox a{
2166 2166 color: #FFFFFF;
2167 2167 }
2168 2168 #quick_login .email,#quick_login .email a{
2169 2169 color: #FFFFFF;
2170 2170 padding: 3px;
2171 2171
2172 2172 }
2173 2173 #quick_login .links .logout{
2174 2174
2175 2175 }
2176 2176
2177 2177 #quick_login div.form div.fields {
2178 2178 padding-top: 2px;
2179 2179 padding-left: 10px;
2180 2180 }
2181 2181
2182 2182 #quick_login div.form div.fields div.field {
2183 2183 padding: 5px;
2184 2184 }
2185 2185
2186 2186 #quick_login div.form div.fields div.field div.label label {
2187 2187 color: #fff;
2188 2188 padding-bottom: 3px;
2189 2189 }
2190 2190
2191 2191 #quick_login div.form div.fields div.field div.input input {
2192 2192 width: 236px;
2193 2193 background: #FFF;
2194 2194 border-top: 1px solid #b3b3b3;
2195 2195 border-left: 1px solid #b3b3b3;
2196 2196 border-right: 1px solid #eaeaea;
2197 2197 border-bottom: 1px solid #eaeaea;
2198 2198 color: #000;
2199 2199 font-size: 11px;
2200 2200 margin: 0;
2201 2201 padding: 5px 7px 4px;
2202 2202 }
2203 2203
2204 2204 #quick_login div.form div.fields div.buttons {
2205 2205 clear: both;
2206 2206 overflow: hidden;
2207 2207 text-align: right;
2208 2208 margin: 0;
2209 2209 padding: 5px 14px 0px 5px;
2210 2210 }
2211 2211
2212 2212 #quick_login div.form div.links {
2213 2213 clear: both;
2214 2214 overflow: hidden;
2215 2215 margin: 10px 0 0;
2216 2216 padding: 0 0 2px;
2217 2217 }
2218 2218
2219 2219 #quick_login ol.links{
2220 2220 display: block;
2221 2221 font-weight: bold;
2222 2222 list-style: none outside none;
2223 2223 text-align: right;
2224 2224 }
2225 2225 #quick_login ol.links li{
2226 2226 line-height: 27px;
2227 2227 margin: 0;
2228 2228 padding: 0;
2229 2229 color: #fff;
2230 2230 display: block;
2231 2231 float:none !important;
2232 2232 }
2233 2233
2234 2234 #quick_login ol.links li a{
2235 2235 color: #fff;
2236 2236 display: block;
2237 2237 padding: 2px;
2238 2238 }
2239 2239 #quick_login ol.links li a:HOVER{
2240 2240 background-color: inherit !important;
2241 2241 }
2242 2242
2243 2243 #register div.title {
2244 2244 clear: both;
2245 2245 overflow: hidden;
2246 2246 position: relative;
2247 2247 background-color: #003B76;
2248 2248 background-repeat: repeat-x;
2249 2249 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
2250 2250 background-image: -moz-linear-gradient(top, #003b76, #00376e);
2251 2251 background-image: -ms-linear-gradient(top, #003b76, #00376e);
2252 2252 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
2253 2253 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
2254 2254 background-image: -o-linear-gradient(top, #003b76, #00376e);
2255 2255 background-image: linear-gradient(top, #003b76, #00376e);
2256 2256 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
2257 2257 endColorstr='#00376e', GradientType=0 );
2258 2258 margin: 0 auto;
2259 2259 padding: 0;
2260 2260 }
2261 2261
2262 2262 #register div.inner {
2263 2263 background: #FFF;
2264 2264 border-top: none;
2265 2265 border-bottom: none;
2266 2266 margin: 0 auto;
2267 2267 padding: 20px;
2268 2268 }
2269 2269
2270 2270 #register div.form div.fields div.field div.label {
2271 2271 width: 135px;
2272 2272 float: left;
2273 2273 text-align: right;
2274 2274 margin: 2px 10px 0 0;
2275 2275 padding: 5px 0 0 5px;
2276 2276 }
2277 2277
2278 2278 #register div.form div.fields div.field div.input input {
2279 2279 width: 300px;
2280 2280 background: #FFF;
2281 2281 border-top: 1px solid #b3b3b3;
2282 2282 border-left: 1px solid #b3b3b3;
2283 2283 border-right: 1px solid #eaeaea;
2284 2284 border-bottom: 1px solid #eaeaea;
2285 2285 color: #000;
2286 2286 font-size: 11px;
2287 2287 margin: 0;
2288 2288 padding: 7px 7px 6px;
2289 2289 }
2290 2290
2291 2291 #register div.form div.fields div.buttons {
2292 2292 clear: both;
2293 2293 overflow: hidden;
2294 2294 border-top: 1px solid #DDD;
2295 2295 text-align: left;
2296 2296 margin: 0;
2297 2297 padding: 10px 0 0 150px;
2298 2298 }
2299 2299
2300 2300 #register div.form div.activation_msg {
2301 2301 padding-top: 4px;
2302 2302 padding-bottom: 4px;
2303 2303 }
2304 2304
2305 2305 #journal .journal_day {
2306 2306 font-size: 20px;
2307 2307 padding: 10px 0px;
2308 2308 border-bottom: 2px solid #DDD;
2309 2309 margin-left: 10px;
2310 2310 margin-right: 10px;
2311 2311 }
2312 2312
2313 2313 #journal .journal_container {
2314 2314 padding: 5px;
2315 2315 clear: both;
2316 2316 margin: 0px 5px 0px 10px;
2317 2317 }
2318 2318
2319 2319 #journal .journal_action_container {
2320 2320 padding-left: 38px;
2321 2321 }
2322 2322
2323 2323 #journal .journal_user {
2324 2324 color: #747474;
2325 2325 font-size: 14px;
2326 2326 font-weight: bold;
2327 2327 height: 30px;
2328 2328 }
2329 2329
2330 2330 #journal .journal_user.deleted {
2331 2331 color: #747474;
2332 2332 font-size: 14px;
2333 2333 font-weight: normal;
2334 2334 height: 30px;
2335 2335 font-style: italic;
2336 2336 }
2337 2337
2338 2338
2339 2339 #journal .journal_icon {
2340 2340 clear: both;
2341 2341 float: left;
2342 2342 padding-right: 4px;
2343 2343 padding-top: 3px;
2344 2344 }
2345 2345
2346 2346 #journal .journal_action {
2347 2347 padding-top: 4px;
2348 2348 min-height: 2px;
2349 2349 float: left
2350 2350 }
2351 2351
2352 2352 #journal .journal_action_params {
2353 2353 clear: left;
2354 2354 padding-left: 22px;
2355 2355 }
2356 2356
2357 2357 #journal .journal_repo {
2358 2358 float: left;
2359 2359 margin-left: 6px;
2360 2360 padding-top: 3px;
2361 2361 }
2362 2362
2363 2363 #journal .date {
2364 2364 clear: both;
2365 2365 color: #777777;
2366 2366 font-size: 11px;
2367 2367 padding-left: 22px;
2368 2368 }
2369 2369
2370 2370 #journal .journal_repo .journal_repo_name {
2371 2371 font-weight: bold;
2372 2372 font-size: 1.1em;
2373 2373 }
2374 2374
2375 2375 #journal .compare_view {
2376 2376 padding: 5px 0px 5px 0px;
2377 2377 width: 95px;
2378 2378 }
2379 2379
2380 2380 .journal_highlight {
2381 2381 font-weight: bold;
2382 2382 padding: 0 2px;
2383 2383 vertical-align: bottom;
2384 2384 }
2385 2385
2386 2386 .trending_language_tbl,.trending_language_tbl td {
2387 2387 border: 0 !important;
2388 2388 margin: 0 !important;
2389 2389 padding: 0 !important;
2390 2390 }
2391 2391
2392 2392 .trending_language_tbl,.trending_language_tbl tr {
2393 2393 border-spacing: 1px;
2394 2394 }
2395 2395
2396 2396 .trending_language {
2397 2397 background-color: #003367;
2398 2398 color: #FFF;
2399 2399 display: block;
2400 2400 min-width: 20px;
2401 2401 text-decoration: none;
2402 2402 height: 12px;
2403 2403 margin-bottom: 0px;
2404 2404 margin-left: 5px;
2405 2405 white-space: pre;
2406 2406 padding: 3px;
2407 2407 }
2408 2408
2409 2409 h3.files_location {
2410 2410 font-size: 1.8em;
2411 2411 font-weight: 700;
2412 2412 border-bottom: none !important;
2413 2413 margin: 10px 0 !important;
2414 2414 }
2415 2415
2416 2416 #files_data dl dt {
2417 2417 float: left;
2418 2418 width: 60px;
2419 2419 margin: 0 !important;
2420 2420 padding: 5px;
2421 2421 }
2422 2422
2423 2423 #files_data dl dd {
2424 2424 margin: 0 !important;
2425 2425 padding: 5px !important;
2426 2426 }
2427 2427
2428 2428 .file_history{
2429 2429 padding-top:10px;
2430 2430 font-size:16px;
2431 2431 }
2432 2432 .file_author{
2433 2433 float: left;
2434 2434 }
2435 2435
2436 2436 .file_author .item{
2437 2437 float:left;
2438 2438 padding:5px;
2439 2439 color: #888;
2440 2440 }
2441 2441
2442 2442 .tablerow0 {
2443 2443 background-color: #F8F8F8;
2444 2444 }
2445 2445
2446 2446 .tablerow1 {
2447 2447 background-color: #FFFFFF;
2448 2448 }
2449 2449
2450 2450 .changeset_id {
2451 2451 font-family: monospace;
2452 2452 color: #666666;
2453 2453 }
2454 2454
2455 2455 .changeset_hash {
2456 2456 color: #000000;
2457 2457 }
2458 2458
2459 2459 #changeset_content {
2460 2460 border-left: 1px solid #CCC;
2461 2461 border-right: 1px solid #CCC;
2462 2462 border-bottom: 1px solid #CCC;
2463 2463 padding: 5px;
2464 2464 }
2465 2465
2466 2466 #changeset_compare_view_content {
2467 2467 border: 1px solid #CCC;
2468 2468 padding: 5px;
2469 2469 }
2470 2470
2471 2471 #changeset_content .container {
2472 2472 min-height: 100px;
2473 2473 font-size: 1.2em;
2474 2474 overflow: hidden;
2475 2475 }
2476 2476
2477 2477 #changeset_compare_view_content .compare_view_commits {
2478 2478 width: auto !important;
2479 2479 }
2480 2480
2481 2481 #changeset_compare_view_content .compare_view_commits td {
2482 2482 padding: 0px 0px 0px 12px !important;
2483 2483 }
2484 2484
2485 2485 #changeset_content .container .right {
2486 2486 float: right;
2487 2487 width: 20%;
2488 2488 text-align: right;
2489 2489 }
2490 2490
2491 2491 #changeset_content .container .left .message {
2492 2492 white-space: pre-wrap;
2493 2493 }
2494 2494 #changeset_content .container .left .message a:hover {
2495 2495 text-decoration: none;
2496 2496 }
2497 2497 .cs_files .cur_cs {
2498 2498 margin: 10px 2px;
2499 2499 font-weight: bold;
2500 2500 }
2501 2501
2502 2502 .cs_files .node {
2503 2503 float: left;
2504 2504 }
2505 2505
2506 2506 .cs_files .changes {
2507 2507 float: right;
2508 2508 color:#003367;
2509 2509
2510 2510 }
2511 2511
2512 2512 .cs_files .changes .added {
2513 2513 background-color: #BBFFBB;
2514 2514 float: left;
2515 2515 text-align: center;
2516 2516 font-size: 9px;
2517 2517 padding: 2px 0px 2px 0px;
2518 2518 }
2519 2519
2520 2520 .cs_files .changes .deleted {
2521 2521 background-color: #FF8888;
2522 2522 float: left;
2523 2523 text-align: center;
2524 2524 font-size: 9px;
2525 2525 padding: 2px 0px 2px 0px;
2526 2526 }
2527 2527 /*new binary*/
2528 2528 .cs_files .changes .bin1 {
2529 2529 background-color: #BBFFBB;
2530 2530 float: left;
2531 2531 text-align: center;
2532 2532 font-size: 9px;
2533 2533 padding: 2px 0px 2px 0px;
2534 2534 }
2535 2535
2536 2536 /*deleted binary*/
2537 2537 .cs_files .changes .bin2 {
2538 2538 background-color: #FF8888;
2539 2539 float: left;
2540 2540 text-align: center;
2541 2541 font-size: 9px;
2542 2542 padding: 2px 0px 2px 0px;
2543 2543 }
2544 2544
2545 2545 /*mod binary*/
2546 2546 .cs_files .changes .bin3 {
2547 2547 background-color: #DDDDDD;
2548 2548 float: left;
2549 2549 text-align: center;
2550 2550 font-size: 9px;
2551 2551 padding: 2px 0px 2px 0px;
2552 2552 }
2553 2553
2554 2554 /*rename file*/
2555 2555 .cs_files .changes .bin4 {
2556 2556 background-color: #6D99FF;
2557 2557 float: left;
2558 2558 text-align: center;
2559 2559 font-size: 9px;
2560 2560 padding: 2px 0px 2px 0px;
2561 2561 }
2562 2562
2563 2563
2564 2564 .cs_files .cs_added,.cs_files .cs_A {
2565 2565 background: url("../images/icons/page_white_add.png") no-repeat scroll
2566 2566 3px;
2567 2567 height: 16px;
2568 2568 padding-left: 20px;
2569 2569 margin-top: 7px;
2570 2570 text-align: left;
2571 2571 }
2572 2572
2573 2573 .cs_files .cs_changed,.cs_files .cs_M {
2574 2574 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2575 2575 3px;
2576 2576 height: 16px;
2577 2577 padding-left: 20px;
2578 2578 margin-top: 7px;
2579 2579 text-align: left;
2580 2580 }
2581 2581
2582 2582 .cs_files .cs_removed,.cs_files .cs_D {
2583 2583 background: url("../images/icons/page_white_delete.png") no-repeat
2584 2584 scroll 3px;
2585 2585 height: 16px;
2586 2586 padding-left: 20px;
2587 2587 margin-top: 7px;
2588 2588 text-align: left;
2589 2589 }
2590 2590
2591 2591 #graph {
2592 2592 overflow: hidden;
2593 2593 }
2594 2594
2595 2595 #graph_nodes {
2596 2596 float: left;
2597 2597 margin-right: 0px;
2598 2598 margin-top: 0px;
2599 2599 }
2600 2600
2601 2601 #graph_content {
2602 2602 width: 80%;
2603 2603 float: left;
2604 2604 }
2605 2605
2606 2606 #graph_content .container_header {
2607 2607 border-bottom: 1px solid #DDD;
2608 2608 padding: 10px;
2609 2609 height: 25px;
2610 2610 }
2611 2611
2612 2612 #graph_content #rev_range_container {
2613 2613 float: left;
2614 2614 margin: 0px 0px 0px 3px;
2615 2615 }
2616 2616
2617 2617 #graph_content #rev_range_clear {
2618 2618 float: left;
2619 2619 margin: 0px 0px 0px 3px;
2620 2620 }
2621 2621
2622 2622 #graph_content .container {
2623 2623 border-bottom: 1px solid #DDD;
2624 2624 height: 56px;
2625 2625 overflow: hidden;
2626 2626 }
2627 2627
2628 2628 #graph_content .container .right {
2629 2629 float: right;
2630 2630 width: 23%;
2631 2631 text-align: right;
2632 2632 }
2633 2633
2634 2634 #graph_content .container .left {
2635 2635 float: left;
2636 2636 width: 25%;
2637 2637 padding-left: 5px;
2638 2638 }
2639 2639
2640 2640 #graph_content .container .mid {
2641 2641 float: left;
2642 2642 width: 49%;
2643 2643 }
2644 2644
2645 2645
2646 2646 #graph_content .container .left .date {
2647 2647 color: #666;
2648 2648 padding-left: 22px;
2649 2649 font-size: 10px;
2650 2650 }
2651 2651
2652 2652 #graph_content .container .left .author {
2653 2653 height: 22px;
2654 2654 }
2655 2655
2656 2656 #graph_content .container .left .author .user {
2657 2657 color: #444444;
2658 2658 float: left;
2659 2659 margin-left: -4px;
2660 2660 margin-top: 4px;
2661 2661 }
2662 2662
2663 2663 #graph_content .container .mid .message {
2664 2664 white-space: pre-wrap;
2665 2665 }
2666 2666
2667 2667 #graph_content .container .mid .message a:hover{
2668 2668 text-decoration: none;
2669 2669 }
2670 2670
2671 2671 .revision-link
2672 2672 {
2673 2673 color:#3F6F9F;
2674 2674 font-weight: bold !important;
2675 2675 }
2676 2676
2677 2677 .issue-tracker-link{
2678 2678 color:#3F6F9F;
2679 2679 font-weight: bold !important;
2680 2680 }
2681 2681
2682 2682 .changeset-status-container{
2683 2683 padding-right: 5px;
2684 2684 margin-top:1px;
2685 2685 float:right;
2686 2686 height:14px;
2687 2687 }
2688 2688 .code-header .changeset-status-container{
2689 2689 float:left;
2690 2690 padding:2px 0px 0px 2px;
2691 2691 }
2692 2692 .changeset-status-container .changeset-status-lbl{
2693 2693 color: rgb(136, 136, 136);
2694 2694 float: left;
2695 2695 padding: 3px 4px 0px 0px
2696 2696 }
2697 2697 .code-header .changeset-status-container .changeset-status-lbl{
2698 2698 float: left;
2699 2699 padding: 0px 4px 0px 0px;
2700 2700 }
2701 2701 .changeset-status-container .changeset-status-ico{
2702 2702 float: left;
2703 2703 }
2704 2704 .code-header .changeset-status-container .changeset-status-ico, .container .changeset-status-ico{
2705 2705 float: left;
2706 2706 }
2707 2707 .right .comments-container{
2708 2708 padding-right: 5px;
2709 2709 margin-top:1px;
2710 2710 float:right;
2711 2711 height:14px;
2712 2712 }
2713 2713
2714 2714 .right .comments-cnt{
2715 2715 float: left;
2716 2716 color: rgb(136, 136, 136);
2717 2717 padding-right: 2px;
2718 2718 }
2719 2719
2720 2720 .right .changes{
2721 2721 clear: both;
2722 2722 }
2723 2723
2724 2724 .right .changes .changed_total {
2725 2725 display: block;
2726 2726 float: right;
2727 2727 text-align: center;
2728 2728 min-width: 45px;
2729 2729 cursor: pointer;
2730 2730 color: #444444;
2731 2731 background: #FEA;
2732 2732 -webkit-border-radius: 0px 0px 0px 6px;
2733 2733 -moz-border-radius: 0px 0px 0px 6px;
2734 2734 border-radius: 0px 0px 0px 6px;
2735 2735 padding: 1px;
2736 2736 }
2737 2737
2738 2738 .right .changes .added,.changed,.removed {
2739 2739 display: block;
2740 2740 padding: 1px;
2741 2741 color: #444444;
2742 2742 float: right;
2743 2743 text-align: center;
2744 2744 min-width: 15px;
2745 2745 }
2746 2746
2747 2747 .right .changes .added {
2748 2748 background: #CFC;
2749 2749 }
2750 2750
2751 2751 .right .changes .changed {
2752 2752 background: #FEA;
2753 2753 }
2754 2754
2755 2755 .right .changes .removed {
2756 2756 background: #FAA;
2757 2757 }
2758 2758
2759 2759 .right .merge {
2760 2760 padding: 1px 3px 1px 3px;
2761 2761 background-color: #fca062;
2762 2762 font-size: 10px;
2763 2763 font-weight: bold;
2764 2764 color: #ffffff;
2765 2765 text-transform: uppercase;
2766 2766 white-space: nowrap;
2767 2767 -webkit-border-radius: 3px;
2768 2768 -moz-border-radius: 3px;
2769 2769 border-radius: 3px;
2770 2770 margin-right: 2px;
2771 2771 }
2772 2772
2773 2773 .right .parent {
2774 2774 color: #666666;
2775 2775 clear:both;
2776 2776 }
2777 2777 .right .logtags{
2778 2778 padding: 2px 2px 2px 2px;
2779 2779 }
2780 2780 .right .logtags .branchtag,.right .logtags .tagtag,.right .logtags .booktag{
2781 2781 margin: 0px 2px;
2782 2782 }
2783 2783
2784 2784 .right .logtags .branchtag,.logtags .branchtag {
2785 2785 padding: 1px 3px 1px 3px;
2786 2786 background-color: #bfbfbf;
2787 2787 font-size: 10px;
2788 2788 font-weight: bold;
2789 2789 color: #ffffff;
2790 2790 text-transform: uppercase;
2791 2791 white-space: nowrap;
2792 2792 -webkit-border-radius: 3px;
2793 2793 -moz-border-radius: 3px;
2794 2794 border-radius: 3px;
2795 2795 }
2796 2796 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2797 2797 color: #ffffff;
2798 2798 }
2799 2799 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2800 2800 text-decoration: none;
2801 2801 color: #ffffff;
2802 2802 }
2803 2803 .right .logtags .tagtag,.logtags .tagtag {
2804 2804 padding: 1px 3px 1px 3px;
2805 2805 background-color: #62cffc;
2806 2806 font-size: 10px;
2807 2807 font-weight: bold;
2808 2808 color: #ffffff;
2809 2809 text-transform: uppercase;
2810 2810 white-space: nowrap;
2811 2811 -webkit-border-radius: 3px;
2812 2812 -moz-border-radius: 3px;
2813 2813 border-radius: 3px;
2814 2814 }
2815 2815 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2816 2816 color: #ffffff;
2817 2817 }
2818 2818 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2819 2819 text-decoration: none;
2820 2820 color: #ffffff;
2821 2821 }
2822 2822 .right .logbooks .bookbook,.logbooks .bookbook,.right .logtags .bookbook,.logtags .bookbook {
2823 2823 padding: 1px 3px 1px 3px;
2824 2824 background-color: #46A546;
2825 2825 font-size: 10px;
2826 2826 font-weight: bold;
2827 2827 color: #ffffff;
2828 2828 text-transform: uppercase;
2829 2829 white-space: nowrap;
2830 2830 -webkit-border-radius: 3px;
2831 2831 -moz-border-radius: 3px;
2832 2832 border-radius: 3px;
2833 2833 }
2834 2834 .right .logbooks .bookbook,.logbooks .bookbook a,.right .logtags .bookbook,.logtags .bookbook a{
2835 2835 color: #ffffff;
2836 2836 }
2837 2837 .right .logbooks .bookbook,.logbooks .bookbook a:hover,.right .logtags .bookbook,.logtags .bookbook a:hover{
2838 2838 text-decoration: none;
2839 2839 color: #ffffff;
2840 2840 }
2841 2841 div.browserblock {
2842 2842 overflow: hidden;
2843 2843 border: 1px solid #ccc;
2844 2844 background: #f8f8f8;
2845 2845 font-size: 100%;
2846 2846 line-height: 125%;
2847 2847 padding: 0;
2848 2848 -webkit-border-radius: 6px 6px 0px 0px;
2849 2849 -moz-border-radius: 6px 6px 0px 0px;
2850 2850 border-radius: 6px 6px 0px 0px;
2851 2851 }
2852 2852
2853 2853 div.browserblock .browser-header {
2854 2854 background: #FFF;
2855 2855 padding: 10px 0px 15px 0px;
2856 2856 width: 100%;
2857 2857 }
2858 2858
2859 2859 div.browserblock .browser-nav {
2860 2860 float: left
2861 2861 }
2862 2862
2863 2863 div.browserblock .browser-branch {
2864 2864 float: left;
2865 2865 }
2866 2866
2867 2867 div.browserblock .browser-branch label {
2868 2868 color: #4A4A4A;
2869 2869 vertical-align: text-top;
2870 2870 }
2871 2871
2872 2872 div.browserblock .browser-header span {
2873 2873 margin-left: 5px;
2874 2874 font-weight: 700;
2875 2875 }
2876 2876
2877 2877 div.browserblock .browser-search {
2878 2878 clear: both;
2879 2879 padding: 8px 8px 0px 5px;
2880 2880 height: 20px;
2881 2881 }
2882 2882
2883 2883 div.browserblock #node_filter_box {
2884 2884
2885 2885 }
2886 2886
2887 2887 div.browserblock .search_activate {
2888 2888 float: left
2889 2889 }
2890 2890
2891 2891 div.browserblock .add_node {
2892 2892 float: left;
2893 2893 padding-left: 5px;
2894 2894 }
2895 2895
2896 2896 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2897 2897 {
2898 2898 text-decoration: none !important;
2899 2899 }
2900 2900
2901 2901 div.browserblock .browser-body {
2902 2902 background: #EEE;
2903 2903 border-top: 1px solid #CCC;
2904 2904 }
2905 2905
2906 2906 table.code-browser {
2907 2907 border-collapse: collapse;
2908 2908 width: 100%;
2909 2909 }
2910 2910
2911 2911 table.code-browser tr {
2912 2912 margin: 3px;
2913 2913 }
2914 2914
2915 2915 table.code-browser thead th {
2916 2916 background-color: #EEE;
2917 2917 height: 20px;
2918 2918 font-size: 1.1em;
2919 2919 font-weight: 700;
2920 2920 text-align: left;
2921 2921 padding-left: 10px;
2922 2922 }
2923 2923
2924 2924 table.code-browser tbody td {
2925 2925 padding-left: 10px;
2926 2926 height: 20px;
2927 2927 }
2928 2928
2929 2929 table.code-browser .browser-file {
2930 2930 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2931 2931 height: 16px;
2932 2932 padding-left: 20px;
2933 2933 text-align: left;
2934 2934 }
2935 2935 .diffblock .changeset_header {
2936 2936 height: 16px;
2937 2937 }
2938 2938 .diffblock .changeset_file {
2939 2939 background: url("../images/icons/file.png") no-repeat scroll 3px;
2940 2940 text-align: left;
2941 2941 float: left;
2942 2942 padding: 2px 0px 2px 22px;
2943 2943 }
2944 2944 .diffblock .diff-menu-wrapper{
2945 2945 float: left;
2946 2946 }
2947 2947
2948 2948 .diffblock .diff-menu{
2949 2949 position: absolute;
2950 2950 background: none repeat scroll 0 0 #FFFFFF;
2951 2951 border-color: #003367 #666666 #666666;
2952 2952 border-right: 1px solid #666666;
2953 2953 border-style: solid solid solid;
2954 2954 border-width: 1px;
2955 2955 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
2956 2956 margin-top:5px;
2957 2957 margin-left:1px;
2958 2958
2959 2959 }
2960 2960 .diffblock .diff-actions {
2961 2961 padding: 2px 0px 0px 2px;
2962 2962 float: left;
2963 2963 }
2964 2964 .diffblock .diff-menu ul li {
2965 2965 padding: 0px 0px 0px 0px !important;
2966 2966 }
2967 2967 .diffblock .diff-menu ul li a{
2968 2968 display: block;
2969 2969 padding: 3px 8px 3px 8px !important;
2970 2970 }
2971 2971 .diffblock .diff-menu ul li a:hover{
2972 2972 text-decoration: none;
2973 2973 background-color: #EEEEEE;
2974 2974 }
2975 2975 table.code-browser .browser-dir {
2976 2976 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2977 2977 height: 16px;
2978 2978 padding-left: 20px;
2979 2979 text-align: left;
2980 2980 }
2981 2981
2982 2982 table.code-browser .submodule-dir {
2983 2983 background: url("../images/icons/disconnect.png") no-repeat scroll 3px;
2984 2984 height: 16px;
2985 2985 padding-left: 20px;
2986 2986 text-align: left;
2987 2987 }
2988 2988
2989 2989
2990 2990 .box .search {
2991 2991 clear: both;
2992 2992 overflow: hidden;
2993 2993 margin: 0;
2994 2994 padding: 0 20px 10px;
2995 2995 }
2996 2996
2997 2997 .box .search div.search_path {
2998 2998 background: none repeat scroll 0 0 #EEE;
2999 2999 border: 1px solid #CCC;
3000 3000 color: blue;
3001 3001 margin-bottom: 10px;
3002 3002 padding: 10px 0;
3003 3003 }
3004 3004
3005 3005 .box .search div.search_path div.link {
3006 3006 font-weight: 700;
3007 3007 margin-left: 25px;
3008 3008 }
3009 3009
3010 3010 .box .search div.search_path div.link a {
3011 3011 color: #003367;
3012 3012 cursor: pointer;
3013 3013 text-decoration: none;
3014 3014 }
3015 3015
3016 3016 #path_unlock {
3017 3017 color: red;
3018 3018 font-size: 1.2em;
3019 3019 padding-left: 4px;
3020 3020 }
3021 3021
3022 3022 .info_box span {
3023 3023 margin-left: 3px;
3024 3024 margin-right: 3px;
3025 3025 }
3026 3026
3027 3027 .info_box .rev {
3028 3028 color: #003367;
3029 3029 font-size: 1.6em;
3030 3030 font-weight: bold;
3031 3031 vertical-align: sub;
3032 3032 }
3033 3033
3034 3034 .info_box input#at_rev,.info_box input#size {
3035 3035 background: #FFF;
3036 3036 border-top: 1px solid #b3b3b3;
3037 3037 border-left: 1px solid #b3b3b3;
3038 3038 border-right: 1px solid #eaeaea;
3039 3039 border-bottom: 1px solid #eaeaea;
3040 3040 color: #000;
3041 3041 font-size: 12px;
3042 3042 margin: 0;
3043 3043 padding: 1px 5px 1px;
3044 3044 }
3045 3045
3046 3046 .info_box input#view {
3047 3047 text-align: center;
3048 3048 padding: 4px 3px 2px 2px;
3049 3049 }
3050 3050
3051 3051 .yui-overlay,.yui-panel-container {
3052 3052 visibility: hidden;
3053 3053 position: absolute;
3054 3054 z-index: 2;
3055 3055 }
3056 3056
3057 3057 #tip-box {
3058 3058 position: absolute;
3059 3059
3060 3060 background-color: #FFF;
3061 3061 border: 2px solid #003367;
3062 3062 font: 100% sans-serif;
3063 3063 width: auto;
3064 3064 opacity: 1px;
3065 3065 padding: 8px;
3066 3066
3067 3067 white-space: pre-wrap;
3068 3068 -webkit-border-radius: 8px 8px 8px 8px;
3069 3069 -khtml-border-radius: 8px 8px 8px 8px;
3070 3070 -moz-border-radius: 8px 8px 8px 8px;
3071 3071 border-radius: 8px 8px 8px 8px;
3072 3072 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3073 3073 -moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3074 3074 -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3075 3075 }
3076 3076
3077 .hl-tip-box {
3078 visibility: hidden;
3079 position: absolute;
3080 color: #666;
3081 background-color: #FFF;
3082 border: 2px solid #003367;
3083 font: 100% sans-serif;
3084 width: auto;
3085 opacity: 1px;
3086 padding: 8px;
3087 white-space: pre-wrap;
3088 -webkit-border-radius: 8px 8px 8px 8px;
3089 -khtml-border-radius: 8px 8px 8px 8px;
3090 -moz-border-radius: 8px 8px 8px 8px;
3091 border-radius: 8px 8px 8px 8px;
3092 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3093 }
3094
3095
3077 3096 .mentions-container{
3078 3097 width: 90% !important;
3079 3098 }
3080 3099 .mentions-container .yui-ac-content{
3081 3100 width: 100% !important;
3082 3101 }
3083 3102
3084 3103 .ac {
3085 3104 vertical-align: top;
3086 3105 }
3087 3106
3088 3107 .ac .yui-ac {
3089 3108 position: inherit;
3090 3109 font-size: 100%;
3091 3110 }
3092 3111
3093 3112 .ac .perm_ac {
3094 3113 width: 20em;
3095 3114 }
3096 3115
3097 3116 .ac .yui-ac-input {
3098 3117 width: 100%;
3099 3118 }
3100 3119
3101 3120 .ac .yui-ac-container {
3102 3121 position: absolute;
3103 3122 top: 1.6em;
3104 3123 width: auto;
3105 3124 }
3106 3125
3107 3126 .ac .yui-ac-content {
3108 3127 position: absolute;
3109 3128 border: 1px solid gray;
3110 3129 background: #fff;
3111 3130 z-index: 9050;
3112 3131
3113 3132 }
3114 3133
3115 3134 .ac .yui-ac-shadow {
3116 3135 position: absolute;
3117 3136 width: 100%;
3118 3137 background: #000;
3119 3138 -moz-opacity: 0.1px;
3120 3139 opacity: .10;
3121 3140 filter: alpha(opacity = 10);
3122 3141 z-index: 9049;
3123 3142 margin: .3em;
3124 3143 }
3125 3144
3126 3145 .ac .yui-ac-content ul {
3127 3146 width: 100%;
3128 3147 margin: 0;
3129 3148 padding: 0;
3130 3149 z-index: 9050;
3131 3150 }
3132 3151
3133 3152 .ac .yui-ac-content li {
3134 3153 cursor: default;
3135 3154 white-space: nowrap;
3136 3155 margin: 0;
3137 3156 padding: 2px 5px;
3138 3157 height: 18px;
3139 3158 z-index: 9050;
3140 3159 display: block;
3141 3160 width: auto !important;
3142 3161 }
3143 3162
3144 3163 .ac .yui-ac-content li .ac-container-wrap{
3145 3164 width: auto;
3146 3165 }
3147 3166
3148 3167 .ac .yui-ac-content li.yui-ac-prehighlight {
3149 3168 background: #B3D4FF;
3150 3169 z-index: 9050;
3151 3170 }
3152 3171
3153 3172 .ac .yui-ac-content li.yui-ac-highlight {
3154 3173 background: #556CB5;
3155 3174 color: #FFF;
3156 3175 z-index: 9050;
3157 3176 }
3158 3177 .ac .yui-ac-bd{
3159 3178 z-index: 9050;
3160 3179 }
3161 3180
3162 3181 .follow {
3163 3182 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
3164 3183 height: 16px;
3165 3184 width: 20px;
3166 3185 cursor: pointer;
3167 3186 display: block;
3168 3187 float: right;
3169 3188 margin-top: 2px;
3170 3189 }
3171 3190
3172 3191 .following {
3173 3192 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
3174 3193 height: 16px;
3175 3194 width: 20px;
3176 3195 cursor: pointer;
3177 3196 display: block;
3178 3197 float: right;
3179 3198 margin-top: 2px;
3180 3199 }
3181 3200
3182 3201 .locking_locked{
3183 3202 background: #FFF url("../images/icons/block_16.png") no-repeat scroll 3px;
3184 3203 height: 16px;
3185 3204 width: 20px;
3186 3205 cursor: pointer;
3187 3206 display: block;
3188 3207 float: right;
3189 3208 margin-top: 2px;
3190 3209 }
3191 3210
3192 3211 .locking_unlocked{
3193 3212 background: #FFF url("../images/icons/accept.png") no-repeat scroll 3px;
3194 3213 height: 16px;
3195 3214 width: 20px;
3196 3215 cursor: pointer;
3197 3216 display: block;
3198 3217 float: right;
3199 3218 margin-top: 2px;
3200 3219 }
3201 3220
3202 3221 .currently_following {
3203 3222 padding-left: 10px;
3204 3223 padding-bottom: 5px;
3205 3224 }
3206 3225
3207 3226 .add_icon {
3208 3227 background: url("../images/icons/add.png") no-repeat scroll 3px;
3209 3228 padding-left: 20px;
3210 3229 padding-top: 0px;
3211 3230 text-align: left;
3212 3231 }
3213 3232
3214 3233 .accept_icon {
3215 3234 background: url("../images/icons/accept.png") no-repeat scroll 3px;
3216 3235 padding-left: 20px;
3217 3236 padding-top: 0px;
3218 3237 text-align: left;
3219 3238 }
3220 3239
3221 3240 .edit_icon {
3222 3241 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
3223 3242 padding-left: 20px;
3224 3243 padding-top: 0px;
3225 3244 text-align: left;
3226 3245 }
3227 3246
3228 3247 .delete_icon {
3229 3248 background: url("../images/icons/delete.png") no-repeat scroll 3px;
3230 3249 padding-left: 20px;
3231 3250 padding-top: 0px;
3232 3251 text-align: left;
3233 3252 }
3234 3253
3235 3254 .refresh_icon {
3236 3255 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
3237 3256 3px;
3238 3257 padding-left: 20px;
3239 3258 padding-top: 0px;
3240 3259 text-align: left;
3241 3260 }
3242 3261
3243 3262 .pull_icon {
3244 3263 background: url("../images/icons/connect.png") no-repeat scroll 3px;
3245 3264 padding-left: 20px;
3246 3265 padding-top: 0px;
3247 3266 text-align: left;
3248 3267 }
3249 3268
3250 3269 .rss_icon {
3251 3270 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
3252 3271 padding-left: 20px;
3253 3272 padding-top: 4px;
3254 3273 text-align: left;
3255 3274 font-size: 8px
3256 3275 }
3257 3276
3258 3277 .atom_icon {
3259 3278 background: url("../images/icons/atom.png") no-repeat scroll 3px;
3260 3279 padding-left: 20px;
3261 3280 padding-top: 4px;
3262 3281 text-align: left;
3263 3282 font-size: 8px
3264 3283 }
3265 3284
3266 3285 .archive_icon {
3267 3286 background: url("../images/icons/compress.png") no-repeat scroll 3px;
3268 3287 padding-left: 20px;
3269 3288 text-align: left;
3270 3289 padding-top: 1px;
3271 3290 }
3272 3291
3273 3292 .start_following_icon {
3274 3293 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
3275 3294 padding-left: 20px;
3276 3295 text-align: left;
3277 3296 padding-top: 0px;
3278 3297 }
3279 3298
3280 3299 .stop_following_icon {
3281 3300 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
3282 3301 padding-left: 20px;
3283 3302 text-align: left;
3284 3303 padding-top: 0px;
3285 3304 }
3286 3305
3287 3306 .action_button {
3288 3307 border: 0;
3289 3308 display: inline;
3290 3309 }
3291 3310
3292 3311 .action_button:hover {
3293 3312 border: 0;
3294 3313 text-decoration: underline;
3295 3314 cursor: pointer;
3296 3315 }
3297 3316
3298 3317 #switch_repos {
3299 3318 position: absolute;
3300 3319 height: 25px;
3301 3320 z-index: 1;
3302 3321 }
3303 3322
3304 3323 #switch_repos select {
3305 3324 min-width: 150px;
3306 3325 max-height: 250px;
3307 3326 z-index: 1;
3308 3327 }
3309 3328
3310 3329 .breadcrumbs {
3311 3330 border: medium none;
3312 3331 color: #FFF;
3313 3332 float: left;
3314 3333 text-transform: uppercase;
3315 3334 font-weight: 700;
3316 3335 font-size: 14px;
3317 3336 margin: 0;
3318 3337 padding: 11px 0 11px 10px;
3319 3338 }
3320 3339
3321 3340 .breadcrumbs .hash {
3322 3341 text-transform: none;
3323 3342 color: #fff;
3324 3343 }
3325 3344
3326 3345 .breadcrumbs a {
3327 3346 color: #FFF;
3328 3347 }
3329 3348
3330 3349 .flash_msg {
3331 3350
3332 3351 }
3333 3352
3334 3353 .flash_msg ul {
3335 3354
3336 3355 }
3337 3356
3338 3357 .error_red {
3339 3358 color:red;
3340 3359 }
3341 3360
3342 3361 .error_msg {
3343 3362 background-color: #c43c35;
3344 3363 background-repeat: repeat-x;
3345 3364 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35) );
3346 3365 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3347 3366 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3348 3367 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35) );
3349 3368 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3350 3369 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3351 3370 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3352 3371 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35', GradientType=0 );
3353 3372 border-color: #c43c35 #c43c35 #882a25;
3354 3373 }
3355 3374
3356 3375 .warning_msg {
3357 3376 color: #404040 !important;
3358 3377 background-color: #eedc94;
3359 3378 background-repeat: repeat-x;
3360 3379 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94) );
3361 3380 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
3362 3381 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
3363 3382 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94) );
3364 3383 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
3365 3384 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
3366 3385 background-image: linear-gradient(top, #fceec1, #eedc94);
3367 3386 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0 );
3368 3387 border-color: #eedc94 #eedc94 #e4c652;
3369 3388 }
3370 3389
3371 3390 .success_msg {
3372 3391 background-color: #57a957;
3373 3392 background-repeat: repeat-x !important;
3374 3393 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) );
3375 3394 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3376 3395 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3377 3396 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) );
3378 3397 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3379 3398 background-image: -o-linear-gradient(top, #62c462, #57a957);
3380 3399 background-image: linear-gradient(top, #62c462, #57a957);
3381 3400 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
3382 3401 border-color: #57a957 #57a957 #3d773d;
3383 3402 }
3384 3403
3385 3404 .notice_msg {
3386 3405 background-color: #339bb9;
3387 3406 background-repeat: repeat-x;
3388 3407 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) );
3389 3408 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3390 3409 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3391 3410 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) );
3392 3411 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3393 3412 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3394 3413 background-image: linear-gradient(top, #5bc0de, #339bb9);
3395 3414 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0 );
3396 3415 border-color: #339bb9 #339bb9 #22697d;
3397 3416 }
3398 3417
3399 3418 .success_msg,.error_msg,.notice_msg,.warning_msg {
3400 3419 font-size: 12px;
3401 3420 font-weight: 700;
3402 3421 min-height: 14px;
3403 3422 line-height: 14px;
3404 3423 margin-bottom: 10px;
3405 3424 margin-top: 0;
3406 3425 display: block;
3407 3426 overflow: auto;
3408 3427 padding: 6px 10px 6px 10px;
3409 3428 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3410 3429 position: relative;
3411 3430 color: #FFF;
3412 3431 border-width: 1px;
3413 3432 border-style: solid;
3414 3433 -webkit-border-radius: 4px;
3415 3434 -moz-border-radius: 4px;
3416 3435 border-radius: 4px;
3417 3436 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3418 3437 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3419 3438 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3420 3439 }
3421 3440
3422 3441 #msg_close {
3423 3442 background: transparent url("../icons/cross_grey_small.png") no-repeat scroll 0 0;
3424 3443 cursor: pointer;
3425 3444 height: 16px;
3426 3445 position: absolute;
3427 3446 right: 5px;
3428 3447 top: 5px;
3429 3448 width: 16px;
3430 3449 }
3431 3450 div#legend_data{
3432 3451 padding-left:10px;
3433 3452 }
3434 3453 div#legend_container table{
3435 3454 border: none !important;
3436 3455 }
3437 3456 div#legend_container table,div#legend_choices table {
3438 3457 width: auto !important;
3439 3458 }
3440 3459
3441 3460 table#permissions_manage {
3442 3461 width: 0 !important;
3443 3462 }
3444 3463
3445 3464 table#permissions_manage span.private_repo_msg {
3446 3465 font-size: 0.8em;
3447 3466 opacity: 0.6px;
3448 3467 }
3449 3468
3450 3469 table#permissions_manage td.private_repo_msg {
3451 3470 font-size: 0.8em;
3452 3471 }
3453 3472
3454 3473 table#permissions_manage tr#add_perm_input td {
3455 3474 vertical-align: middle;
3456 3475 }
3457 3476
3458 3477 div.gravatar {
3459 3478 background-color: #FFF;
3460 3479 float: left;
3461 3480 margin-right: 0.7em;
3462 3481 padding: 1px 1px 1px 1px;
3463 3482 line-height:0;
3464 3483 -webkit-border-radius: 3px;
3465 3484 -khtml-border-radius: 3px;
3466 3485 -moz-border-radius: 3px;
3467 3486 border-radius: 3px;
3468 3487 }
3469 3488
3470 3489 div.gravatar img {
3471 3490 -webkit-border-radius: 2px;
3472 3491 -khtml-border-radius: 2px;
3473 3492 -moz-border-radius: 2px;
3474 3493 border-radius: 2px;
3475 3494 }
3476 3495
3477 3496 #header,#content,#footer {
3478 3497 min-width: 978px;
3479 3498 }
3480 3499
3481 3500 #content {
3482 3501 clear: both;
3483 3502 overflow: hidden;
3484 3503 padding: 54px 10px 14px 10px;
3485 3504 }
3486 3505
3487 3506 #content div.box div.title div.search {
3488 3507
3489 3508 border-left: 1px solid #316293;
3490 3509 }
3491 3510
3492 3511 #content div.box div.title div.search div.input input {
3493 3512 border: 1px solid #316293;
3494 3513 }
3495 3514
3496 3515 .ui-btn{
3497 3516 color: #515151;
3498 3517 background-color: #DADADA;
3499 3518 background-repeat: repeat-x;
3500 3519 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3501 3520 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3502 3521 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3503 3522 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3504 3523 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3505 3524 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3506 3525 background-image: linear-gradient(top, #F4F4F4, #DADADA);
3507 3526 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3508 3527
3509 3528 border-top: 1px solid #DDD;
3510 3529 border-left: 1px solid #c6c6c6;
3511 3530 border-right: 1px solid #DDD;
3512 3531 border-bottom: 1px solid #c6c6c6;
3513 3532 color: #515151;
3514 3533 outline: none;
3515 3534 margin: 0px 3px 3px 0px;
3516 3535 -webkit-border-radius: 4px 4px 4px 4px !important;
3517 3536 -khtml-border-radius: 4px 4px 4px 4px !important;
3518 3537 -moz-border-radius: 4px 4px 4px 4px !important;
3519 3538 border-radius: 4px 4px 4px 4px !important;
3520 3539 cursor: pointer !important;
3521 3540 padding: 3px 3px 3px 3px;
3522 3541 background-position: 0 -15px;
3523 3542
3524 3543 }
3525 3544 .ui-btn.xsmall{
3526 3545 padding: 1px 2px 1px 1px;
3527 3546 }
3528 3547
3529 3548 .ui-btn.large{
3530 3549 padding: 6px 12px;
3531 3550 }
3532 3551
3533 3552 .ui-btn.clone{
3534 3553 padding: 5px 2px 6px 1px;
3535 3554 margin: 0px -4px 3px 0px;
3536 3555 -webkit-border-radius: 4px 0px 0px 4px !important;
3537 3556 -khtml-border-radius: 4px 0px 0px 4px !important;
3538 3557 -moz-border-radius: 4px 0px 0px 4px !important;
3539 3558 border-radius: 4px 0px 0px 4px !important;
3540 3559 width: 100px;
3541 3560 text-align: center;
3542 3561 float: left;
3543 3562 position: absolute;
3544 3563 }
3545 3564 .ui-btn:focus {
3546 3565 outline: none;
3547 3566 }
3548 3567 .ui-btn:hover{
3549 3568 background-position: 0 0px;
3550 3569 text-decoration: none;
3551 3570 color: #515151;
3552 3571 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3553 3572 }
3554 3573
3555 3574 .ui-btn.red{
3556 3575 color:#fff;
3557 3576 background-color: #c43c35;
3558 3577 background-repeat: repeat-x;
3559 3578 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3560 3579 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3561 3580 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3562 3581 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3563 3582 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3564 3583 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3565 3584 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3566 3585 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3567 3586 border-color: #c43c35 #c43c35 #882a25;
3568 3587 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3569 3588 }
3570 3589
3571 3590
3572 3591 .ui-btn.blue{
3573 3592 color:#fff;
3574 3593 background-color: #339bb9;
3575 3594 background-repeat: repeat-x;
3576 3595 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3577 3596 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3578 3597 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3579 3598 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3580 3599 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3581 3600 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3582 3601 background-image: linear-gradient(top, #5bc0de, #339bb9);
3583 3602 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3584 3603 border-color: #339bb9 #339bb9 #22697d;
3585 3604 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3586 3605 }
3587 3606
3588 3607 .ui-btn.green{
3589 3608 background-color: #57a957;
3590 3609 background-repeat: repeat-x;
3591 3610 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3592 3611 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3593 3612 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3594 3613 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3595 3614 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3596 3615 background-image: -o-linear-gradient(top, #62c462, #57a957);
3597 3616 background-image: linear-gradient(top, #62c462, #57a957);
3598 3617 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3599 3618 border-color: #57a957 #57a957 #3d773d;
3600 3619 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3601 3620 }
3602 3621
3603 3622 .ui-btn.active{
3604 3623 font-weight: bold;
3605 3624 }
3606 3625
3607 3626 ins,div.options a:hover {
3608 3627 text-decoration: none;
3609 3628 }
3610 3629
3611 3630 img,
3612 3631 #header #header-inner #quick li a:hover span.normal,
3613 3632 #header #header-inner #quick li ul li.last,
3614 3633 #content div.box div.form div.fields div.field div.textarea table td table td a,
3615 3634 #clone_url,
3616 3635 #clone_url_id
3617 3636 {
3618 3637 border: none;
3619 3638 }
3620 3639
3621 3640 img.icon,.right .merge img {
3622 3641 vertical-align: bottom;
3623 3642 }
3624 3643
3625 3644 #header ul#logged-user,#content div.box div.title ul.links,
3626 3645 #content div.box div.message div.dismiss,
3627 3646 #content div.box div.traffic div.legend ul
3628 3647 {
3629 3648 float: right;
3630 3649 margin: 0;
3631 3650 padding: 0;
3632 3651 }
3633 3652
3634 3653 #header #header-inner #home,#header #header-inner #logo,
3635 3654 #content div.box ul.left,#content div.box ol.left,
3636 3655 #content div.box div.pagination-left,div#commit_history,
3637 3656 div#legend_data,div#legend_container,div#legend_choices
3638 3657 {
3639 3658 float: left;
3640 3659 }
3641 3660
3642 3661 #header #header-inner #quick li:hover ul ul,
3643 3662 #header #header-inner #quick li:hover ul ul ul,
3644 3663 #header #header-inner #quick li:hover ul ul ul ul,
3645 3664 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
3646 3665 {
3647 3666 display: none;
3648 3667 }
3649 3668
3650 3669 #header #header-inner #quick li:hover ul,#header #header-inner #quick li li:hover ul,#header #header-inner #quick li li li:hover ul,#header #header-inner #quick li li li li:hover ul,#content #left #menu ul.opened,#content #left #menu li ul.expanded
3651 3670 {
3652 3671 display: block;
3653 3672 }
3654 3673
3655 3674 #content div.graph {
3656 3675 padding: 0 10px 10px;
3657 3676 }
3658 3677
3659 3678 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
3660 3679 {
3661 3680 color: #bfe3ff;
3662 3681 }
3663 3682
3664 3683 #content div.box ol.lower-roman,#content div.box ol.upper-roman,#content div.box ol.lower-alpha,#content div.box ol.upper-alpha,#content div.box ol.decimal
3665 3684 {
3666 3685 margin: 10px 24px 10px 44px;
3667 3686 }
3668 3687
3669 3688 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
3670 3689 {
3671 3690 clear: both;
3672 3691 overflow: hidden;
3673 3692 margin: 0;
3674 3693 padding: 0 20px 10px;
3675 3694 }
3676 3695
3677 3696 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
3678 3697 {
3679 3698 clear: both;
3680 3699 overflow: hidden;
3681 3700 margin: 0;
3682 3701 padding: 0;
3683 3702 }
3684 3703
3685 3704 #content div.box div.form div.fields div.field div.label span,#login div.form div.fields div.field div.label span,#register div.form div.fields div.field div.label span
3686 3705 {
3687 3706 height: 1%;
3688 3707 display: block;
3689 3708 color: #363636;
3690 3709 margin: 0;
3691 3710 padding: 2px 0 0;
3692 3711 }
3693 3712
3694 3713 #content div.box div.form div.fields div.field div.input input.error,#login div.form div.fields div.field div.input input.error,#register div.form div.fields div.field div.input input.error
3695 3714 {
3696 3715 background: #FBE3E4;
3697 3716 border-top: 1px solid #e1b2b3;
3698 3717 border-left: 1px solid #e1b2b3;
3699 3718 border-right: 1px solid #FBC2C4;
3700 3719 border-bottom: 1px solid #FBC2C4;
3701 3720 }
3702 3721
3703 3722 #content div.box div.form div.fields div.field div.input input.success,#login div.form div.fields div.field div.input input.success,#register div.form div.fields div.field div.input input.success
3704 3723 {
3705 3724 background: #E6EFC2;
3706 3725 border-top: 1px solid #cebb98;
3707 3726 border-left: 1px solid #cebb98;
3708 3727 border-right: 1px solid #c6d880;
3709 3728 border-bottom: 1px solid #c6d880;
3710 3729 }
3711 3730
3712 3731 #content div.box-left div.form div.fields div.field div.textarea,#content div.box-right div.form div.fields div.field div.textarea,#content div.box div.form div.fields div.field div.select select,#content div.box table th.selected input,#content div.box table td.selected input
3713 3732 {
3714 3733 margin: 0;
3715 3734 }
3716 3735
3717 3736 #content div.box-left div.form div.fields div.field div.select,#content div.box-left div.form div.fields div.field div.checkboxes,#content div.box-left div.form div.fields div.field div.radios,#content div.box-right div.form div.fields div.field div.select,#content div.box-right div.form div.fields div.field div.checkboxes,#content div.box-right div.form div.fields div.field div.radios
3718 3737 {
3719 3738 margin: 0 0 0 0px !important;
3720 3739 padding: 0;
3721 3740 }
3722 3741
3723 3742 #content div.box div.form div.fields div.field div.select,#content div.box div.form div.fields div.field div.checkboxes,#content div.box div.form div.fields div.field div.radios
3724 3743 {
3725 3744 margin: 0 0 0 200px;
3726 3745 padding: 0;
3727 3746 }
3728 3747
3729 3748 #content div.box div.form div.fields div.field div.select a:hover,#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,#content div.box div.action a:hover
3730 3749 {
3731 3750 color: #000;
3732 3751 text-decoration: none;
3733 3752 }
3734 3753
3735 3754 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
3736 3755 {
3737 3756 border: 1px solid #666;
3738 3757 }
3739 3758
3740 3759 #content div.box div.form div.fields div.field div.checkboxes div.checkbox,#content div.box div.form div.fields div.field div.radios div.radio
3741 3760 {
3742 3761 clear: both;
3743 3762 overflow: hidden;
3744 3763 margin: 0;
3745 3764 padding: 8px 0 2px;
3746 3765 }
3747 3766
3748 3767 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input,#content div.box div.form div.fields div.field div.radios div.radio input
3749 3768 {
3750 3769 float: left;
3751 3770 margin: 0;
3752 3771 }
3753 3772
3754 3773 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label,#content div.box div.form div.fields div.field div.radios div.radio label
3755 3774 {
3756 3775 height: 1%;
3757 3776 display: block;
3758 3777 float: left;
3759 3778 margin: 2px 0 0 4px;
3760 3779 }
3761 3780
3762 3781 div.form div.fields div.field div.button input,
3763 3782 #content div.box div.form div.fields div.buttons input
3764 3783 div.form div.fields div.buttons input,
3765 3784 #content div.box div.action div.button input {
3766 3785 /*color: #000;*/
3767 3786 font-size: 11px;
3768 3787 font-weight: 700;
3769 3788 margin: 0;
3770 3789 }
3771 3790
3772 3791 input.ui-button {
3773 3792 background: #e5e3e3 url("../images/button.png") repeat-x;
3774 3793 border-top: 1px solid #DDD;
3775 3794 border-left: 1px solid #c6c6c6;
3776 3795 border-right: 1px solid #DDD;
3777 3796 border-bottom: 1px solid #c6c6c6;
3778 3797 color: #515151 !important;
3779 3798 outline: none;
3780 3799 margin: 0;
3781 3800 padding: 6px 12px;
3782 3801 -webkit-border-radius: 4px 4px 4px 4px;
3783 3802 -khtml-border-radius: 4px 4px 4px 4px;
3784 3803 -moz-border-radius: 4px 4px 4px 4px;
3785 3804 border-radius: 4px 4px 4px 4px;
3786 3805 box-shadow: 0 1px 0 #ececec;
3787 3806 cursor: pointer;
3788 3807 }
3789 3808
3790 3809 input.ui-button:hover {
3791 3810 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3792 3811 border-top: 1px solid #ccc;
3793 3812 border-left: 1px solid #bebebe;
3794 3813 border-right: 1px solid #b1b1b1;
3795 3814 border-bottom: 1px solid #afafaf;
3796 3815 }
3797 3816
3798 3817 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
3799 3818 {
3800 3819 display: inline;
3801 3820 }
3802 3821
3803 3822 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3804 3823 {
3805 3824 margin: 10px 0 0 200px;
3806 3825 padding: 0;
3807 3826 }
3808 3827
3809 3828 #content div.box-left div.form div.fields div.buttons,#content div.box-right div.form div.fields div.buttons,div.box-left div.form div.fields div.buttons,div.box-right div.form div.fields div.buttons
3810 3829 {
3811 3830 margin: 10px 0 0;
3812 3831 }
3813 3832
3814 3833 #content div.box table td.user,#content div.box table td.address {
3815 3834 width: 10%;
3816 3835 text-align: center;
3817 3836 }
3818 3837
3819 3838 #content div.box div.action div.button,#login div.form div.fields div.field div.input div.link,#register div.form div.fields div.field div.input div.link
3820 3839 {
3821 3840 text-align: right;
3822 3841 margin: 6px 0 0;
3823 3842 padding: 0;
3824 3843 }
3825 3844
3826 3845 #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover
3827 3846 {
3828 3847 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3829 3848 border-top: 1px solid #ccc;
3830 3849 border-left: 1px solid #bebebe;
3831 3850 border-right: 1px solid #b1b1b1;
3832 3851 border-bottom: 1px solid #afafaf;
3833 3852 color: #515151;
3834 3853 margin: 0;
3835 3854 padding: 6px 12px;
3836 3855 }
3837 3856
3838 3857 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3839 3858 {
3840 3859 text-align: left;
3841 3860 float: left;
3842 3861 margin: 0;
3843 3862 padding: 0;
3844 3863 }
3845 3864
3846 3865 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3847 3866 {
3848 3867 height: 1%;
3849 3868 display: block;
3850 3869 float: left;
3851 3870 background: #ebebeb url("../images/pager.png") repeat-x;
3852 3871 border-top: 1px solid #dedede;
3853 3872 border-left: 1px solid #cfcfcf;
3854 3873 border-right: 1px solid #c4c4c4;
3855 3874 border-bottom: 1px solid #c4c4c4;
3856 3875 color: #4A4A4A;
3857 3876 font-weight: 700;
3858 3877 margin: 0;
3859 3878 padding: 6px 8px;
3860 3879 }
3861 3880
3862 3881 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3863 3882 {
3864 3883 color: #B4B4B4;
3865 3884 padding: 6px;
3866 3885 }
3867 3886
3868 3887 #login,#register {
3869 3888 width: 520px;
3870 3889 margin: 10% auto 0;
3871 3890 padding: 0;
3872 3891 }
3873 3892
3874 3893 #login div.color,#register div.color {
3875 3894 clear: both;
3876 3895 overflow: hidden;
3877 3896 background: #FFF;
3878 3897 margin: 10px auto 0;
3879 3898 padding: 3px 3px 3px 0;
3880 3899 }
3881 3900
3882 3901 #login div.color a,#register div.color a {
3883 3902 width: 20px;
3884 3903 height: 20px;
3885 3904 display: block;
3886 3905 float: left;
3887 3906 margin: 0 0 0 3px;
3888 3907 padding: 0;
3889 3908 }
3890 3909
3891 3910 #login div.title h5,#register div.title h5 {
3892 3911 color: #fff;
3893 3912 margin: 10px;
3894 3913 padding: 0;
3895 3914 }
3896 3915
3897 3916 #login div.form div.fields div.field,#register div.form div.fields div.field
3898 3917 {
3899 3918 clear: both;
3900 3919 overflow: hidden;
3901 3920 margin: 0;
3902 3921 padding: 0 0 10px;
3903 3922 }
3904 3923
3905 3924 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3906 3925 {
3907 3926 height: 1%;
3908 3927 display: block;
3909 3928 color: red;
3910 3929 margin: 8px 0 0;
3911 3930 padding: 0;
3912 3931 max-width: 320px;
3913 3932 }
3914 3933
3915 3934 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3916 3935 {
3917 3936 color: #000;
3918 3937 font-weight: 700;
3919 3938 }
3920 3939
3921 3940 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3922 3941 {
3923 3942 float: left;
3924 3943 margin: 0;
3925 3944 padding: 0;
3926 3945 }
3927 3946
3928 3947 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3929 3948 {
3930 3949 margin: 0 0 0 184px;
3931 3950 padding: 0;
3932 3951 }
3933 3952
3934 3953 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3935 3954 {
3936 3955 color: #565656;
3937 3956 font-weight: 700;
3938 3957 }
3939 3958
3940 3959 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3941 3960 {
3942 3961 color: #000;
3943 3962 font-size: 1em;
3944 3963 font-weight: 700;
3945 3964 margin: 0;
3946 3965 }
3947 3966
3948 3967 #changeset_content .container .wrapper,#graph_content .container .wrapper
3949 3968 {
3950 3969 width: 600px;
3951 3970 }
3952 3971
3953 3972 #changeset_content .container .left {
3954 3973 float: left;
3955 3974 width: 75%;
3956 3975 padding-left: 5px;
3957 3976 }
3958 3977
3959 3978 #changeset_content .container .left .date,.ac .match {
3960 3979 font-weight: 700;
3961 3980 padding-top: 5px;
3962 3981 padding-bottom: 5px;
3963 3982 }
3964 3983
3965 3984 div#legend_container table td,div#legend_choices table td {
3966 3985 border: none !important;
3967 3986 height: 20px !important;
3968 3987 padding: 0 !important;
3969 3988 }
3970 3989
3971 3990 .q_filter_box {
3972 3991 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3973 3992 -webkit-border-radius: 4px;
3974 3993 -moz-border-radius: 4px;
3975 3994 border-radius: 4px;
3976 3995 border: 0 none;
3977 3996 color: #AAAAAA;
3978 3997 margin-bottom: -4px;
3979 3998 margin-top: -4px;
3980 3999 padding-left: 3px;
3981 4000 }
3982 4001
3983 4002 #node_filter {
3984 4003 border: 0px solid #545454;
3985 4004 color: #AAAAAA;
3986 4005 padding-left: 3px;
3987 4006 }
3988 4007
3989 4008
3990 4009 .group_members_wrap{
3991 4010 min-height: 85px;
3992 4011 padding-left: 20px;
3993 4012 }
3994 4013
3995 4014 .group_members .group_member{
3996 4015 height: 30px;
3997 4016 padding:0px 0px 0px 0px;
3998 4017 }
3999 4018
4000 4019 .reviewers_member{
4001 4020 height: 15px;
4002 4021 padding:0px 0px 0px 10px;
4003 4022 }
4004 4023
4005 4024 .emails_wrap{
4006 4025 padding: 0px 20px;
4007 4026 }
4008 4027
4009 4028 .emails_wrap .email_entry{
4010 4029 height: 30px;
4011 4030 padding:0px 0px 0px 10px;
4012 4031 }
4013 4032 .emails_wrap .email_entry .email{
4014 4033 float: left
4015 4034 }
4016 4035 .emails_wrap .email_entry .email_action{
4017 4036 float: left
4018 4037 }
4019 4038
4020 4039 /*README STYLE*/
4021 4040
4022 4041 div.readme {
4023 4042 padding:0px;
4024 4043 }
4025 4044
4026 4045 div.readme h2 {
4027 4046 font-weight: normal;
4028 4047 }
4029 4048
4030 4049 div.readme .readme_box {
4031 4050 background-color: #fafafa;
4032 4051 }
4033 4052
4034 4053 div.readme .readme_box {
4035 4054 clear:both;
4036 4055 overflow:hidden;
4037 4056 margin:0;
4038 4057 padding:0 20px 10px;
4039 4058 }
4040 4059
4041 4060 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
4042 4061 border-bottom: 0 !important;
4043 4062 margin: 0 !important;
4044 4063 padding: 0 !important;
4045 4064 line-height: 1.5em !important;
4046 4065 }
4047 4066
4048 4067
4049 4068 div.readme .readme_box h1:first-child {
4050 4069 padding-top: .25em !important;
4051 4070 }
4052 4071
4053 4072 div.readme .readme_box h2, div.readme .readme_box h3 {
4054 4073 margin: 1em 0 !important;
4055 4074 }
4056 4075
4057 4076 div.readme .readme_box h2 {
4058 4077 margin-top: 1.5em !important;
4059 4078 border-top: 4px solid #e0e0e0 !important;
4060 4079 padding-top: .5em !important;
4061 4080 }
4062 4081
4063 4082 div.readme .readme_box p {
4064 4083 color: black !important;
4065 4084 margin: 1em 0 !important;
4066 4085 line-height: 1.5em !important;
4067 4086 }
4068 4087
4069 4088 div.readme .readme_box ul {
4070 4089 list-style: disc !important;
4071 4090 margin: 1em 0 1em 2em !important;
4072 4091 }
4073 4092
4074 4093 div.readme .readme_box ol {
4075 4094 list-style: decimal;
4076 4095 margin: 1em 0 1em 2em !important;
4077 4096 }
4078 4097
4079 4098 div.readme .readme_box pre, code {
4080 4099 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4081 4100 }
4082 4101
4083 4102 div.readme .readme_box code {
4084 4103 font-size: 12px !important;
4085 4104 background-color: ghostWhite !important;
4086 4105 color: #444 !important;
4087 4106 padding: 0 .2em !important;
4088 4107 border: 1px solid #dedede !important;
4089 4108 }
4090 4109
4091 4110 div.readme .readme_box pre code {
4092 4111 padding: 0 !important;
4093 4112 font-size: 12px !important;
4094 4113 background-color: #eee !important;
4095 4114 border: none !important;
4096 4115 }
4097 4116
4098 4117 div.readme .readme_box pre {
4099 4118 margin: 1em 0;
4100 4119 font-size: 12px;
4101 4120 background-color: #eee;
4102 4121 border: 1px solid #ddd;
4103 4122 padding: 5px;
4104 4123 color: #444;
4105 4124 overflow: auto;
4106 4125 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4107 4126 -webkit-border-radius: 3px;
4108 4127 -moz-border-radius: 3px;
4109 4128 border-radius: 3px;
4110 4129 }
4111 4130
4112 4131 div.readme .readme_box table {
4113 4132 display: table;
4114 4133 border-collapse: separate;
4115 4134 border-spacing: 2px;
4116 4135 border-color: gray;
4117 4136 width: auto !important;
4118 4137 }
4119 4138
4120 4139
4121 4140 /** RST STYLE **/
4122 4141
4123 4142
4124 4143 div.rst-block {
4125 4144 padding:0px;
4126 4145 }
4127 4146
4128 4147 div.rst-block h2 {
4129 4148 font-weight: normal;
4130 4149 }
4131 4150
4132 4151 div.rst-block {
4133 4152 background-color: #fafafa;
4134 4153 }
4135 4154
4136 4155 div.rst-block {
4137 4156 clear:both;
4138 4157 overflow:hidden;
4139 4158 margin:0;
4140 4159 padding:0 20px 10px;
4141 4160 }
4142 4161
4143 4162 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
4144 4163 border-bottom: 0 !important;
4145 4164 margin: 0 !important;
4146 4165 padding: 0 !important;
4147 4166 line-height: 1.5em !important;
4148 4167 }
4149 4168
4150 4169
4151 4170 div.rst-block h1:first-child {
4152 4171 padding-top: .25em !important;
4153 4172 }
4154 4173
4155 4174 div.rst-block h2, div.rst-block h3 {
4156 4175 margin: 1em 0 !important;
4157 4176 }
4158 4177
4159 4178 div.rst-block h2 {
4160 4179 margin-top: 1.5em !important;
4161 4180 border-top: 4px solid #e0e0e0 !important;
4162 4181 padding-top: .5em !important;
4163 4182 }
4164 4183
4165 4184 div.rst-block p {
4166 4185 color: black !important;
4167 4186 margin: 1em 0 !important;
4168 4187 line-height: 1.5em !important;
4169 4188 }
4170 4189
4171 4190 div.rst-block ul {
4172 4191 list-style: disc !important;
4173 4192 margin: 1em 0 1em 2em !important;
4174 4193 }
4175 4194
4176 4195 div.rst-block ol {
4177 4196 list-style: decimal;
4178 4197 margin: 1em 0 1em 2em !important;
4179 4198 }
4180 4199
4181 4200 div.rst-block pre, code {
4182 4201 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4183 4202 }
4184 4203
4185 4204 div.rst-block code {
4186 4205 font-size: 12px !important;
4187 4206 background-color: ghostWhite !important;
4188 4207 color: #444 !important;
4189 4208 padding: 0 .2em !important;
4190 4209 border: 1px solid #dedede !important;
4191 4210 }
4192 4211
4193 4212 div.rst-block pre code {
4194 4213 padding: 0 !important;
4195 4214 font-size: 12px !important;
4196 4215 background-color: #eee !important;
4197 4216 border: none !important;
4198 4217 }
4199 4218
4200 4219 div.rst-block pre {
4201 4220 margin: 1em 0;
4202 4221 font-size: 12px;
4203 4222 background-color: #eee;
4204 4223 border: 1px solid #ddd;
4205 4224 padding: 5px;
4206 4225 color: #444;
4207 4226 overflow: auto;
4208 4227 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4209 4228 -webkit-border-radius: 3px;
4210 4229 -moz-border-radius: 3px;
4211 4230 border-radius: 3px;
4212 4231 }
4213 4232
4214 4233
4215 4234 /** comment main **/
4216 4235 .comments {
4217 4236 padding:10px 20px;
4218 4237 }
4219 4238
4220 4239 .comments .comment {
4221 4240 border: 1px solid #ddd;
4222 4241 margin-top: 10px;
4223 4242 -webkit-border-radius: 4px;
4224 4243 -moz-border-radius: 4px;
4225 4244 border-radius: 4px;
4226 4245 }
4227 4246
4228 4247 .comments .comment .meta {
4229 4248 background: #f8f8f8;
4230 4249 padding: 4px;
4231 4250 border-bottom: 1px solid #ddd;
4232 4251 height: 18px;
4233 4252 }
4234 4253
4235 4254 .comments .comment .meta img {
4236 4255 vertical-align: middle;
4237 4256 }
4238 4257
4239 4258 .comments .comment .meta .user {
4240 4259 font-weight: bold;
4241 4260 float: left;
4242 4261 padding: 4px 2px 2px 2px;
4243 4262 }
4244 4263
4245 4264 .comments .comment .meta .date {
4246 4265 float: left;
4247 4266 padding:4px 4px 0px 4px;
4248 4267 }
4249 4268
4250 4269 .comments .comment .text {
4251 4270 background-color: #FAFAFA;
4252 4271 }
4253 4272 .comment .text div.rst-block p {
4254 4273 margin: 0.5em 0px !important;
4255 4274 }
4256 4275
4257 4276 .comments .comments-number{
4258 4277 padding:0px 0px 10px 0px;
4259 4278 font-weight: bold;
4260 4279 color: #666;
4261 4280 font-size: 16px;
4262 4281 }
4263 4282
4264 4283 /** comment form **/
4265 4284
4266 4285 .status-block{
4267 4286 height:80px;
4268 4287 clear:both
4269 4288 }
4270 4289
4271 4290 .comment-form .clearfix{
4272 4291 background: #EEE;
4273 4292 -webkit-border-radius: 4px;
4274 4293 -moz-border-radius: 4px;
4275 4294 border-radius: 4px;
4276 4295 padding: 10px;
4277 4296 }
4278 4297
4279 4298 div.comment-form {
4280 4299 margin-top: 20px;
4281 4300 }
4282 4301
4283 4302 .comment-form strong {
4284 4303 display: block;
4285 4304 margin-bottom: 15px;
4286 4305 }
4287 4306
4288 4307 .comment-form textarea {
4289 4308 width: 100%;
4290 4309 height: 100px;
4291 4310 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4292 4311 }
4293 4312
4294 4313 form.comment-form {
4295 4314 margin-top: 10px;
4296 4315 margin-left: 10px;
4297 4316 }
4298 4317
4299 4318 .comment-form-submit {
4300 4319 margin-top: 5px;
4301 4320 margin-left: 525px;
4302 4321 }
4303 4322
4304 4323 .file-comments {
4305 4324 display: none;
4306 4325 }
4307 4326
4308 4327 .comment-form .comment {
4309 4328 margin-left: 10px;
4310 4329 }
4311 4330
4312 4331 .comment-form .comment-help{
4313 4332 padding: 0px 0px 5px 0px;
4314 4333 color: #666;
4315 4334 }
4316 4335
4317 4336 .comment-form .comment-button{
4318 4337 padding-top:5px;
4319 4338 }
4320 4339
4321 4340 .add-another-button {
4322 4341 margin-left: 10px;
4323 4342 margin-top: 10px;
4324 4343 margin-bottom: 10px;
4325 4344 }
4326 4345
4327 4346 .comment .buttons {
4328 4347 float: right;
4329 4348 padding:2px 2px 0px 0px;
4330 4349 }
4331 4350
4332 4351
4333 4352 .show-inline-comments{
4334 4353 position: relative;
4335 4354 top:1px
4336 4355 }
4337 4356
4338 4357 /** comment inline form **/
4339 4358 .comment-inline-form .overlay{
4340 4359 display: none;
4341 4360 }
4342 4361 .comment-inline-form .overlay.submitting{
4343 4362 display:block;
4344 4363 background: none repeat scroll 0 0 white;
4345 4364 font-size: 16px;
4346 4365 opacity: 0.5;
4347 4366 position: absolute;
4348 4367 text-align: center;
4349 4368 vertical-align: top;
4350 4369
4351 4370 }
4352 4371 .comment-inline-form .overlay.submitting .overlay-text{
4353 4372 width:100%;
4354 4373 margin-top:5%;
4355 4374 }
4356 4375
4357 4376 .comment-inline-form .clearfix{
4358 4377 background: #EEE;
4359 4378 -webkit-border-radius: 4px;
4360 4379 -moz-border-radius: 4px;
4361 4380 border-radius: 4px;
4362 4381 padding: 5px;
4363 4382 }
4364 4383
4365 4384 div.comment-inline-form {
4366 4385 padding:4px 0px 6px 0px;
4367 4386 }
4368 4387
4369 4388
4370 4389 tr.hl-comment{
4371 4390 /*
4372 4391 background-color: #FFFFCC !important;
4373 4392 */
4374 4393 }
4375 4394
4376 4395 /*
4377 4396 tr.hl-comment pre {
4378 4397 border-top: 2px solid #FFEE33;
4379 4398 border-left: 2px solid #FFEE33;
4380 4399 border-right: 2px solid #FFEE33;
4381 4400 }
4382 4401 */
4383 4402
4384 4403 .comment-inline-form strong {
4385 4404 display: block;
4386 4405 margin-bottom: 15px;
4387 4406 }
4388 4407
4389 4408 .comment-inline-form textarea {
4390 4409 width: 100%;
4391 4410 height: 100px;
4392 4411 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4393 4412 }
4394 4413
4395 4414 form.comment-inline-form {
4396 4415 margin-top: 10px;
4397 4416 margin-left: 10px;
4398 4417 }
4399 4418
4400 4419 .comment-inline-form-submit {
4401 4420 margin-top: 5px;
4402 4421 margin-left: 525px;
4403 4422 }
4404 4423
4405 4424 .file-comments {
4406 4425 display: none;
4407 4426 }
4408 4427
4409 4428 .comment-inline-form .comment {
4410 4429 margin-left: 10px;
4411 4430 }
4412 4431
4413 4432 .comment-inline-form .comment-help{
4414 4433 padding: 0px 0px 2px 0px;
4415 4434 color: #666666;
4416 4435 font-size: 10px;
4417 4436 }
4418 4437
4419 4438 .comment-inline-form .comment-button{
4420 4439 padding-top:5px;
4421 4440 }
4422 4441
4423 4442 /** comment inline **/
4424 4443 .inline-comments {
4425 4444 padding:10px 20px;
4426 4445 }
4427 4446
4428 4447 .inline-comments div.rst-block {
4429 4448 clear:both;
4430 4449 overflow:hidden;
4431 4450 margin:0;
4432 4451 padding:0 20px 0px;
4433 4452 }
4434 4453 .inline-comments .comment {
4435 4454 border: 1px solid #ddd;
4436 4455 -webkit-border-radius: 4px;
4437 4456 -moz-border-radius: 4px;
4438 4457 border-radius: 4px;
4439 4458 margin: 3px 3px 5px 5px;
4440 4459 background-color: #FAFAFA;
4441 4460 }
4442 4461 .inline-comments .add-comment {
4443 4462 padding: 2px 4px 8px 5px;
4444 4463 }
4445 4464
4446 4465 .inline-comments .comment-wrapp{
4447 4466 padding:1px;
4448 4467 }
4449 4468 .inline-comments .comment .meta {
4450 4469 background: #f8f8f8;
4451 4470 padding: 4px;
4452 4471 border-bottom: 1px solid #ddd;
4453 4472 height: 20px;
4454 4473 }
4455 4474
4456 4475 .inline-comments .comment .meta img {
4457 4476 vertical-align: middle;
4458 4477 }
4459 4478
4460 4479 .inline-comments .comment .meta .user {
4461 4480 font-weight: bold;
4462 4481 float:left;
4463 4482 padding: 3px;
4464 4483 }
4465 4484
4466 4485 .inline-comments .comment .meta .date {
4467 4486 float:left;
4468 4487 padding: 3px;
4469 4488 }
4470 4489
4471 4490 .inline-comments .comment .text {
4472 4491 background-color: #FAFAFA;
4473 4492 }
4474 4493
4475 4494 .inline-comments .comments-number{
4476 4495 padding:0px 0px 10px 0px;
4477 4496 font-weight: bold;
4478 4497 color: #666;
4479 4498 font-size: 16px;
4480 4499 }
4481 4500 .inline-comments-button .add-comment{
4482 4501 margin:2px 0px 8px 5px !important
4483 4502 }
4484 4503
4485 4504
4486 4505 .notification-paginator{
4487 4506 padding: 0px 0px 4px 16px;
4488 4507 float: left;
4489 4508 }
4490 4509
4491 4510 .notifications{
4492 4511 border-radius: 4px 4px 4px 4px;
4493 4512 -webkit-border-radius: 4px;
4494 4513 -moz-border-radius: 4px;
4495 4514 float: right;
4496 4515 margin: 20px 0px 0px 0px;
4497 4516 position: absolute;
4498 4517 text-align: center;
4499 4518 width: 26px;
4500 4519 z-index: 1000;
4501 4520 }
4502 4521 .notifications a{
4503 4522 color:#888 !important;
4504 4523 display: block;
4505 4524 font-size: 10px;
4506 4525 background-color: #DEDEDE !important;
4507 4526 border-radius: 2px !important;
4508 4527 -webkit-border-radius: 2px !important;
4509 4528 -moz-border-radius: 2px !important;
4510 4529 }
4511 4530 .notifications a:hover{
4512 4531 text-decoration: none !important;
4513 4532 background-color: #EEEFFF !important;
4514 4533 }
4515 4534 .notification-header{
4516 4535 padding-top:6px;
4517 4536 }
4518 4537 .notification-header .desc{
4519 4538 font-size: 16px;
4520 4539 height: 24px;
4521 4540 float: left
4522 4541 }
4523 4542 .notification-list .container.unread{
4524 4543 background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
4525 4544 }
4526 4545 .notification-header .gravatar{
4527 4546 background: none repeat scroll 0 0 transparent;
4528 4547 padding: 0px 0px 0px 8px;
4529 4548 }
4530 4549 .notification-list .container .notification-header .desc{
4531 4550 font-weight: bold;
4532 4551 font-size: 17px;
4533 4552 }
4534 4553 .notification-table{
4535 4554 border: 1px solid #ccc;
4536 4555 -webkit-border-radius: 6px 6px 6px 6px;
4537 4556 -moz-border-radius: 6px 6px 6px 6px;
4538 4557 border-radius: 6px 6px 6px 6px;
4539 4558 clear: both;
4540 4559 margin: 0px 20px 0px 20px;
4541 4560 }
4542 4561 .notification-header .delete-notifications{
4543 4562 float: right;
4544 4563 padding-top: 8px;
4545 4564 cursor: pointer;
4546 4565 }
4547 4566 .notification-header .read-notifications{
4548 4567 float: right;
4549 4568 padding-top: 8px;
4550 4569 cursor: pointer;
4551 4570 }
4552 4571 .notification-subject{
4553 4572 clear:both;
4554 4573 border-bottom: 1px solid #eee;
4555 4574 padding:5px 0px 5px 38px;
4556 4575 }
4557 4576
4558 4577 .notification-body{
4559 4578 clear:both;
4560 4579 margin: 34px 2px 2px 8px
4561 4580 }
4562 4581
4563 4582 /****
4564 4583 PULL REQUESTS
4565 4584 *****/
4566 4585 .pullrequests_section_head {
4567 4586 padding:10px 10px 10px 0px;
4568 4587 font-size:16px;
4569 4588 font-weight: bold;
4570 4589 }
4571 4590
4572 4591 /****
4573 4592 PERMS
4574 4593 *****/
4575 4594 #perms .perms_section_head {
4576 4595 padding:10px 10px 10px 0px;
4577 4596 font-size:16px;
4578 4597 font-weight: bold;
4579 4598 }
4580 4599
4581 4600 #perms .perm_tag{
4582 4601 padding: 1px 3px 1px 3px;
4583 4602 font-size: 10px;
4584 4603 font-weight: bold;
4585 4604 text-transform: uppercase;
4586 4605 white-space: nowrap;
4587 4606 -webkit-border-radius: 3px;
4588 4607 -moz-border-radius: 3px;
4589 4608 border-radius: 3px;
4590 4609 }
4591 4610
4592 4611 #perms .perm_tag.admin{
4593 4612 background-color: #B94A48;
4594 4613 color: #ffffff;
4595 4614 }
4596 4615
4597 4616 #perms .perm_tag.write{
4598 4617 background-color: #B94A48;
4599 4618 color: #ffffff;
4600 4619 }
4601 4620
4602 4621 #perms .perm_tag.read{
4603 4622 background-color: #468847;
4604 4623 color: #ffffff;
4605 4624 }
4606 4625
4607 4626 #perms .perm_tag.none{
4608 4627 background-color: #bfbfbf;
4609 4628 color: #ffffff;
4610 4629 }
4611 4630
4612 4631 .perm-gravatar{
4613 4632 vertical-align:middle;
4614 4633 padding:2px;
4615 4634 }
4616 4635 .perm-gravatar-ac{
4617 4636 vertical-align:middle;
4618 4637 padding:2px;
4619 4638 width: 14px;
4620 4639 height: 14px;
4621 4640 }
4622 4641
4623 4642 /*****************************************************************************
4624 4643 DIFFS CSS
4625 4644 ******************************************************************************/
4626 4645
4627 4646 div.diffblock {
4628 4647 overflow: auto;
4629 4648 padding: 0px;
4630 4649 border: 1px solid #ccc;
4631 4650 background: #f8f8f8;
4632 4651 font-size: 100%;
4633 4652 line-height: 100%;
4634 4653 /* new */
4635 4654 line-height: 125%;
4636 4655 -webkit-border-radius: 6px 6px 0px 0px;
4637 4656 -moz-border-radius: 6px 6px 0px 0px;
4638 4657 border-radius: 6px 6px 0px 0px;
4639 4658 }
4640 4659 div.diffblock.margined{
4641 4660 margin: 0px 20px 0px 20px;
4642 4661 }
4643 4662 div.diffblock .code-header{
4644 4663 border-bottom: 1px solid #CCCCCC;
4645 4664 background: #EEEEEE;
4646 4665 padding:10px 0 10px 0;
4647 4666 height: 14px;
4648 4667 }
4649 4668
4650 4669 div.diffblock .code-header.banner{
4651 4670 border-bottom: 1px solid #CCCCCC;
4652 4671 background: #EEEEEE;
4653 4672 height: 14px;
4654 4673 margin: 0px 95px 0px 95px;
4655 4674 padding: 3px 3px 11px 3px;
4656 4675 }
4657 4676
4658 4677 div.diffblock .code-header.cv{
4659 4678 height: 34px;
4660 4679 }
4661 4680 div.diffblock .code-header-title{
4662 4681 padding: 0px 0px 10px 5px !important;
4663 4682 margin: 0 !important;
4664 4683 }
4665 4684 div.diffblock .code-header .hash{
4666 4685 float: left;
4667 4686 padding: 2px 0 0 2px;
4668 4687 }
4669 4688 div.diffblock .code-header .date{
4670 4689 float:left;
4671 4690 text-transform: uppercase;
4672 4691 padding: 2px 0px 0px 2px;
4673 4692 }
4674 4693 div.diffblock .code-header div{
4675 4694 margin-left:4px;
4676 4695 font-weight: bold;
4677 4696 font-size: 14px;
4678 4697 }
4679 4698
4680 4699 div.diffblock .parents {
4681 4700 float: left;
4682 4701 height: 26px;
4683 4702 width:100px;
4684 4703 font-size: 10px;
4685 4704 font-weight: 400;
4686 4705 vertical-align: middle;
4687 4706 padding: 0px 2px 2px 2px;
4688 4707 background-color:#eeeeee;
4689 4708 border-bottom: 1px solid #CCCCCC;
4690 4709 }
4691 4710
4692 4711 div.diffblock .children {
4693 4712 float: right;
4694 4713 height: 26px;
4695 4714 width:100px;
4696 4715 font-size: 10px;
4697 4716 font-weight: 400;
4698 4717 vertical-align: middle;
4699 4718 text-align: right;
4700 4719 padding: 0px 2px 2px 2px;
4701 4720 background-color:#eeeeee;
4702 4721 border-bottom: 1px solid #CCCCCC;
4703 4722 }
4704 4723
4705 4724 div.diffblock .code-body{
4706 4725 background: #FFFFFF;
4707 4726 }
4708 4727 div.diffblock pre.raw{
4709 4728 background: #FFFFFF;
4710 4729 color:#000000;
4711 4730 }
4712 4731 table.code-difftable{
4713 4732 border-collapse: collapse;
4714 4733 width: 99%;
4715 4734 }
4716 4735 table.code-difftable td {
4717 4736 padding: 0 !important;
4718 4737 background: none !important;
4719 4738 border:0 !important;
4720 4739 vertical-align: none !important;
4721 4740 }
4722 4741 table.code-difftable .context{
4723 4742 background:none repeat scroll 0 0 #DDE7EF;
4724 4743 }
4725 4744 table.code-difftable .add{
4726 4745 background:none repeat scroll 0 0 #DDFFDD;
4727 4746 }
4728 4747 table.code-difftable .add ins{
4729 4748 background:none repeat scroll 0 0 #AAFFAA;
4730 4749 text-decoration:none;
4731 4750 }
4732 4751 table.code-difftable .del{
4733 4752 background:none repeat scroll 0 0 #FFDDDD;
4734 4753 }
4735 4754 table.code-difftable .del del{
4736 4755 background:none repeat scroll 0 0 #FFAAAA;
4737 4756 text-decoration:none;
4738 4757 }
4739 4758
4740 4759 /** LINE NUMBERS **/
4741 4760 table.code-difftable .lineno{
4742 4761
4743 4762 padding-left:2px;
4744 4763 padding-right:2px;
4745 4764 text-align:right;
4746 4765 width:32px;
4747 4766 -moz-user-select:none;
4748 4767 -webkit-user-select: none;
4749 4768 border-right: 1px solid #CCC !important;
4750 4769 border-left: 0px solid #CCC !important;
4751 4770 border-top: 0px solid #CCC !important;
4752 4771 border-bottom: none !important;
4753 4772 vertical-align: middle !important;
4754 4773
4755 4774 }
4756 4775 table.code-difftable .lineno.new {
4757 4776 }
4758 4777 table.code-difftable .lineno.old {
4759 4778 }
4760 4779 table.code-difftable .lineno a{
4761 4780 color:#747474 !important;
4762 4781 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4763 4782 letter-spacing:-1px;
4764 4783 text-align:right;
4765 4784 padding-right: 2px;
4766 4785 cursor: pointer;
4767 4786 display: block;
4768 4787 width: 32px;
4769 4788 }
4770 4789
4771 4790 table.code-difftable .lineno-inline{
4772 4791 background:none repeat scroll 0 0 #FFF !important;
4773 4792 padding-left:2px;
4774 4793 padding-right:2px;
4775 4794 text-align:right;
4776 4795 width:30px;
4777 4796 -moz-user-select:none;
4778 4797 -webkit-user-select: none;
4779 4798 }
4780 4799
4781 4800 /** CODE **/
4782 4801 table.code-difftable .code {
4783 4802 display: block;
4784 4803 width: 100%;
4785 4804 }
4786 4805 table.code-difftable .code td{
4787 4806 margin:0;
4788 4807 padding:0;
4789 4808 }
4790 4809 table.code-difftable .code pre{
4791 4810 margin:0;
4792 4811 padding:0;
4793 4812 height: 17px;
4794 4813 line-height: 17px;
4795 4814 }
4796 4815
4797 4816
4798 4817 .diffblock.margined.comm .line .code:hover{
4799 4818 background-color:#FFFFCC !important;
4800 4819 cursor: pointer !important;
4801 4820 background-image:url("../images/icons/comment_add.png") !important;
4802 4821 background-repeat:no-repeat !important;
4803 4822 background-position: right !important;
4804 4823 background-position: 0% 50% !important;
4805 4824 }
4806 4825 .diffblock.margined.comm .line .code.no-comment:hover{
4807 4826 background-image: none !important;
4808 4827 cursor: auto !important;
4809 4828 background-color: inherit !important;
4810 4829
4811 4830 }
@@ -1,1948 +1,1949
1 1 /**
2 2 RhodeCode JS Files
3 3 **/
4 4
5 5 if (typeof console == "undefined" || typeof console.log == "undefined"){
6 6 console = { log: function() {} }
7 7 }
8 8
9 9
10 10 var str_repeat = function(i, m) {
11 11 for (var o = []; m > 0; o[--m] = i);
12 12 return o.join('');
13 13 };
14 14
15 15 /**
16 16 * INJECT .format function into String
17 17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
18 18 * Return "My name is Johny Bravo"
19 19 * Inspired by https://gist.github.com/1049426
20 20 */
21 21 String.prototype.format = function() {
22 22
23 23 function format() {
24 24 var str = this;
25 25 var len = arguments.length+1;
26 26 var safe = undefined;
27 27 var arg = undefined;
28 28
29 29 // For each {0} {1} {n...} replace with the argument in that position. If
30 30 // the argument is an object or an array it will be stringified to JSON.
31 31 for (var i=0; i < len; arg = arguments[i++]) {
32 32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
33 33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
34 34 }
35 35 return str;
36 36 }
37 37
38 38 // Save a reference of what may already exist under the property native.
39 39 // Allows for doing something like: if("".format.native) { /* use native */ }
40 40 format.native = String.prototype.format;
41 41
42 42 // Replace the prototype property
43 43 return format;
44 44
45 45 }();
46 46
47 47 String.prototype.strip = function(char) {
48 48 if(char === undefined){
49 49 char = '\\s';
50 50 }
51 51 return this.replace(new RegExp('^'+char+'+|'+char+'+$','g'), '');
52 52 }
53 53 String.prototype.lstrip = function(char) {
54 54 if(char === undefined){
55 55 char = '\\s';
56 56 }
57 57 return this.replace(new RegExp('^'+char+'+'),'');
58 58 }
59 59 String.prototype.rstrip = function(char) {
60 60 if(char === undefined){
61 61 char = '\\s';
62 62 }
63 63 return this.replace(new RegExp(''+char+'+$'),'');
64 64 }
65 65
66 66
67 67 if(!Array.prototype.indexOf) {
68 68 Array.prototype.indexOf = function(needle) {
69 69 for(var i = 0; i < this.length; i++) {
70 70 if(this[i] === needle) {
71 71 return i;
72 72 }
73 73 }
74 74 return -1;
75 75 };
76 76 }
77 77
78 78 // IE(CRAP) doesn't support previousElementSibling
79 79 var prevElementSibling = function( el ) {
80 80 if( el.previousElementSibling ) {
81 81 return el.previousElementSibling;
82 82 } else {
83 83 while( el = el.previousSibling ) {
84 84 if( el.nodeType === 1 ) return el;
85 85 }
86 86 }
87 87 }
88 88
89 89 var setSelectValue = function(select, val){
90 90 var selection = YUD.get(select);
91 91
92 92 // select element
93 93 for(var i=0;i<selection.options.length;i++){
94 94 if (selection.options[i].innerHTML == val) {
95 95 selection.selectedIndex = i;
96 96 break;
97 97 }
98 98 }
99 99 }
100 100
101 101
102 102 /**
103 103 * SmartColorGenerator
104 104 *
105 105 *usage::
106 106 * var CG = new ColorGenerator();
107 107 * var col = CG.getColor(key); //returns array of RGB
108 108 * 'rgb({0})'.format(col.join(',')
109 109 *
110 110 * @returns {ColorGenerator}
111 111 */
112 112 var ColorGenerator = function(){
113 113 this.GOLDEN_RATIO = 0.618033988749895;
114 114 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
115 115 this.HSV_1 = 0.75;//saturation
116 116 this.HSV_2 = 0.95;
117 117 this.color;
118 118 this.cacheColorMap = {};
119 119 };
120 120
121 121 ColorGenerator.prototype = {
122 122 getColor:function(key){
123 123 if(this.cacheColorMap[key] !== undefined){
124 124 return this.cacheColorMap[key];
125 125 }
126 126 else{
127 127 this.cacheColorMap[key] = this.generateColor();
128 128 return this.cacheColorMap[key];
129 129 }
130 130 },
131 131 _hsvToRgb:function(h,s,v){
132 132 if (s == 0.0)
133 133 return [v, v, v];
134 134 i = parseInt(h * 6.0)
135 135 f = (h * 6.0) - i
136 136 p = v * (1.0 - s)
137 137 q = v * (1.0 - s * f)
138 138 t = v * (1.0 - s * (1.0 - f))
139 139 i = i % 6
140 140 if (i == 0)
141 141 return [v, t, p]
142 142 if (i == 1)
143 143 return [q, v, p]
144 144 if (i == 2)
145 145 return [p, v, t]
146 146 if (i == 3)
147 147 return [p, q, v]
148 148 if (i == 4)
149 149 return [t, p, v]
150 150 if (i == 5)
151 151 return [v, p, q]
152 152 },
153 153 generateColor:function(){
154 154 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
155 155 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
156 156 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
157 157 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
158 158 function toRgb(v){
159 159 return ""+parseInt(v*256)
160 160 }
161 161 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
162 162
163 163 }
164 164 }
165 165
166 166
167 167
168 168
169 169
170 170 /**
171 171 * GLOBAL YUI Shortcuts
172 172 */
173 173 var YUC = YAHOO.util.Connect;
174 174 var YUD = YAHOO.util.Dom;
175 175 var YUE = YAHOO.util.Event;
176 176 var YUQ = YAHOO.util.Selector.query;
177 177
178 178 // defines if push state is enabled for this browser ?
179 179 var push_state_enabled = Boolean(
180 180 window.history && window.history.pushState && window.history.replaceState
181 181 && !( /* disable for versions of iOS before version 4.3 (8F190) */
182 182 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
183 183 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
184 184 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
185 185 )
186 186 );
187 187
188 188 var _run_callbacks = function(callbacks){
189 189 if (callbacks !== undefined){
190 190 var _l = callbacks.length;
191 191 for (var i=0;i<_l;i++){
192 192 var func = callbacks[i];
193 193 if(typeof(func)=='function'){
194 194 try{
195 195 func();
196 196 }catch (err){};
197 197 }
198 198 }
199 199 }
200 200 }
201 201
202 202 /**
203 203 * Partial Ajax Implementation
204 204 *
205 205 * @param url: defines url to make partial request
206 206 * @param container: defines id of container to input partial result
207 207 * @param s_call: success callback function that takes o as arg
208 208 * o.tId
209 209 * o.status
210 210 * o.statusText
211 211 * o.getResponseHeader[ ]
212 212 * o.getAllResponseHeaders
213 213 * o.responseText
214 214 * o.responseXML
215 215 * o.argument
216 216 * @param f_call: failure callback
217 217 * @param args arguments
218 218 */
219 219 function ypjax(url,container,s_call,f_call,args){
220 220 var method='GET';
221 221 if(args===undefined){
222 222 args=null;
223 223 }
224 224
225 225 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
226 226 YUC.initHeader('X-PARTIAL-XHR',true);
227 227
228 228 // wrapper of passed callback
229 229 var s_wrapper = (function(o){
230 230 return function(o){
231 231 YUD.get(container).innerHTML=o.responseText;
232 232 YUD.setStyle(container,'opacity','1.0');
233 233 //execute the given original callback
234 234 if (s_call !== undefined){
235 235 s_call(o);
236 236 }
237 237 }
238 238 })()
239 239 YUD.setStyle(container,'opacity','0.3');
240 240 YUC.asyncRequest(method,url,{
241 241 success:s_wrapper,
242 242 failure:function(o){
243 243 console.log(o);
244 244 YUD.get(container).innerHTML='<span class="error_red">ERROR: {0}</span>'.format(o.status);
245 245 YUD.setStyle(container,'opacity','1.0');
246 246 },
247 247 cache:false
248 248 },args);
249 249
250 250 };
251 251
252 252 var ajaxGET = function(url,success) {
253 253 // Set special header for ajax == HTTP_X_PARTIAL_XHR
254 254 YUC.initHeader('X-PARTIAL-XHR',true);
255 255
256 256 var sUrl = url;
257 257 var callback = {
258 258 success: success,
259 259 failure: function (o) {
260 260 alert("error");
261 261 },
262 262 };
263 263
264 264 var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
265 265 return request;
266 266 };
267 267
268 268
269 269
270 270 var ajaxPOST = function(url,postData,success) {
271 271 // Set special header for ajax == HTTP_X_PARTIAL_XHR
272 272 YUC.initHeader('X-PARTIAL-XHR',true);
273 273
274 274 var toQueryString = function(o) {
275 275 if(typeof o !== 'object') {
276 276 return false;
277 277 }
278 278 var _p, _qs = [];
279 279 for(_p in o) {
280 280 _qs.push(encodeURIComponent(_p) + '=' + encodeURIComponent(o[_p]));
281 281 }
282 282 return _qs.join('&');
283 283 };
284 284
285 285 var sUrl = url;
286 286 var callback = {
287 287 success: success,
288 288 failure: function (o) {
289 289 alert("error");
290 290 },
291 291 };
292 292 var postData = toQueryString(postData);
293 293 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
294 294 return request;
295 295 };
296 296
297 297
298 298 /**
299 299 * tooltip activate
300 300 */
301 301 var tooltip_activate = function(){
302 302 yt = YAHOO.yuitip.main;
303 303 YUE.onDOMReady(yt.init);
304 304 };
305 305
306 306 /**
307 307 * show more
308 308 */
309 309 var show_more_event = function(){
310 310 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
311 311 var el = e.target;
312 312 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
313 313 YUD.setStyle(el.parentNode,'display','none');
314 314 });
315 315 };
316 316
317 317 /**
318 318 * show changeset tooltip
319 319 */
320 320 var show_changeset_tooltip = function(){
321 321 YUE.on(YUD.getElementsByClassName('lazy-cs'), 'mouseover', function(e){
322 322 var target = e.currentTarget;
323 323 var rid = YUD.getAttribute(target,'raw_id');
324 324 var repo_name = YUD.getAttribute(target,'repo_name');
325 325 var ttid = 'tt-'+rid;
326 326 var success = function(o){
327 327 var json = JSON.parse(o.responseText);
328 328 YUD.addClass(target,'tooltip')
329 329 YUD.setAttribute(target, 'title',json['message']);
330 330 YAHOO.yuitip.main.show_yuitip(e, target);
331 331 }
332 332 if(rid && !YUD.hasClass(target, 'tooltip')){
333 333 YUD.setAttribute(target,'id',ttid);
334 334 YUD.setAttribute(target, 'title',_TM['loading...']);
335 335 YAHOO.yuitip.main.set_listeners(target);
336 336 YAHOO.yuitip.main.show_yuitip(e, target);
337 337 ajaxGET('/changeset_info/{0}/{1}'.format(repo_name,rid), success)
338 338 }
339 339 });
340 340 };
341 341
342 342 var onSuccessFollow = function(target){
343 343 var f = YUD.get(target.id);
344 344 var f_cnt = YUD.get('current_followers_count');
345 345
346 346 if(YUD.hasClass(f, 'follow')){
347 347 f.setAttribute('class','following');
348 348 f.setAttribute('title',_TM['Stop following this repository']);
349 349
350 350 if(f_cnt){
351 351 var cnt = Number(f_cnt.innerHTML)+1;
352 352 f_cnt.innerHTML = cnt;
353 353 }
354 354 }
355 355 else{
356 356 f.setAttribute('class','follow');
357 357 f.setAttribute('title',_TM['Start following this repository']);
358 358 if(f_cnt){
359 359 var cnt = Number(f_cnt.innerHTML)-1;
360 360 f_cnt.innerHTML = cnt;
361 361 }
362 362 }
363 363 }
364 364
365 365 var toggleFollowingUser = function(target,fallows_user_id,token,user_id){
366 366 args = 'follows_user_id='+fallows_user_id;
367 367 args+= '&amp;auth_token='+token;
368 368 if(user_id != undefined){
369 369 args+="&amp;user_id="+user_id;
370 370 }
371 371 YUC.asyncRequest('POST',TOGGLE_FOLLOW_URL,{
372 372 success:function(o){
373 373 onSuccessFollow(target);
374 374 }
375 375 },args);
376 376 return false;
377 377 }
378 378
379 379 var toggleFollowingRepo = function(target,fallows_repo_id,token,user_id){
380 380
381 381 args = 'follows_repo_id='+fallows_repo_id;
382 382 args+= '&amp;auth_token='+token;
383 383 if(user_id != undefined){
384 384 args+="&amp;user_id="+user_id;
385 385 }
386 386 YUC.asyncRequest('POST',TOGGLE_FOLLOW_URL,{
387 387 success:function(o){
388 388 onSuccessFollow(target);
389 389 }
390 390 },args);
391 391 return false;
392 392 }
393 393
394 394
395 395 /**
396 396 * TOOLTIP IMPL.
397 397 */
398 398 YAHOO.namespace('yuitip');
399 399 YAHOO.yuitip.main = {
400 400
401 401 $: YAHOO.util.Dom.get,
402 402
403 403 bgColor: '#000',
404 404 speed: 0.3,
405 405 opacity: 0.9,
406 406 offset: [15,15],
407 407 useAnim: false,
408 408 maxWidth: 600,
409 409 add_links: false,
410 410 yuitips: [],
411 411
412 412 set_listeners: function(tt){
413 413 YUE.on(tt, 'mouseover', yt.show_yuitip, tt);
414 414 YUE.on(tt, 'mousemove', yt.move_yuitip, tt);
415 415 YUE.on(tt, 'mouseout', yt.close_yuitip, tt);
416 416 },
417 417
418 418 init: function(){
419 419 yt._tooltip = '';
420 420 yt.tipBox = yt.$('tip-box');
421 421 if(!yt.tipBox){
422 422 yt.tipBox = document.createElement('div');
423 423 document.body.appendChild(yt.tipBox);
424 424 yt.tipBox.id = 'tip-box';
425 425 }
426 426
427 427 YUD.setStyle(yt.tipBox, 'display', 'none');
428 428 YUD.setStyle(yt.tipBox, 'position', 'absolute');
429 429 if(yt.maxWidth !== null){
430 430 YUD.setStyle(yt.tipBox, 'max-width', yt.maxWidth+'px');
431 431 }
432 432
433 433 var yuitips = YUD.getElementsByClassName('tooltip');
434 434
435 435 if(yt.add_links === true){
436 436 var links = document.getElementsByTagName('a');
437 437 var linkLen = links.length;
438 438 for(i=0;i<linkLen;i++){
439 439 yuitips.push(links[i]);
440 440 }
441 441 }
442 442
443 443 var yuiLen = yuitips.length;
444 444
445 445 for(i=0;i<yuiLen;i++){
446 446 yt.set_listeners(yuitips[i]);
447 447 }
448 448 },
449 449
450 450 show_yuitip: function(e, el){
451 451 YUE.stopEvent(e);
452 452 if(el.tagName.toLowerCase() === 'img'){
453 453 yt.tipText = el.alt ? el.alt : '';
454 454 } else {
455 455 yt.tipText = el.title ? el.title : '';
456 456 }
457 457
458 458 if(yt.tipText !== ''){
459 459 // save org title
460 460 yt._tooltip = yt.tipText;
461 461 // reset title to not show org tooltips
462 462 YUD.setAttribute(el, 'title', '');
463 463
464 464 yt.tipBox.innerHTML = yt.tipText;
465 465 YUD.setStyle(yt.tipBox, 'display', 'block');
466 466 if(yt.useAnim === true){
467 467 YUD.setStyle(yt.tipBox, 'opacity', '0');
468 468 var newAnim = new YAHOO.util.Anim(yt.tipBox,
469 469 {
470 470 opacity: { to: yt.opacity }
471 471 }, yt.speed, YAHOO.util.Easing.easeOut
472 472 );
473 473 newAnim.animate();
474 474 }
475 475 }
476 476 },
477 477
478 478 move_yuitip: function(e, el){
479 479 YUE.stopEvent(e);
480 480 var movePos = YUE.getXY(e);
481 481 YUD.setStyle(yt.tipBox, 'top', (movePos[1] + yt.offset[1]) + 'px');
482 482 YUD.setStyle(yt.tipBox, 'left', (movePos[0] + yt.offset[0]) + 'px');
483 483 },
484 484
485 485 close_yuitip: function(e, el){
486 486 YUE.stopEvent(e);
487 487
488 488 if(yt.useAnim === true){
489 489 var newAnim = new YAHOO.util.Anim(yt.tipBox,
490 490 {
491 491 opacity: { to: 0 }
492 492 }, yt.speed, YAHOO.util.Easing.easeOut
493 493 );
494 494 newAnim.animate();
495 495 } else {
496 496 YUD.setStyle(yt.tipBox, 'display', 'none');
497 497 }
498 498 YUD.setAttribute(el,'title', yt._tooltip);
499 499 }
500 500 }
501 501
502 502 /**
503 503 * Quick filter widget
504 504 *
505 505 * @param target: filter input target
506 506 * @param nodes: list of nodes in html we want to filter.
507 507 * @param display_element function that takes current node from nodes and
508 508 * does hide or show based on the node
509 509 *
510 510 */
511 511 var q_filter = function(target,nodes,display_element){
512 512
513 513 var nodes = nodes;
514 514 var q_filter_field = YUD.get(target);
515 515 var F = YAHOO.namespace(target);
516 516
517 517 YUE.on(q_filter_field,'click',function(){
518 518 q_filter_field.value = '';
519 519 });
520 520
521 521 YUE.on(q_filter_field,'keyup',function(e){
522 522 clearTimeout(F.filterTimeout);
523 523 F.filterTimeout = setTimeout(F.updateFilter,600);
524 524 });
525 525
526 526 F.filterTimeout = null;
527 527
528 528 var show_node = function(node){
529 529 YUD.setStyle(node,'display','')
530 530 }
531 531 var hide_node = function(node){
532 532 YUD.setStyle(node,'display','none');
533 533 }
534 534
535 535 F.updateFilter = function() {
536 536 // Reset timeout
537 537 F.filterTimeout = null;
538 538
539 539 var obsolete = [];
540 540
541 541 var req = q_filter_field.value.toLowerCase();
542 542
543 543 var l = nodes.length;
544 544 var i;
545 545 var showing = 0;
546 546
547 547 for (i=0;i<l;i++ ){
548 548 var n = nodes[i];
549 549 var target_element = display_element(n)
550 550 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
551 551 hide_node(target_element);
552 552 }
553 553 else{
554 554 show_node(target_element);
555 555 showing+=1;
556 556 }
557 557 }
558 558
559 559 // if repo_count is set update the number
560 560 var cnt = YUD.get('repo_count');
561 561 if(cnt){
562 562 YUD.get('repo_count').innerHTML = showing;
563 563 }
564 564
565 565 }
566 566 };
567 567
568 568 var tableTr = function(cls, body){
569 569 var _el = document.createElement('div');
570 570 var cont = new YAHOO.util.Element(body);
571 571 var comment_id = fromHTML(body).children[0].id.split('comment-')[1];
572 572 var id = 'comment-tr-{0}'.format(comment_id);
573 573 var _html = ('<table><tbody><tr id="{0}" class="{1}">'+
574 574 '<td class="lineno-inline new-inline"></td>'+
575 575 '<td class="lineno-inline old-inline"></td>'+
576 576 '<td>{2}</td>'+
577 577 '</tr></tbody></table>').format(id, cls, body);
578 578 _el.innerHTML = _html;
579 579 return _el.children[0].children[0].children[0];
580 580 };
581 581
582 582 /** comments **/
583 583 var removeInlineForm = function(form) {
584 584 form.parentNode.removeChild(form);
585 585 };
586 586
587 587 var createInlineForm = function(parent_tr, f_path, line) {
588 588 var tmpl = YUD.get('comment-inline-form-template').innerHTML;
589 589 tmpl = tmpl.format(f_path, line);
590 590 var form = tableTr('comment-form-inline',tmpl)
591 591
592 592 // create event for hide button
593 593 form = new YAHOO.util.Element(form);
594 594 var form_hide_button = new YAHOO.util.Element(YUD.getElementsByClassName('hide-inline-form',null,form)[0]);
595 595 form_hide_button.on('click', function(e) {
596 596 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
597 597 if(YUD.hasClass(newtr.nextElementSibling,'inline-comments-button')){
598 598 YUD.setStyle(newtr.nextElementSibling,'display','');
599 599 }
600 600 removeInlineForm(newtr);
601 601 YUD.removeClass(parent_tr, 'form-open');
602 602 YUD.removeClass(parent_tr, 'hl-comment');
603 603
604 604 });
605 605
606 606 return form
607 607 };
608 608
609 609 /**
610 610 * Inject inline comment for on given TR this tr should be always an .line
611 611 * tr containing the line. Code will detect comment, and always put the comment
612 612 * block at the very bottom
613 613 */
614 614 var injectInlineForm = function(tr){
615 615 if(!YUD.hasClass(tr, 'line')){
616 616 return
617 617 }
618 618 var submit_url = AJAX_COMMENT_URL;
619 619 var _td = YUD.getElementsByClassName('code',null,tr)[0];
620 620 if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context') || YUD.hasClass(_td,'no-comment')){
621 621 return
622 622 }
623 623 YUD.addClass(tr,'form-open');
624 624 YUD.addClass(tr,'hl-comment');
625 625 var node = YUD.getElementsByClassName('full_f_path',null,tr.parentNode.parentNode.parentNode)[0];
626 626 var f_path = YUD.getAttribute(node,'path');
627 627 var lineno = getLineNo(tr);
628 628 var form = createInlineForm(tr, f_path, lineno, submit_url);
629 629
630 630 var parent = tr;
631 631 while (1){
632 632 var n = parent.nextElementSibling;
633 633 // next element are comments !
634 634 if(YUD.hasClass(n,'inline-comments')){
635 635 parent = n;
636 636 }
637 637 else{
638 638 break;
639 639 }
640 640 }
641 641 YUD.insertAfter(form,parent);
642 642 var f = YUD.get(form);
643 643 var overlay = YUD.getElementsByClassName('overlay',null,f)[0];
644 644 var _form = YUD.getElementsByClassName('inline-form',null,f)[0];
645 645
646 646 YUE.on(YUD.get(_form), 'submit',function(e){
647 647 YUE.preventDefault(e);
648 648
649 649 //ajax submit
650 650 var text = YUD.get('text_'+lineno).value;
651 651 var postData = {
652 652 'text':text,
653 653 'f_path':f_path,
654 654 'line':lineno
655 655 };
656 656
657 657 if(lineno === undefined){
658 658 alert('missing line !');
659 659 return
660 660 }
661 661 if(f_path === undefined){
662 662 alert('missing file path !');
663 663 return
664 664 }
665 665
666 666 if(text == ""){
667 667 return
668 668 }
669 669
670 670 var success = function(o){
671 671 YUD.removeClass(tr, 'form-open');
672 672 removeInlineForm(f);
673 673 var json_data = JSON.parse(o.responseText);
674 674 renderInlineComment(json_data);
675 675 };
676 676
677 677 if (YUD.hasClass(overlay,'overlay')){
678 678 var w = _form.offsetWidth;
679 679 var h = _form.offsetHeight;
680 680 YUD.setStyle(overlay,'width',w+'px');
681 681 YUD.setStyle(overlay,'height',h+'px');
682 682 }
683 683 YUD.addClass(overlay, 'submitting');
684 684
685 685 ajaxPOST(submit_url, postData, success);
686 686 });
687 687
688 688 setTimeout(function(){
689 689 // callbacks
690 690 tooltip_activate();
691 691 MentionsAutoComplete('text_'+lineno, 'mentions_container_'+lineno,
692 692 _USERS_AC_DATA, _GROUPS_AC_DATA);
693 693 var _e = YUD.get('text_'+lineno);
694 694 if(_e){
695 695 _e.focus();
696 696 }
697 697 },10)
698 698 };
699 699
700 700 var deleteComment = function(comment_id){
701 701 var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id);
702 702 var postData = {'_method':'delete'};
703 703 var success = function(o){
704 704 var n = YUD.get('comment-tr-'+comment_id);
705 705 var root = prevElementSibling(prevElementSibling(n));
706 706 n.parentNode.removeChild(n);
707 707
708 708 // scann nodes, and attach add button to last one
709 709 placeAddButton(root);
710 710 }
711 711 ajaxPOST(url,postData,success);
712 712 }
713 713
714 714 var updateReviewers = function(reviewers_ids){
715 715 var url = AJAX_UPDATE_PULLREQUEST;
716 716 var postData = {'_method':'put',
717 717 'reviewers_ids': reviewers_ids};
718 718 var success = function(o){
719 719 window.location.reload();
720 720 }
721 721 ajaxPOST(url,postData,success);
722 722 }
723 723
724 724 var createInlineAddButton = function(tr){
725 725
726 726 var label = TRANSLATION_MAP['add another comment'];
727 727
728 728 var html_el = document.createElement('div');
729 729 YUD.addClass(html_el, 'add-comment');
730 730 html_el.innerHTML = '<span class="ui-btn">{0}</span>'.format(label);
731 731
732 732 var add = new YAHOO.util.Element(html_el);
733 733 add.on('click', function(e) {
734 734 injectInlineForm(tr);
735 735 });
736 736 return add;
737 737 };
738 738
739 739 var getLineNo = function(tr) {
740 740 var line;
741 741 var o = tr.children[0].id.split('_');
742 742 var n = tr.children[1].id.split('_');
743 743
744 744 if (n.length >= 2) {
745 745 line = n[n.length-1];
746 746 } else if (o.length >= 2) {
747 747 line = o[o.length-1];
748 748 }
749 749
750 750 return line
751 751 };
752 752
753 753 var placeAddButton = function(target_tr){
754 754 if(!target_tr){
755 755 return
756 756 }
757 757 var last_node = target_tr;
758 758 //scann
759 759 while (1){
760 760 var n = last_node.nextElementSibling;
761 761 // next element are comments !
762 762 if(YUD.hasClass(n,'inline-comments')){
763 763 last_node = n;
764 764 //also remove the comment button from previous
765 765 var comment_add_buttons = YUD.getElementsByClassName('add-comment',null,last_node);
766 766 for(var i=0;i<comment_add_buttons.length;i++){
767 767 var b = comment_add_buttons[i];
768 768 b.parentNode.removeChild(b);
769 769 }
770 770 }
771 771 else{
772 772 break;
773 773 }
774 774 }
775 775
776 776 var add = createInlineAddButton(target_tr);
777 777 // get the comment div
778 778 var comment_block = YUD.getElementsByClassName('comment',null,last_node)[0];
779 779 // attach add button
780 780 YUD.insertAfter(add,comment_block);
781 781 }
782 782
783 783 /**
784 784 * Places the inline comment into the changeset block in proper line position
785 785 */
786 786 var placeInline = function(target_container,lineno,html){
787 787 var lineid = "{0}_{1}".format(target_container,lineno);
788 788 var target_line = YUD.get(lineid);
789 789 var comment = new YAHOO.util.Element(tableTr('inline-comments',html))
790 790
791 791 // check if there are comments already !
792 792 var parent = target_line.parentNode;
793 793 var root_parent = parent;
794 794 while (1){
795 795 var n = parent.nextElementSibling;
796 796 // next element are comments !
797 797 if(YUD.hasClass(n,'inline-comments')){
798 798 parent = n;
799 799 }
800 800 else{
801 801 break;
802 802 }
803 803 }
804 804 // put in the comment at the bottom
805 805 YUD.insertAfter(comment,parent);
806 806
807 807 // scann nodes, and attach add button to last one
808 808 placeAddButton(root_parent);
809 809
810 810 return target_line;
811 811 }
812 812
813 813 /**
814 814 * make a single inline comment and place it inside
815 815 */
816 816 var renderInlineComment = function(json_data){
817 817 try{
818 818 var html = json_data['rendered_text'];
819 819 var lineno = json_data['line_no'];
820 820 var target_id = json_data['target_id'];
821 821 placeInline(target_id, lineno, html);
822 822
823 823 }catch(e){
824 824 console.log(e);
825 825 }
826 826 }
827 827
828 828 /**
829 829 * Iterates over all the inlines, and places them inside proper blocks of data
830 830 */
831 831 var renderInlineComments = function(file_comments){
832 832 for (f in file_comments){
833 833 // holding all comments for a FILE
834 834 var box = file_comments[f];
835 835
836 836 var target_id = YUD.getAttribute(box,'target_id');
837 837 // actually comments with line numbers
838 838 var comments = box.children;
839 839 for(var i=0; i<comments.length; i++){
840 840 var data = {
841 841 'rendered_text': comments[i].outerHTML,
842 842 'line_no': YUD.getAttribute(comments[i],'line'),
843 843 'target_id': target_id
844 844 }
845 845 renderInlineComment(data);
846 846 }
847 847 }
848 848 }
849 849
850 850 var removeReviewer = function(reviewer_id){
851 851 var el = YUD.get('reviewer_{0}'.format(reviewer_id));
852 852 if (el.parentNode !== undefined){
853 853 el.parentNode.removeChild(el);
854 854 }
855 855 }
856 856
857 857 var fileBrowserListeners = function(current_url, node_list_url, url_base){
858 858 var current_url_branch = +"?branch=__BRANCH__";
859 859
860 860 YUE.on('stay_at_branch','click',function(e){
861 861 if(e.target.checked){
862 862 var uri = current_url_branch;
863 863 uri = uri.replace('__BRANCH__',e.target.value);
864 864 window.location = uri;
865 865 }
866 866 else{
867 867 window.location = current_url;
868 868 }
869 869 })
870 870
871 871 var n_filter = YUD.get('node_filter');
872 872 var F = YAHOO.namespace('node_filter');
873 873
874 874 F.filterTimeout = null;
875 875 var nodes = null;
876 876
877 877 F.initFilter = function(){
878 878 YUD.setStyle('node_filter_box_loading','display','');
879 879 YUD.setStyle('search_activate_id','display','none');
880 880 YUD.setStyle('add_node_id','display','none');
881 881 YUC.initHeader('X-PARTIAL-XHR',true);
882 882 YUC.asyncRequest('GET', node_list_url, {
883 883 success:function(o){
884 884 nodes = JSON.parse(o.responseText).nodes;
885 885 YUD.setStyle('node_filter_box_loading','display','none');
886 886 YUD.setStyle('node_filter_box','display','');
887 887 n_filter.focus();
888 888 if(YUD.hasClass(n_filter,'init')){
889 889 n_filter.value = '';
890 890 YUD.removeClass(n_filter,'init');
891 891 }
892 892 },
893 893 failure:function(o){
894 894 console.log('failed to load');
895 895 }
896 896 },null);
897 897 }
898 898
899 899 F.updateFilter = function(e) {
900 900
901 901 return function(){
902 902 // Reset timeout
903 903 F.filterTimeout = null;
904 904 var query = e.target.value.toLowerCase();
905 905 var match = [];
906 906 var matches = 0;
907 907 var matches_max = 20;
908 908 if (query != ""){
909 909 for(var i=0;i<nodes.length;i++){
910 910
911 911 var pos = nodes[i].name.toLowerCase().indexOf(query)
912 912 if(query && pos != -1){
913 913
914 914 matches++
915 915 //show only certain amount to not kill browser
916 916 if (matches > matches_max){
917 917 break;
918 918 }
919 919
920 920 var n = nodes[i].name;
921 921 var t = nodes[i].type;
922 922 var n_hl = n.substring(0,pos)
923 923 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
924 924 +n.substring(pos+query.length)
925 925 var new_url = url_base.replace('__FPATH__',n);
926 926 match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,new_url,n_hl));
927 927 }
928 928 if(match.length >= matches_max){
929 929 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['search truncated']));
930 930 }
931 931 }
932 932 }
933 933 if(query != ""){
934 934 YUD.setStyle('tbody','display','none');
935 935 YUD.setStyle('tbody_filtered','display','');
936 936
937 937 if (match.length==0){
938 938 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['no matching files']));
939 939 }
940 940
941 941 YUD.get('tbody_filtered').innerHTML = match.join("");
942 942 }
943 943 else{
944 944 YUD.setStyle('tbody','display','');
945 945 YUD.setStyle('tbody_filtered','display','none');
946 946 }
947 947
948 948 }
949 949 };
950 950
951 951 YUE.on(YUD.get('filter_activate'),'click',function(){
952 952 F.initFilter();
953 953 })
954 954 YUE.on(n_filter,'click',function(){
955 955 if(YUD.hasClass(n_filter,'init')){
956 956 n_filter.value = '';
957 957 YUD.removeClass(n_filter,'init');
958 958 }
959 959 });
960 960 YUE.on(n_filter,'keyup',function(e){
961 961 clearTimeout(F.filterTimeout);
962 962 F.filterTimeout = setTimeout(F.updateFilter(e),600);
963 963 });
964 964 };
965 965
966 966
967 967 var initCodeMirror = function(textAreadId,resetUrl){
968 968 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
969 969 mode: "null",
970 970 lineNumbers:true
971 971 });
972 972 YUE.on('reset','click',function(e){
973 973 window.location=resetUrl
974 974 });
975 975
976 976 YUE.on('file_enable','click',function(){
977 977 YUD.setStyle('editor_container','display','');
978 978 YUD.setStyle('upload_file_container','display','none');
979 979 YUD.setStyle('filename_container','display','');
980 980 });
981 981
982 982 YUE.on('upload_file_enable','click',function(){
983 983 YUD.setStyle('editor_container','display','none');
984 984 YUD.setStyle('upload_file_container','display','');
985 985 YUD.setStyle('filename_container','display','none');
986 986 });
987 987 };
988 988
989 989
990 990
991 991 var getIdentNode = function(n){
992 992 //iterate thru nodes untill matched interesting node !
993 993
994 994 if (typeof n == 'undefined'){
995 995 return -1
996 996 }
997 997
998 998 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
999 999 return n
1000 1000 }
1001 1001 else{
1002 1002 return getIdentNode(n.parentNode);
1003 1003 }
1004 1004 };
1005 1005
1006 1006 var getSelectionLink = function(e) {
1007 1007
1008 1008 //get selection from start/to nodes
1009 1009 if (typeof window.getSelection != "undefined") {
1010 1010 s = window.getSelection();
1011 1011
1012 1012 from = getIdentNode(s.anchorNode);
1013 1013 till = getIdentNode(s.focusNode);
1014 1014
1015 1015 f_int = parseInt(from.id.replace('L',''));
1016 1016 t_int = parseInt(till.id.replace('L',''));
1017 1017
1018 1018 if (f_int > t_int){
1019 1019 //highlight from bottom
1020 1020 offset = -35;
1021 1021 ranges = [t_int,f_int];
1022 1022
1023 1023 }
1024 1024 else{
1025 1025 //highligth from top
1026 1026 offset = 35;
1027 1027 ranges = [f_int,t_int];
1028 1028 }
1029
1029 // if we select more than 2 lines
1030 1030 if (ranges[0] != ranges[1]){
1031 1031 if(YUD.get('linktt') == null){
1032 1032 hl_div = document.createElement('div');
1033 1033 hl_div.id = 'linktt';
1034 1034 }
1035 hl_div.innerHTML = '';
1036
1035 1037 anchor = '#L'+ranges[0]+'-'+ranges[1];
1036 hl_div.innerHTML = '';
1037 l = document.createElement('a');
1038 l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
1039 l.innerHTML = _TM['Selection link'];
1040 hl_div.appendChild(l);
1041
1038 var link = document.createElement('a');
1039 link.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
1040 link.innerHTML = _TM['Selection link'];
1041 hl_div.appendChild(link);
1042 1042 YUD.get('body').appendChild(hl_div);
1043 1043
1044 1044 xy = YUD.getXY(till.id);
1045 1045
1046 YUD.addClass('linktt','yui-tt');
1046 YUD.addClass('linktt', 'hl-tip-box');
1047 1047 YUD.setStyle('linktt','top',xy[1]+offset+'px');
1048 1048 YUD.setStyle('linktt','left',xy[0]+'px');
1049 1049 YUD.setStyle('linktt','visibility','visible');
1050
1050 1051 }
1051 1052 else{
1052 1053 YUD.setStyle('linktt','visibility','hidden');
1053 1054 }
1054 1055 }
1055 1056 };
1056 1057
1057 1058 var deleteNotification = function(url, notification_id,callbacks){
1058 1059 var callback = {
1059 1060 success:function(o){
1060 1061 var obj = YUD.get(String("notification_"+notification_id));
1061 1062 if(obj.parentNode !== undefined){
1062 1063 obj.parentNode.removeChild(obj);
1063 1064 }
1064 1065 _run_callbacks(callbacks);
1065 1066 },
1066 1067 failure:function(o){
1067 1068 alert("error");
1068 1069 },
1069 1070 };
1070 1071 var postData = '_method=delete';
1071 1072 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
1072 1073 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1073 1074 callback, postData);
1074 1075 };
1075 1076
1076 1077 var readNotification = function(url, notification_id,callbacks){
1077 1078 var callback = {
1078 1079 success:function(o){
1079 1080 var obj = YUD.get(String("notification_"+notification_id));
1080 1081 YUD.removeClass(obj, 'unread');
1081 1082 var r_button = YUD.getElementsByClassName('read-notification',null,obj.children[0])[0];
1082 1083
1083 1084 if(r_button.parentNode !== undefined){
1084 1085 r_button.parentNode.removeChild(r_button);
1085 1086 }
1086 1087 _run_callbacks(callbacks);
1087 1088 },
1088 1089 failure:function(o){
1089 1090 alert("error");
1090 1091 },
1091 1092 };
1092 1093 var postData = '_method=put';
1093 1094 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
1094 1095 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1095 1096 callback, postData);
1096 1097 };
1097 1098
1098 1099 /** MEMBERS AUTOCOMPLETE WIDGET **/
1099 1100
1100 1101 var MembersAutoComplete = function (divid, cont, users_list, groups_list) {
1101 1102 var myUsers = users_list;
1102 1103 var myGroups = groups_list;
1103 1104
1104 1105 // Define a custom search function for the DataSource of users
1105 1106 var matchUsers = function (sQuery) {
1106 1107 // Case insensitive matching
1107 1108 var query = sQuery.toLowerCase();
1108 1109 var i = 0;
1109 1110 var l = myUsers.length;
1110 1111 var matches = [];
1111 1112
1112 1113 // Match against each name of each contact
1113 1114 for (; i < l; i++) {
1114 1115 contact = myUsers[i];
1115 1116 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1116 1117 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1117 1118 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1118 1119 matches[matches.length] = contact;
1119 1120 }
1120 1121 }
1121 1122 return matches;
1122 1123 };
1123 1124
1124 1125 // Define a custom search function for the DataSource of usersGroups
1125 1126 var matchGroups = function (sQuery) {
1126 1127 // Case insensitive matching
1127 1128 var query = sQuery.toLowerCase();
1128 1129 var i = 0;
1129 1130 var l = myGroups.length;
1130 1131 var matches = [];
1131 1132
1132 1133 // Match against each name of each contact
1133 1134 for (; i < l; i++) {
1134 1135 matched_group = myGroups[i];
1135 1136 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1136 1137 matches[matches.length] = matched_group;
1137 1138 }
1138 1139 }
1139 1140 return matches;
1140 1141 };
1141 1142
1142 1143 //match all
1143 1144 var matchAll = function (sQuery) {
1144 1145 u = matchUsers(sQuery);
1145 1146 g = matchGroups(sQuery);
1146 1147 return u.concat(g);
1147 1148 };
1148 1149
1149 1150 // DataScheme for members
1150 1151 var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
1151 1152 memberDS.responseSchema = {
1152 1153 fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk"]
1153 1154 };
1154 1155
1155 1156 // DataScheme for owner
1156 1157 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1157 1158 ownerDS.responseSchema = {
1158 1159 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1159 1160 };
1160 1161
1161 1162 // Instantiate AutoComplete for perms
1162 1163 var membersAC = new YAHOO.widget.AutoComplete(divid, cont, memberDS);
1163 1164 membersAC.useShadow = false;
1164 1165 membersAC.resultTypeList = false;
1165 1166 membersAC.animVert = false;
1166 1167 membersAC.animHoriz = false;
1167 1168 membersAC.animSpeed = 0.1;
1168 1169
1169 1170 // Instantiate AutoComplete for owner
1170 1171 var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
1171 1172 ownerAC.useShadow = false;
1172 1173 ownerAC.resultTypeList = false;
1173 1174 ownerAC.animVert = false;
1174 1175 ownerAC.animHoriz = false;
1175 1176 ownerAC.animSpeed = 0.1;
1176 1177
1177 1178 // Helper highlight function for the formatter
1178 1179 var highlightMatch = function (full, snippet, matchindex) {
1179 1180 return full.substring(0, matchindex)
1180 1181 + "<span class='match'>"
1181 1182 + full.substr(matchindex, snippet.length)
1182 1183 + "</span>" + full.substring(matchindex + snippet.length);
1183 1184 };
1184 1185
1185 1186 // Custom formatter to highlight the matching letters
1186 1187 var custom_formatter = function (oResultData, sQuery, sResultMatch) {
1187 1188 var query = sQuery.toLowerCase();
1188 1189 var _gravatar = function(res, em, group){
1189 1190 if (group !== undefined){
1190 1191 em = '/images/icons/group.png'
1191 1192 }
1192 1193 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1193 1194 return tmpl.format(em,res)
1194 1195 }
1195 1196 // group
1196 1197 if (oResultData.grname != undefined) {
1197 1198 var grname = oResultData.grname;
1198 1199 var grmembers = oResultData.grmembers;
1199 1200 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
1200 1201 var grprefix = "{0}: ".format(_TM['Group']);
1201 1202 var grsuffix = " (" + grmembers + " )";
1202 1203 var grsuffix = " ({0} {1})".format(grmembers, _TM['members']);
1203 1204
1204 1205 if (grnameMatchIndex > -1) {
1205 1206 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
1206 1207 }
1207 1208 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
1208 1209 // Users
1209 1210 } else if (oResultData.nname != undefined) {
1210 1211 var fname = oResultData.fname || "";
1211 1212 var lname = oResultData.lname || "";
1212 1213 var nname = oResultData.nname;
1213 1214
1214 1215 // Guard against null value
1215 1216 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1216 1217 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1217 1218 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1218 1219 displayfname, displaylname, displaynname;
1219 1220
1220 1221 if (fnameMatchIndex > -1) {
1221 1222 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1222 1223 } else {
1223 1224 displayfname = fname;
1224 1225 }
1225 1226
1226 1227 if (lnameMatchIndex > -1) {
1227 1228 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1228 1229 } else {
1229 1230 displaylname = lname;
1230 1231 }
1231 1232
1232 1233 if (nnameMatchIndex > -1) {
1233 1234 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1234 1235 } else {
1235 1236 displaynname = nname ? "(" + nname + ")" : "";
1236 1237 }
1237 1238
1238 1239 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1239 1240 } else {
1240 1241 return '';
1241 1242 }
1242 1243 };
1243 1244 membersAC.formatResult = custom_formatter;
1244 1245 ownerAC.formatResult = custom_formatter;
1245 1246
1246 1247 var myHandler = function (sType, aArgs) {
1247 1248 var nextId = divid.split('perm_new_member_name_')[1];
1248 1249 var myAC = aArgs[0]; // reference back to the AC instance
1249 1250 var elLI = aArgs[1]; // reference to the selected LI element
1250 1251 var oData = aArgs[2]; // object literal of selected item's result data
1251 1252 //fill the autocomplete with value
1252 1253 if (oData.nname != undefined) {
1253 1254 //users
1254 1255 myAC.getInputEl().value = oData.nname;
1255 1256 YUD.get('perm_new_member_type_'+nextId).value = 'user';
1256 1257 } else {
1257 1258 //groups
1258 1259 myAC.getInputEl().value = oData.grname;
1259 1260 YUD.get('perm_new_member_type_'+nextId).value = 'users_group';
1260 1261 }
1261 1262 };
1262 1263
1263 1264 membersAC.itemSelectEvent.subscribe(myHandler);
1264 1265 if(ownerAC.itemSelectEvent){
1265 1266 ownerAC.itemSelectEvent.subscribe(myHandler);
1266 1267 }
1267 1268
1268 1269 return {
1269 1270 memberDS: memberDS,
1270 1271 ownerDS: ownerDS,
1271 1272 membersAC: membersAC,
1272 1273 ownerAC: ownerAC,
1273 1274 };
1274 1275 }
1275 1276
1276 1277
1277 1278 var MentionsAutoComplete = function (divid, cont, users_list, groups_list) {
1278 1279 var myUsers = users_list;
1279 1280 var myGroups = groups_list;
1280 1281
1281 1282 // Define a custom search function for the DataSource of users
1282 1283 var matchUsers = function (sQuery) {
1283 1284 var org_sQuery = sQuery;
1284 1285 if(this.mentionQuery == null){
1285 1286 return []
1286 1287 }
1287 1288 sQuery = this.mentionQuery;
1288 1289 // Case insensitive matching
1289 1290 var query = sQuery.toLowerCase();
1290 1291 var i = 0;
1291 1292 var l = myUsers.length;
1292 1293 var matches = [];
1293 1294
1294 1295 // Match against each name of each contact
1295 1296 for (; i < l; i++) {
1296 1297 contact = myUsers[i];
1297 1298 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1298 1299 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1299 1300 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1300 1301 matches[matches.length] = contact;
1301 1302 }
1302 1303 }
1303 1304 return matches
1304 1305 };
1305 1306
1306 1307 //match all
1307 1308 var matchAll = function (sQuery) {
1308 1309 u = matchUsers(sQuery);
1309 1310 return u
1310 1311 };
1311 1312
1312 1313 // DataScheme for owner
1313 1314 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1314 1315
1315 1316 ownerDS.responseSchema = {
1316 1317 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1317 1318 };
1318 1319
1319 1320 // Instantiate AutoComplete for mentions
1320 1321 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1321 1322 ownerAC.useShadow = false;
1322 1323 ownerAC.resultTypeList = false;
1323 1324 ownerAC.suppressInputUpdate = true;
1324 1325 ownerAC.animVert = false;
1325 1326 ownerAC.animHoriz = false;
1326 1327 ownerAC.animSpeed = 0.1;
1327 1328
1328 1329 // Helper highlight function for the formatter
1329 1330 var highlightMatch = function (full, snippet, matchindex) {
1330 1331 return full.substring(0, matchindex)
1331 1332 + "<span class='match'>"
1332 1333 + full.substr(matchindex, snippet.length)
1333 1334 + "</span>" + full.substring(matchindex + snippet.length);
1334 1335 };
1335 1336
1336 1337 // Custom formatter to highlight the matching letters
1337 1338 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1338 1339 var org_sQuery = sQuery;
1339 1340 if(this.dataSource.mentionQuery != null){
1340 1341 sQuery = this.dataSource.mentionQuery;
1341 1342 }
1342 1343
1343 1344 var query = sQuery.toLowerCase();
1344 1345 var _gravatar = function(res, em, group){
1345 1346 if (group !== undefined){
1346 1347 em = '/images/icons/group.png'
1347 1348 }
1348 1349 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1349 1350 return tmpl.format(em,res)
1350 1351 }
1351 1352 if (oResultData.nname != undefined) {
1352 1353 var fname = oResultData.fname || "";
1353 1354 var lname = oResultData.lname || "";
1354 1355 var nname = oResultData.nname;
1355 1356
1356 1357 // Guard against null value
1357 1358 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1358 1359 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1359 1360 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1360 1361 displayfname, displaylname, displaynname;
1361 1362
1362 1363 if (fnameMatchIndex > -1) {
1363 1364 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1364 1365 } else {
1365 1366 displayfname = fname;
1366 1367 }
1367 1368
1368 1369 if (lnameMatchIndex > -1) {
1369 1370 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1370 1371 } else {
1371 1372 displaylname = lname;
1372 1373 }
1373 1374
1374 1375 if (nnameMatchIndex > -1) {
1375 1376 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1376 1377 } else {
1377 1378 displaynname = nname ? "(" + nname + ")" : "";
1378 1379 }
1379 1380
1380 1381 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1381 1382 } else {
1382 1383 return '';
1383 1384 }
1384 1385 };
1385 1386
1386 1387 if(ownerAC.itemSelectEvent){
1387 1388 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1388 1389
1389 1390 var myAC = aArgs[0]; // reference back to the AC instance
1390 1391 var elLI = aArgs[1]; // reference to the selected LI element
1391 1392 var oData = aArgs[2]; // object literal of selected item's result data
1392 1393 //fill the autocomplete with value
1393 1394 if (oData.nname != undefined) {
1394 1395 //users
1395 1396 //Replace the mention name with replaced
1396 1397 var re = new RegExp();
1397 1398 var org = myAC.getInputEl().value;
1398 1399 var chunks = myAC.dataSource.chunks
1399 1400 // replace middle chunk(the search term) with actuall match
1400 1401 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
1401 1402 '@'+oData.nname+' ');
1402 1403 myAC.getInputEl().value = chunks.join('')
1403 1404 YUD.get(myAC.getInputEl()).focus(); // Y U NO WORK !?
1404 1405 } else {
1405 1406 //groups
1406 1407 myAC.getInputEl().value = oData.grname;
1407 1408 YUD.get('perm_new_member_type').value = 'users_group';
1408 1409 }
1409 1410 });
1410 1411 }
1411 1412
1412 1413 // in this keybuffer we will gather current value of search !
1413 1414 // since we need to get this just when someone does `@` then we do the
1414 1415 // search
1415 1416 ownerAC.dataSource.chunks = [];
1416 1417 ownerAC.dataSource.mentionQuery = null;
1417 1418
1418 1419 ownerAC.get_mention = function(msg, max_pos) {
1419 1420 var org = msg;
1420 1421 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
1421 1422 var chunks = [];
1422 1423
1423 1424
1424 1425 // cut first chunk until curret pos
1425 1426 var to_max = msg.substr(0, max_pos);
1426 1427 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
1427 1428 var msg2 = to_max.substr(at_pos);
1428 1429
1429 1430 chunks.push(org.substr(0,at_pos))// prefix chunk
1430 1431 chunks.push(msg2) // search chunk
1431 1432 chunks.push(org.substr(max_pos)) // postfix chunk
1432 1433
1433 1434 // clean up msg2 for filtering and regex match
1434 1435 var msg2 = msg2.lstrip(' ').lstrip('\n');
1435 1436
1436 1437 if(re.test(msg2)){
1437 1438 var unam = re.exec(msg2)[1];
1438 1439 return [unam, chunks];
1439 1440 }
1440 1441 return [null, null];
1441 1442 };
1442 1443
1443 1444 if (ownerAC.textboxKeyUpEvent){
1444 1445 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
1445 1446
1446 1447 var ac_obj = args[0];
1447 1448 var currentMessage = args[1];
1448 1449 var currentCaretPosition = args[0]._elTextbox.selectionStart;
1449 1450
1450 1451 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
1451 1452 var curr_search = null;
1452 1453 if(unam[0]){
1453 1454 curr_search = unam[0];
1454 1455 }
1455 1456
1456 1457 ownerAC.dataSource.chunks = unam[1];
1457 1458 ownerAC.dataSource.mentionQuery = curr_search;
1458 1459
1459 1460 })
1460 1461 }
1461 1462 return {
1462 1463 ownerDS: ownerDS,
1463 1464 ownerAC: ownerAC,
1464 1465 };
1465 1466 }
1466 1467
1467 1468
1468 1469 var PullRequestAutoComplete = function (divid, cont, users_list, groups_list) {
1469 1470 var myUsers = users_list;
1470 1471 var myGroups = groups_list;
1471 1472
1472 1473 // Define a custom search function for the DataSource of users
1473 1474 var matchUsers = function (sQuery) {
1474 1475 // Case insensitive matching
1475 1476 var query = sQuery.toLowerCase();
1476 1477 var i = 0;
1477 1478 var l = myUsers.length;
1478 1479 var matches = [];
1479 1480
1480 1481 // Match against each name of each contact
1481 1482 for (; i < l; i++) {
1482 1483 contact = myUsers[i];
1483 1484 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1484 1485 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1485 1486 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1486 1487 matches[matches.length] = contact;
1487 1488 }
1488 1489 }
1489 1490 return matches;
1490 1491 };
1491 1492
1492 1493 // Define a custom search function for the DataSource of usersGroups
1493 1494 var matchGroups = function (sQuery) {
1494 1495 // Case insensitive matching
1495 1496 var query = sQuery.toLowerCase();
1496 1497 var i = 0;
1497 1498 var l = myGroups.length;
1498 1499 var matches = [];
1499 1500
1500 1501 // Match against each name of each contact
1501 1502 for (; i < l; i++) {
1502 1503 matched_group = myGroups[i];
1503 1504 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1504 1505 matches[matches.length] = matched_group;
1505 1506 }
1506 1507 }
1507 1508 return matches;
1508 1509 };
1509 1510
1510 1511 //match all
1511 1512 var matchAll = function (sQuery) {
1512 1513 u = matchUsers(sQuery);
1513 1514 return u
1514 1515 };
1515 1516
1516 1517 // DataScheme for owner
1517 1518 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1518 1519
1519 1520 ownerDS.responseSchema = {
1520 1521 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1521 1522 };
1522 1523
1523 1524 // Instantiate AutoComplete for mentions
1524 1525 var reviewerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1525 1526 reviewerAC.useShadow = false;
1526 1527 reviewerAC.resultTypeList = false;
1527 1528 reviewerAC.suppressInputUpdate = true;
1528 1529 reviewerAC.animVert = false;
1529 1530 reviewerAC.animHoriz = false;
1530 1531 reviewerAC.animSpeed = 0.1;
1531 1532
1532 1533 // Helper highlight function for the formatter
1533 1534 var highlightMatch = function (full, snippet, matchindex) {
1534 1535 return full.substring(0, matchindex)
1535 1536 + "<span class='match'>"
1536 1537 + full.substr(matchindex, snippet.length)
1537 1538 + "</span>" + full.substring(matchindex + snippet.length);
1538 1539 };
1539 1540
1540 1541 // Custom formatter to highlight the matching letters
1541 1542 reviewerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1542 1543 var org_sQuery = sQuery;
1543 1544 if(this.dataSource.mentionQuery != null){
1544 1545 sQuery = this.dataSource.mentionQuery;
1545 1546 }
1546 1547
1547 1548 var query = sQuery.toLowerCase();
1548 1549 var _gravatar = function(res, em, group){
1549 1550 if (group !== undefined){
1550 1551 em = '/images/icons/group.png'
1551 1552 }
1552 1553 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1553 1554 return tmpl.format(em,res)
1554 1555 }
1555 1556 if (oResultData.nname != undefined) {
1556 1557 var fname = oResultData.fname || "";
1557 1558 var lname = oResultData.lname || "";
1558 1559 var nname = oResultData.nname;
1559 1560
1560 1561 // Guard against null value
1561 1562 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1562 1563 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1563 1564 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1564 1565 displayfname, displaylname, displaynname;
1565 1566
1566 1567 if (fnameMatchIndex > -1) {
1567 1568 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1568 1569 } else {
1569 1570 displayfname = fname;
1570 1571 }
1571 1572
1572 1573 if (lnameMatchIndex > -1) {
1573 1574 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1574 1575 } else {
1575 1576 displaylname = lname;
1576 1577 }
1577 1578
1578 1579 if (nnameMatchIndex > -1) {
1579 1580 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1580 1581 } else {
1581 1582 displaynname = nname ? "(" + nname + ")" : "";
1582 1583 }
1583 1584
1584 1585 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1585 1586 } else {
1586 1587 return '';
1587 1588 }
1588 1589 };
1589 1590
1590 1591 //members cache to catch duplicates
1591 1592 reviewerAC.dataSource.cache = [];
1592 1593 // hack into select event
1593 1594 if(reviewerAC.itemSelectEvent){
1594 1595 reviewerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1595 1596
1596 1597 var myAC = aArgs[0]; // reference back to the AC instance
1597 1598 var elLI = aArgs[1]; // reference to the selected LI element
1598 1599 var oData = aArgs[2]; // object literal of selected item's result data
1599 1600 var members = YUD.get('review_members');
1600 1601 //fill the autocomplete with value
1601 1602
1602 1603 if (oData.nname != undefined) {
1603 1604 if (myAC.dataSource.cache.indexOf(oData.id) != -1){
1604 1605 return
1605 1606 }
1606 1607
1607 1608 var tmpl = '<li id="reviewer_{2}">'+
1608 1609 '<div class="reviewers_member">'+
1609 1610 '<div class="gravatar"><img alt="gravatar" src="{0}"/> </div>'+
1610 1611 '<div style="float:left">{1}</div>'+
1611 1612 '<input type="hidden" value="{2}" name="review_members" />'+
1612 1613 '<span class="delete_icon action_button" onclick="removeReviewer({2})"></span>'+
1613 1614 '</div>'+
1614 1615 '</li>'
1615 1616
1616 1617 var displayname = "{0} {1} ({2})".format(oData.fname,oData.lname,oData.nname);
1617 1618 var element = tmpl.format(oData.gravatar_lnk,displayname,oData.id);
1618 1619 members.innerHTML += element;
1619 1620 myAC.dataSource.cache.push(oData.id);
1620 1621 YUD.get('user').value = ''
1621 1622 }
1622 1623 });
1623 1624 }
1624 1625 return {
1625 1626 ownerDS: ownerDS,
1626 1627 reviewerAC: reviewerAC,
1627 1628 };
1628 1629 }
1629 1630
1630 1631
1631 1632 /**
1632 1633 * QUICK REPO MENU
1633 1634 */
1634 1635 var quick_repo_menu = function(){
1635 1636 YUE.on(YUQ('.quick_repo_menu'),'mouseenter',function(e){
1636 1637 var menu = e.currentTarget.firstElementChild.firstElementChild;
1637 1638 if(YUD.hasClass(menu,'hidden')){
1638 1639 YUD.replaceClass(e.currentTarget,'hidden', 'active');
1639 1640 YUD.replaceClass(menu, 'hidden', 'active');
1640 1641 }
1641 1642 })
1642 1643 YUE.on(YUQ('.quick_repo_menu'),'mouseleave',function(e){
1643 1644 var menu = e.currentTarget.firstElementChild.firstElementChild;
1644 1645 if(YUD.hasClass(menu,'active')){
1645 1646 YUD.replaceClass(e.currentTarget, 'active', 'hidden');
1646 1647 YUD.replaceClass(menu, 'active', 'hidden');
1647 1648 }
1648 1649 })
1649 1650 };
1650 1651
1651 1652
1652 1653 /**
1653 1654 * TABLE SORTING
1654 1655 */
1655 1656
1656 1657 // returns a node from given html;
1657 1658 var fromHTML = function(html){
1658 1659 var _html = document.createElement('element');
1659 1660 _html.innerHTML = html;
1660 1661 return _html;
1661 1662 }
1662 1663 var get_rev = function(node){
1663 1664 var n = node.firstElementChild.firstElementChild;
1664 1665
1665 1666 if (n===null){
1666 1667 return -1
1667 1668 }
1668 1669 else{
1669 1670 out = n.firstElementChild.innerHTML.split(':')[0].replace('r','');
1670 1671 return parseInt(out);
1671 1672 }
1672 1673 }
1673 1674
1674 1675 var get_name = function(node){
1675 1676 var name = node.firstElementChild.children[2].innerHTML;
1676 1677 return name
1677 1678 }
1678 1679 var get_group_name = function(node){
1679 1680 var name = node.firstElementChild.children[1].innerHTML;
1680 1681 return name
1681 1682 }
1682 1683 var get_date = function(node){
1683 1684 var date_ = YUD.getAttribute(node.firstElementChild,'date');
1684 1685 return date_
1685 1686 }
1686 1687
1687 1688 var get_age = function(node){
1688 1689 return node
1689 1690 }
1690 1691
1691 1692 var get_link = function(node){
1692 1693 return node.firstElementChild.text;
1693 1694 }
1694 1695
1695 1696 var revisionSort = function(a, b, desc, field) {
1696 1697
1697 1698 var a_ = fromHTML(a.getData(field));
1698 1699 var b_ = fromHTML(b.getData(field));
1699 1700
1700 1701 // extract revisions from string nodes
1701 1702 a_ = get_rev(a_)
1702 1703 b_ = get_rev(b_)
1703 1704
1704 1705 var comp = YAHOO.util.Sort.compare;
1705 1706 var compState = comp(a_, b_, desc);
1706 1707 return compState;
1707 1708 };
1708 1709 var ageSort = function(a, b, desc, field) {
1709 1710 var a_ = fromHTML(a.getData(field));
1710 1711 var b_ = fromHTML(b.getData(field));
1711 1712
1712 1713 // extract name from table
1713 1714 a_ = get_date(a_)
1714 1715 b_ = get_date(b_)
1715 1716
1716 1717 var comp = YAHOO.util.Sort.compare;
1717 1718 var compState = comp(a_, b_, desc);
1718 1719 return compState;
1719 1720 };
1720 1721
1721 1722 var lastLoginSort = function(a, b, desc, field) {
1722 1723 var a_ = a.getData('last_login_raw') || 0;
1723 1724 var b_ = b.getData('last_login_raw') || 0;
1724 1725
1725 1726 var comp = YAHOO.util.Sort.compare;
1726 1727 var compState = comp(a_, b_, desc);
1727 1728 return compState;
1728 1729 };
1729 1730
1730 1731 var nameSort = function(a, b, desc, field) {
1731 1732 var a_ = fromHTML(a.getData(field));
1732 1733 var b_ = fromHTML(b.getData(field));
1733 1734
1734 1735 // extract name from table
1735 1736 a_ = get_name(a_)
1736 1737 b_ = get_name(b_)
1737 1738
1738 1739 var comp = YAHOO.util.Sort.compare;
1739 1740 var compState = comp(a_, b_, desc);
1740 1741 return compState;
1741 1742 };
1742 1743
1743 1744 var permNameSort = function(a, b, desc, field) {
1744 1745 var a_ = fromHTML(a.getData(field));
1745 1746 var b_ = fromHTML(b.getData(field));
1746 1747 // extract name from table
1747 1748
1748 1749 a_ = a_.children[0].innerHTML;
1749 1750 b_ = b_.children[0].innerHTML;
1750 1751
1751 1752 var comp = YAHOO.util.Sort.compare;
1752 1753 var compState = comp(a_, b_, desc);
1753 1754 return compState;
1754 1755 };
1755 1756
1756 1757 var groupNameSort = function(a, b, desc, field) {
1757 1758 var a_ = fromHTML(a.getData(field));
1758 1759 var b_ = fromHTML(b.getData(field));
1759 1760
1760 1761 // extract name from table
1761 1762 a_ = get_group_name(a_)
1762 1763 b_ = get_group_name(b_)
1763 1764
1764 1765 var comp = YAHOO.util.Sort.compare;
1765 1766 var compState = comp(a_, b_, desc);
1766 1767 return compState;
1767 1768 };
1768 1769 var dateSort = function(a, b, desc, field) {
1769 1770 var a_ = fromHTML(a.getData(field));
1770 1771 var b_ = fromHTML(b.getData(field));
1771 1772
1772 1773 // extract name from table
1773 1774 a_ = get_date(a_)
1774 1775 b_ = get_date(b_)
1775 1776
1776 1777 var comp = YAHOO.util.Sort.compare;
1777 1778 var compState = comp(a_, b_, desc);
1778 1779 return compState;
1779 1780 };
1780 1781
1781 1782 var linkSort = function(a, b, desc, field) {
1782 1783 var a_ = fromHTML(a.getData(field));
1783 1784 var b_ = fromHTML(a.getData(field));
1784 1785
1785 1786 // extract url text from string nodes
1786 1787 a_ = get_link(a_)
1787 1788 b_ = get_link(b_)
1788 1789
1789 1790 var comp = YAHOO.util.Sort.compare;
1790 1791 var compState = comp(a_, b_, desc);
1791 1792 return compState;
1792 1793 }
1793 1794
1794 1795 var addPermAction = function(_html, users_list, groups_list){
1795 1796 var elmts = YUD.getElementsByClassName('last_new_member');
1796 1797 var last_node = elmts[elmts.length-1];
1797 1798 if (last_node){
1798 1799 var next_id = (YUD.getElementsByClassName('new_members')).length;
1799 1800 _html = _html.format(next_id);
1800 1801 last_node.innerHTML = _html;
1801 1802 YUD.setStyle(last_node, 'display', '');
1802 1803 YUD.removeClass(last_node, 'last_new_member');
1803 1804 MembersAutoComplete("perm_new_member_name_"+next_id,
1804 1805 "perm_container_"+next_id, users_list, groups_list);
1805 1806 //create new last NODE
1806 1807 var el = document.createElement('tr');
1807 1808 el.id = 'add_perm_input';
1808 1809 YUD.addClass(el,'last_new_member');
1809 1810 YUD.addClass(el,'new_members');
1810 1811 YUD.insertAfter(el, last_node);
1811 1812 }
1812 1813 }
1813 1814
1814 1815 /* Multi selectors */
1815 1816
1816 1817 var MultiSelectWidget = function(selected_id, available_id, form_id){
1817 1818
1818 1819
1819 1820 //definition of containers ID's
1820 1821 var selected_container = selected_id;
1821 1822 var available_container = available_id;
1822 1823
1823 1824 //temp container for selected storage.
1824 1825 var cache = new Array();
1825 1826 var av_cache = new Array();
1826 1827 var c = YUD.get(selected_container);
1827 1828 var ac = YUD.get(available_container);
1828 1829
1829 1830 //get only selected options for further fullfilment
1830 1831 for(var i = 0;node =c.options[i];i++){
1831 1832 if(node.selected){
1832 1833 //push selected to my temp storage left overs :)
1833 1834 cache.push(node);
1834 1835 }
1835 1836 }
1836 1837
1837 1838 //get all available options to cache
1838 1839 for(var i = 0;node =ac.options[i];i++){
1839 1840 //push selected to my temp storage left overs :)
1840 1841 av_cache.push(node);
1841 1842 }
1842 1843
1843 1844 //fill available only with those not in choosen
1844 1845 ac.options.length=0;
1845 1846 tmp_cache = new Array();
1846 1847
1847 1848 for(var i = 0;node = av_cache[i];i++){
1848 1849 var add = true;
1849 1850 for(var i2 = 0;node_2 = cache[i2];i2++){
1850 1851 if(node.value == node_2.value){
1851 1852 add=false;
1852 1853 break;
1853 1854 }
1854 1855 }
1855 1856 if(add){
1856 1857 tmp_cache.push(new Option(node.text, node.value, false, false));
1857 1858 }
1858 1859 }
1859 1860
1860 1861 for(var i = 0;node = tmp_cache[i];i++){
1861 1862 ac.options[i] = node;
1862 1863 }
1863 1864
1864 1865 function prompts_action_callback(e){
1865 1866
1866 1867 var choosen = YUD.get(selected_container);
1867 1868 var available = YUD.get(available_container);
1868 1869
1869 1870 //get checked and unchecked options from field
1870 1871 function get_checked(from_field){
1871 1872 //temp container for storage.
1872 1873 var sel_cache = new Array();
1873 1874 var oth_cache = new Array();
1874 1875
1875 1876 for(var i = 0;node = from_field.options[i];i++){
1876 1877 if(node.selected){
1877 1878 //push selected fields :)
1878 1879 sel_cache.push(node);
1879 1880 }
1880 1881 else{
1881 1882 oth_cache.push(node)
1882 1883 }
1883 1884 }
1884 1885
1885 1886 return [sel_cache,oth_cache]
1886 1887 }
1887 1888
1888 1889 //fill the field with given options
1889 1890 function fill_with(field,options){
1890 1891 //clear firtst
1891 1892 field.options.length=0;
1892 1893 for(var i = 0;node = options[i];i++){
1893 1894 field.options[i]=new Option(node.text, node.value,
1894 1895 false, false);
1895 1896 }
1896 1897
1897 1898 }
1898 1899 //adds to current field
1899 1900 function add_to(field,options){
1900 1901 for(var i = 0;node = options[i];i++){
1901 1902 field.appendChild(new Option(node.text, node.value,
1902 1903 false, false));
1903 1904 }
1904 1905 }
1905 1906
1906 1907 // add action
1907 1908 if (this.id=='add_element'){
1908 1909 var c = get_checked(available);
1909 1910 add_to(choosen,c[0]);
1910 1911 fill_with(available,c[1]);
1911 1912 }
1912 1913 // remove action
1913 1914 if (this.id=='remove_element'){
1914 1915 var c = get_checked(choosen);
1915 1916 add_to(available,c[0]);
1916 1917 fill_with(choosen,c[1]);
1917 1918 }
1918 1919 // add all elements
1919 1920 if(this.id=='add_all_elements'){
1920 1921 for(var i=0; node = available.options[i];i++){
1921 1922 choosen.appendChild(new Option(node.text,
1922 1923 node.value, false, false));
1923 1924 }
1924 1925 available.options.length = 0;
1925 1926 }
1926 1927 //remove all elements
1927 1928 if(this.id=='remove_all_elements'){
1928 1929 for(var i=0; node = choosen.options[i];i++){
1929 1930 available.appendChild(new Option(node.text,
1930 1931 node.value, false, false));
1931 1932 }
1932 1933 choosen.options.length = 0;
1933 1934 }
1934 1935
1935 1936 }
1936 1937
1937 1938 YUE.addListener(['add_element','remove_element',
1938 1939 'add_all_elements','remove_all_elements'],'click',
1939 1940 prompts_action_callback)
1940 1941 if (form_id !== undefined) {
1941 1942 YUE.addListener(form_id,'submit',function(){
1942 1943 var choosen = YUD.get(selected_container);
1943 1944 for (var i = 0; i < choosen.options.length; i++) {
1944 1945 choosen.options[i].selected = 'selected';
1945 1946 }
1946 1947 });
1947 1948 }
1948 1949 }
General Comments 0
You need to be logged in to leave comments. Login now