Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Try to make moderation a little easier, as recent experience suggests that will be a big deal with the forum. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | forum-v2 |
| Files: | files | file ages | folders |
| SHA3-256: |
a9e5a1eefd71c5b7f48474197f595736 |
| User & Date: | drh 2018-07-31 17:05:56.738 |
Context
|
2018-07-31
| ||
| 17:13 | Only show the "Moderation Requests" submenu button if there exist one or more posts in need of moderation. ... (check-in: 397c32b6bb user: drh tags: forum-v2) | |
| 17:05 | Try to make moderation a little easier, as recent experience suggests that will be a big deal with the forum. ... (check-in: a9e5a1eefd user: drh tags: forum-v2) | |
| 15:49 | Fix the redirect that occurs after a forum post is rejected by the moderator. ... (check-in: 6a667edb09 user: drh tags: forum-v2) | |
Changes
Changes to src/attach.c.
| ︙ | ︙ | |||
104 105 106 107 108 109 110 |
}else if( type==2 ){
zUrlTail = mprintf("technote=%s&file=%t", zTarget, zFilename);
}else{
zUrlTail = mprintf("page=%t&file=%t", zTarget, zFilename);
}
@ <li><p>
@ Attachment %z(href("%R/ainfo/%!S",zUuid))%S(zUuid)</a>
| | < < | | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
}else if( type==2 ){
zUrlTail = mprintf("technote=%s&file=%t", zTarget, zFilename);
}else{
zUrlTail = mprintf("page=%t&file=%t", zTarget, zFilename);
}
@ <li><p>
@ Attachment %z(href("%R/ainfo/%!S",zUuid))%S(zUuid)</a>
moderation_pending_www(attachid);
@ <br /><a href="%R/attachview?%s(zUrlTail)">%h(zFilename)</a>
@ [<a href="%R/attachdownload/%t(zFilename)?%s(zUrlTail)">download</a>]<br>
if( zComment ) while( fossil_isspace(zComment[0]) ) zComment++;
if( zComment && zComment[0] ){
@ %!W(zComment)<br />
}
if( zPage==0 && zTkt==0 && zTechNote==0 ){
if( zSrc==0 || zSrc[0]==0 ){
zSrc = "Deleted from";
|
| ︙ | ︙ | |||
562 563 564 565 566 567 568 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
| | < < < | 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
modPending = moderation_pending_www(rid);
if( zTktUuid ){
@ <tr><th>Ticket:</th>
@ <td>%z(href("%R/tktview/%s",zTktUuid))%s(zTktUuid)</a></td></tr>
}
if( zTNUuid ){
@ <tr><th>Tech Note:</th>
@ <td>%z(href("%R/technote/%s",zTNUuid))%s(zTNUuid)</a></td></tr>
|
| ︙ | ︙ |
Changes to src/forum.c.
| ︙ | ︙ | |||
911 912 913 914 915 916 917 918 919 920 921 922 923 924 |
login_needed(g.anon.RdForum);
return;
}
style_header("Forum");
if( g.perm.WrForum ){
style_submenu_element("New Message","%R/forumnew");
}
if( search_screen(SRCH_FORUM, 0) ){
style_submenu_element("Recent Threads","%R/forum");
style_footer();
return;
}
iLimit = 50;
iOfst = 0;
| > > > | 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 |
login_needed(g.anon.RdForum);
return;
}
style_header("Forum");
if( g.perm.WrForum ){
style_submenu_element("New Message","%R/forumnew");
}
if( g.perm.ModForum ){
style_submenu_element("Moderation Requests", "%R/modreq");
}
if( search_screen(SRCH_FORUM, 0) ){
style_submenu_element("Recent Threads","%R/forum");
style_footer();
return;
}
iLimit = 50;
iOfst = 0;
|
| ︙ | ︙ |
Changes to src/info.c.
| ︙ | ︙ | |||
933 934 935 936 937 938 939 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
| | < < < | 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
modPending = moderation_pending_www(rid);
@ </td></tr>
@ <tr><th>Page Name:</th><td>%h(pWiki->zWikiTitle)</td></tr>
@ <tr><th>Date:</th><td>
hyperlink_to_date(zDate, "</td></tr>");
@ <tr><th>Original User:</th><td>
hyperlink_to_user(pWiki->zUser, zDate, "</td></tr>");
if( pWiki->zMimetype ){
|
| ︙ | ︙ | |||
2235 2236 2237 2238 2239 2240 2241 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
| | < < < | 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 |
@ <div class="section">Overview</div>
@ <p><table class="label-value">
@ <tr><th>Artifact ID:</th>
@ <td>%z(href("%R/artifact/%!S",zUuid))%s(zUuid)</a>
if( g.perm.Setup ){
@ (%d(rid))
}
modPending = moderation_pending_www(rid);
@ <tr><th>Ticket:</th>
@ <td>%z(href("%R/tktview/%s",zTktName))%s(zTktName)</a>
if( zTktTitle ){
@<br />%h(zTktTitle)
}
@</td></tr>
@ <tr><th>User & Date:</th><td>
|
| ︙ | ︙ |
Changes to src/moderate.c.
| ︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
if( rid==0 || !moderation_table_exists() ) return 0;
db_static_prepare(&q, "SELECT 1 FROM modreq WHERE objid=:objid");
db_bind_int(&q, ":objid", rid);
rc = db_step(&q)==SQLITE_ROW;
db_reset(&q);
return rc;
}
/*
** Check to see if the object identified by RID is used for anything.
*/
static int object_used(int rid){
static const char *const aTabField[] = {
"modreq", "attachRid",
| > > > > > > > > > > > > > > > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
if( rid==0 || !moderation_table_exists() ) return 0;
db_static_prepare(&q, "SELECT 1 FROM modreq WHERE objid=:objid");
db_bind_int(&q, ":objid", rid);
rc = db_step(&q)==SQLITE_ROW;
db_reset(&q);
return rc;
}
/*
** If the rid object is being held for moderation, write out
** an "awaiting moderation" message and return true.
**
** If the object is not being held for moderation, simply return
** false without generating any output.
*/
int moderation_pending_www(int rid){
int pending = moderation_pending(rid);
if( pending ){
@ <span class="modpending">(Awaiting Moderator Approval)</span>
}
return pending;
}
/*
** Check to see if the object identified by RID is used for anything.
*/
static int object_used(int rid){
static const char *const aTabField[] = {
"modreq", "attachRid",
|
| ︙ | ︙ | |||
145 146 147 148 149 150 151 |
** Show all pending moderation request
*/
void modreq_page(void){
Blob sql;
Stmt q;
login_check_credentials();
| | | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
** Show all pending moderation request
*/
void modreq_page(void){
Blob sql;
Stmt q;
login_check_credentials();
if( !g.perm.ModWiki && !g.perm.ModTkt && !g.perm.ModForum ){
login_needed(g.anon.ModWiki && g.anon.ModTkt && g.anon.ModForum);
return;
}
style_header("Pending Moderation Requests");
@ <h2>All Pending Moderation Requests</h2>
if( moderation_table_exists() ){
blob_init(&sql, timeline_query_for_www(), -1);
blob_append_sql(&sql,
|
| ︙ | ︙ |