Check-in [bdcac62937]
Not logged in
Overview

SHA1 Hash:bdcac6293748bd3fe9458e653d51d6affd3595ae
Date: 2009-01-21 03:34:37
User: drh
Comment:After each item of the branch list, give a hyperlink to the timeline that shows all check-ins with the branch tag.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified src/branch.c from [dc5b99a321] to [ccb39ffef0].

@@ -214,10 +214,33 @@
                  "new list");
   }
 }
 
 /*
+** This routine is called while for each check-in that is rendered by
+** the timeline of a "brlist" page.  Add some additional hyperlinks
+** to the end of the line.
+*/
+static void brlist_extra(int rid){
+  Stmt q;
+  db_prepare(&q,
+    "SELECT tagname, tagxref.tagid FROM tagxref, tag"
+    " WHERE tagxref.rid=%d"
+    "   AND tagxref.tagid=tag.tagid"
+    "   AND tagxref.tagtype>0"
+    "   AND tag.tagname GLOB 'sym-*'",
+    rid
+  );
+  while( db_step(&q)==SQLITE_ROW ){
+    const char *zTagName = db_column_text(&q, 0);
+    int tagid = db_column_int(&q, 1);
+    @ [<a href="%s(g.zBaseURL)/timeline?t=%d(tagid)">%h(&zTagName[4])</a>]
+  }
+  db_finalize(&q);
+}
+
+/*
 ** WEBPAGE: brlist
 **
 ** Show a timeline of all branches
 */
 void brlist_page(void){
@@ -226,16 +249,17 @@
   login_check_credentials();
   if( !g.okRead ){ login_needed(); return; }
 
   style_header("Branches");
   login_anonymous_available();
+  @ <h2>The initial check-in for each branch:</h2>
   db_prepare(&q,
     "%s AND blob.rid IN (SELECT rid FROM tagxref WHERE tagtype>0 AND tagid=%d)"
     " ORDER BY event.mtime DESC",
     timeline_query_for_www(), TAG_NEWBRANCH
   );
-  www_print_timeline(&q, 0, 0);
+  www_print_timeline(&q, 0, brlist_extra);
   db_finalize(&q);
   @ <br clear="both">
   @ <script>
   @ function xin(id){
   @ }

Modified src/timeline.c from [300c2cb824] to [a47960c40e].

@@ -199,14 +199,18 @@
     }else{
       wiki_convert(&comment, 0, wikiFlags);
     }
     blob_reset(&comment);
     if( zTagList && zTagList[0] ){
-      @ (user: %h(zUser), tags: %h(zTagList))</td></tr>
+      @ (user: %h(zUser), tags: %h(zTagList))
     }else{
-      @ (user: %h(zUser))</td></tr>
-    }
+      @ (user: %h(zUser))
+    }
+    if( xExtra ){
+      xExtra(rid);
+    }
+    @ </td></tr>
   }
   @ </table>
 }
 
 /*