Fossil SCM
Extra buttons on wiki viewing pages that make it easier to find and delete spam.
Commit
66b3d398bb619168ac9c38d9999629e8ae878b8f
Parent
15708574fe27eb0…
1 file changed
+9
+9
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -127,10 +127,11 @@ | ||
| 127 | 127 | */ |
| 128 | 128 | void wiki_page(void){ |
| 129 | 129 | char *zTag; |
| 130 | 130 | int rid = 0; |
| 131 | 131 | int isSandbox; |
| 132 | + char *zUuid; | |
| 132 | 133 | Blob wiki; |
| 133 | 134 | Manifest *pWiki = 0; |
| 134 | 135 | const char *zPageName; |
| 135 | 136 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 136 | 137 | |
| @@ -171,10 +172,11 @@ | ||
| 171 | 172 | } |
| 172 | 173 | if( check_name(zPageName) ) return; |
| 173 | 174 | isSandbox = is_sandbox(zPageName); |
| 174 | 175 | if( isSandbox ){ |
| 175 | 176 | zBody = db_get("sandbox",zBody); |
| 177 | + rid = 0; | |
| 176 | 178 | }else{ |
| 177 | 179 | zTag = mprintf("wiki-%s", zPageName); |
| 178 | 180 | rid = db_int(0, |
| 179 | 181 | "SELECT rid FROM tagxref" |
| 180 | 182 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -185,10 +187,17 @@ | ||
| 185 | 187 | if( pWiki ){ |
| 186 | 188 | zBody = pWiki->zWiki; |
| 187 | 189 | } |
| 188 | 190 | } |
| 189 | 191 | if( !g.isHome ){ |
| 192 | + if( rid ){ | |
| 193 | + style_submenu_element("Diff", "Last change", | |
| 194 | + "%R/wdiff?name=%T&a=%d", zPageName, rid); | |
| 195 | + zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); | |
| 196 | + style_submenu_element("Details", "Details", | |
| 197 | + "%R/info/%S", zUuid); | |
| 198 | + } | |
| 190 | 199 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 191 | 200 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 192 | 201 | style_submenu_element("Edit", "Edit Wiki Page", |
| 193 | 202 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 194 | 203 | g.zTop, zPageName); |
| 195 | 204 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -127,10 +127,11 @@ | |
| 127 | */ |
| 128 | void wiki_page(void){ |
| 129 | char *zTag; |
| 130 | int rid = 0; |
| 131 | int isSandbox; |
| 132 | Blob wiki; |
| 133 | Manifest *pWiki = 0; |
| 134 | const char *zPageName; |
| 135 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 136 | |
| @@ -171,10 +172,11 @@ | |
| 171 | } |
| 172 | if( check_name(zPageName) ) return; |
| 173 | isSandbox = is_sandbox(zPageName); |
| 174 | if( isSandbox ){ |
| 175 | zBody = db_get("sandbox",zBody); |
| 176 | }else{ |
| 177 | zTag = mprintf("wiki-%s", zPageName); |
| 178 | rid = db_int(0, |
| 179 | "SELECT rid FROM tagxref" |
| 180 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -185,10 +187,17 @@ | |
| 185 | if( pWiki ){ |
| 186 | zBody = pWiki->zWiki; |
| 187 | } |
| 188 | } |
| 189 | if( !g.isHome ){ |
| 190 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 191 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 192 | style_submenu_element("Edit", "Edit Wiki Page", |
| 193 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 194 | g.zTop, zPageName); |
| 195 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -127,10 +127,11 @@ | |
| 127 | */ |
| 128 | void wiki_page(void){ |
| 129 | char *zTag; |
| 130 | int rid = 0; |
| 131 | int isSandbox; |
| 132 | char *zUuid; |
| 133 | Blob wiki; |
| 134 | Manifest *pWiki = 0; |
| 135 | const char *zPageName; |
| 136 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 137 | |
| @@ -171,10 +172,11 @@ | |
| 172 | } |
| 173 | if( check_name(zPageName) ) return; |
| 174 | isSandbox = is_sandbox(zPageName); |
| 175 | if( isSandbox ){ |
| 176 | zBody = db_get("sandbox",zBody); |
| 177 | rid = 0; |
| 178 | }else{ |
| 179 | zTag = mprintf("wiki-%s", zPageName); |
| 180 | rid = db_int(0, |
| 181 | "SELECT rid FROM tagxref" |
| 182 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -185,10 +187,17 @@ | |
| 187 | if( pWiki ){ |
| 188 | zBody = pWiki->zWiki; |
| 189 | } |
| 190 | } |
| 191 | if( !g.isHome ){ |
| 192 | if( rid ){ |
| 193 | style_submenu_element("Diff", "Last change", |
| 194 | "%R/wdiff?name=%T&a=%d", zPageName, rid); |
| 195 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 196 | style_submenu_element("Details", "Details", |
| 197 | "%R/info/%S", zUuid); |
| 198 | } |
| 199 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 200 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 201 | style_submenu_element("Edit", "Edit Wiki Page", |
| 202 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 203 | g.zTop, zPageName); |
| 204 |