Fossil SCM
Added "Tip" and "View" links to submenu of /artifact pages to get corresponding /file and /doc links to the same file on the same branch, giving different views of this same file data.
Commit
a9dda382bf1bce4589f43333651985a9792c8d33e2274cbb097c059c056c5ad9
Parent
3504672187af59f…
1 file changed
+8
+8
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -2128,10 +2128,11 @@ | ||
| 2128 | 2128 | int renderAsWiki = 0; |
| 2129 | 2129 | int renderAsHtml = 0; |
| 2130 | 2130 | int objType; |
| 2131 | 2131 | int asText; |
| 2132 | 2132 | const char *zUuid; |
| 2133 | + const char *zBr; | |
| 2133 | 2134 | u32 objdescFlags = OBJDESC_BASE; |
| 2134 | 2135 | int descOnly = fossil_strcmp(g.zPath,"whatis")==0; |
| 2135 | 2136 | int isFile = fossil_strcmp(g.zPath,"file")==0; |
| 2136 | 2137 | const char *zLn = P("ln"); |
| 2137 | 2138 | const char *zName = P("name"); |
| @@ -2244,10 +2245,17 @@ | ||
| 2244 | 2245 | const char *zIp = db_column_text(&q,2); |
| 2245 | 2246 | @ <p>Received on %s(zDate) from %h(zUser) at %h(zIp).</p> |
| 2246 | 2247 | } |
| 2247 | 2248 | db_finalize(&q); |
| 2248 | 2249 | } |
| 2250 | + zBr = branch_of_rid(rid); | |
| 2251 | + if( zBr && zBr[0] ){ | |
| 2252 | + style_submenu_element("View", "%R/doc/%T/%T", | |
| 2253 | + zBr, blob_str(&downloadName)); | |
| 2254 | + style_submenu_element("Tip", "%R/file/%%?ci=%T", | |
| 2255 | + blob_str(&downloadName), zBr); | |
| 2256 | + } | |
| 2249 | 2257 | style_submenu_element("Download", "%R/raw/%T?name=%s", |
| 2250 | 2258 | blob_str(&downloadName), zUuid); |
| 2251 | 2259 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 2252 | 2260 | style_submenu_element("Check-ins Using", "%R/timeline?n=200&uf=%s", zUuid); |
| 2253 | 2261 | } |
| 2254 | 2262 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -2128,10 +2128,11 @@ | |
| 2128 | int renderAsWiki = 0; |
| 2129 | int renderAsHtml = 0; |
| 2130 | int objType; |
| 2131 | int asText; |
| 2132 | const char *zUuid; |
| 2133 | u32 objdescFlags = OBJDESC_BASE; |
| 2134 | int descOnly = fossil_strcmp(g.zPath,"whatis")==0; |
| 2135 | int isFile = fossil_strcmp(g.zPath,"file")==0; |
| 2136 | const char *zLn = P("ln"); |
| 2137 | const char *zName = P("name"); |
| @@ -2244,10 +2245,17 @@ | |
| 2244 | const char *zIp = db_column_text(&q,2); |
| 2245 | @ <p>Received on %s(zDate) from %h(zUser) at %h(zIp).</p> |
| 2246 | } |
| 2247 | db_finalize(&q); |
| 2248 | } |
| 2249 | style_submenu_element("Download", "%R/raw/%T?name=%s", |
| 2250 | blob_str(&downloadName), zUuid); |
| 2251 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 2252 | style_submenu_element("Check-ins Using", "%R/timeline?n=200&uf=%s", zUuid); |
| 2253 | } |
| 2254 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -2128,10 +2128,11 @@ | |
| 2128 | int renderAsWiki = 0; |
| 2129 | int renderAsHtml = 0; |
| 2130 | int objType; |
| 2131 | int asText; |
| 2132 | const char *zUuid; |
| 2133 | const char *zBr; |
| 2134 | u32 objdescFlags = OBJDESC_BASE; |
| 2135 | int descOnly = fossil_strcmp(g.zPath,"whatis")==0; |
| 2136 | int isFile = fossil_strcmp(g.zPath,"file")==0; |
| 2137 | const char *zLn = P("ln"); |
| 2138 | const char *zName = P("name"); |
| @@ -2244,10 +2245,17 @@ | |
| 2245 | const char *zIp = db_column_text(&q,2); |
| 2246 | @ <p>Received on %s(zDate) from %h(zUser) at %h(zIp).</p> |
| 2247 | } |
| 2248 | db_finalize(&q); |
| 2249 | } |
| 2250 | zBr = branch_of_rid(rid); |
| 2251 | if( zBr && zBr[0] ){ |
| 2252 | style_submenu_element("View", "%R/doc/%T/%T", |
| 2253 | zBr, blob_str(&downloadName)); |
| 2254 | style_submenu_element("Tip", "%R/file/%%?ci=%T", |
| 2255 | blob_str(&downloadName), zBr); |
| 2256 | } |
| 2257 | style_submenu_element("Download", "%R/raw/%T?name=%s", |
| 2258 | blob_str(&downloadName), zUuid); |
| 2259 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 2260 | style_submenu_element("Check-ins Using", "%R/timeline?n=200&uf=%s", zUuid); |
| 2261 | } |
| 2262 |