Fossil SCM

Email alerts now show the type of wiki operation (add/edit/remove) for wiki edits and no longer render the magic internal timeline comment prefix character in the alert.

stephan 2021-02-12 16:42 trunk
Commit 7fcfa93321c83700ca6cc3e6f4ee393fdd448c5b30a115e280c585136c00366e
1 file changed +11 -2
+11 -2
--- src/alerts.c
+++ src/alerts.c
@@ -2274,10 +2274,11 @@
22742274
memset(&anchor, 0, sizeof(anchor));
22752275
pLast = &anchor;
22762276
*pnEvent = 0;
22772277
while( db_step(&q)==SQLITE_ROW ){
22782278
const char *zType = "";
2279
+ const char *zComment = db_column_text(&q, 2);
22792280
p = fossil_malloc( sizeof(EmailEvent) );
22802281
pLast->pNext = p;
22812282
pLast = p;
22822283
p->type = db_column_text(&q, 3)[0];
22832284
p->needMod = db_column_int(&q, 4);
@@ -2285,18 +2286,26 @@
22852286
p->pNext = 0;
22862287
switch( p->type ){
22872288
case 'c': zType = "Check-In"; break;
22882289
/* case 'f': -- forum posts omitted from this loop. See below */
22892290
case 't': zType = "Ticket Change"; break;
2290
- case 'w': zType = "Wiki Edit"; break;
2291
+ case 'w': {
2292
+ zType = "Wiki Edit";
2293
+ switch( zComment ? *zComment : 0 ){
2294
+ case ':': ++zComment; break;
2295
+ case '+': zType = "Wiki Added"; ++zComment; break;
2296
+ case '-': zType = "Wiki Removed"; ++zComment; break;
2297
+ }
2298
+ break;
2299
+ }
22912300
}
22922301
blob_init(&p->hdr, 0, 0);
22932302
blob_init(&p->txt, 0, 0);
22942303
blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n",
22952304
db_column_text(&q,1),
22962305
zType,
2297
- db_column_text(&q, 2),
2306
+ zComment,
22982307
zUrl,
22992308
db_column_text(&q,0)
23002309
);
23012310
if( p->needMod ){
23022311
blob_appendf(&p->txt,
23032312
--- src/alerts.c
+++ src/alerts.c
@@ -2274,10 +2274,11 @@
2274 memset(&anchor, 0, sizeof(anchor));
2275 pLast = &anchor;
2276 *pnEvent = 0;
2277 while( db_step(&q)==SQLITE_ROW ){
2278 const char *zType = "";
 
2279 p = fossil_malloc( sizeof(EmailEvent) );
2280 pLast->pNext = p;
2281 pLast = p;
2282 p->type = db_column_text(&q, 3)[0];
2283 p->needMod = db_column_int(&q, 4);
@@ -2285,18 +2286,26 @@
2285 p->pNext = 0;
2286 switch( p->type ){
2287 case 'c': zType = "Check-In"; break;
2288 /* case 'f': -- forum posts omitted from this loop. See below */
2289 case 't': zType = "Ticket Change"; break;
2290 case 'w': zType = "Wiki Edit"; break;
 
 
 
 
 
 
 
 
2291 }
2292 blob_init(&p->hdr, 0, 0);
2293 blob_init(&p->txt, 0, 0);
2294 blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n",
2295 db_column_text(&q,1),
2296 zType,
2297 db_column_text(&q, 2),
2298 zUrl,
2299 db_column_text(&q,0)
2300 );
2301 if( p->needMod ){
2302 blob_appendf(&p->txt,
2303
--- src/alerts.c
+++ src/alerts.c
@@ -2274,10 +2274,11 @@
2274 memset(&anchor, 0, sizeof(anchor));
2275 pLast = &anchor;
2276 *pnEvent = 0;
2277 while( db_step(&q)==SQLITE_ROW ){
2278 const char *zType = "";
2279 const char *zComment = db_column_text(&q, 2);
2280 p = fossil_malloc( sizeof(EmailEvent) );
2281 pLast->pNext = p;
2282 pLast = p;
2283 p->type = db_column_text(&q, 3)[0];
2284 p->needMod = db_column_int(&q, 4);
@@ -2285,18 +2286,26 @@
2286 p->pNext = 0;
2287 switch( p->type ){
2288 case 'c': zType = "Check-In"; break;
2289 /* case 'f': -- forum posts omitted from this loop. See below */
2290 case 't': zType = "Ticket Change"; break;
2291 case 'w': {
2292 zType = "Wiki Edit";
2293 switch( zComment ? *zComment : 0 ){
2294 case ':': ++zComment; break;
2295 case '+': zType = "Wiki Added"; ++zComment; break;
2296 case '-': zType = "Wiki Removed"; ++zComment; break;
2297 }
2298 break;
2299 }
2300 }
2301 blob_init(&p->hdr, 0, 0);
2302 blob_init(&p->txt, 0, 0);
2303 blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n",
2304 db_column_text(&q,1),
2305 zType,
2306 zComment,
2307 zUrl,
2308 db_column_text(&q,0)
2309 );
2310 if( p->needMod ){
2311 blob_appendf(&p->txt,
2312

Keyboard Shortcuts

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