##// END OF EJS Templates
html + css changes, added icons and etc.
marcink -
r219:64e1125f default
parent child Browse files
Show More
@@ -1,107 +1,107 b''
1 1 div.diffblock {
2 2 overflow: auto;
3 3 padding: 0px;
4 4 border: 1px solid #ccc;
5 5 background: #f8f8f8;
6 6 font-size: 100%;
7 7 line-height: 100%;
8 8 /* new */
9 9 line-height: 125%;
10 10 }
11 11 div.diffblock .code-header{
12 12 border-bottom: 1px solid #CCCCCC;
13 13 background: #EEEEEE;
14 14 color:blue;
15 15 padding:10px 0 10px 0;
16 16 }
17 17 div.diffblock .code-header div{
18 18 margin-left:25px;
19 19 font-weight: bold;
20 20 }
21 21 div.diffblock .code-body{
22 background: #EEEEEE;
22 background: #FFFFFF;
23 23 }
24 24 div.diffblock pre.raw{
25 25 background: #FFFFFF;
26 26 color:#000000;
27 27 }
28 28
29 29 .code-difftable{
30 30 border-collapse: collapse;
31 31 width: 99%;
32 32 }
33 33 .code-difftable td:target *{
34 34 background: repeat scroll 0 0 #FFFFBE !important;
35 35 text-decoration: underline;
36 36 }
37 37 .code-difftable .context{
38 38 background:none repeat scroll 0 0 #DDE7EF;
39 39 }
40 40 .code-difftable .add{
41 41 background:none repeat scroll 0 0 #DDFFDD;
42 42 }
43 43 .code-difftable .add ins{
44 44 background:none repeat scroll 0 0 #AAFFAA;
45 45 text-decoration:none;
46 46 }
47 47
48 48 .code-difftable .del{
49 49 background:none repeat scroll 0 0 #FFDDDD;
50 50 }
51 51 .code-difftable .del del{
52 52 background:none repeat scroll 0 0 #FFAAAA;
53 53 text-decoration:none;
54 54 }
55 55
56 56 .code-difftable .lineno{
57 57 background:none repeat scroll 0 0 #EEEEEE !important;
58 58 border-right:1px solid #DDDDDD;
59 59 padding-left:2px;
60 60 padding-right:2px;
61 61 text-align:right;
62 62 width:20px;
63 63 -moz-user-select:none;
64 64 -webkit-user-select: none;
65 65 }
66 66 .code-difftable .lineno pre{
67 67 color:#747474 !important;
68 68 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
69 69 letter-spacing:-1px;
70 70 text-align:right;
71 71 width:20px;
72 72 }
73 73 .code-difftable .lineno a{
74 74 color:#0000CC !important;
75 75 }
76 76 .code-difftable .code td{
77 77 margin:0;
78 78 padding: 0;
79 79 }
80 80 .code-difftable .code pre{
81 81 margin:0;
82 82 padding:0;
83 83 }
84 84
85 85
86 86 .code {
87 87 display: block;
88 88 width: 100%;
89 89 }
90 90 .code-diff {
91 91 padding: 0px;
92 92 margin-top: 5px;
93 93 margin-bottom: 5px;
94 94 border-left: 2px solid #ccc;
95 95 }
96 96 .code-diff pre, .line pre {
97 97 padding: 3px;
98 98 margin: 0;
99 99 }
100 100 .lineno a {
101 101 text-decoration: none;
102 102 }
103 103
104 104 .line{
105 105 padding:0;
106 106 margin:0;
107 107 } No newline at end of file
@@ -1,661 +1,760 b''
1 1 /*** Initial Settings ***/
2 2 #mainhtml{
3 3 margin: 15px 50px;
4 4 background: #DBD4C6;
5 5 font-family: sans-serif;
6 6 }
7 7
8 8 a {
9 color: #0000cc;
9 color: #556CB5;
10 10 text-decoration: none;
11 11 }
12 12 a:HOVER{
13 13 text-decoration: underline;
14 14 }
15
15 16 /*** end of Initial Settings ***/
16 17
18 /*** ***/
19 .table_disp {
20 border-left: 0px solid #666666;
21 border-bottom: 1px solid #666666;
22 border-right: 1px solid #666666;
23 padding: 0px;
24 margin: 0px;
25 border-spacing: 0px;
26 }
27
28 .table_disp .header {
29 border-top: 1px solid #666666;
30 background-color: #556CB5;
31 font-weight: bold;
32 color: white;
33 vertical-align: middle;
34 padding: 3px 5px;
35 text-align: left;
36 font-size: 0.9em;
37 }
38
39 .table_disp .header td {
40 padding: 4px;
41 vertical-align: middle;
42 border-top: 1px solid #AAAAAA;
43 border-bottom: 2px solid #666666;
44 }
45 .table_disp td {
46 border-left: 1px solid #AAAAAA;
47 padding-left: 2px;
48 padding-right: 0px;
49 }
50
51 table tr.parity0:hover,table tr.parity1:hover {
52 background: #D5E1E6;
53 }
54
55 table tr.parity0 {
56 background: #EAEAE9;
57 }
58
59 table tr.parity1 {
60 background: #FFFFFF;
61 }
62
63
64 /*** ***/
65
17 66 /** common settings **/
67 .add_icon{
68 background: url("/images/icons/add.png") no-repeat scroll 3px;
69 height: 16px;
70 padding-left: 20px;
71 padding-top: 0px;
72 text-align: left;
73
74 }
75 .edit_icon{
76 background: url("/images/icons/folder_edit.png") no-repeat scroll 3px;
77 height: 16px;
78 padding-left: 20px;
79 padding-top: 0px;
80 text-align: left;
81 }
82
83 .delete_icon{
84 background: url("/images/icons/delete.png") no-repeat scroll 3px;
85 height: 16px;
86 padding-left: 20px;
87 padding-top: 0px;
88 text-align: left;
89
90 }
91
92 .action_button{
93 border:0px;
94 display: block;
95 }
96 .action_button:hover{
97 border:0px;
98 font-style:italic;
99 cursor: pointer;
100 }
101
18 102 div#main {
19 103 padding: 5px;
20 104 }
21 105
22 106 div#container {
23 107 background: #FFFFFF;
24 108 position: relative;
25 109 color: #666;
26 110 }
27 111
28 112 div.page-header {
29 113 padding: 50px 20px 0;
30 114 background: #556cb5 top left repeat-x;
31 115 position: relative;
32 116 }
33 117
34 118 div.page-header h1 {
35 119 margin: 10px 0 30px;
36 120 font-size: 1.8em;
37 121 font-weight: bold;
38 122 font-family: sans-serif;
39 123 letter-spacing: 1px;
40 124 color: #DDD;
41 125 }
42 126
43 127 div.page-header h1 a {
44 128 font-weight: bold;
45 129 color: #FFF;
46 130 }
47 131
48 132 div.page-header a {
49 133 text-decoration: none;
50 134 }
51 135
52 136 div.page-header form {
53 137 position: absolute;
54 138 margin-bottom: 2px;
55 139 bottom: 0;
56 140 right: 20px;
57 141 }
58 142
59 143 div.page-header form label {
60 144 color: #DDD;
61 145 }
62 146
63 147 div.page-header form input {
64 148 padding: 2px;
65 149 border: solid 1px #DDD;
66 150 }
67 151
68 152 div.page-header form dl {
69 153 overflow: hidden;
70 154 }
71 155
72 156 div.page-header form dl dt {
73 157 font-size: 1.2em;
74 158 }
75 159
76 160 div.page-header form dl dt,div.page-header form dl dd {
77 161 margin: 0 0 0 5px;
78 162 float: left;
79 163 height: 24px;
80 164 line-height: 20px;
81 165 }
82 166
83 167 ul.page-nav {
84 168 margin: 10px 0 0 0;
85 169 list-style-type: none;
86 170 overflow: hidden;
87 171 width: 800px;
88 172 padding: 0;
89 173 }
90 174
91 175 ul.page-nav li {
92 176 margin: 0 2px 0 0;
93 177 float: left;
94 178 height: 24px;
95 179 font-size: 1.1em;
96 180 line-height: 24px;
97 181 text-align: center;
98 182 background: #DDD;
99 183 }
100 184
101 185 ul.page-nav li.current {
102 186 background: #FFF;
103 187 padding-right: 5px;
104 188 padding-left: 5px;
105 189 }
106 190
107 191 ul.page-nav li a {
108 192 height: 24px;
109 193 color: #666;
110 194 padding-right: 5px;
111 195 padding-left: 5px;
112 196 display: block;
113 197 text-decoration: none;
114 198 }
115 199 ul.page-nav li.logout a {
116 200 color: red;
117 201 }
118 202 ul.page-nav li a:hover {
119 203 color: #333;
120 204 background: #FFF;
121 205 }
122 206
123 207 ul.submenu {
124 margin: 10px 0 -10px 20px;
208 margin: 5px 0px -20px 0px;
125 209 list-style-type: none;
126 210 }
127 211
128 212 ul.submenu li {
129 213 margin: 0 10px 0 0;
130 font-size: 1.2em;
214 font-size: 0.9em;
215 font-weight:bold;
131 216 display: inline;
132 217 }
218 ul.submenu .repos {
219 background: url("/images/icons/folder_edit.png") no-repeat scroll 3px;
220 height: 16px;
221 padding-left: 20px;
222 padding-top: 0px;
223 text-align: left;
224
225 }
226 ul.submenu .users {
227 background: url("/images/icons/user_edit.png") no-repeat scroll 3px;
228 height: 16px;
229 padding-left: 20px;
230 padding-top: 0px;
231 text-align: left;
232 }
233 ul.submenu .permissions {
234 background: url("/images/icons/folder_key.png") no-repeat scroll 3px;
235 height: 16px;
236 padding-left: 20px;
237 padding-top: 0px;
238 text-align: left;
239 }
240
241 ul.submenu .current_submenu {
242 border-bottom: 2px solid #556CB5;
243 }
133 244
134 245 h2 {
135 246 margin: 20px 0 10px;
136 247 height: 30px;
137 248 line-height: 30px;
138 249 text-indent: 20px;
139 250 background: #FFF;
140 251 font-size: 1.2em;
141 252 border-top: dotted 1px #D5E1E6;
142 253 font-weight: bold;
254 color:#556CB5;
143 255 }
144 256
145 257 h2.no-link {
146 258 color: #006699;
147 259 }
148 260
149 261 h2.no-border {
150 262 color: #FFF;
151 263 background: #556CB5;
152 264 border: 0;
153 265 }
154 266
155 267 h2 a {
156 268 font-weight: bold;
157 269 color: #006699;
158 270 }
159 271
160 272 div.page-path {
161 273 text-align: right;
162 274 padding: 20px 30px 10px 0;
163 275 border: solid #d9d8d1;
164 276 border-width: 0px 0px 1px;
165 277 font-size: 1.2em;
166 278 }
167 279
168 280 div.page-footer {
169 281 margin: 50px 0 0;
170 282 position: relative;
171 283 text-align: center;
172 284 font-weight: bold;
173 285 font-size: 90%;
174 286 }
175 287
176 288 div.page-footer p {
177 289 position: relative;
178 290 left: 20px;
179 291 bottom: 5px;
180 292 font-size: 1.2em;
181 293 }
182 294
183 295 ul.rss-logo {
184 296 position: absolute;
185 297 top: -10px;
186 298 right: 20px;
187 299 height: 20px;
188 300 list-style-type: none;
189 301 }
190 302
191 303 ul.rss-logo li {
192 304 display: inline;
193 305 }
194 306
195 307 ul.rss-logo li a {
196 308 padding: 3px 6px;
197 309 line-height: 10px;
198 310 border: 1px solid;
199 311 border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
200 312 color: #ffffff;
201 313 background-color: #ff6600;
202 314 font-weight: bold;
203 315 font-family: sans-serif;
204 316 font-size: 10px;
205 317 text-align: center;
206 318 text-decoration: none;
207 319 }
208 320
209 321 div.rss-logo li a:hover {
210 322 background-color: #ee5500;
211 323 }
212 324
213 325 p.normal {
214 326 margin: 20px 0 20px 30px;
215 327 font-size: 1.2em;
216 328 }
217 329
218 table tr.parity0:hover,table tr.parity1:hover {
219 background: #D5E1E6;
220 }
221
222 table tr.parity0 {
223 background: #EAEAE9;
224 }
225
226 table tr.parity1 {
227 background: #FFFFFF;
228 }
229
230 330 span.logtags span {
231 331 background-repeat: no-repeat;
232 332 height: 16px;
233 333 padding-left: 20px;
234 334 padding-top: 0px;
235 335 text-align: left;
236 336 font-weight: bold;
237 337 }
238 338
239 339 span.logtags span.tagtag {
240 340 background-image: url("/images/icons/tag_green.png");
241 341 }
242 342
243 343 span.logtags span.branchtag {
244 344 background-image: url("/images/icons/arrow_branch.png");
245 345 color: #628F53;
246 346 }
247 347
248 348 span.logtags span.inbranchtag {
249 349 background-image: url("/images/icons/arrow_branch.png");
250 350 }
251 351
252 352 div.diff pre {
253 353 margin: 10px 0 0 0;
254 354 }
255 355
256 356 div.diff pre span {
257 357 font-family: monospace;
258 358 white-space: pre;
259 359 font-size: 1.2em;
260 360 padding: 3px 0;
261 361 }
262 362
263 363 td.source {
264 364 white-space: pre;
265 365 font-family: monospace;
266 366 margin: 10px 30px 0;
267 367 font-size: 1.2em;
268 368 font-family: monospace;
269 369 }
270 370
271 371 div.source div.parity0,div.source div.parity1 {
272 372 padding: 1px;
273 373 font-size: 1.2em;
274 374 }
275 375
276 376 div.source div.parity0 {
277 377 background: #F1F6F7;
278 378 }
279 379
280 380 div.source div.parity1 {
281 381 background: #FFFFFF;
282 382 }
283 383
284 384 div.parity0:hover,div.parity1:hover {
285 385 background: #D5E1E6;
286 386 }
287 387
288 388 .linenr {
289 389 color: #999;
290 390 text-align: right;
291 391 }
292 392
293 393 .lineno {
294 394 text-align: right;
295 395 }
296 396
297 397 .lineno a {
298 398 color: #999;
299 399 }
300 400
301 401 td.linenr {
302 402 width: 60px;
303 403 }
304 404
305 405 div#powered-by {
306 406 position: absolute;
307 407 width: 75px;
308 408 top: 15px;
309 409 right: 20px;
310 410 font-size: 1.2em;
311 411 }
312 412
313 413 div#powered-by a {
314 414 color: #EEE;
315 415 text-decoration: none;
316 416 }
317 417
318 418 div#powered-by a:hover {
319 419 text-decoration: underline;
320 420 }
321 421
322 422 dl.overview {
323 423 margin: 0 0 0 30px;
324 424 font-size: 1.1em;
325 425 overflow: hidden;
326 426 }
327 427
328 428 dl.overview dt,dl.overview dd {
329 429 margin: 5px 0;
330 430 float: left;
331 431 }
332 432
333 433 dl.overview dt {
334 434 clear: left;
335 435 font-weight: bold;
336 436 width: 150px;
337 437 }
338 438
439 #clone_url{
440 border: 0px;
441 }
339 442 /** end of summary **/
340 443
341 444 /** chagelog **/
342 445 h3.changelog {
343 446 margin: 20px 0 5px 30px;
344 447 padding: 0 0 2px;
345 448 font-size: 1.4em;
346 449 border-bottom: dotted 1px #D5E1E6;
347 450 }
348 451
349 452 ul.changelog-entry {
350 453 margin: 0 0 10px 30px;
351 454 list-style-type: none;
352 455 position: relative;
353 456 }
354 457
355 458 ul.changelog-entry li span.revdate {
356 459 font-size: 1.1em;
357 460 }
358 461
359 462 ul.changelog-entry li.age {
360 463 position: absolute;
361 464 top: -25px;
362 465 right: 10px;
363 466 font-size: 1.4em;
364 467 color: #CCC;
365 468 font-weight: bold;
366 469 font-style: italic;
367 470 }
368 471
369 472 ul.changelog-entry li span.name {
370 473 font-size: 1.2em;
371 474 font-weight: bold;
372 475 }
373 476
374 477 ul.changelog-entry li.description {
375 478 margin: 10px 0 0;
376 479 font-size: 1.1em;
377 480 }
378 481
379 482 /** end of changelog **/
380 483
381 484 /** file **/
382 485 p.files {
383 486 margin: 0 0 0 20px;
384 487 font-size: 2.0em;
385 488 font-weight: bold;
386 489 }
387 490
388 491 /** end of file **/
389 492
390 493 /** changeset **/
391 494 #changeset_content{
392 495 width:60%;
393 496 float:left;
394 497 }
395 498
396 499 #changeset_content .container .wrapper{
397 500 width: 600px;
398 501 }
399 502 #changeset_content .container{
400 503 border:1px solid #CCCCCC;
401 504 height:120px;
402 505 }
403 506
404 507 #changeset_content .container .left{
405 508 float:left;
406 509 width: 70%;
407 510 padding-left: 5px;
408 511 }
409 512
410 513 #changeset_content .container .right{
411 514 float:right;
412 515 width: 25%;
413 516 text-align: right;
414 517 }
415 518
416 519 #changeset_content .container .left .date{
417 520 font-weight:bold;
418 521 }
419 522 #changeset_content .container .left .author{
420 523
421 524 }
422 525 #changeset_content .container .left .message{
423 526
424 527 }
425 528
426 529
427 530
428 531
429 532
430 533
431 534
432 535
433 536
434 537 .cs_files{
435 538 border: 1px solid #CCCCCC;
436 539 width: 60%;
437 540
438 541 }
439 542
440 543 .cs_files .cs_added{
441 544 background: url("/images/icons/page_white_add.png") no-repeat scroll 3px;
442 545 /*background-color:#BBFFBB;*/
443 546 height: 16px;
444 547 padding-left: 20px;
445 548 margin-top: 7px;
446 549 text-align: left;
447 550 }
448 551 .cs_files .cs_changed{
449 552 background: url("/images/icons/page_white_edit.png") no-repeat scroll 3px;
450 553 /*background-color: #FFDD88;*/
451 554 height: 16px;
452 555 padding-left: 20px;
453 556 margin-top: 7px;
454 557 text-align: left;
455 558 }
456 559 .cs_files .cs_removed{
457 560 background: url("/images/icons/page_white_delete.png") no-repeat scroll 3px;
458 561 /*background-color: #FF8888;*/
459 562 height: 16px;
460 563 padding-left: 20px;
461 564 margin-top: 7px;
462 565 text-align: left;
463 566 }
464 567
465 568 /** end of changeset **/
466 569
467 570 /** canvas **/
468 571 canvas {
469 572 position: absolute;
470 573 z-index: 5;
471 574 top: -0.7em;
472 575 }
473 576 #graph{
474 577 overflow: hidden;
475 578
476 579 }
477 580 #graph_nodes{
478 581 width:160px;
479 582 float:left;
480 583 }
481 584
482 585 #graph_content{
483 586 width:800px;
484 587 float:left;
485 588 }
486 589 #graph_content .container_header{
487 590 border:1px solid #CCCCCC;
488 591 height:30px;
489 592 background: #EEEEEE;
490 593 }
491 594
492 595
493 596 #graph_content .container .wrapper{
494 597 width: 600px;
495 598 }
496 599 #graph_content .container{
497 600 border-bottom: 1px solid #CCCCCC;
498 601 border-left: 1px solid #CCCCCC;
499 602 border-right: 1px solid #CCCCCC;
500 603 height:120px;
501 604 }
502 605
503 606 #graph_content .container .left{
504 607 float:left;
505 608 width: 70%;
506 609 padding-left: 5px;
507 610 }
508 611
509 612 #graph_content .container .right{
510 613 float:right;
511 614 width: 25%;
512 615 text-align: right;
513 616 }
514 617 #graph_content .container .left .date{
515 618 font-weight:bold;
516 619 }
517 620 #graph_content .container .left .author{
518 621
519 622 }
520 623 #graph_content .container .left .message{
521 624 font-size: 80%;
522 625 }
523 626
524 627 .right div{
525 628 clear: both;
526 629 }
527 630 .right .changes .added,.changed,.removed{
528 631 border:1px solid #DDDDDD;
529 632 display:block;
530 633 float:right;
531 634 font-size:0.75em;
532 635 text-align:center;
533 636 min-width:15px;
534 637 }
535 638 .right .changes .added{
536 639 background:#BBFFBB;
537 640 }
538 641 .right .changes .changed{
539 642 background: #FFDD88;
540 643 }
541 644 .right .changes .removed{
542 645 background: #FF8888;
543 646 }
544 647
545 648 .right .merge{
546 649 vertical-align: top;
547 650 font-size: 60%;
548 651 font-weight: bold;
549 652 }
550 653 .right .merge img{
551 654 vertical-align: bottom;
552 655 }
553 656
554 657 .right .parent{
555 658 font-size: 90%;
556 659 font-family: monospace;
557 660 }
558 661 /** end of canvas **/
559 662
560 663 /* FILE BROWSER */
561 664 div.browserblock {
562 665 overflow: hidden;
563 666 padding: 0px;
564 667 border: 1px solid #ccc;
565 668 background: #f8f8f8;
566 669 font-size: 100%;
567 670 line-height: 100%;
568 671 /* new */
569 672 line-height: 125%;
570 673 }
571 674 div.browserblock .browser-header{
572 675 border-bottom: 1px solid #CCCCCC;
573 676 background: #EEEEEE;
574 677 color:blue;
575 678 padding:10px 0 10px 0;
576 679 }
577 680 div.browserblock .browser-header span{
578 681 margin-left:25px;
579 682 font-weight: bold;
580 683 }
581 684 div.browserblock .browser-body{
582 685 background: #EEEEEE;
583 686 }
584 687
585 688 table.code-browser {
586 689 border-collapse:collapse;
587 690 width: 100%;
588 691 }
589 692 table.code-browser tr{
590 693 margin:3px;
591 694 }
592 695
593 696 table.code-browser thead th {
594 697 background-color: #EEEEEE;
595 698 height: 20px;
596 699 font-size: 1.1em;
597 700 font-weight: bold;
598 701 text-align: center;
599 702 text-align: left;
600 703 padding-left: 10px;
601 704 }
602 705 table.code-browser tbody tr {
603 706
604 707 }
605 708
606 709 table.code-browser tbody td {
607 710
608 711 padding-left:10px;
609 712 height: 20px;
610 713 }
611 714
612 715 .info-table {
613 716 background: none repeat scroll 0 0 #FAFAFA;
614 717 border-bottom: 1px solid #DDDDDD;
615 718 width: 100%;
616 719 }
617 720
618 721 .rss_logo {
619 722 background: url("/images/icons/rss_16.png") no-repeat scroll 3px;
620 723 height: 16px;
621 724 padding-left: 20px;
622 725 padding-top: 0px;
623 726 text-align: left;
624 727 }
625 728
626 729 .atom_logo {
627 730 background: url("/images/icons/atom.png") no-repeat scroll 3px;
628 731 height: 16px;
629 732 padding-left: 20px;
630 733 padding-top: 0px;
631 734 text-align: left;
632 735 }
633 736 .archive_logo{
634 737 background: url("/images/icons/compress.png") no-repeat scroll 3px;
635 738 height: 16px;
636 739 padding-left: 20px;
637 740 text-align: left;
638 741 }
639 742
640 743 .browser-file {
641 744 background: url("/images/icons/document_16.png") no-repeat scroll 3px;
642 745 height: 16px;
643 746 padding-left: 20px;
644 747 text-align: left;
645 748 }
646 749
647 750 .browser-dir {
648 751 background: url("/images/icons/folder_16.png") no-repeat scroll 3px;
649 752 height: 16px;
650 753 padding-left: 20px;
651 754 text-align: left;
652 755 }
653 756
654 .current_submenu {
655 border-bottom: 2px solid;
656 }
657
658 757 #repos_list {
659 758 border: 1px solid #556CB5;
660 759 background: #FFFFFF;
661 760 } No newline at end of file
@@ -1,28 +1,27 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Administration')}
6 6 </%def>
7 7 <%def name="breadcrumbs()">
8 8 ${h.link_to(u'Admin',h.url('admin_home'))}
9 9 /
10 10 </%def>
11 11 <%def name="page_nav()">
12 12 ${self.menu('admin')}
13 13 ${self.submenu('')}
14 14 </%def>
15 15 <%def name="main()">
16 16 %if c.admin_user:
17 17 <div>
18 18 <h2>Welcome ${c.admin_username}</h2>
19 ${_('Last actions')}
20 19 <div id="user_log">
21 20 ${c.log_data}
22 21 </div>
23 22 </div>
24 23 %else:
25 24 <h2>${_('Sorry only admin users can acces this area')}</h2>
26 25 %endif
27 26
28 27 </%def> No newline at end of file
@@ -1,38 +1,38 b''
1 1 ## -*- coding: utf-8 -*-
2 2 %if c.users_log:
3 <table>
4 <tr>
3 <table class="table_disp">
4 <tr class="header">
5 5 <td>${_('Username')}</td>
6 6 <td>${_('Repository')}</td>
7 7 <td>${_('Action')}</td>
8 8 <td>${_('Date')}</td>
9 9 </tr>
10 10
11 11 %for cnt,l in enumerate(c.users_log):
12 12 <tr class="parity${cnt%2}">
13 13 <td>${l.user.username}</td>
14 14 <td>${l.repository}</td>
15 15 <td>${l.action}</td>
16 16 <td>${l.action_date}</td>
17 17 </tr>
18 18 %endfor
19 19
20 20 </table>
21 21 <div>
22 22 <script type="text/javascript">
23 23 var data_div = 'user_log';
24 24 YAHOO.util.Event.onDOMReady(function(){
25 25 YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('pager_link'),"click",function(){
26 26 YAHOO.util.Dom.setStyle('shortlog_data','opacity','0.3');});});
27 27 </script>
28 28 <h2>${c.users_log.pager('$link_previous ~2~ $link_next',
29 29 onclick="""YAHOO.util.Connect.asyncRequest('GET','$partial_url',{
30 30 success:function(o){YAHOO.util.Dom.get(data_div).innerHTML=o.responseText;
31 31 YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('pager_link'),"click",function(){
32 32 YAHOO.util.Dom.setStyle(data_div,'opacity','0.3');});
33 33 YAHOO.util.Dom.setStyle(data_div,'opacity','1');}},null); return false;""")}
34 34 </h2>
35 35 </div>
36 36 %else:
37 37 ${_('No actions yet')}
38 38 %endif
@@ -1,32 +1,38 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Repositories administration')}
6 6 </%def>
7 7 <%def name="breadcrumbs()">
8 8 ${h.link_to(u'Admin',h.url('admin_home'))}
9 9 /
10 10 </%def>
11 11 <%def name="page_nav()">
12 12 ${self.menu('admin')}
13 13 ${self.submenu('repos')}
14 14 </%def>
15 15 <%def name="main()">
16 16 <div>
17 17 <h2>${_('Repositories administration')}</h2>
18 <table>
18 <table class="table_disp">
19 <tr class="header">
20 <td>${_('name')}</td>
21 <td>${_('last revision')}</td>
22 <td>${_('action')}</td>
23 </tr>
19 24 %for cnt,repo in enumerate(c.repos_list):
20 25 <tr class="parity${cnt%2}">
21 26 <td>${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']))}</td>
22 27 <td>r${repo['rev']}:${repo['tip']}</td>
23 28 <td>
24 29 ${h.form(url('repo', id=repo['name']),method='delete')}
25 ${h.submit('remove','remove',class_="submit",onclick="return confirm('Confirm to delete this repository');")}
30 ${h.submit('remove','delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
26 31 ${h.end_form()}
27 32 </td>
28 33 </tr>
29 34 %endfor
30 35 </table>
36 <span class="add_icon">${h.link_to(u'add repo',h.url('new_repo'))}</span>
31 37 </div>
32 38 </%def>
@@ -1,42 +1,42 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Users administration')}
6 6 </%def>
7 7 <%def name="breadcrumbs()">
8 8 ${h.link_to(u'Admin',h.url('admin_home'))}
9 9 /
10 10 </%def>
11 11 <%def name="page_nav()">
12 12 ${self.menu('admin')}
13 13 ${self.submenu('users')}
14 14 </%def>
15 15 <%def name="main()">
16 16 <div>
17 17 <h2>${_('Mercurial users')}</h2>
18 <table>
19 <tr>
20 <th>Id</th>
21 <th>Username</th>
22 <th>Active</th>
23 <th>Admin</th>
24 <th>Action</th>
18 <table class="table_disp">
19 <tr class="header">
20 <td>ID</td>
21 <td>Username</td>
22 <td>Active</td>
23 <td>Admin</td>
24 <td>Action</td>
25 25 </tr>
26 26 %for user in c.users_list:
27 27 <tr>
28 28 <td>${user.user_id}</td>
29 29 <td>${h.link_to(user.username,h.url('edit_user', id=user.user_id))}</td>
30 30 <td>${user.active}</td>
31 31 <td>${user.admin}</td>
32 32 <td>
33 33 ${h.form(url('user', id=user.user_id),method='delete')}
34 ${h.submit('remove','remove',class_="submit")}
34 ${h.submit('remove','delete',class_="delete_icon action_button")}
35 35 ${h.end_form()}
36 36 </td>
37 37 </tr>
38 38 %endfor
39 39 </table>
40 <h3>${h.link_to(u'Add user',h.url('new_user'))}</h3>
40 <span class="add_icon">${h.link_to(u'add user',h.url('new_user'))}</span>
41 41 </div>
42 42 </%def>
@@ -1,142 +1,142 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <link rel="icon" href="/images/hgicon.png" type="image/png" />
6 6 <meta name="robots" content="index, nofollow"/>
7 7 <title>${next.title()}</title>
8 8 ##For future use yui reset for cross browser compatability.
9 9 ##<link rel="stylesheet" href="/js/yui/reset-fonts-grids/reset-fonts-grids.css" type="text/css" />
10 10 ${self.css()}
11 11 ${self.js()}
12 12 </head>
13 13
14 14 <body class="mainbody">
15 15 <div id="container">
16 16 <div class="page-header">
17 17 <h1>${next.breadcrumbs()}</h1>
18 18 ${self.page_nav()}
19 19 <div id="main">
20 20 ${next.main()}
21 21 </div>
22 22 <div class="page-footer">
23 23 Hg App ${c.hg_app_version} &copy; 2010 by Marcin Kuzminski
24 24 </div>
25 25
26 26 <div id="powered-by">
27 27 <p>
28 28 <a href="http://mercurial.selenic.com/" title="Mercurial">
29 29 <img src="/images/hglogo.png" width="75" height="90" alt="mercurial"/></a>
30 30 </p>
31 31 </div>
32 32
33 33 <div id="corner-top-left"></div>
34 34 <div id="corner-top-right"></div>
35 35 <div id="corner-bottom-left"></div>
36 36 <div id="corner-bottom-right"></div>
37 37
38 38 </div>
39 39 </body>
40 40 </html>
41 41
42 42 ### MAKO DEFS ###
43 43
44 44 <%def name="page_nav()">
45 45 ${self.menu()}
46 46 ${self.submenu()}
47 47 </%def>
48 48
49 49 <%def name="menu(current)">
50 50 <%
51 51 def is_current(selected):
52 52 if selected == current:
53 53 return "class='current'"
54 54 %>
55 55 %if current not in ['home','admin']:
56 56 ##regular menu
57 57 <script type="text/javascript">
58 58 YAHOO.util.Event.onDOMReady(function(){
59 59 YAHOO.util.Event.addListener('repo_switcher','click',function(){
60 60 if(YAHOO.util.Dom.hasClass('repo_switcher','selected')){
61 61 YAHOO.util.Dom.setStyle('switch_repos','display','none');
62 62 YAHOO.util.Dom.setStyle('repo_switcher','background','');
63 63 YAHOO.util.Dom.removeClass('repo_switcher','selected');
64 64 }
65 65 else{
66 66 YAHOO.util.Dom.setStyle('switch_repos','display','');
67 67 YAHOO.util.Dom.setStyle('repo_switcher','background','#FFFFFF');
68 68 YAHOO.util.Dom.addClass('repo_switcher','selected');
69 69 }
70 70 });
71 71 YAHOO.util.Event.addListener('repos_list','change',function(e){
72 72 var wa = YAHOO.util.Dom.get('repos_list').value;
73 73
74 74 var url = "${h.url('summary_home',repo_name='__REPLACE__')}".replace('__REPLACE__',wa);
75 75 window.location = url;
76 76 })
77 77 });
78 78 </script>
79 79 <ul class="page-nav">
80 80 <li>
81 81 <a id="repo_switcher" title="${_('Switch repository')}" href="#">&darr;</a>
82 82 <div id="switch_repos" style="display:none;position: absolute;width: 150px;height: 25px">
83 83 <select id="repos_list" size="=10">
84 84 %for repo in c.cached_repo_list:
85 85 <option value="${repo['name']}">${repo['name']}</option>
86 86 %endfor
87 87 </select>
88 88 </div>
89 89 </li>
90 90 <li ${is_current('summary')}>${h.link_to(_('summary'),h.url('summary_home',repo_name=c.repo_name))}</li>
91 91 <li ${is_current('shortlog')}>${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}</li>
92 92 <li ${is_current('changelog')}>${h.link_to(_('changelog'),h.url('changelog_home',repo_name=c.repo_name))}</li>
93 93 <li ${is_current('branches')}>${h.link_to(_('branches'),h.url('branches_home',repo_name=c.repo_name))}</li>
94 94 <li ${is_current('tags')}>${h.link_to(_('tags'),h.url('tags_home',repo_name=c.repo_name))}</li>
95 95 <li ${is_current('files')}>${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name))}</li>
96 96 </ul>
97 97 %else:
98 98 ##Root menu
99 99 <ul class="page-nav">
100 100 <li ${is_current('home')}>${h.link_to(_('Home'),h.url('/'))}</li>
101 101 <li ${is_current('admin')}>${h.link_to(_('Admin'),h.url('admin_home'))}</li>
102 102 <li class="logout">${h.link_to(u'Logout',h.url('logout_home'))}</li>
103 103 </ul>
104 104 %endif
105 105 </div>
106 106 </%def>
107 107 <%def name="submenu(current=None)">
108 108 <%
109 109 def is_current(selected):
110 110 if selected == current:
111 111 return "class='current_submenu'"
112 112 %>
113 113 %if current != None:
114 114 <div>
115 115 <ul class="submenu">
116 <li ${is_current('repos')}>${h.link_to(u'repos',h.url('repos'))}</li>
117 <li ${is_current('users')}>${h.link_to(u'users',h.url('users'))}</li>
116 <li ${is_current('repos')}>${h.link_to(u'repos',h.url('repos'),class_='repos')}</li>
117 <li ${is_current('users')}>${h.link_to(u'users',h.url('users'),class_='users')}</li>
118 <li ${is_current('permissions')}>${h.link_to(u'permissions',h.url('permissions'),class_='permissions')}</li>
118 119 </ul>
119 <br/>
120 120 </div>
121 121 %endif
122 122 </%def>
123 123
124 124
125 125 <%def name="css()">
126 126 <link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" />
127 127 </%def>
128 128
129 129 <%def name="js()">
130 130 <script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
131 131 </%def>
132 132
133 133 <!-- DEFINITION OF FORM ERROR FETCHER -->
134 134 <%def name="get_form_error(element)">
135 135 %if hasattr(c,'form_errors') and type(c.form_errors) == dict:
136 136 %if c.form_errors.get(element,False):
137 137 <span class="error-message">
138 138 ${c.form_errors.get(element,'')}
139 139 </span>
140 140 %endif
141 141 %endif
142 142 </%def> No newline at end of file
@@ -1,120 +1,136 b''
1 1 <%inherit file="/base/base.html"/>
2 2 <%!
3 3 from pylons_app.lib import filters
4 4 %>
5 5 <%def name="title()">
6 6 ${_('Repository managment')}
7 7 </%def>
8 8 <%def name="breadcrumbs()">
9 9 ${h.link_to(u'Home',h.url('/'))}
10 10 /
11 11 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 12 /
13 13 ${_('summary')}
14 14 </%def>
15 15 <%def name="page_nav()">
16 16 ${self.menu('summary')}
17 17 </%def>
18
19 <%def name="js()">
20 <script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
21 <script type="text/javascript">
22 var E = YAHOO.util.Event;
23 var D = YAHOO.util.Dom;
24
25 E.onDOMReady(function(e){
26 id = 'clone_url';
27 E.addListener(id,'click',function(e){
28 D.get('clone_url').select();
29 })
30 })
31 </script>
32 </%def>
33
18 34 <%def name="main()">
19 35 <h2 class="no-link no-border">${_('Mercurial Repository Overview')}</h2>
20 36 <dl class="overview">
21 37 <dt>${_('name')}</dt>
22 38 <dd>${c.repo_info.name}</dd>
23 39 <dt>${_('description')}</dt>
24 40 <dd>${c.repo_info.description}</dd>
25 41 <dt>${_('contact')}</dt>
26 42 <dd>${c.repo_info.contact}</dd>
27 43 <dt>${_('last change')}</dt>
28 44 <dd>${c.repo_info.last_change|n,filters.rfc822date} - ${c.repo_info.last_change|n,filters.age}</dd>
29 <dt>${_('url')}</dt>
30 <dd><pre style="margin:0">hg clone <a href="${c.clone_repo_url}">${c.clone_repo_url}</a></pre></dd>
45 <dt>${_('clone url')}</dt>
46 <dd><input type="text" id="clone_url" readonly="readonly" value="hg clone ${c.clone_repo_url}" size="40"/></dd>
31 47 <dt>${_('download')}</dt>
32 48 <dd>
33 49 %for cnt,archive in enumerate(c.repo_info._get_archives()):
34 50 %if cnt >=1:
35 51 |
36 52 %endif
37 53 ${h.link_to(c.repo_info.name+'.'+archive['type'],
38 54 h.url('files_archive_home',repo_name=c.repo_info.name,
39 55 revision='tip',fileformat=archive['extension']),class_="archive_logo")}
40 56 %endfor
41 57 </dd>
42 58 </dl>
43 59
44 60 <h2>${h.link_to(_('Changes'),h.url('changelog_home',repo_name=c.repo_name))}</h2>
45 61 <table>
46 62 <%def name="message_slug(msg)">
47 63 <%
48 64 limit = 60
49 65 if len(msg) > limit:
50 66 return msg[:limit]+'...'
51 67 else:
52 68 return msg
53 69 %>
54 70 </%def>
55 71 %for cnt,cs in enumerate(c.repo_changesets):
56 72 <tr class="parity${cnt%2}">
57 73 <td>${cs._ctx.date()|n,filters.age}</td>
58 74 <td>${cs.author|n,filters.person}</td>
59 75 <td>r${cs.revision}</td>
60 76 <td>
61 77 ${h.link_to(message_slug(cs.message),
62 78 h.url('changeset_home',repo_name=c.repo_name,revision=cs._short),
63 79 title=cs.message)}
64 80 </td>
65 81 <td>
66 82 <span class="logtags">
67 83 <span class="branchtag">${cs.branch}</span>
68 84 %for tag in cs.tags:
69 85 <span class="tagtag">${tag}</span>
70 86 %endfor
71 87 </span>
72 88 </td>
73 89 <td class="nowrap">
74 90 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=cs._short))}
75 91 |
76 92 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=cs._short))}
77 93 </td>
78 94 </tr>
79 95 %endfor
80 96 </table>
81 97
82 98 <h2>${h.link_to(_('Tags'),h.url('tags_home',repo_name=c.repo_name))}</h2>
83 99 <table>
84 100 %for cnt,tag in enumerate(c.repo_tags):
85 101 <tr class="parity${cnt%2}">
86 102 <td>${tag._ctx.date()|n,filters.age}</td>
87 103 <td>
88 104 <span class="logtags">
89 105 <span class="tagtag">${h.link_to(tag.tags[-1],h.url('changeset_home',repo_name=c.repo_name,revision=tag._short))}</span>
90 106 </span>
91 107 </td>
92 108 <td class="nowrap">
93 109 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag._short))}
94 110 |
95 111 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag._short))}
96 112 </td>
97 113 </tr>
98 114 %endfor
99 115 </table>
100 116
101 117 <h2>${h.link_to(_('Branches'),h.url('branches_home',repo_name=c.repo_name))}</h2>
102 118 <table>
103 119 %for cnt,branch in enumerate(c.repo_branches):
104 120 <tr class="parity${cnt%2}">
105 121 <td>${branch._ctx.date()|n,filters.age}</td>
106 122 <td>
107 123 <span class="logtags">
108 124 <span class="branchtag">${h.link_to(branch.branch,h.url('changeset_home',repo_name=c.repo_name,revision=branch._short))}</span>
109 125 </span>
110 126 </td>
111 127 <td class="nowrap">
112 128 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch._short))}
113 129 |
114 130 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch._short))}
115 131 </td>
116 132 </tr>
117 133 %endfor
118 134 </table>
119 135
120 136 </%def> No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now