Fossil SCM

Simplify URL building for the /leaves web page.

florian 2018-12-26 10:43 fix-timeline-view
Commit 8bf8b37828e6ab8f46890e1cc6157856622522deaf3081b3fd61c80bcbce5c46
1 file changed +11 -30
+11 -30
--- src/descendants.c
+++ src/descendants.c
@@ -470,50 +470,31 @@
470470
int fNg = PB("ng")!=0; /* Flag for the "ng" query parameter */
471471
int fHide = PB("hide")!=0; /* Flag for the "hide" query parameter */
472472
int fOnlyHidden = PB("onlyhidden")!=0; /* "onlyhidden" query parameter */
473473
int fBrBg = PB("brbg")!=0; /* Flag for the "brbg" query parameter */
474474
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 */
477476
int tmFlags; /* Timeline display flags */
478477
479478
login_check_credentials();
480479
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", "");
501486
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));
504488
}
505489
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));
508491
}
509492
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));
513494
}
514
- blob_reset(&QueryParams);
495
+ url_reset(&url);
515496
style_header("Leaves");
516497
login_anonymous_available();
517498
timeline_ss_submenu();
518499
cookie_render();
519500
#if 0
520501
--- 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

Keyboard Shortcuts

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