Fossil SCM
Simplification of wiki menus.
Commit
98f5b402337af52bd5acf8aeaf096b90d9732f362ac8b80f0e32262f8f8260a0
Parent
2be93e3dad65fa1…
1 file changed
+14
-37
+14
-37
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -289,13 +289,10 @@ | ||
| 289 | 289 | style_submenu_element("Help", "%R/wikihelp"); |
| 290 | 290 | } |
| 291 | 291 | if( (ok & W_NEW)!=0 && g.anon.NewWiki ){ |
| 292 | 292 | style_submenu_element("New", "%R/wikinew"); |
| 293 | 293 | } |
| 294 | -#if 0 | |
| 295 | - if( (ok & W_BLOG)!=0 | |
| 296 | -#endif | |
| 297 | 294 | if( (ok & W_SANDBOX)!=0 ){ |
| 298 | 295 | style_submenu_element("Sandbox", "%R/wiki?name=Sandbox"); |
| 299 | 296 | } |
| 300 | 297 | } |
| 301 | 298 | |
| @@ -308,36 +305,24 @@ | ||
| 308 | 305 | if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; } |
| 309 | 306 | style_header("Wiki Help"); |
| 310 | 307 | wiki_standard_submenu(W_ALL_BUT(W_HELP)); |
| 311 | 308 | @ <h2>Wiki Links</h2> |
| 312 | 309 | @ <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 | 310 | @ <li> %z(href("%R/timeline?y=w"))Recent changes</a> to wiki pages.</li> |
| 326 | 311 | @ <li> Formatting rules for %z(href("%R/wiki_rules"))Fossil Wiki</a> and for |
| 327 | 312 | @ %z(href("%R/md_rules"))Markdown Wiki</a>.</li> |
| 328 | 313 | @ <li> Use the %z(href("%R/wiki?name=Sandbox"))Sandbox</a> |
| 329 | 314 | @ to experiment.</li> |
| 330 | - if( g.anon.NewWiki ){ | |
| 315 | + if( g.perm.NewWiki ){ | |
| 331 | 316 | @ <li> Create a %z(href("%R/wikinew"))new wiki page</a>.</li> |
| 332 | - if( g.anon.Write ){ | |
| 317 | + if( g.perm.Write ){ | |
| 333 | 318 | @ <li> Create a %z(href("%R/technoteedit"))new tech-note</a>.</li> |
| 334 | 319 | } |
| 335 | 320 | } |
| 336 | 321 | @ <li> %z(href("%R/wcontent"))List of All Wiki Pages</a> |
| 337 | 322 | @ available on this server.</li> |
| 338 | - if( g.anon.ModWiki ){ | |
| 323 | + if( g.perm.ModWiki ){ | |
| 339 | 324 | @ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li> |
| 340 | 325 | } |
| 341 | 326 | if( search_restrict(SRCH_WIKI)!=0 ){ |
| 342 | 327 | @ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key |
| 343 | 328 | @ words</li> |
| @@ -367,12 +352,11 @@ | ||
| 367 | 352 | */ |
| 368 | 353 | void wiki_page(void){ |
| 369 | 354 | char *zTag; |
| 370 | 355 | int rid = 0; |
| 371 | 356 | int isSandbox; |
| 372 | - char *zUuid; | |
| 373 | - unsigned submenuFlags = W_ALL; | |
| 357 | + unsigned submenuFlags = W_HELP; | |
| 374 | 358 | Blob wiki; |
| 375 | 359 | Manifest *pWiki = 0; |
| 376 | 360 | const char *zPageName; |
| 377 | 361 | const char *zMimetype = 0; |
| 378 | 362 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| @@ -412,34 +396,18 @@ | ||
| 412 | 396 | zMimetype = pWiki->zMimetype; |
| 413 | 397 | } |
| 414 | 398 | } |
| 415 | 399 | zMimetype = wiki_filter_mimetypes(zMimetype); |
| 416 | 400 | 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) ){ | |
| 425 | 402 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 426 | 403 | style_submenu_element("Edit", "%s/wikiedit?name=%T&wysiwyg=1", |
| 427 | 404 | g.zTop, zPageName); |
| 428 | 405 | }else{ |
| 429 | 406 | style_submenu_element("Edit", "%s/wikiedit?name=%T", g.zTop, zPageName); |
| 430 | 407 | } |
| 431 | 408 | } |
| 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 | 409 | if( g.perm.Hyperlink ){ |
| 442 | 410 | style_submenu_element("History", "%s/whistory?name=%T", |
| 443 | 411 | g.zTop, zPageName); |
| 444 | 412 | } |
| 445 | 413 | } |
| @@ -612,10 +580,19 @@ | ||
| 612 | 580 | if( zBody==0 ){ |
| 613 | 581 | zBody = mprintf("<i>Empty Page</i>"); |
| 614 | 582 | } |
| 615 | 583 | style_set_current_page("%T?name=%T", g.zPath, zPageName); |
| 616 | 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 | + } | |
| 617 | 594 | if( !goodCaptcha ){ |
| 618 | 595 | @ <p class="generalError">Error: Incorrect security code.</p> |
| 619 | 596 | } |
| 620 | 597 | blob_zero(&wiki); |
| 621 | 598 | blob_append(&wiki, zBody, -1); |
| 622 | 599 |
| --- 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 |