Fossil SCM
Make the /forumpost status selection list selection persistent in the user display cookie, analog to the /timeline's type selection list.
Commit
580e777cf8b0944552cfc98d9a3ce1bef015e1e019ef90681a749dbc513774e1
Parent
f798c3445fbe9b1…
1 file changed
+3
-1
+3
-1
| --- src/forum.c | ||
| +++ src/forum.c | ||
| @@ -2394,10 +2394,11 @@ | ||
| 2394 | 2394 | az[i++] = fs->zLabel; |
| 2395 | 2395 | } |
| 2396 | 2396 | //assert( i==(1+fss->n)*2 ); |
| 2397 | 2397 | } |
| 2398 | 2398 | if( i ){ |
| 2399 | + cookie_link_parameter("status","forumStatus","*"); | |
| 2399 | 2400 | style_submenu_multichoice("status", i/2, az, 0); |
| 2400 | 2401 | } |
| 2401 | 2402 | } |
| 2402 | 2403 | |
| 2403 | 2404 | /* |
| @@ -2482,11 +2483,11 @@ | ||
| 2482 | 2483 | void forum_main_page(void){ |
| 2483 | 2484 | Stmt q; |
| 2484 | 2485 | int iLimit = 0, iOfst, iCnt; |
| 2485 | 2486 | int srchFlags; |
| 2486 | 2487 | const int isSearch = P("s")!=0; |
| 2487 | - const char *zStatusFilter = P("status"); | |
| 2488 | + const char *zStatusFilter; | |
| 2488 | 2489 | char const *zLimit = 0; /* Value of the n= query parameter */ |
| 2489 | 2490 | int eStatusTag = 0; /* tagid for the "status" property */ |
| 2490 | 2491 | int bHasStatus = 0; /* True if forum-statuses setting exists */ |
| 2491 | 2492 | int bFilter = 0; /* True if status=NAME query parameter */ |
| 2492 | 2493 | ForumStatusMatch sFSM; /* Aux data to status_match() SQL function */ |
| @@ -2534,10 +2535,11 @@ | ||
| 2534 | 2535 | /*for the sake of Max, below*/; |
| 2535 | 2536 | iLimit = 25; |
| 2536 | 2537 | } |
| 2537 | 2538 | style_submenu_entry("n","Max:",4,0); |
| 2538 | 2539 | forum_status_submenu(); |
| 2540 | + zStatusFilter = P("status") /*must be after forum_status_submenu()!*/; | |
| 2539 | 2541 | iOfst = atoi(PD("x","0")); |
| 2540 | 2542 | iCnt = 0; |
| 2541 | 2543 | if( zStatusFilter ){ |
| 2542 | 2544 | if( zStatusFilter[0]==0 || 0==fossil_strcmp("*",zStatusFilter) ){ |
| 2543 | 2545 | zStatusFilter = 0; |
| 2544 | 2546 |
| --- src/forum.c | |
| +++ src/forum.c | |
| @@ -2394,10 +2394,11 @@ | |
| 2394 | az[i++] = fs->zLabel; |
| 2395 | } |
| 2396 | //assert( i==(1+fss->n)*2 ); |
| 2397 | } |
| 2398 | if( i ){ |
| 2399 | style_submenu_multichoice("status", i/2, az, 0); |
| 2400 | } |
| 2401 | } |
| 2402 | |
| 2403 | /* |
| @@ -2482,11 +2483,11 @@ | |
| 2482 | void forum_main_page(void){ |
| 2483 | Stmt q; |
| 2484 | int iLimit = 0, iOfst, iCnt; |
| 2485 | int srchFlags; |
| 2486 | const int isSearch = P("s")!=0; |
| 2487 | const char *zStatusFilter = P("status"); |
| 2488 | char const *zLimit = 0; /* Value of the n= query parameter */ |
| 2489 | int eStatusTag = 0; /* tagid for the "status" property */ |
| 2490 | int bHasStatus = 0; /* True if forum-statuses setting exists */ |
| 2491 | int bFilter = 0; /* True if status=NAME query parameter */ |
| 2492 | ForumStatusMatch sFSM; /* Aux data to status_match() SQL function */ |
| @@ -2534,10 +2535,11 @@ | |
| 2534 | /*for the sake of Max, below*/; |
| 2535 | iLimit = 25; |
| 2536 | } |
| 2537 | style_submenu_entry("n","Max:",4,0); |
| 2538 | forum_status_submenu(); |
| 2539 | iOfst = atoi(PD("x","0")); |
| 2540 | iCnt = 0; |
| 2541 | if( zStatusFilter ){ |
| 2542 | if( zStatusFilter[0]==0 || 0==fossil_strcmp("*",zStatusFilter) ){ |
| 2543 | zStatusFilter = 0; |
| 2544 |
| --- src/forum.c | |
| +++ src/forum.c | |
| @@ -2394,10 +2394,11 @@ | |
| 2394 | az[i++] = fs->zLabel; |
| 2395 | } |
| 2396 | //assert( i==(1+fss->n)*2 ); |
| 2397 | } |
| 2398 | if( i ){ |
| 2399 | cookie_link_parameter("status","forumStatus","*"); |
| 2400 | style_submenu_multichoice("status", i/2, az, 0); |
| 2401 | } |
| 2402 | } |
| 2403 | |
| 2404 | /* |
| @@ -2482,11 +2483,11 @@ | |
| 2483 | void forum_main_page(void){ |
| 2484 | Stmt q; |
| 2485 | int iLimit = 0, iOfst, iCnt; |
| 2486 | int srchFlags; |
| 2487 | const int isSearch = P("s")!=0; |
| 2488 | const char *zStatusFilter; |
| 2489 | char const *zLimit = 0; /* Value of the n= query parameter */ |
| 2490 | int eStatusTag = 0; /* tagid for the "status" property */ |
| 2491 | int bHasStatus = 0; /* True if forum-statuses setting exists */ |
| 2492 | int bFilter = 0; /* True if status=NAME query parameter */ |
| 2493 | ForumStatusMatch sFSM; /* Aux data to status_match() SQL function */ |
| @@ -2534,10 +2535,11 @@ | |
| 2535 | /*for the sake of Max, below*/; |
| 2536 | iLimit = 25; |
| 2537 | } |
| 2538 | style_submenu_entry("n","Max:",4,0); |
| 2539 | forum_status_submenu(); |
| 2540 | zStatusFilter = P("status") /*must be after forum_status_submenu()!*/; |
| 2541 | iOfst = atoi(PD("x","0")); |
| 2542 | iCnt = 0; |
| 2543 | if( zStatusFilter ){ |
| 2544 | if( zStatusFilter[0]==0 || 0==fossil_strcmp("*",zStatusFilter) ){ |
| 2545 | zStatusFilter = 0; |
| 2546 |