Fossil SCM

Simplification of wiki menus.

drh 2018-12-12 19:31 trunk
Commit 98f5b402337af52bd5acf8aeaf096b90d9732f362ac8b80f0e32262f8f8260a0
1 file changed +14 -37
+14 -37
--- src/wiki.c
+++ src/wiki.c
@@ -289,13 +289,10 @@
289289
style_submenu_element("Help", "%R/wikihelp");
290290
}
291291
if( (ok & W_NEW)!=0 && g.anon.NewWiki ){
292292
style_submenu_element("New", "%R/wikinew");
293293
}
294
-#if 0
295
- if( (ok & W_BLOG)!=0
296
-#endif
297294
if( (ok & W_SANDBOX)!=0 ){
298295
style_submenu_element("Sandbox", "%R/wiki?name=Sandbox");
299296
}
300297
}
301298
@@ -308,36 +305,24 @@
308305
if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
309306
style_header("Wiki Help");
310307
wiki_standard_submenu(W_ALL_BUT(W_HELP));
311308
@ <h2>Wiki Links</h2>
312309
@ <ul>
313
- { char *zWikiHomePageName = db_get("index-page",0);
314
- if( zWikiHomePageName ){
315
- @ <li> %z(href("%R%s",zWikiHomePageName))
316
- @ %h(zWikiHomePageName)</a> wiki home page.</li>
317
- }
318
- }
319
- { char *zHomePageName = db_get("project-name",0);
320
- if( zHomePageName ){
321
- @ <li> %z(href("%R/wiki?name=%t",zHomePageName))
322
- @ %h(zHomePageName)</a> project home page.</li>
323
- }
324
- }
325310
@ <li> %z(href("%R/timeline?y=w"))Recent changes</a> to wiki pages.</li>
326311
@ <li> Formatting rules for %z(href("%R/wiki_rules"))Fossil Wiki</a> and for
327312
@ %z(href("%R/md_rules"))Markdown Wiki</a>.</li>
328313
@ <li> Use the %z(href("%R/wiki?name=Sandbox"))Sandbox</a>
329314
@ to experiment.</li>
330
- if( g.anon.NewWiki ){
315
+ if( g.perm.NewWiki ){
331316
@ <li> Create a %z(href("%R/wikinew"))new wiki page</a>.</li>
332
- if( g.anon.Write ){
317
+ if( g.perm.Write ){
333318
@ <li> Create a %z(href("%R/technoteedit"))new tech-note</a>.</li>
334319
}
335320
}
336321
@ <li> %z(href("%R/wcontent"))List of All Wiki Pages</a>
337322
@ available on this server.</li>
338
- if( g.anon.ModWiki ){
323
+ if( g.perm.ModWiki ){
339324
@ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
340325
}
341326
if( search_restrict(SRCH_WIKI)!=0 ){
342327
@ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
343328
@ words</li>
@@ -367,12 +352,11 @@
367352
*/
368353
void wiki_page(void){
369354
char *zTag;
370355
int rid = 0;
371356
int isSandbox;
372
- char *zUuid;
373
- unsigned submenuFlags = W_ALL;
357
+ unsigned submenuFlags = W_HELP;
374358
Blob wiki;
375359
Manifest *pWiki = 0;
376360
const char *zPageName;
377361
const char *zMimetype = 0;
378362
char *zBody = mprintf("%s","<i>Empty Page</i>");
@@ -412,34 +396,18 @@
412396
zMimetype = pWiki->zMimetype;
413397
}
414398
}
415399
zMimetype = wiki_filter_mimetypes(zMimetype);
416400
if( !g.isHome ){
417
- if( rid ){
418
- zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
419
- if( pWiki && pWiki->nParent ){
420
- style_submenu_element("Diff", "%R/wdiff?id=%s", zUuid);
421
- }
422
- style_submenu_element("Details", "%R/info/%s", zUuid);
423
- }
424
- if( (rid && g.anon.WrWiki) || (!rid && g.anon.NewWiki) ){
401
+ if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){
425402
if( db_get_boolean("wysiwyg-wiki", 0) ){
426403
style_submenu_element("Edit", "%s/wikiedit?name=%T&wysiwyg=1",
427404
g.zTop, zPageName);
428405
}else{
429406
style_submenu_element("Edit", "%s/wikiedit?name=%T", g.zTop, zPageName);
430407
}
431408
}
432
- if( rid && g.anon.ApndWiki && g.anon.Attach ){
433
- style_submenu_element("Attach",
434
- "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
435
- g.zTop, zPageName, g.zTop, zPageName);
436
- }
437
- if( rid && g.anon.ApndWiki ){
438
- style_submenu_element("Append", "%s/wikiappend?name=%T&mimetype=%s",
439
- g.zTop, zPageName, zMimetype);
440
- }
441409
if( g.perm.Hyperlink ){
442410
style_submenu_element("History", "%s/whistory?name=%T",
443411
g.zTop, zPageName);
444412
}
445413
}
@@ -612,10 +580,19 @@
612580
if( zBody==0 ){
613581
zBody = mprintf("<i>Empty Page</i>");
614582
}
615583
style_set_current_page("%T?name=%T", g.zPath, zPageName);
616584
style_header("Edit: %s", zPageName);
585
+ if( rid && !isSandbox && g.perm.ApndWiki ){
586
+ if( g.perm.Attach ){
587
+ style_submenu_element("Attach",
588
+ "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
589
+ g.zTop, zPageName, g.zTop, zPageName);
590
+ }
591
+ style_submenu_element("Append", "%s/wikiappend?name=%T&mimetype=%s",
592
+ g.zTop, zPageName, zMimetype);
593
+ }
617594
if( !goodCaptcha ){
618595
@ <p class="generalError">Error: Incorrect security code.</p>
619596
}
620597
blob_zero(&wiki);
621598
blob_append(&wiki, zBody, -1);
622599
--- src/wiki.c
+++ src/wiki.c
@@ -289,13 +289,10 @@
289 style_submenu_element("Help", "%R/wikihelp");
290 }
291 if( (ok & W_NEW)!=0 && g.anon.NewWiki ){
292 style_submenu_element("New", "%R/wikinew");
293 }
294 #if 0
295 if( (ok & W_BLOG)!=0
296 #endif
297 if( (ok & W_SANDBOX)!=0 ){
298 style_submenu_element("Sandbox", "%R/wiki?name=Sandbox");
299 }
300 }
301
@@ -308,36 +305,24 @@
308 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
309 style_header("Wiki Help");
310 wiki_standard_submenu(W_ALL_BUT(W_HELP));
311 @ <h2>Wiki Links</h2>
312 @ <ul>
313 { char *zWikiHomePageName = db_get("index-page",0);
314 if( zWikiHomePageName ){
315 @ <li> %z(href("%R%s",zWikiHomePageName))
316 @ %h(zWikiHomePageName)</a> wiki home page.</li>
317 }
318 }
319 { char *zHomePageName = db_get("project-name",0);
320 if( zHomePageName ){
321 @ <li> %z(href("%R/wiki?name=%t",zHomePageName))
322 @ %h(zHomePageName)</a> project home page.</li>
323 }
324 }
325 @ <li> %z(href("%R/timeline?y=w"))Recent changes</a> to wiki pages.</li>
326 @ <li> Formatting rules for %z(href("%R/wiki_rules"))Fossil Wiki</a> and for
327 @ %z(href("%R/md_rules"))Markdown Wiki</a>.</li>
328 @ <li> Use the %z(href("%R/wiki?name=Sandbox"))Sandbox</a>
329 @ to experiment.</li>
330 if( g.anon.NewWiki ){
331 @ <li> Create a %z(href("%R/wikinew"))new wiki page</a>.</li>
332 if( g.anon.Write ){
333 @ <li> Create a %z(href("%R/technoteedit"))new tech-note</a>.</li>
334 }
335 }
336 @ <li> %z(href("%R/wcontent"))List of All Wiki Pages</a>
337 @ available on this server.</li>
338 if( g.anon.ModWiki ){
339 @ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
340 }
341 if( search_restrict(SRCH_WIKI)!=0 ){
342 @ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
343 @ words</li>
@@ -367,12 +352,11 @@
367 */
368 void wiki_page(void){
369 char *zTag;
370 int rid = 0;
371 int isSandbox;
372 char *zUuid;
373 unsigned submenuFlags = W_ALL;
374 Blob wiki;
375 Manifest *pWiki = 0;
376 const char *zPageName;
377 const char *zMimetype = 0;
378 char *zBody = mprintf("%s","<i>Empty Page</i>");
@@ -412,34 +396,18 @@
412 zMimetype = pWiki->zMimetype;
413 }
414 }
415 zMimetype = wiki_filter_mimetypes(zMimetype);
416 if( !g.isHome ){
417 if( rid ){
418 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
419 if( pWiki && pWiki->nParent ){
420 style_submenu_element("Diff", "%R/wdiff?id=%s", zUuid);
421 }
422 style_submenu_element("Details", "%R/info/%s", zUuid);
423 }
424 if( (rid && g.anon.WrWiki) || (!rid && g.anon.NewWiki) ){
425 if( db_get_boolean("wysiwyg-wiki", 0) ){
426 style_submenu_element("Edit", "%s/wikiedit?name=%T&wysiwyg=1",
427 g.zTop, zPageName);
428 }else{
429 style_submenu_element("Edit", "%s/wikiedit?name=%T", g.zTop, zPageName);
430 }
431 }
432 if( rid && g.anon.ApndWiki && g.anon.Attach ){
433 style_submenu_element("Attach",
434 "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
435 g.zTop, zPageName, g.zTop, zPageName);
436 }
437 if( rid && g.anon.ApndWiki ){
438 style_submenu_element("Append", "%s/wikiappend?name=%T&mimetype=%s",
439 g.zTop, zPageName, zMimetype);
440 }
441 if( g.perm.Hyperlink ){
442 style_submenu_element("History", "%s/whistory?name=%T",
443 g.zTop, zPageName);
444 }
445 }
@@ -612,10 +580,19 @@
612 if( zBody==0 ){
613 zBody = mprintf("<i>Empty Page</i>");
614 }
615 style_set_current_page("%T?name=%T", g.zPath, zPageName);
616 style_header("Edit: %s", zPageName);
 
 
 
 
 
 
 
 
 
617 if( !goodCaptcha ){
618 @ <p class="generalError">Error: Incorrect security code.</p>
619 }
620 blob_zero(&wiki);
621 blob_append(&wiki, zBody, -1);
622
--- src/wiki.c
+++ src/wiki.c
@@ -289,13 +289,10 @@
289 style_submenu_element("Help", "%R/wikihelp");
290 }
291 if( (ok & W_NEW)!=0 && g.anon.NewWiki ){
292 style_submenu_element("New", "%R/wikinew");
293 }
 
 
 
294 if( (ok & W_SANDBOX)!=0 ){
295 style_submenu_element("Sandbox", "%R/wiki?name=Sandbox");
296 }
297 }
298
@@ -308,36 +305,24 @@
305 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
306 style_header("Wiki Help");
307 wiki_standard_submenu(W_ALL_BUT(W_HELP));
308 @ <h2>Wiki Links</h2>
309 @ <ul>
 
 
 
 
 
 
 
 
 
 
 
 
310 @ <li> %z(href("%R/timeline?y=w"))Recent changes</a> to wiki pages.</li>
311 @ <li> Formatting rules for %z(href("%R/wiki_rules"))Fossil Wiki</a> and for
312 @ %z(href("%R/md_rules"))Markdown Wiki</a>.</li>
313 @ <li> Use the %z(href("%R/wiki?name=Sandbox"))Sandbox</a>
314 @ to experiment.</li>
315 if( g.perm.NewWiki ){
316 @ <li> Create a %z(href("%R/wikinew"))new wiki page</a>.</li>
317 if( g.perm.Write ){
318 @ <li> Create a %z(href("%R/technoteedit"))new tech-note</a>.</li>
319 }
320 }
321 @ <li> %z(href("%R/wcontent"))List of All Wiki Pages</a>
322 @ available on this server.</li>
323 if( g.perm.ModWiki ){
324 @ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
325 }
326 if( search_restrict(SRCH_WIKI)!=0 ){
327 @ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
328 @ words</li>
@@ -367,12 +352,11 @@
352 */
353 void wiki_page(void){
354 char *zTag;
355 int rid = 0;
356 int isSandbox;
357 unsigned submenuFlags = W_HELP;
 
358 Blob wiki;
359 Manifest *pWiki = 0;
360 const char *zPageName;
361 const char *zMimetype = 0;
362 char *zBody = mprintf("%s","<i>Empty Page</i>");
@@ -412,34 +396,18 @@
396 zMimetype = pWiki->zMimetype;
397 }
398 }
399 zMimetype = wiki_filter_mimetypes(zMimetype);
400 if( !g.isHome ){
401 if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){
 
 
 
 
 
 
 
402 if( db_get_boolean("wysiwyg-wiki", 0) ){
403 style_submenu_element("Edit", "%s/wikiedit?name=%T&wysiwyg=1",
404 g.zTop, zPageName);
405 }else{
406 style_submenu_element("Edit", "%s/wikiedit?name=%T", g.zTop, zPageName);
407 }
408 }
 
 
 
 
 
 
 
 
 
409 if( g.perm.Hyperlink ){
410 style_submenu_element("History", "%s/whistory?name=%T",
411 g.zTop, zPageName);
412 }
413 }
@@ -612,10 +580,19 @@
580 if( zBody==0 ){
581 zBody = mprintf("<i>Empty Page</i>");
582 }
583 style_set_current_page("%T?name=%T", g.zPath, zPageName);
584 style_header("Edit: %s", zPageName);
585 if( rid && !isSandbox && g.perm.ApndWiki ){
586 if( g.perm.Attach ){
587 style_submenu_element("Attach",
588 "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
589 g.zTop, zPageName, g.zTop, zPageName);
590 }
591 style_submenu_element("Append", "%s/wikiappend?name=%T&mimetype=%s",
592 g.zTop, zPageName, zMimetype);
593 }
594 if( !goodCaptcha ){
595 @ <p class="generalError">Error: Incorrect security code.</p>
596 }
597 blob_zero(&wiki);
598 blob_append(&wiki, zBody, -1);
599

Keyboard Shortcuts

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