Fossil SCM
Simplify URL building for the /leaves web page.
Commit
8bf8b37828e6ab8f46890e1cc6157856622522deaf3081b3fd61c80bcbce5c46
Parent
82b9140f3091a21…
1 file changed
+11
-30
+11
-30
| --- src/descendants.c | ||
| +++ src/descendants.c | ||
| @@ -470,50 +470,31 @@ | ||
| 470 | 470 | int fNg = PB("ng")!=0; /* Flag for the "ng" query parameter */ |
| 471 | 471 | int fHide = PB("hide")!=0; /* Flag for the "hide" query parameter */ |
| 472 | 472 | int fOnlyHidden = PB("onlyhidden")!=0; /* "onlyhidden" query parameter */ |
| 473 | 473 | int fBrBg = PB("brbg")!=0; /* Flag for the "brbg" query parameter */ |
| 474 | 474 | int fUBg = PB("ubg")!=0; /* Flag for the "ubg" query parameter */ |
| 475 | - Blob QueryParams = empty_blob; /* Concatenated query parameters */ | |
| 476 | - char *zParamSep = 0; /* Query parameter separator */ | |
| 475 | + HQuery url; /* URL to /leaves plus query parameters */ | |
| 477 | 476 | int tmFlags; /* Timeline display flags */ |
| 478 | 477 | |
| 479 | 478 | login_check_credentials(); |
| 480 | 479 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 481 | - if( fNg ){ | |
| 482 | - blob_appendf(&QueryParams, "%s%s", zParamSep, "ng"); | |
| 483 | - zParamSep = "&"; | |
| 484 | - } | |
| 485 | - if( fHide ){ | |
| 486 | - blob_appendf(&QueryParams, "%s%s", zParamSep, "hide"); | |
| 487 | - zParamSep = "&"; | |
| 488 | - } | |
| 489 | - if( fOnlyHidden ){ | |
| 490 | - blob_appendf(&QueryParams, "%s%s", zParamSep, "onlyhidden"); | |
| 491 | - zParamSep = "&"; | |
| 492 | - } | |
| 493 | - if( fBrBg ){ | |
| 494 | - blob_appendf(&QueryParams, "%s%s", zParamSep, "brbg"); | |
| 495 | - zParamSep = "&"; | |
| 496 | - } | |
| 497 | - if( fUBg ){ | |
| 498 | - blob_appendf(&QueryParams, "%s%s", zParamSep, "ubg"); | |
| 499 | - zParamSep = "&"; | |
| 500 | - } | |
| 480 | + url_initialize(&url, "leaves"); | |
| 481 | + if( fNg ) url_add_parameter(&url, "ng", ""); | |
| 482 | + if( fHide ) url_add_parameter(&url, "hide", ""); | |
| 483 | + if( fOnlyHidden ) url_add_parameter(&url, "onlyhidden", ""); | |
| 484 | + if( fBrBg ) url_add_parameter(&url, "brbg", ""); | |
| 485 | + if( fUBg ) url_add_parameter(&url, "ubg", ""); | |
| 501 | 486 | if( !showAll ){ |
| 502 | - style_submenu_element("All", "leaves?all%s%s", | |
| 503 | - zParamSep, blob_str(&QueryParams)); | |
| 487 | + style_submenu_element("All", "%s", url_render(&url, "all", "", 0, 0)); | |
| 504 | 488 | } |
| 505 | 489 | if( !showClosed ){ |
| 506 | - style_submenu_element("Closed", "leaves?closed%s%s", | |
| 507 | - zParamSep, blob_str(&QueryParams)); | |
| 490 | + style_submenu_element("Closed", "%s", url_render(&url, "closed", "", 0, 0)); | |
| 508 | 491 | } |
| 509 | 492 | if( showClosed || showAll ){ |
| 510 | - if( zParamSep ) zParamSep = "?"; | |
| 511 | - style_submenu_element("Open", "leaves%s%s", | |
| 512 | - zParamSep, blob_str(&QueryParams)); | |
| 493 | + style_submenu_element("Open", "%s", url_render(&url, 0, 0, 0, 0)); | |
| 513 | 494 | } |
| 514 | - blob_reset(&QueryParams); | |
| 495 | + url_reset(&url); | |
| 515 | 496 | style_header("Leaves"); |
| 516 | 497 | login_anonymous_available(); |
| 517 | 498 | timeline_ss_submenu(); |
| 518 | 499 | cookie_render(); |
| 519 | 500 | #if 0 |
| 520 | 501 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -470,50 +470,31 @@ | |
| 470 | int fNg = PB("ng")!=0; /* Flag for the "ng" query parameter */ |
| 471 | int fHide = PB("hide")!=0; /* Flag for the "hide" query parameter */ |
| 472 | int fOnlyHidden = PB("onlyhidden")!=0; /* "onlyhidden" query parameter */ |
| 473 | int fBrBg = PB("brbg")!=0; /* Flag for the "brbg" query parameter */ |
| 474 | int fUBg = PB("ubg")!=0; /* Flag for the "ubg" query parameter */ |
| 475 | Blob QueryParams = empty_blob; /* Concatenated query parameters */ |
| 476 | char *zParamSep = 0; /* Query parameter separator */ |
| 477 | int tmFlags; /* Timeline display flags */ |
| 478 | |
| 479 | login_check_credentials(); |
| 480 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 481 | if( fNg ){ |
| 482 | blob_appendf(&QueryParams, "%s%s", zParamSep, "ng"); |
| 483 | zParamSep = "&"; |
| 484 | } |
| 485 | if( fHide ){ |
| 486 | blob_appendf(&QueryParams, "%s%s", zParamSep, "hide"); |
| 487 | zParamSep = "&"; |
| 488 | } |
| 489 | if( fOnlyHidden ){ |
| 490 | blob_appendf(&QueryParams, "%s%s", zParamSep, "onlyhidden"); |
| 491 | zParamSep = "&"; |
| 492 | } |
| 493 | if( fBrBg ){ |
| 494 | blob_appendf(&QueryParams, "%s%s", zParamSep, "brbg"); |
| 495 | zParamSep = "&"; |
| 496 | } |
| 497 | if( fUBg ){ |
| 498 | blob_appendf(&QueryParams, "%s%s", zParamSep, "ubg"); |
| 499 | zParamSep = "&"; |
| 500 | } |
| 501 | if( !showAll ){ |
| 502 | style_submenu_element("All", "leaves?all%s%s", |
| 503 | zParamSep, blob_str(&QueryParams)); |
| 504 | } |
| 505 | if( !showClosed ){ |
| 506 | style_submenu_element("Closed", "leaves?closed%s%s", |
| 507 | zParamSep, blob_str(&QueryParams)); |
| 508 | } |
| 509 | if( showClosed || showAll ){ |
| 510 | if( zParamSep ) zParamSep = "?"; |
| 511 | style_submenu_element("Open", "leaves%s%s", |
| 512 | zParamSep, blob_str(&QueryParams)); |
| 513 | } |
| 514 | blob_reset(&QueryParams); |
| 515 | style_header("Leaves"); |
| 516 | login_anonymous_available(); |
| 517 | timeline_ss_submenu(); |
| 518 | cookie_render(); |
| 519 | #if 0 |
| 520 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -470,50 +470,31 @@ | |
| 470 | int fNg = PB("ng")!=0; /* Flag for the "ng" query parameter */ |
| 471 | int fHide = PB("hide")!=0; /* Flag for the "hide" query parameter */ |
| 472 | int fOnlyHidden = PB("onlyhidden")!=0; /* "onlyhidden" query parameter */ |
| 473 | int fBrBg = PB("brbg")!=0; /* Flag for the "brbg" query parameter */ |
| 474 | int fUBg = PB("ubg")!=0; /* Flag for the "ubg" query parameter */ |
| 475 | HQuery url; /* URL to /leaves plus query parameters */ |
| 476 | int tmFlags; /* Timeline display flags */ |
| 477 | |
| 478 | login_check_credentials(); |
| 479 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 480 | url_initialize(&url, "leaves"); |
| 481 | if( fNg ) url_add_parameter(&url, "ng", ""); |
| 482 | if( fHide ) url_add_parameter(&url, "hide", ""); |
| 483 | if( fOnlyHidden ) url_add_parameter(&url, "onlyhidden", ""); |
| 484 | if( fBrBg ) url_add_parameter(&url, "brbg", ""); |
| 485 | if( fUBg ) url_add_parameter(&url, "ubg", ""); |
| 486 | if( !showAll ){ |
| 487 | style_submenu_element("All", "%s", url_render(&url, "all", "", 0, 0)); |
| 488 | } |
| 489 | if( !showClosed ){ |
| 490 | style_submenu_element("Closed", "%s", url_render(&url, "closed", "", 0, 0)); |
| 491 | } |
| 492 | if( showClosed || showAll ){ |
| 493 | style_submenu_element("Open", "%s", url_render(&url, 0, 0, 0, 0)); |
| 494 | } |
| 495 | url_reset(&url); |
| 496 | style_header("Leaves"); |
| 497 | login_anonymous_available(); |
| 498 | timeline_ss_submenu(); |
| 499 | cookie_render(); |
| 500 | #if 0 |
| 501 |