Check-in [fbbd0318bd]
Not logged in
Overview

SHA1 Hash:fbbd0318bd26e756e88d974424afe67b42f570e1
Date: 2009-01-20 00:27:37
User: drh
Comment:Display a list of symbolic tags associated with each check-in on the timeline.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified src/timeline.c from [e064b02f3d] to [fe363fe990].

@@ -88,14 +88,15 @@
 **    5.  Number of non-merge children
 **    6.  Number of parents
 **    7.  True if is a leaf
 **    8.  background color
 **    9.  type ("ci", "w")
+**   10.  list of symbolic tags.
 */
 void www_print_timeline(
   Stmt *pQuery
- ){
+){
   int wikiFlags;
   int mxWikiLen;
   Blob comment;
   char zPrevDate[20];
   zPrevDate[0] = 0;
@@ -121,10 +122,11 @@
     int isLeaf = db_column_int(pQuery, 7);
     const char *zBgClr = db_column_text(pQuery, 8);
     const char *zDate = db_column_text(pQuery, 2);
     const char *zType = db_column_text(pQuery, 9);
     const char *zUser = db_column_text(pQuery, 4);
+    const char *zTagList = db_column_text(pQuery, 10);
     db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
     if( memcmp(zDate, zPrevDate, 10) ){
       sprintf(zPrevDate, "%.10s", zDate);
       @ <tr><td colspan=3>
       @   <div class="divider">%s(zPrevDate)</div>
@@ -163,11 +165,15 @@
       blob_reset(&truncated);
     }else{
       wiki_convert(&comment, 0, wikiFlags);
     }
     blob_reset(&comment);
-    @ (by %h(zUser))</td></tr>
+    if( zTagList && zTagList[0] ){
+      @ (user: %h(zUser), tags: %h(zTagList))</td></tr>
+    }else{
+      @ (user: %h(zUser))</td></tr>
+    }
   }
   @ </table>
 }
 
 /*
@@ -183,11 +189,12 @@
     @   user TEXT,
     @   nchild INTEGER,
     @   nparent INTEGER,
     @   isleaf BOOLEAN,
     @   bgcolor TEXT,
-    @   etype TEXT
+    @   etype TEXT,
+    @   taglist TEXT
     @ )
   ;
   db_multi_exec(zSql);
 }
 
@@ -205,11 +212,14 @@
     @   coalesce(euser, user),
     @   (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
     @   (SELECT count(*) FROM plink WHERE cid=blob.rid),
     @   NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
     @   coalesce(bgcolor, brbgcolor),
-    @   event.type
+    @   event.type,
+    @   (SELECT group_concat(substr(tagname,5), ', ') FROM tag, tagxref
+    @     WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
+    @       AND tagxref.rid=blob.rid AND tagxref.tagtype>0)
     @  FROM event JOIN blob
     @ WHERE blob.rid=event.objid
   ;
   return zBaseSql;
 }
@@ -584,11 +594,18 @@
   static const char zBaseSql[] =
     @ SELECT
     @   blob.rid,
     @   uuid,
     @   datetime(event.mtime,'localtime'),
-    @   coalesce(ecomment,comment) || ' (by ' || coalesce(euser,user,'?') ||')',
+    @   coalesce(ecomment,comment)
+    @     || ' (user: ' || coalesce(euser,user,'?')
+    @     || (SELECT case when length(x)>0 then ' tags: ' || x else '' end
+    @           FROM (SELECT group_concat(substr(tagname,5), ', ') AS x
+    @                   FROM tag, tagxref
+    @                  WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
+    @                    AND tagxref.rid=blob.rid AND tagxref.tagtype>0))
+    @     || ')',
     @   (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),
     @   (SELECT count(*) FROM plink WHERE cid=blob.rid)
     @ FROM event, blob
     @ WHERE blob.rid=event.objid
   ;