Fossil SCM

Add a black & white skin with the main menu down the left margin.

drh 2009-12-20 17:53 trunk
Commit 5a5d7e1f90518ad2a831f621ec9573b8f3fece1e
2 files changed +239 -4 +1 -1
+239 -4
--- src/skins.c
+++ src/skins.c
@@ -371,11 +371,11 @@
371371
@ </head>
372372
@ <body>
373373
@ <div class="header">
374374
@ <div class="title">$<title></div>
375375
@ <div class="status">
376
-@ <div class="logo">$<project_name></div><br/>
376
+@ <div class="logo"><nobr>$<project_name></nobr></div><br/>
377377
@ <nobr><th1>
378378
@ if {[info exists login]} {
379379
@ puts "Logged in as $login"
380380
@ } else {
381381
@ puts "Not logged in"
@@ -416,20 +416,255 @@
416416
@ </div>
417417
@ </body></html>
418418
@ ');
419419
;
420420
421
+/*
422
+** Black letters on a white or cream background with the main menu
423
+** stuck on the left-hand side.
424
+*/
425
+static const char zBuiltinSkin3[] =
426
+@ REPLACE INTO config VALUES('css','/* General settings for the entire page */
427
+@ body {
428
+@ margin:0px 0px 0px 0px;
429
+@ padding:0px;
430
+@ font-family:verdana, arial, helvetica, "sans serif";
431
+@ color:#333;
432
+@ background-color:white;
433
+@ }
434
+@
435
+@ /* consistent colours */
436
+@ h2 {
437
+@ color: #333;
438
+@ }
439
+@ h3 {
440
+@ color: #333;
441
+@ }
442
+@
443
+@ /* The project logo in the upper left-hand corner of each page */
444
+@ div.logo {
445
+@ display: table-cell;
446
+@ text-align: left;
447
+@ vertical-align: bottom;
448
+@ font-weight: bold;
449
+@ color: #333;
450
+@ }
451
+@
452
+@ /* The page title centered at the top of each page */
453
+@ div.title {
454
+@ display: table-cell;
455
+@ font-size: 2em;
456
+@ font-weight: bold;
457
+@ text-align: center;
458
+@ color: #333;
459
+@ vertical-align: bottom;
460
+@ width: 100%;
461
+@ }
462
+@
463
+@ /* The login status message in the top right-hand corner */
464
+@ div.status {
465
+@ display: table-cell;
466
+@ padding-right: 10px;
467
+@ text-align: right;
468
+@ vertical-align: bottom;
469
+@ padding-bottom: 5px;
470
+@ color: #333;
471
+@ font-size: 0.8em;
472
+@ font-weight: bold;
473
+@ }
474
+@
475
+@ /* The header across the top of the page */
476
+@ div.header {
477
+@ margin:10px 0px 10px 0px;
478
+@ padding:1px 0px 0px 20px;
479
+@ border-style:solid;
480
+@ border-color:black;
481
+@ border-width:1px 0px;
482
+@ background-color:#eee;
483
+@ }
484
+@
485
+@ /* The main menu bar that appears at the top left of the page beneath
486
+@ ** the header. Width must be co-ordinated with the container below */
487
+@ div.mainmenu {
488
+@ float: left;
489
+@ margin-left: 10px;
490
+@ margin-right: 10px;
491
+@ font-size: 0.9em;
492
+@ font-weight: bold;
493
+@ padding:5px;
494
+@ background-color:#eee;
495
+@ border:1px solid #999;
496
+@ width:8em;
497
+@ }
498
+@
499
+@ /* Main menu is now a list */
500
+@ div.mainmenu ul {
501
+@ padding: 0;
502
+@ list-style:none;
503
+@ }
504
+@ div.mainmenu a, div.mainmenu a:visited{
505
+@ padding: 1px 10px 1px 10px;
506
+@ color: #333;
507
+@ text-decoration: none;
508
+@ }
509
+@ div.mainmenu a:hover {
510
+@ color: #eee;
511
+@ background-color: #333;
512
+@ }
513
+@
514
+@ /* Container for the sub-menu and content so they don''t spread
515
+@ ** out underneath the main menu */
516
+@ #container {
517
+@ padding-left: 9em;
518
+@ }
519
+@
520
+@ /* The submenu bar that *sometimes* appears below the main menu */
521
+@ div.submenu {
522
+@ padding: 3px 10px 3px 10px;
523
+@ font-size: 0.9em;
524
+@ text-align: center;
525
+@ border:1px solid #999;
526
+@ border-width:1px 0px;
527
+@ background-color: #eee;
528
+@ color: #333;
529
+@ }
530
+@ div.submenu a, div.submenu a:visited {
531
+@ padding: 3px 10px 3px 10px;
532
+@ color: #333;
533
+@ text-decoration: none;
534
+@ }
535
+@ div.submenu a:hover {
536
+@ color: #eee;
537
+@ background-color: #333;
538
+@ }
539
+@
540
+@ /* All page content from the bottom of the menu or submenu down to
541
+@ ** the footer */
542
+@ div.content {
543
+@ float right;
544
+@ padding: 2ex 1ex 0ex 2ex;
545
+@ }
546
+@
547
+@ /* Some pages have section dividers */
548
+@ div.section {
549
+@ margin-bottom: 0px;
550
+@ margin-top: 1em;
551
+@ padding: 1px 1px 1px 1px;
552
+@ font-size: 1.2em;
553
+@ font-weight: bold;
554
+@ border-style:solid;
555
+@ border-color:#999;
556
+@ border-width:1px 0px;
557
+@ background-color: #eee;
558
+@ color: #333;
559
+@ }
560
+@
561
+@ /* The "Date" that occurs on the left hand side of timelines */
562
+@ div.divider {
563
+@ background: #eee;
564
+@ border: 2px #999 solid;
565
+@ font-size: 1em; font-weight: normal;
566
+@ padding: .25em;
567
+@ margin: .2em 0 .2em 0;
568
+@ float: left;
569
+@ clear: left;
570
+@ color: #333
571
+@ }
572
+@
573
+@ /* The footer at the very bottom of the page */
574
+@ div.footer {
575
+@ font-size: 0.8em;
576
+@ margin-top: 12px;
577
+@ padding: 5px 10px 5px 10px;
578
+@ text-align: right;
579
+@ background-color: #eee;
580
+@ color: #555;
581
+@ }
582
+@
583
+@ /* <verbatim> blocks */
584
+@ pre.verbatim {
585
+@ background-color: #f5f5f5;
586
+@ padding: 0.5em;
587
+@ }
588
+@
589
+@ /* The label/value pairs on (for example) the ci page */
590
+@ table.label-value th {
591
+@ vertical-align: top;
592
+@ text-align: right;
593
+@ padding: 0.2ex 2ex;
594
+@ }');
595
+@ REPLACE INTO config VALUES('header','<html>
596
+@ <head>
597
+@ <title>$<project_name>: $<title></title>
598
+@ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
599
+@ href="$baseurl/timeline.rss">
600
+@ <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
601
+@ media="screen">
602
+@ </head>
603
+@ <body>
604
+@ <div class="header">
605
+@ <div class="logo">
606
+@ <!-- <img src="$baseurl/logo" alt="logo"> -->
607
+@ <br><nobr>$<project_name></nobr>
608
+@ </div>
609
+@ <div class="title">$<title></div>
610
+@ <div class="status"><nobr><th1>
611
+@ if {[info exists login]} {
612
+@ puts "Logged in as $login"
613
+@ } else {
614
+@ puts "Not logged in"
615
+@ }
616
+@ </th1></nobr></div>
617
+@ </div>
618
+@ <div class="mainmenu"><ul><th1>
619
+@ html "<li><a href=''$baseurl$index_page''>Home</a></li>"
620
+@ if {[hascap h]} {
621
+@ html "<li><a href=''$baseurl/dir''>Files</a></li>"
622
+@ }
623
+@ if {[hascap o]} {
624
+@ html "<li><a href=''$baseurl/leaves''>Leaves</a></li>"
625
+@ html "<li><a href=''$baseurl/timeline''>Timeline</a></li>"
626
+@ html "<li><a href=''$baseurl/brlist''>Branches</a></li>"
627
+@ html "<li><a href=''$baseurl/taglist''>Tags</a></li>"
628
+@ }
629
+@ if {[hascap r]} {
630
+@ html "<li><a href=''$baseurl/reportlist''>Tickets</a></li>"
631
+@ }
632
+@ if {[hascap j]} {
633
+@ html "<li><a href=''$baseurl/wiki''>Wiki</a></li>"
634
+@ }
635
+@ if {[hascap s]} {
636
+@ html "<li><a href=''$baseurl/setup''>Admin</a></li>"
637
+@ } elseif {[hascap a]} {
638
+@ html "<li><a href=''$baseurl/setup_ulist''>Users</a></li>"
639
+@ }
640
+@ if {[info exists login]} {
641
+@ html "<li><a href=''$baseurl/login''>Logout</a></li>"
642
+@ } else {
643
+@ html "<li><a href=''$baseurl/login''>Login</a></li>"
644
+@ }
645
+@ </th1></ul></div>
646
+@ <div id="container">
647
+@ ');
648
+@ REPLACE INTO config VALUES('footer','</div>
649
+@ <div class="footer">
650
+@ Fossil version $manifest_version $manifest_date
651
+@ </div>
652
+@ </body></html>
653
+@ ');
654
+;
421655
/*
422656
** An array of available built-in skins.
423657
*/
424658
static struct BuiltinSkin {
425659
const char *zName;
426660
const char *zValue;
427661
} aBuiltinSkin[] = {
428
- { "Default", 0 /* Filled in at runtime */ },
429
- { "Plain Gray, No Logo", zBuiltinSkin1 },
430
- { "Khaki, No Logo", zBuiltinSkin2 },
662
+ { "Default", 0 /* Filled in at runtime */ },
663
+ { "Plain Gray, No Logo", zBuiltinSkin1 },
664
+ { "Khaki, No Logo", zBuiltinSkin2 },
665
+ { "Black & White, Menu on Left", zBuiltinSkin3 },
431666
};
432667
433668
/*
434669
** For a skin named zSkinName, compute the name of the CONFIG table
435670
** entry where that skin is stored and return it.
436671
--- src/skins.c
+++ src/skins.c
@@ -371,11 +371,11 @@
371 @ </head>
372 @ <body>
373 @ <div class="header">
374 @ <div class="title">$<title></div>
375 @ <div class="status">
376 @ <div class="logo">$<project_name></div><br/>
377 @ <nobr><th1>
378 @ if {[info exists login]} {
379 @ puts "Logged in as $login"
380 @ } else {
381 @ puts "Not logged in"
@@ -416,20 +416,255 @@
416 @ </div>
417 @ </body></html>
418 @ ');
419 ;
420
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421 /*
422 ** An array of available built-in skins.
423 */
424 static struct BuiltinSkin {
425 const char *zName;
426 const char *zValue;
427 } aBuiltinSkin[] = {
428 { "Default", 0 /* Filled in at runtime */ },
429 { "Plain Gray, No Logo", zBuiltinSkin1 },
430 { "Khaki, No Logo", zBuiltinSkin2 },
 
431 };
432
433 /*
434 ** For a skin named zSkinName, compute the name of the CONFIG table
435 ** entry where that skin is stored and return it.
436
--- src/skins.c
+++ src/skins.c
@@ -371,11 +371,11 @@
371 @ </head>
372 @ <body>
373 @ <div class="header">
374 @ <div class="title">$<title></div>
375 @ <div class="status">
376 @ <div class="logo"><nobr>$<project_name></nobr></div><br/>
377 @ <nobr><th1>
378 @ if {[info exists login]} {
379 @ puts "Logged in as $login"
380 @ } else {
381 @ puts "Not logged in"
@@ -416,20 +416,255 @@
416 @ </div>
417 @ </body></html>
418 @ ');
419 ;
420
421 /*
422 ** Black letters on a white or cream background with the main menu
423 ** stuck on the left-hand side.
424 */
425 static const char zBuiltinSkin3[] =
426 @ REPLACE INTO config VALUES('css','/* General settings for the entire page */
427 @ body {
428 @ margin:0px 0px 0px 0px;
429 @ padding:0px;
430 @ font-family:verdana, arial, helvetica, "sans serif";
431 @ color:#333;
432 @ background-color:white;
433 @ }
434 @
435 @ /* consistent colours */
436 @ h2 {
437 @ color: #333;
438 @ }
439 @ h3 {
440 @ color: #333;
441 @ }
442 @
443 @ /* The project logo in the upper left-hand corner of each page */
444 @ div.logo {
445 @ display: table-cell;
446 @ text-align: left;
447 @ vertical-align: bottom;
448 @ font-weight: bold;
449 @ color: #333;
450 @ }
451 @
452 @ /* The page title centered at the top of each page */
453 @ div.title {
454 @ display: table-cell;
455 @ font-size: 2em;
456 @ font-weight: bold;
457 @ text-align: center;
458 @ color: #333;
459 @ vertical-align: bottom;
460 @ width: 100%;
461 @ }
462 @
463 @ /* The login status message in the top right-hand corner */
464 @ div.status {
465 @ display: table-cell;
466 @ padding-right: 10px;
467 @ text-align: right;
468 @ vertical-align: bottom;
469 @ padding-bottom: 5px;
470 @ color: #333;
471 @ font-size: 0.8em;
472 @ font-weight: bold;
473 @ }
474 @
475 @ /* The header across the top of the page */
476 @ div.header {
477 @ margin:10px 0px 10px 0px;
478 @ padding:1px 0px 0px 20px;
479 @ border-style:solid;
480 @ border-color:black;
481 @ border-width:1px 0px;
482 @ background-color:#eee;
483 @ }
484 @
485 @ /* The main menu bar that appears at the top left of the page beneath
486 @ ** the header. Width must be co-ordinated with the container below */
487 @ div.mainmenu {
488 @ float: left;
489 @ margin-left: 10px;
490 @ margin-right: 10px;
491 @ font-size: 0.9em;
492 @ font-weight: bold;
493 @ padding:5px;
494 @ background-color:#eee;
495 @ border:1px solid #999;
496 @ width:8em;
497 @ }
498 @
499 @ /* Main menu is now a list */
500 @ div.mainmenu ul {
501 @ padding: 0;
502 @ list-style:none;
503 @ }
504 @ div.mainmenu a, div.mainmenu a:visited{
505 @ padding: 1px 10px 1px 10px;
506 @ color: #333;
507 @ text-decoration: none;
508 @ }
509 @ div.mainmenu a:hover {
510 @ color: #eee;
511 @ background-color: #333;
512 @ }
513 @
514 @ /* Container for the sub-menu and content so they don''t spread
515 @ ** out underneath the main menu */
516 @ #container {
517 @ padding-left: 9em;
518 @ }
519 @
520 @ /* The submenu bar that *sometimes* appears below the main menu */
521 @ div.submenu {
522 @ padding: 3px 10px 3px 10px;
523 @ font-size: 0.9em;
524 @ text-align: center;
525 @ border:1px solid #999;
526 @ border-width:1px 0px;
527 @ background-color: #eee;
528 @ color: #333;
529 @ }
530 @ div.submenu a, div.submenu a:visited {
531 @ padding: 3px 10px 3px 10px;
532 @ color: #333;
533 @ text-decoration: none;
534 @ }
535 @ div.submenu a:hover {
536 @ color: #eee;
537 @ background-color: #333;
538 @ }
539 @
540 @ /* All page content from the bottom of the menu or submenu down to
541 @ ** the footer */
542 @ div.content {
543 @ float right;
544 @ padding: 2ex 1ex 0ex 2ex;
545 @ }
546 @
547 @ /* Some pages have section dividers */
548 @ div.section {
549 @ margin-bottom: 0px;
550 @ margin-top: 1em;
551 @ padding: 1px 1px 1px 1px;
552 @ font-size: 1.2em;
553 @ font-weight: bold;
554 @ border-style:solid;
555 @ border-color:#999;
556 @ border-width:1px 0px;
557 @ background-color: #eee;
558 @ color: #333;
559 @ }
560 @
561 @ /* The "Date" that occurs on the left hand side of timelines */
562 @ div.divider {
563 @ background: #eee;
564 @ border: 2px #999 solid;
565 @ font-size: 1em; font-weight: normal;
566 @ padding: .25em;
567 @ margin: .2em 0 .2em 0;
568 @ float: left;
569 @ clear: left;
570 @ color: #333
571 @ }
572 @
573 @ /* The footer at the very bottom of the page */
574 @ div.footer {
575 @ font-size: 0.8em;
576 @ margin-top: 12px;
577 @ padding: 5px 10px 5px 10px;
578 @ text-align: right;
579 @ background-color: #eee;
580 @ color: #555;
581 @ }
582 @
583 @ /* <verbatim> blocks */
584 @ pre.verbatim {
585 @ background-color: #f5f5f5;
586 @ padding: 0.5em;
587 @ }
588 @
589 @ /* The label/value pairs on (for example) the ci page */
590 @ table.label-value th {
591 @ vertical-align: top;
592 @ text-align: right;
593 @ padding: 0.2ex 2ex;
594 @ }');
595 @ REPLACE INTO config VALUES('header','<html>
596 @ <head>
597 @ <title>$<project_name>: $<title></title>
598 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
599 @ href="$baseurl/timeline.rss">
600 @ <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
601 @ media="screen">
602 @ </head>
603 @ <body>
604 @ <div class="header">
605 @ <div class="logo">
606 @ <!-- <img src="$baseurl/logo" alt="logo"> -->
607 @ <br><nobr>$<project_name></nobr>
608 @ </div>
609 @ <div class="title">$<title></div>
610 @ <div class="status"><nobr><th1>
611 @ if {[info exists login]} {
612 @ puts "Logged in as $login"
613 @ } else {
614 @ puts "Not logged in"
615 @ }
616 @ </th1></nobr></div>
617 @ </div>
618 @ <div class="mainmenu"><ul><th1>
619 @ html "<li><a href=''$baseurl$index_page''>Home</a></li>"
620 @ if {[hascap h]} {
621 @ html "<li><a href=''$baseurl/dir''>Files</a></li>"
622 @ }
623 @ if {[hascap o]} {
624 @ html "<li><a href=''$baseurl/leaves''>Leaves</a></li>"
625 @ html "<li><a href=''$baseurl/timeline''>Timeline</a></li>"
626 @ html "<li><a href=''$baseurl/brlist''>Branches</a></li>"
627 @ html "<li><a href=''$baseurl/taglist''>Tags</a></li>"
628 @ }
629 @ if {[hascap r]} {
630 @ html "<li><a href=''$baseurl/reportlist''>Tickets</a></li>"
631 @ }
632 @ if {[hascap j]} {
633 @ html "<li><a href=''$baseurl/wiki''>Wiki</a></li>"
634 @ }
635 @ if {[hascap s]} {
636 @ html "<li><a href=''$baseurl/setup''>Admin</a></li>"
637 @ } elseif {[hascap a]} {
638 @ html "<li><a href=''$baseurl/setup_ulist''>Users</a></li>"
639 @ }
640 @ if {[info exists login]} {
641 @ html "<li><a href=''$baseurl/login''>Logout</a></li>"
642 @ } else {
643 @ html "<li><a href=''$baseurl/login''>Login</a></li>"
644 @ }
645 @ </th1></ul></div>
646 @ <div id="container">
647 @ ');
648 @ REPLACE INTO config VALUES('footer','</div>
649 @ <div class="footer">
650 @ Fossil version $manifest_version $manifest_date
651 @ </div>
652 @ </body></html>
653 @ ');
654 ;
655 /*
656 ** An array of available built-in skins.
657 */
658 static struct BuiltinSkin {
659 const char *zName;
660 const char *zValue;
661 } aBuiltinSkin[] = {
662 { "Default", 0 /* Filled in at runtime */ },
663 { "Plain Gray, No Logo", zBuiltinSkin1 },
664 { "Khaki, No Logo", zBuiltinSkin2 },
665 { "Black & White, Menu on Left", zBuiltinSkin3 },
666 };
667
668 /*
669 ** For a skin named zSkinName, compute the name of the CONFIG table
670 ** entry where that skin is stored and return it.
671
+1 -1
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360360
@ text-align: right;
361361
@ background-color: #558195;
362362
@ color: white;
363363
@ }
364364
@
365
-@ /* Hyperlink colors */
365
+@ /* Hyperlink colors in the footer */
366366
@ div.footer a { color: white; }
367367
@ div.footer a:link { color: white; }
368368
@ div.footer a:visited { color: white; }
369369
@ div.footer a:hover { background-color: white; color: #558195; }
370370
@
371371
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360 @ text-align: right;
361 @ background-color: #558195;
362 @ color: white;
363 @ }
364 @
365 @ /* Hyperlink colors */
366 @ div.footer a { color: white; }
367 @ div.footer a:link { color: white; }
368 @ div.footer a:visited { color: white; }
369 @ div.footer a:hover { background-color: white; color: #558195; }
370 @
371
--- src/style.c
+++ src/style.c
@@ -360,11 +360,11 @@
360 @ text-align: right;
361 @ background-color: #558195;
362 @ color: white;
363 @ }
364 @
365 @ /* Hyperlink colors in the footer */
366 @ div.footer a { color: white; }
367 @ div.footer a:link { color: white; }
368 @ div.footer a:visited { color: white; }
369 @ div.footer a:hover { background-color: white; color: #558195; }
370 @
371

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button