Fossil SCM

Add the "nsm" or "No-SubMenu" query parameter to the /wiki page.

drh 2020-03-24 15:04 trunk
Commit 993700abaf4aa936de2bbb9ba8616e753aa828e256be8deee7c8f18072ca55dc
1 file changed +13 -3
+13 -3
--- src/wiki.c
+++ src/wiki.c
@@ -452,11 +452,18 @@
452452
return g.perm.Write;
453453
}
454454
455455
/*
456456
** WEBPAGE: wiki
457
-** URL: /wiki?name=PAGENAME
457
+**
458
+** Display a wiki page. Example: /wiki?name=PAGENAME
459
+**
460
+** Query parameters:
461
+**
462
+** name=NAME Name of the wiki page to display. Required.
463
+** nsm Omit the submenu if present. (Mnemonic: No SubMenu)
464
+**
458465
*/
459466
void wiki_page(void){
460467
char *zTag;
461468
int rid = 0;
462469
int isSandbox;
@@ -464,10 +471,11 @@
464471
Blob wiki;
465472
Manifest *pWiki = 0;
466473
const char *zPageName;
467474
const char *zMimetype = 0;
468475
char *zBody = mprintf("%s","<i>Empty Page</i>");
476
+ int noSubmenu = P("nsm")!=0;
469477
470478
login_check_credentials();
471479
if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
472480
zPageName = P("name");
473481
if( zPageName==0 ){
@@ -501,11 +509,11 @@
501509
zBody = pWiki->zWiki;
502510
zMimetype = pWiki->zMimetype;
503511
}
504512
}
505513
zMimetype = wiki_filter_mimetypes(zMimetype);
506
- if( !g.isHome ){
514
+ if( !g.isHome && !noSubmenu ){
507515
if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
508516
&& wiki_special_permission(zPageName)
509517
){
510518
if( db_get_boolean("wysiwyg-wiki", 0) ){
511519
style_submenu_element("Edit", "%R/wikiedit?name=%T&wysiwyg=1",
@@ -520,11 +528,13 @@
520528
style_submenu_element("History", "%R/whistory?name=%T", zPageName);
521529
}
522530
}
523531
style_set_current_page("%T?name=%T", g.zPath, zPageName);
524532
wiki_page_header(WIKITYPE_UNKNOWN, zPageName, "");
525
- wiki_standard_submenu(submenuFlags);
533
+ if( !noSubmenu ){
534
+ wiki_standard_submenu(submenuFlags);
535
+ }
526536
if( zBody[0]==0 ){
527537
@ <i>This page has been deleted</i>
528538
}else{
529539
blob_init(&wiki, zBody, -1);
530540
wiki_render_by_mimetype(&wiki, zMimetype);
531541
--- src/wiki.c
+++ src/wiki.c
@@ -452,11 +452,18 @@
452 return g.perm.Write;
453 }
454
455 /*
456 ** WEBPAGE: wiki
457 ** URL: /wiki?name=PAGENAME
 
 
 
 
 
 
 
458 */
459 void wiki_page(void){
460 char *zTag;
461 int rid = 0;
462 int isSandbox;
@@ -464,10 +471,11 @@
464 Blob wiki;
465 Manifest *pWiki = 0;
466 const char *zPageName;
467 const char *zMimetype = 0;
468 char *zBody = mprintf("%s","<i>Empty Page</i>");
 
469
470 login_check_credentials();
471 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
472 zPageName = P("name");
473 if( zPageName==0 ){
@@ -501,11 +509,11 @@
501 zBody = pWiki->zWiki;
502 zMimetype = pWiki->zMimetype;
503 }
504 }
505 zMimetype = wiki_filter_mimetypes(zMimetype);
506 if( !g.isHome ){
507 if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
508 && wiki_special_permission(zPageName)
509 ){
510 if( db_get_boolean("wysiwyg-wiki", 0) ){
511 style_submenu_element("Edit", "%R/wikiedit?name=%T&wysiwyg=1",
@@ -520,11 +528,13 @@
520 style_submenu_element("History", "%R/whistory?name=%T", zPageName);
521 }
522 }
523 style_set_current_page("%T?name=%T", g.zPath, zPageName);
524 wiki_page_header(WIKITYPE_UNKNOWN, zPageName, "");
525 wiki_standard_submenu(submenuFlags);
 
 
526 if( zBody[0]==0 ){
527 @ <i>This page has been deleted</i>
528 }else{
529 blob_init(&wiki, zBody, -1);
530 wiki_render_by_mimetype(&wiki, zMimetype);
531
--- src/wiki.c
+++ src/wiki.c
@@ -452,11 +452,18 @@
452 return g.perm.Write;
453 }
454
455 /*
456 ** WEBPAGE: wiki
457 **
458 ** Display a wiki page. Example: /wiki?name=PAGENAME
459 **
460 ** Query parameters:
461 **
462 ** name=NAME Name of the wiki page to display. Required.
463 ** nsm Omit the submenu if present. (Mnemonic: No SubMenu)
464 **
465 */
466 void wiki_page(void){
467 char *zTag;
468 int rid = 0;
469 int isSandbox;
@@ -464,10 +471,11 @@
471 Blob wiki;
472 Manifest *pWiki = 0;
473 const char *zPageName;
474 const char *zMimetype = 0;
475 char *zBody = mprintf("%s","<i>Empty Page</i>");
476 int noSubmenu = P("nsm")!=0;
477
478 login_check_credentials();
479 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
480 zPageName = P("name");
481 if( zPageName==0 ){
@@ -501,11 +509,11 @@
509 zBody = pWiki->zWiki;
510 zMimetype = pWiki->zMimetype;
511 }
512 }
513 zMimetype = wiki_filter_mimetypes(zMimetype);
514 if( !g.isHome && !noSubmenu ){
515 if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
516 && wiki_special_permission(zPageName)
517 ){
518 if( db_get_boolean("wysiwyg-wiki", 0) ){
519 style_submenu_element("Edit", "%R/wikiedit?name=%T&wysiwyg=1",
@@ -520,11 +528,13 @@
528 style_submenu_element("History", "%R/whistory?name=%T", zPageName);
529 }
530 }
531 style_set_current_page("%T?name=%T", g.zPath, zPageName);
532 wiki_page_header(WIKITYPE_UNKNOWN, zPageName, "");
533 if( !noSubmenu ){
534 wiki_standard_submenu(submenuFlags);
535 }
536 if( zBody[0]==0 ){
537 @ <i>This page has been deleted</i>
538 }else{
539 blob_init(&wiki, zBody, -1);
540 wiki_render_by_mimetype(&wiki, zMimetype);
541

Keyboard Shortcuts

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