Fossil SCM
Add "Unhide" button in more timeline variants.
Commit
ef2b77207ad4e484fca21f3347501ce266ce4f27
Parent
7af8e2ebc35117f…
2 files changed
+1
-1
+17
-3
+1
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1634,11 +1634,11 @@ | ||
| 1634 | 1634 | objType = object_description(rid, 0, &downloadName); |
| 1635 | 1635 | style_submenu_element("Download", "Download", |
| 1636 | 1636 | "%R/raw/%T?name=%s", blob_str(&downloadName), zUuid); |
| 1637 | 1637 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 1638 | 1638 | style_submenu_element("Checkins Using", "Checkins Using", |
| 1639 | - "%R/timeline?uf=%s&n=200",zUuid); | |
| 1639 | + "%R/timeline?n=200&uf=%s&unhide",zUuid); | |
| 1640 | 1640 | } |
| 1641 | 1641 | asText = P("txt")!=0; |
| 1642 | 1642 | zMime = mimetype_from_name(blob_str(&downloadName)); |
| 1643 | 1643 | if( zMime ){ |
| 1644 | 1644 | if( fossil_strcmp(zMime, "text/html")==0 ){ |
| 1645 | 1645 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1634,11 +1634,11 @@ | |
| 1634 | objType = object_description(rid, 0, &downloadName); |
| 1635 | style_submenu_element("Download", "Download", |
| 1636 | "%R/raw/%T?name=%s", blob_str(&downloadName), zUuid); |
| 1637 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 1638 | style_submenu_element("Checkins Using", "Checkins Using", |
| 1639 | "%R/timeline?uf=%s&n=200",zUuid); |
| 1640 | } |
| 1641 | asText = P("txt")!=0; |
| 1642 | zMime = mimetype_from_name(blob_str(&downloadName)); |
| 1643 | if( zMime ){ |
| 1644 | if( fossil_strcmp(zMime, "text/html")==0 ){ |
| 1645 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1634,11 +1634,11 @@ | |
| 1634 | objType = object_description(rid, 0, &downloadName); |
| 1635 | style_submenu_element("Download", "Download", |
| 1636 | "%R/raw/%T?name=%s", blob_str(&downloadName), zUuid); |
| 1637 | if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ |
| 1638 | style_submenu_element("Checkins Using", "Checkins Using", |
| 1639 | "%R/timeline?n=200&uf=%s&unhide",zUuid); |
| 1640 | } |
| 1641 | asText = P("txt")!=0; |
| 1642 | zMime = mimetype_from_name(blob_str(&downloadName)); |
| 1643 | if( zMime ){ |
| 1644 | if( fossil_strcmp(zMime, "text/html")==0 ){ |
| 1645 |
+17
-3
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -1111,10 +1111,11 @@ | ||
| 1111 | 1111 | if( zType[0]=='a' ){ |
| 1112 | 1112 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 1113 | 1113 | }else{ |
| 1114 | 1114 | tmFlags = TIMELINE_GRAPH; |
| 1115 | 1115 | } |
| 1116 | + url_add_parameter(&url, "n", mprintf("%d", nEntry)); | |
| 1116 | 1117 | if( P("ng")!=0 || zSearch!=0 ){ |
| 1117 | 1118 | tmFlags &= ~TIMELINE_GRAPH; |
| 1118 | 1119 | url_add_parameter(&url, "ng", 0); |
| 1119 | 1120 | } |
| 1120 | 1121 | if( P("brbg")!=0 ){ |
| @@ -1231,10 +1232,21 @@ | ||
| 1231 | 1232 | } |
| 1232 | 1233 | if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid); |
| 1233 | 1234 | } |
| 1234 | 1235 | blob_appendf(&desc, " of %z[%.10s]</a>", |
| 1235 | 1236 | href("%R/info/%s", zUuid), zUuid); |
| 1237 | + if( (tmFlags & TIMELINE_UNHIDE)==0 ){ | |
| 1238 | + if( p_rid ){ | |
| 1239 | + url_add_parameter(&url, "p", zUuid); | |
| 1240 | + if( d_rid ){ | |
| 1241 | + /* If both p= and d= are set, we don't have the uuid of d yet. */ | |
| 1242 | + zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid); | |
| 1243 | + } | |
| 1244 | + } | |
| 1245 | + if( d_rid ) url_add_parameter(&url, "d", zUuid); | |
| 1246 | + timeline_submenu(&url, "Unhide", "unhide", "", 0); | |
| 1247 | + } | |
| 1236 | 1248 | }else if( f_rid && g.perm.Read ){ |
| 1237 | 1249 | /* If f= is present, ignore all other parameters other than n= */ |
| 1238 | 1250 | char *zUuid; |
| 1239 | 1251 | db_multi_exec( |
| 1240 | 1252 | "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" |
| @@ -1248,17 +1260,19 @@ | ||
| 1248 | 1260 | if( useDividers ) timeline_add_dividers(0, f_rid); |
| 1249 | 1261 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1250 | 1262 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1251 | 1263 | blob_appendf(&desc, "%z[%.10s]</a>", href("%R/info/%s", zUuid), zUuid); |
| 1252 | 1264 | tmFlags |= TIMELINE_DISJOINT; |
| 1265 | + if( (tmFlags & TIMELINE_UNHIDE)==0 ){ | |
| 1266 | + url_add_parameter(&url, "f", zUuid); | |
| 1267 | + timeline_submenu(&url, "Unhide", "unhide", "", 0); | |
| 1268 | + } | |
| 1253 | 1269 | }else{ |
| 1254 | 1270 | /* Otherwise, a timeline based on a span of time */ |
| 1255 | 1271 | int n; |
| 1256 | 1272 | const char *zEType = "timeline item"; |
| 1257 | 1273 | char *zDate; |
| 1258 | - char *zNEntry = mprintf("%d", nEntry); | |
| 1259 | - url_add_parameter(&url, "n", zNEntry); | |
| 1260 | 1274 | if( zUses ){ |
| 1261 | 1275 | blob_appendf(&sql, " AND event.objid IN usesfile "); |
| 1262 | 1276 | } |
| 1263 | 1277 | if( renameOnly ){ |
| 1264 | 1278 | blob_appendf(&sql, " AND event.objid IN rnfile "); |
| @@ -1944,11 +1958,11 @@ | ||
| 1944 | 1958 | " AND blob.rid=c.cid" |
| 1945 | 1959 | ); |
| 1946 | 1960 | while( db_step(&q)==SQLITE_ROW ){ |
| 1947 | 1961 | const char *zUuid = db_column_text(&q, 0); |
| 1948 | 1962 | @ <li> |
| 1949 | - @ <a href="%s(g.zTop)/timeline?p=%S(zUuid)&d=%S(zUuid)">%S(zUuid)</a> | |
| 1963 | + @ <a href="%s(g.zTop)/timeline?p=%S(zUuid)&d=%S(zUuid)&unhide">%S(zUuid)</a> | |
| 1950 | 1964 | } |
| 1951 | 1965 | db_finalize(&q); |
| 1952 | 1966 | style_footer(); |
| 1953 | 1967 | } |
| 1954 | 1968 | |
| 1955 | 1969 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1111,10 +1111,11 @@ | |
| 1111 | if( zType[0]=='a' ){ |
| 1112 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 1113 | }else{ |
| 1114 | tmFlags = TIMELINE_GRAPH; |
| 1115 | } |
| 1116 | if( P("ng")!=0 || zSearch!=0 ){ |
| 1117 | tmFlags &= ~TIMELINE_GRAPH; |
| 1118 | url_add_parameter(&url, "ng", 0); |
| 1119 | } |
| 1120 | if( P("brbg")!=0 ){ |
| @@ -1231,10 +1232,21 @@ | |
| 1231 | } |
| 1232 | if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid); |
| 1233 | } |
| 1234 | blob_appendf(&desc, " of %z[%.10s]</a>", |
| 1235 | href("%R/info/%s", zUuid), zUuid); |
| 1236 | }else if( f_rid && g.perm.Read ){ |
| 1237 | /* If f= is present, ignore all other parameters other than n= */ |
| 1238 | char *zUuid; |
| 1239 | db_multi_exec( |
| 1240 | "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" |
| @@ -1248,17 +1260,19 @@ | |
| 1248 | if( useDividers ) timeline_add_dividers(0, f_rid); |
| 1249 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1250 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1251 | blob_appendf(&desc, "%z[%.10s]</a>", href("%R/info/%s", zUuid), zUuid); |
| 1252 | tmFlags |= TIMELINE_DISJOINT; |
| 1253 | }else{ |
| 1254 | /* Otherwise, a timeline based on a span of time */ |
| 1255 | int n; |
| 1256 | const char *zEType = "timeline item"; |
| 1257 | char *zDate; |
| 1258 | char *zNEntry = mprintf("%d", nEntry); |
| 1259 | url_add_parameter(&url, "n", zNEntry); |
| 1260 | if( zUses ){ |
| 1261 | blob_appendf(&sql, " AND event.objid IN usesfile "); |
| 1262 | } |
| 1263 | if( renameOnly ){ |
| 1264 | blob_appendf(&sql, " AND event.objid IN rnfile "); |
| @@ -1944,11 +1958,11 @@ | |
| 1944 | " AND blob.rid=c.cid" |
| 1945 | ); |
| 1946 | while( db_step(&q)==SQLITE_ROW ){ |
| 1947 | const char *zUuid = db_column_text(&q, 0); |
| 1948 | @ <li> |
| 1949 | @ <a href="%s(g.zTop)/timeline?p=%S(zUuid)&d=%S(zUuid)">%S(zUuid)</a> |
| 1950 | } |
| 1951 | db_finalize(&q); |
| 1952 | style_footer(); |
| 1953 | } |
| 1954 | |
| 1955 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1111,10 +1111,11 @@ | |
| 1111 | if( zType[0]=='a' ){ |
| 1112 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 1113 | }else{ |
| 1114 | tmFlags = TIMELINE_GRAPH; |
| 1115 | } |
| 1116 | url_add_parameter(&url, "n", mprintf("%d", nEntry)); |
| 1117 | if( P("ng")!=0 || zSearch!=0 ){ |
| 1118 | tmFlags &= ~TIMELINE_GRAPH; |
| 1119 | url_add_parameter(&url, "ng", 0); |
| 1120 | } |
| 1121 | if( P("brbg")!=0 ){ |
| @@ -1231,10 +1232,21 @@ | |
| 1232 | } |
| 1233 | if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid); |
| 1234 | } |
| 1235 | blob_appendf(&desc, " of %z[%.10s]</a>", |
| 1236 | href("%R/info/%s", zUuid), zUuid); |
| 1237 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1238 | if( p_rid ){ |
| 1239 | url_add_parameter(&url, "p", zUuid); |
| 1240 | if( d_rid ){ |
| 1241 | /* If both p= and d= are set, we don't have the uuid of d yet. */ |
| 1242 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid); |
| 1243 | } |
| 1244 | } |
| 1245 | if( d_rid ) url_add_parameter(&url, "d", zUuid); |
| 1246 | timeline_submenu(&url, "Unhide", "unhide", "", 0); |
| 1247 | } |
| 1248 | }else if( f_rid && g.perm.Read ){ |
| 1249 | /* If f= is present, ignore all other parameters other than n= */ |
| 1250 | char *zUuid; |
| 1251 | db_multi_exec( |
| 1252 | "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" |
| @@ -1248,17 +1260,19 @@ | |
| 1260 | if( useDividers ) timeline_add_dividers(0, f_rid); |
| 1261 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1262 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1263 | blob_appendf(&desc, "%z[%.10s]</a>", href("%R/info/%s", zUuid), zUuid); |
| 1264 | tmFlags |= TIMELINE_DISJOINT; |
| 1265 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1266 | url_add_parameter(&url, "f", zUuid); |
| 1267 | timeline_submenu(&url, "Unhide", "unhide", "", 0); |
| 1268 | } |
| 1269 | }else{ |
| 1270 | /* Otherwise, a timeline based on a span of time */ |
| 1271 | int n; |
| 1272 | const char *zEType = "timeline item"; |
| 1273 | char *zDate; |
| 1274 | if( zUses ){ |
| 1275 | blob_appendf(&sql, " AND event.objid IN usesfile "); |
| 1276 | } |
| 1277 | if( renameOnly ){ |
| 1278 | blob_appendf(&sql, " AND event.objid IN rnfile "); |
| @@ -1944,11 +1958,11 @@ | |
| 1958 | " AND blob.rid=c.cid" |
| 1959 | ); |
| 1960 | while( db_step(&q)==SQLITE_ROW ){ |
| 1961 | const char *zUuid = db_column_text(&q, 0); |
| 1962 | @ <li> |
| 1963 | @ <a href="%s(g.zTop)/timeline?p=%S(zUuid)&d=%S(zUuid)&unhide">%S(zUuid)</a> |
| 1964 | } |
| 1965 | db_finalize(&q); |
| 1966 | style_footer(); |
| 1967 | } |
| 1968 | |
| 1969 |