Fossil SCM
Add a khaki color skin.
Commit
91b90814256f9a55459f7c97fc5c3dd6952deea1
Parent
007d0a9b3f7c028…
2 files changed
+6
+202
-1
+6
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -964,10 +964,12 @@ | ||
| 964 | 964 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 965 | 965 | @ </form> |
| 966 | 966 | @ <hr> |
| 967 | 967 | @ The default CSS is shown below for reference. Other examples |
| 968 | 968 | @ of CSS files can be seen on the <a href="setup_skin">skins page</a>. |
| 969 | + @ See also the <a href="setup_header">header</a> and | |
| 970 | + @ <a href="setup_footer">footer</a> editing screens. | |
| 969 | 971 | @ <blockquote><pre> |
| 970 | 972 | @ %h(zDefaultCSS) |
| 971 | 973 | @ </pre></blockquote> |
| 972 | 974 | style_footer(); |
| 973 | 975 | db_end_transaction(0); |
| @@ -1000,10 +1002,12 @@ | ||
| 1000 | 1002 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1001 | 1003 | @ </form> |
| 1002 | 1004 | @ <hr> |
| 1003 | 1005 | @ The default header is shown below for reference. Other examples |
| 1004 | 1006 | @ of headers can be seen on the <a href="setup_skin">skins page</a>. |
| 1007 | + @ See also the <a href="setup_editcss">CSS</a> and | |
| 1008 | + @ <a href="setup_footer">footer</a> editing screeens. | |
| 1005 | 1009 | @ <blockquote><pre> |
| 1006 | 1010 | @ %h(zDefaultHeader) |
| 1007 | 1011 | @ </pre></blockquote> |
| 1008 | 1012 | style_footer(); |
| 1009 | 1013 | db_end_transaction(0); |
| @@ -1035,10 +1039,12 @@ | ||
| 1035 | 1039 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1036 | 1040 | @ </form> |
| 1037 | 1041 | @ <hr> |
| 1038 | 1042 | @ The default footer is shown below for reference. Other examples |
| 1039 | 1043 | @ of footers can be seen on the <a href="setup_skin">skins page</a>. |
| 1044 | + @ See also the <a href="setup_editcss">CSS</a> and | |
| 1045 | + @ <a href="setup_header">header</a> editing screens. | |
| 1040 | 1046 | @ <blockquote><pre> |
| 1041 | 1047 | @ %h(zDefaultFooter) |
| 1042 | 1048 | @ </pre></blockquote> |
| 1043 | 1049 | style_footer(); |
| 1044 | 1050 | db_end_transaction(0); |
| 1045 | 1051 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -964,10 +964,12 @@ | |
| 964 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 965 | @ </form> |
| 966 | @ <hr> |
| 967 | @ The default CSS is shown below for reference. Other examples |
| 968 | @ of CSS files can be seen on the <a href="setup_skin">skins page</a>. |
| 969 | @ <blockquote><pre> |
| 970 | @ %h(zDefaultCSS) |
| 971 | @ </pre></blockquote> |
| 972 | style_footer(); |
| 973 | db_end_transaction(0); |
| @@ -1000,10 +1002,12 @@ | |
| 1000 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1001 | @ </form> |
| 1002 | @ <hr> |
| 1003 | @ The default header is shown below for reference. Other examples |
| 1004 | @ of headers can be seen on the <a href="setup_skin">skins page</a>. |
| 1005 | @ <blockquote><pre> |
| 1006 | @ %h(zDefaultHeader) |
| 1007 | @ </pre></blockquote> |
| 1008 | style_footer(); |
| 1009 | db_end_transaction(0); |
| @@ -1035,10 +1039,12 @@ | |
| 1035 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1036 | @ </form> |
| 1037 | @ <hr> |
| 1038 | @ The default footer is shown below for reference. Other examples |
| 1039 | @ of footers can be seen on the <a href="setup_skin">skins page</a>. |
| 1040 | @ <blockquote><pre> |
| 1041 | @ %h(zDefaultFooter) |
| 1042 | @ </pre></blockquote> |
| 1043 | style_footer(); |
| 1044 | db_end_transaction(0); |
| 1045 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -964,10 +964,12 @@ | |
| 964 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 965 | @ </form> |
| 966 | @ <hr> |
| 967 | @ The default CSS is shown below for reference. Other examples |
| 968 | @ of CSS files can be seen on the <a href="setup_skin">skins page</a>. |
| 969 | @ See also the <a href="setup_header">header</a> and |
| 970 | @ <a href="setup_footer">footer</a> editing screens. |
| 971 | @ <blockquote><pre> |
| 972 | @ %h(zDefaultCSS) |
| 973 | @ </pre></blockquote> |
| 974 | style_footer(); |
| 975 | db_end_transaction(0); |
| @@ -1000,10 +1002,12 @@ | |
| 1002 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1003 | @ </form> |
| 1004 | @ <hr> |
| 1005 | @ The default header is shown below for reference. Other examples |
| 1006 | @ of headers can be seen on the <a href="setup_skin">skins page</a>. |
| 1007 | @ See also the <a href="setup_editcss">CSS</a> and |
| 1008 | @ <a href="setup_footer">footer</a> editing screeens. |
| 1009 | @ <blockquote><pre> |
| 1010 | @ %h(zDefaultHeader) |
| 1011 | @ </pre></blockquote> |
| 1012 | style_footer(); |
| 1013 | db_end_transaction(0); |
| @@ -1035,10 +1039,12 @@ | |
| 1039 | @ <input type="submit" name="clear" value="Revert To Default"> |
| 1040 | @ </form> |
| 1041 | @ <hr> |
| 1042 | @ The default footer is shown below for reference. Other examples |
| 1043 | @ of footers can be seen on the <a href="setup_skin">skins page</a>. |
| 1044 | @ See also the <a href="setup_editcss">CSS</a> and |
| 1045 | @ <a href="setup_header">header</a> editing screens. |
| 1046 | @ <blockquote><pre> |
| 1047 | @ %h(zDefaultFooter) |
| 1048 | @ </pre></blockquote> |
| 1049 | style_footer(); |
| 1050 | db_end_transaction(0); |
| 1051 |
+202
-1
| --- src/skins.c | ||
| +++ src/skins.c | ||
| @@ -215,10 +215,210 @@ | ||
| 215 | 215 | @ Fossil version $manifest_version $manifest_date |
| 216 | 216 | @ </div> |
| 217 | 217 | @ </body></html> |
| 218 | 218 | @ '); |
| 219 | 219 | ; |
| 220 | + | |
| 221 | +/* | |
| 222 | +** A tan theme with the project title above the user identification | |
| 223 | +** and no logo image. | |
| 224 | +*/ | |
| 225 | +static const char zBuiltinSkin2[] = | |
| 226 | +@ REPLACE INTO config VALUES('css','/* General settings for the entire page */ | |
| 227 | +@ body { | |
| 228 | +@ margin: 0ex 0ex; | |
| 229 | +@ padding: 0px; | |
| 230 | +@ background-color: #fef3bc; | |
| 231 | +@ font-family: sans-serif; | |
| 232 | +@ } | |
| 233 | +@ | |
| 234 | +@ /* The project logo in the upper left-hand corner of each page */ | |
| 235 | +@ div.logo { | |
| 236 | +@ display: inline; | |
| 237 | +@ text-align: center; | |
| 238 | +@ vertical-align: bottom; | |
| 239 | +@ font-weight: bold; | |
| 240 | +@ font-size: 2.5em; | |
| 241 | +@ color: #a09048; | |
| 242 | +@ } | |
| 243 | +@ | |
| 244 | +@ /* The page title centered at the top of each page */ | |
| 245 | +@ div.title { | |
| 246 | +@ display: table-cell; | |
| 247 | +@ font-size: 2em; | |
| 248 | +@ font-weight: bold; | |
| 249 | +@ text-align: left; | |
| 250 | +@ padding: 0 0 0 5px; | |
| 251 | +@ color: #a09048; | |
| 252 | +@ vertical-align: bottom; | |
| 253 | +@ width: 100%; | |
| 254 | +@ } | |
| 255 | +@ | |
| 256 | +@ /* The login status message in the top right-hand corner */ | |
| 257 | +@ div.status { | |
| 258 | +@ display: table-cell; | |
| 259 | +@ text-align: right; | |
| 260 | +@ vertical-align: bottom; | |
| 261 | +@ color: #a09048; | |
| 262 | +@ padding: 5px 5px 0 0; | |
| 263 | +@ font-size: 0.8em; | |
| 264 | +@ font-weight: bold; | |
| 265 | +@ } | |
| 266 | +@ | |
| 267 | +@ /* The header across the top of the page */ | |
| 268 | +@ div.header { | |
| 269 | +@ display: table; | |
| 270 | +@ width: 100%; | |
| 271 | +@ } | |
| 272 | +@ | |
| 273 | +@ /* The main menu bar that appears at the top of the page beneath | |
| 274 | +@ ** the header */ | |
| 275 | +@ div.mainmenu { | |
| 276 | +@ padding: 5px 10px 5px 10px; | |
| 277 | +@ font-size: 0.9em; | |
| 278 | +@ font-weight: bold; | |
| 279 | +@ text-align: center; | |
| 280 | +@ letter-spacing: 1px; | |
| 281 | +@ background-color: #a09048; | |
| 282 | +@ color: black; | |
| 283 | +@ } | |
| 284 | +@ | |
| 285 | +@ /* The submenu bar that *sometimes* appears below the main menu */ | |
| 286 | +@ div.submenu { | |
| 287 | +@ padding: 3px 10px 3px 0px; | |
| 288 | +@ font-size: 0.9em; | |
| 289 | +@ text-align: center; | |
| 290 | +@ background-color: #c0af58; | |
| 291 | +@ color: white; | |
| 292 | +@ } | |
| 293 | +@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited { | |
| 294 | +@ padding: 3px 10px 3px 10px; | |
| 295 | +@ color: white; | |
| 296 | +@ text-decoration: none; | |
| 297 | +@ } | |
| 298 | +@ div.mainmenu a:hover, div.submenu a:hover { | |
| 299 | +@ color: #a09048; | |
| 300 | +@ background-color: white; | |
| 301 | +@ } | |
| 302 | +@ | |
| 303 | +@ /* All page content from the bottom of the menu or submenu down to | |
| 304 | +@ ** the footer */ | |
| 305 | +@ div.content { | |
| 306 | +@ padding: 1ex 5px; | |
| 307 | +@ } | |
| 308 | +@ div.content a { color: #706532; } | |
| 309 | +@ div.content a:link { color: #706532; } | |
| 310 | +@ div.content a:visited { color: #704032; } | |
| 311 | +@ div.content a:hover { background-color: white; color: #706532; } | |
| 312 | +@ | |
| 313 | +@ /* Some pages have section dividers */ | |
| 314 | +@ div.section { | |
| 315 | +@ margin-bottom: 0px; | |
| 316 | +@ margin-top: 1em; | |
| 317 | +@ padding: 3px 3px 0 3px; | |
| 318 | +@ font-size: 1.2em; | |
| 319 | +@ font-weight: bold; | |
| 320 | +@ background-color: #a09048; | |
| 321 | +@ color: white; | |
| 322 | +@ } | |
| 323 | +@ | |
| 324 | +@ /* The "Date" that occurs on the left hand side of timelines */ | |
| 325 | +@ div.divider { | |
| 326 | +@ background: #e1d498; | |
| 327 | +@ border: 2px #a09048 solid; | |
| 328 | +@ font-size: 1em; font-weight: normal; | |
| 329 | +@ padding: .25em; | |
| 330 | +@ margin: .2em 0 .2em 0; | |
| 331 | +@ float: left; | |
| 332 | +@ clear: left; | |
| 333 | +@ } | |
| 334 | +@ | |
| 335 | +@ /* The footer at the very bottom of the page */ | |
| 336 | +@ div.footer { | |
| 337 | +@ font-size: 0.8em; | |
| 338 | +@ margin-top: 12px; | |
| 339 | +@ padding: 5px 10px 5px 10px; | |
| 340 | +@ text-align: right; | |
| 341 | +@ background-color: #a09048; | |
| 342 | +@ color: white; | |
| 343 | +@ } | |
| 344 | +@ | |
| 345 | +@ /* Hyperlink colors */ | |
| 346 | +@ div.footer a { color: white; } | |
| 347 | +@ div.footer a:link { color: white; } | |
| 348 | +@ div.footer a:visited { color: white; } | |
| 349 | +@ div.footer a:hover { background-color: white; color: #558195; } | |
| 350 | +@ | |
| 351 | +@ /* <verbatim> blocks */ | |
| 352 | +@ pre.verbatim { | |
| 353 | +@ background-color: #f5f5f5; | |
| 354 | +@ padding: 0.5em; | |
| 355 | +@ } | |
| 356 | +@ | |
| 357 | +@ /* The label/value pairs on (for example) the ci page */ | |
| 358 | +@ table.label-value th { | |
| 359 | +@ vertical-align: top; | |
| 360 | +@ text-align: right; | |
| 361 | +@ padding: 0.2ex 2ex; | |
| 362 | +@ } | |
| 363 | +@ '); | |
| 364 | +@ REPLACE INTO config VALUES('header','<html> | |
| 365 | +@ <head> | |
| 366 | +@ <title>$<project_name>: $<title></title> | |
| 367 | +@ <link rel="alternate" type="application/rss+xml" title="RSS Feed" | |
| 368 | +@ href="$baseurl/timeline.rss"> | |
| 369 | +@ <link rel="stylesheet" href="$baseurl/style.css" type="text/css" | |
| 370 | +@ media="screen"> | |
| 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" | |
| 382 | +@ } | |
| 383 | +@ </th1></nobr></div> | |
| 384 | +@ </div> | |
| 385 | +@ <div class="mainmenu"><th1> | |
| 386 | +@ html "<a href=''$baseurl$index_page''>Home</a> " | |
| 387 | +@ if {[hascap h]} { | |
| 388 | +@ html "<a href=''$baseurl/dir''>Files</a> " | |
| 389 | +@ } | |
| 390 | +@ if {[hascap o]} { | |
| 391 | +@ html "<a href=''$baseurl/leaves''>Leaves</a> " | |
| 392 | +@ html "<a href=''$baseurl/timeline''>Timeline</a> " | |
| 393 | +@ html "<a href=''$baseurl/brlist''>Branches</a> " | |
| 394 | +@ html "<a href=''$baseurl/taglist''>Tags</a> " | |
| 395 | +@ } | |
| 396 | +@ if {[hascap r]} { | |
| 397 | +@ html "<a href=''$baseurl/reportlist''>Tickets</a> " | |
| 398 | +@ } | |
| 399 | +@ if {[hascap j]} { | |
| 400 | +@ html "<a href=''$baseurl/wiki''>Wiki</a> " | |
| 401 | +@ } | |
| 402 | +@ if {[hascap s]} { | |
| 403 | +@ html "<a href=''$baseurl/setup''>Admin</a> " | |
| 404 | +@ } elseif {[hascap a]} { | |
| 405 | +@ html "<a href=''$baseurl/setup_ulist''>Users</a> " | |
| 406 | +@ } | |
| 407 | +@ if {[info exists login]} { | |
| 408 | +@ html "<a href=''$baseurl/login''>Logout</a> " | |
| 409 | +@ } else { | |
| 410 | +@ html "<a href=''$baseurl/login''>Login</a> " | |
| 411 | +@ } | |
| 412 | +@ </th1></div> | |
| 413 | +@ '); | |
| 414 | +@ REPLACE INTO config VALUES('footer','<div class="footer"> | |
| 415 | +@ Fossil version $manifest_version $manifest_date | |
| 416 | +@ </div> | |
| 417 | +@ </body></html> | |
| 418 | +@ '); | |
| 419 | +; | |
| 220 | 420 | |
| 221 | 421 | /* |
| 222 | 422 | ** An array of available built-in skins. |
| 223 | 423 | */ |
| 224 | 424 | static struct BuiltinSkin { |
| @@ -225,10 +425,11 @@ | ||
| 225 | 425 | const char *zName; |
| 226 | 426 | const char *zValue; |
| 227 | 427 | } aBuiltinSkin[] = { |
| 228 | 428 | { "Default", 0 /* Filled in at runtime */ }, |
| 229 | 429 | { "Plain Gray, No Logo", zBuiltinSkin1 }, |
| 430 | + { "Khaki, No Logo", zBuiltinSkin2 }, | |
| 230 | 431 | }; |
| 231 | 432 | |
| 232 | 433 | /* |
| 233 | 434 | ** For a skin named zSkinName, compute the name of the CONFIG table |
| 234 | 435 | ** entry where that skin is stored and return it. |
| @@ -391,11 +592,11 @@ | ||
| 391 | 592 | ); |
| 392 | 593 | while( db_step(&q)==SQLITE_ROW ){ |
| 393 | 594 | const char *zN = db_column_text(&q, 0); |
| 394 | 595 | const char *zV = db_column_text(&q, 1); |
| 395 | 596 | if( strcmp(zV, zCurrent)==0 ){ |
| 396 | - @ <li><p>%h(zN) <b>Currently In Use</b></p> | |
| 597 | + @ <li><p>%h(zN). <b>Currently In Use</b></p> | |
| 397 | 598 | }else{ |
| 398 | 599 | @ <li><form action="%s(g.zBaseURL)/setup_skin" method="POST"> |
| 399 | 600 | @ %h(zN). |
| 400 | 601 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 401 | 602 | @ <input type="submit" name="load" value="Use This Skin"> |
| 402 | 603 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -215,10 +215,210 @@ | |
| 215 | @ Fossil version $manifest_version $manifest_date |
| 216 | @ </div> |
| 217 | @ </body></html> |
| 218 | @ '); |
| 219 | ; |
| 220 | |
| 221 | /* |
| 222 | ** An array of available built-in skins. |
| 223 | */ |
| 224 | static struct BuiltinSkin { |
| @@ -225,10 +425,11 @@ | |
| 225 | const char *zName; |
| 226 | const char *zValue; |
| 227 | } aBuiltinSkin[] = { |
| 228 | { "Default", 0 /* Filled in at runtime */ }, |
| 229 | { "Plain Gray, No Logo", zBuiltinSkin1 }, |
| 230 | }; |
| 231 | |
| 232 | /* |
| 233 | ** For a skin named zSkinName, compute the name of the CONFIG table |
| 234 | ** entry where that skin is stored and return it. |
| @@ -391,11 +592,11 @@ | |
| 391 | ); |
| 392 | while( db_step(&q)==SQLITE_ROW ){ |
| 393 | const char *zN = db_column_text(&q, 0); |
| 394 | const char *zV = db_column_text(&q, 1); |
| 395 | if( strcmp(zV, zCurrent)==0 ){ |
| 396 | @ <li><p>%h(zN) <b>Currently In Use</b></p> |
| 397 | }else{ |
| 398 | @ <li><form action="%s(g.zBaseURL)/setup_skin" method="POST"> |
| 399 | @ %h(zN). |
| 400 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 401 | @ <input type="submit" name="load" value="Use This Skin"> |
| 402 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -215,10 +215,210 @@ | |
| 215 | @ Fossil version $manifest_version $manifest_date |
| 216 | @ </div> |
| 217 | @ </body></html> |
| 218 | @ '); |
| 219 | ; |
| 220 | |
| 221 | /* |
| 222 | ** A tan theme with the project title above the user identification |
| 223 | ** and no logo image. |
| 224 | */ |
| 225 | static const char zBuiltinSkin2[] = |
| 226 | @ REPLACE INTO config VALUES('css','/* General settings for the entire page */ |
| 227 | @ body { |
| 228 | @ margin: 0ex 0ex; |
| 229 | @ padding: 0px; |
| 230 | @ background-color: #fef3bc; |
| 231 | @ font-family: sans-serif; |
| 232 | @ } |
| 233 | @ |
| 234 | @ /* The project logo in the upper left-hand corner of each page */ |
| 235 | @ div.logo { |
| 236 | @ display: inline; |
| 237 | @ text-align: center; |
| 238 | @ vertical-align: bottom; |
| 239 | @ font-weight: bold; |
| 240 | @ font-size: 2.5em; |
| 241 | @ color: #a09048; |
| 242 | @ } |
| 243 | @ |
| 244 | @ /* The page title centered at the top of each page */ |
| 245 | @ div.title { |
| 246 | @ display: table-cell; |
| 247 | @ font-size: 2em; |
| 248 | @ font-weight: bold; |
| 249 | @ text-align: left; |
| 250 | @ padding: 0 0 0 5px; |
| 251 | @ color: #a09048; |
| 252 | @ vertical-align: bottom; |
| 253 | @ width: 100%; |
| 254 | @ } |
| 255 | @ |
| 256 | @ /* The login status message in the top right-hand corner */ |
| 257 | @ div.status { |
| 258 | @ display: table-cell; |
| 259 | @ text-align: right; |
| 260 | @ vertical-align: bottom; |
| 261 | @ color: #a09048; |
| 262 | @ padding: 5px 5px 0 0; |
| 263 | @ font-size: 0.8em; |
| 264 | @ font-weight: bold; |
| 265 | @ } |
| 266 | @ |
| 267 | @ /* The header across the top of the page */ |
| 268 | @ div.header { |
| 269 | @ display: table; |
| 270 | @ width: 100%; |
| 271 | @ } |
| 272 | @ |
| 273 | @ /* The main menu bar that appears at the top of the page beneath |
| 274 | @ ** the header */ |
| 275 | @ div.mainmenu { |
| 276 | @ padding: 5px 10px 5px 10px; |
| 277 | @ font-size: 0.9em; |
| 278 | @ font-weight: bold; |
| 279 | @ text-align: center; |
| 280 | @ letter-spacing: 1px; |
| 281 | @ background-color: #a09048; |
| 282 | @ color: black; |
| 283 | @ } |
| 284 | @ |
| 285 | @ /* The submenu bar that *sometimes* appears below the main menu */ |
| 286 | @ div.submenu { |
| 287 | @ padding: 3px 10px 3px 0px; |
| 288 | @ font-size: 0.9em; |
| 289 | @ text-align: center; |
| 290 | @ background-color: #c0af58; |
| 291 | @ color: white; |
| 292 | @ } |
| 293 | @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited { |
| 294 | @ padding: 3px 10px 3px 10px; |
| 295 | @ color: white; |
| 296 | @ text-decoration: none; |
| 297 | @ } |
| 298 | @ div.mainmenu a:hover, div.submenu a:hover { |
| 299 | @ color: #a09048; |
| 300 | @ background-color: white; |
| 301 | @ } |
| 302 | @ |
| 303 | @ /* All page content from the bottom of the menu or submenu down to |
| 304 | @ ** the footer */ |
| 305 | @ div.content { |
| 306 | @ padding: 1ex 5px; |
| 307 | @ } |
| 308 | @ div.content a { color: #706532; } |
| 309 | @ div.content a:link { color: #706532; } |
| 310 | @ div.content a:visited { color: #704032; } |
| 311 | @ div.content a:hover { background-color: white; color: #706532; } |
| 312 | @ |
| 313 | @ /* Some pages have section dividers */ |
| 314 | @ div.section { |
| 315 | @ margin-bottom: 0px; |
| 316 | @ margin-top: 1em; |
| 317 | @ padding: 3px 3px 0 3px; |
| 318 | @ font-size: 1.2em; |
| 319 | @ font-weight: bold; |
| 320 | @ background-color: #a09048; |
| 321 | @ color: white; |
| 322 | @ } |
| 323 | @ |
| 324 | @ /* The "Date" that occurs on the left hand side of timelines */ |
| 325 | @ div.divider { |
| 326 | @ background: #e1d498; |
| 327 | @ border: 2px #a09048 solid; |
| 328 | @ font-size: 1em; font-weight: normal; |
| 329 | @ padding: .25em; |
| 330 | @ margin: .2em 0 .2em 0; |
| 331 | @ float: left; |
| 332 | @ clear: left; |
| 333 | @ } |
| 334 | @ |
| 335 | @ /* The footer at the very bottom of the page */ |
| 336 | @ div.footer { |
| 337 | @ font-size: 0.8em; |
| 338 | @ margin-top: 12px; |
| 339 | @ padding: 5px 10px 5px 10px; |
| 340 | @ text-align: right; |
| 341 | @ background-color: #a09048; |
| 342 | @ color: white; |
| 343 | @ } |
| 344 | @ |
| 345 | @ /* Hyperlink colors */ |
| 346 | @ div.footer a { color: white; } |
| 347 | @ div.footer a:link { color: white; } |
| 348 | @ div.footer a:visited { color: white; } |
| 349 | @ div.footer a:hover { background-color: white; color: #558195; } |
| 350 | @ |
| 351 | @ /* <verbatim> blocks */ |
| 352 | @ pre.verbatim { |
| 353 | @ background-color: #f5f5f5; |
| 354 | @ padding: 0.5em; |
| 355 | @ } |
| 356 | @ |
| 357 | @ /* The label/value pairs on (for example) the ci page */ |
| 358 | @ table.label-value th { |
| 359 | @ vertical-align: top; |
| 360 | @ text-align: right; |
| 361 | @ padding: 0.2ex 2ex; |
| 362 | @ } |
| 363 | @ '); |
| 364 | @ REPLACE INTO config VALUES('header','<html> |
| 365 | @ <head> |
| 366 | @ <title>$<project_name>: $<title></title> |
| 367 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 368 | @ href="$baseurl/timeline.rss"> |
| 369 | @ <link rel="stylesheet" href="$baseurl/style.css" type="text/css" |
| 370 | @ media="screen"> |
| 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" |
| 382 | @ } |
| 383 | @ </th1></nobr></div> |
| 384 | @ </div> |
| 385 | @ <div class="mainmenu"><th1> |
| 386 | @ html "<a href=''$baseurl$index_page''>Home</a> " |
| 387 | @ if {[hascap h]} { |
| 388 | @ html "<a href=''$baseurl/dir''>Files</a> " |
| 389 | @ } |
| 390 | @ if {[hascap o]} { |
| 391 | @ html "<a href=''$baseurl/leaves''>Leaves</a> " |
| 392 | @ html "<a href=''$baseurl/timeline''>Timeline</a> " |
| 393 | @ html "<a href=''$baseurl/brlist''>Branches</a> " |
| 394 | @ html "<a href=''$baseurl/taglist''>Tags</a> " |
| 395 | @ } |
| 396 | @ if {[hascap r]} { |
| 397 | @ html "<a href=''$baseurl/reportlist''>Tickets</a> " |
| 398 | @ } |
| 399 | @ if {[hascap j]} { |
| 400 | @ html "<a href=''$baseurl/wiki''>Wiki</a> " |
| 401 | @ } |
| 402 | @ if {[hascap s]} { |
| 403 | @ html "<a href=''$baseurl/setup''>Admin</a> " |
| 404 | @ } elseif {[hascap a]} { |
| 405 | @ html "<a href=''$baseurl/setup_ulist''>Users</a> " |
| 406 | @ } |
| 407 | @ if {[info exists login]} { |
| 408 | @ html "<a href=''$baseurl/login''>Logout</a> " |
| 409 | @ } else { |
| 410 | @ html "<a href=''$baseurl/login''>Login</a> " |
| 411 | @ } |
| 412 | @ </th1></div> |
| 413 | @ '); |
| 414 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 415 | @ Fossil version $manifest_version $manifest_date |
| 416 | @ </div> |
| 417 | @ </body></html> |
| 418 | @ '); |
| 419 | ; |
| 420 | |
| 421 | /* |
| 422 | ** An array of available built-in skins. |
| 423 | */ |
| 424 | static struct BuiltinSkin { |
| @@ -225,10 +425,11 @@ | |
| 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. |
| @@ -391,11 +592,11 @@ | |
| 592 | ); |
| 593 | while( db_step(&q)==SQLITE_ROW ){ |
| 594 | const char *zN = db_column_text(&q, 0); |
| 595 | const char *zV = db_column_text(&q, 1); |
| 596 | if( strcmp(zV, zCurrent)==0 ){ |
| 597 | @ <li><p>%h(zN). <b>Currently In Use</b></p> |
| 598 | }else{ |
| 599 | @ <li><form action="%s(g.zBaseURL)/setup_skin" method="POST"> |
| 600 | @ %h(zN). |
| 601 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 602 | @ <input type="submit" name="load" value="Use This Skin"> |
| 603 |