Fossil SCM

Do not let the "Lines:" box go below one on the /timeline. If it does, automatically revert to 10 lines. Also, arrange for the default number of lines to be 50 in most cases, but only 11 if the c= (circa) query parameter is used. Use n=all to see the entire history of the graph.

drh 2015-02-06 03:28 UTC form-submenu
Commit 99e081efe5e00c3a3064b9b629cb33fc3afd8167
+1 -1
--- src/cgi.c
+++ src/cgi.c
@@ -498,11 +498,11 @@
498498
void cgi_replace_query_parameter(const char *zName, const char *zValue){
499499
int i;
500500
for(i=0; i<nUsedQP; i++){
501501
if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){
502502
aParamQP[i].zValue = zValue;
503
- assert( aParamQP[0].isQP );
503
+ assert( aParamQP[i].isQP );
504504
return;
505505
}
506506
}
507507
cgi_set_parameter_nocopy(zName, zValue, 1);
508508
}
509509
--- src/cgi.c
+++ src/cgi.c
@@ -498,11 +498,11 @@
498 void cgi_replace_query_parameter(const char *zName, const char *zValue){
499 int i;
500 for(i=0; i<nUsedQP; i++){
501 if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){
502 aParamQP[i].zValue = zValue;
503 assert( aParamQP[0].isQP );
504 return;
505 }
506 }
507 cgi_set_parameter_nocopy(zName, zValue, 1);
508 }
509
--- src/cgi.c
+++ src/cgi.c
@@ -498,11 +498,11 @@
498 void cgi_replace_query_parameter(const char *zName, const char *zValue){
499 int i;
500 for(i=0; i<nUsedQP; i++){
501 if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){
502 aParamQP[i].zValue = zValue;
503 assert( aParamQP[i].isQP );
504 return;
505 }
506 }
507 cgi_set_parameter_nocopy(zName, zValue, 1);
508 }
509
+1 -1
--- src/event.c
+++ src/event.c
@@ -129,11 +129,11 @@
129129
if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){
130130
style_submenu_element("Edit", "Edit", "%s/eventedit?name=%s",
131131
g.zTop, zEventId);
132132
}
133133
zETime = db_text(0, "SELECT datetime(%.17g)", pEvent->rEventDate);
134
- style_submenu_element("Context", 0, "%R/timeline?c=%.20s&n=11", zEventId);
134
+ style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zEventId);
135135
if( g.perm.Hyperlink ){
136136
if( verboseFlag ){
137137
style_submenu_element("Plain", 0, "%R/event?name=%.20s&aid=%s",
138138
zEventId, zUuid);
139139
if( nextRid ){
140140
--- src/event.c
+++ src/event.c
@@ -129,11 +129,11 @@
129 if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){
130 style_submenu_element("Edit", "Edit", "%s/eventedit?name=%s",
131 g.zTop, zEventId);
132 }
133 zETime = db_text(0, "SELECT datetime(%.17g)", pEvent->rEventDate);
134 style_submenu_element("Context", 0, "%R/timeline?c=%.20s&n=11", zEventId);
135 if( g.perm.Hyperlink ){
136 if( verboseFlag ){
137 style_submenu_element("Plain", 0, "%R/event?name=%.20s&aid=%s",
138 zEventId, zUuid);
139 if( nextRid ){
140
--- src/event.c
+++ src/event.c
@@ -129,11 +129,11 @@
129 if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){
130 style_submenu_element("Edit", "Edit", "%s/eventedit?name=%s",
131 g.zTop, zEventId);
132 }
133 zETime = db_text(0, "SELECT datetime(%.17g)", pEvent->rEventDate);
134 style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zEventId);
135 if( g.perm.Hyperlink ){
136 if( verboseFlag ){
137 style_submenu_element("Plain", 0, "%R/event?name=%.20s&aid=%s",
138 zEventId, zUuid);
139 if( nextRid ){
140
+1 -1
--- src/info.c
+++ src/info.c
@@ -917,11 +917,11 @@
917917
blob_zero(&links);
918918
while( z && z[0] ){
919919
for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
920920
blob_appendf(&links,
921921
"%z%#h</a>%.2s",
922
- href("%R/timeline?r=%#t&nd&c=%t&n=11",i,z,zDate), i,z, &z[i]
922
+ href("%R/timeline?r=%#t&nd&c=%t",i,z,zDate), i,z, &z[i]
923923
);
924924
if( z[i]==0 ) break;
925925
z += i+2;
926926
}
927927
@ tags: %s(blob_str(&links)),
928928
--- src/info.c
+++ src/info.c
@@ -917,11 +917,11 @@
917 blob_zero(&links);
918 while( z && z[0] ){
919 for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
920 blob_appendf(&links,
921 "%z%#h</a>%.2s",
922 href("%R/timeline?r=%#t&nd&c=%t&n=11",i,z,zDate), i,z, &z[i]
923 );
924 if( z[i]==0 ) break;
925 z += i+2;
926 }
927 @ tags: %s(blob_str(&links)),
928
--- src/info.c
+++ src/info.c
@@ -917,11 +917,11 @@
917 blob_zero(&links);
918 while( z && z[0] ){
919 for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
920 blob_appendf(&links,
921 "%z%#h</a>%.2s",
922 href("%R/timeline?r=%#t&nd&c=%t",i,z,zDate), i,z, &z[i]
923 );
924 if( z[i]==0 ) break;
925 z += i+2;
926 }
927 @ tags: %s(blob_str(&links)),
928
+1 -1
--- src/search.c
+++ src/search.c
@@ -1322,11 +1322,11 @@
13221322
);
13231323
db_multi_exec(
13241324
"REPLACE INTO ftsdocs(rowid,idxed,type,rid,name,label,url,mtime)"
13251325
" SELECT ftsdocs.rowid, 1, 'c', ftsdocs.rid, NULL,"
13261326
" printf('Check-in [%%.16s] on %%s',blob.uuid,datetime(event.mtime)),"
1327
- " printf('/timeline?y=ci&n=11&c=%%.20s',blob.uuid),"
1327
+ " printf('/timeline?y=ci&c=%%.20s',blob.uuid),"
13281328
" event.mtime"
13291329
" FROM ftsdocs, event, blob"
13301330
" WHERE ftsdocs.type='c' AND NOT ftsdocs.idxed"
13311331
" AND event.objid=ftsdocs.rid"
13321332
" AND blob.rid=ftsdocs.rid"
13331333
--- src/search.c
+++ src/search.c
@@ -1322,11 +1322,11 @@
1322 );
1323 db_multi_exec(
1324 "REPLACE INTO ftsdocs(rowid,idxed,type,rid,name,label,url,mtime)"
1325 " SELECT ftsdocs.rowid, 1, 'c', ftsdocs.rid, NULL,"
1326 " printf('Check-in [%%.16s] on %%s',blob.uuid,datetime(event.mtime)),"
1327 " printf('/timeline?y=ci&n=11&c=%%.20s',blob.uuid),"
1328 " event.mtime"
1329 " FROM ftsdocs, event, blob"
1330 " WHERE ftsdocs.type='c' AND NOT ftsdocs.idxed"
1331 " AND event.objid=ftsdocs.rid"
1332 " AND blob.rid=ftsdocs.rid"
1333
--- src/search.c
+++ src/search.c
@@ -1322,11 +1322,11 @@
1322 );
1323 db_multi_exec(
1324 "REPLACE INTO ftsdocs(rowid,idxed,type,rid,name,label,url,mtime)"
1325 " SELECT ftsdocs.rowid, 1, 'c', ftsdocs.rid, NULL,"
1326 " printf('Check-in [%%.16s] on %%s',blob.uuid,datetime(event.mtime)),"
1327 " printf('/timeline?y=ci&c=%%.20s',blob.uuid),"
1328 " event.mtime"
1329 " FROM ftsdocs, event, blob"
1330 " WHERE ftsdocs.type='c' AND NOT ftsdocs.idxed"
1331 " AND event.objid=ftsdocs.rid"
1332 " AND blob.rid=ftsdocs.rid"
1333
+1 -1
--- src/sitemap.c
+++ src/sitemap.c
@@ -44,11 +44,11 @@
4444
@ <li>%z(href("%R/fileage?name=trunk"))File ages for Trunk</a></li>
4545
@ </ul>
4646
@ <li>%z(href("%R/timeline?n=200"))Project Timeline</a></li>
4747
@ <ul>
4848
@ <li>%z(href("%R/timeline?a=1970-01-01&y=ci&n=10"))First 10 checkins</a></li>
49
- @ <li>%z(href("%R/timeline?n=0&namechng"))All checkins with file name
49
+ @ <li>%z(href("%R/timeline?n=all&namechng"))All checkins with file name
5050
@ changes</a></li>
5151
@ <li>%z(href("%R/reports"))Activity Reports</a></li>
5252
@ </ul>
5353
@ <li>Branches and Tags</a>
5454
@ <ul>
5555
--- src/sitemap.c
+++ src/sitemap.c
@@ -44,11 +44,11 @@
44 @ <li>%z(href("%R/fileage?name=trunk"))File ages for Trunk</a></li>
45 @ </ul>
46 @ <li>%z(href("%R/timeline?n=200"))Project Timeline</a></li>
47 @ <ul>
48 @ <li>%z(href("%R/timeline?a=1970-01-01&y=ci&n=10"))First 10 checkins</a></li>
49 @ <li>%z(href("%R/timeline?n=0&namechng"))All checkins with file name
50 @ changes</a></li>
51 @ <li>%z(href("%R/reports"))Activity Reports</a></li>
52 @ </ul>
53 @ <li>Branches and Tags</a>
54 @ <ul>
55
--- src/sitemap.c
+++ src/sitemap.c
@@ -44,11 +44,11 @@
44 @ <li>%z(href("%R/fileage?name=trunk"))File ages for Trunk</a></li>
45 @ </ul>
46 @ <li>%z(href("%R/timeline?n=200"))Project Timeline</a></li>
47 @ <ul>
48 @ <li>%z(href("%R/timeline?a=1970-01-01&y=ci&n=10"))First 10 checkins</a></li>
49 @ <li>%z(href("%R/timeline?n=all&namechng"))All checkins with file name
50 @ changes</a></li>
51 @ <li>%z(href("%R/reports"))Activity Reports</a></li>
52 @ </ul>
53 @ <li>Branches and Tags</a>
54 @ <ul>
55
+13 -2
--- src/timeline.c
+++ src/timeline.c
@@ -48,11 +48,11 @@
4848
** Generate a hyperlink to a date & time.
4949
*/
5050
void hyperlink_to_date(const char *zDate, const char *zSuffix){
5151
if( zSuffix==0 ) zSuffix = "";
5252
if( g.perm.Hyperlink ){
53
- @ %z(href("%R/timeline?n=11&c=%T",zDate))%s(zDate)</a>%s(zSuffix)
53
+ @ %z(href("%R/timeline?c=%T",zDate))%s(zDate)</a>%s(zSuffix)
5454
}else{
5555
@ %s(zDate)%s(zSuffix)
5656
}
5757
}
5858
@@ -1137,11 +1137,22 @@
11371137
char *zOlderButton = 0; /* URL for Older button at the bottom */
11381138
11391139
/* Set number of rows to display */
11401140
z = P("n");
11411141
if( z ){
1142
- nEntry = atoi(z);
1142
+ if( fossil_strcmp(z,"all")==0 ){
1143
+ nEntry = 0;
1144
+ }else{
1145
+ nEntry = atoi(z);
1146
+ if( nEntry<=0 ){
1147
+ cgi_replace_query_parameter("n","10");
1148
+ nEntry = 10;
1149
+ }
1150
+ }
1151
+ }else if( zCirca ){
1152
+ cgi_replace_query_parameter("n","11");
1153
+ nEntry = 11;
11431154
}else{
11441155
cgi_replace_query_parameter("n","50");
11451156
nEntry = 50;
11461157
}
11471158
11481159
--- src/timeline.c
+++ src/timeline.c
@@ -48,11 +48,11 @@
48 ** Generate a hyperlink to a date & time.
49 */
50 void hyperlink_to_date(const char *zDate, const char *zSuffix){
51 if( zSuffix==0 ) zSuffix = "";
52 if( g.perm.Hyperlink ){
53 @ %z(href("%R/timeline?n=11&c=%T",zDate))%s(zDate)</a>%s(zSuffix)
54 }else{
55 @ %s(zDate)%s(zSuffix)
56 }
57 }
58
@@ -1137,11 +1137,22 @@
1137 char *zOlderButton = 0; /* URL for Older button at the bottom */
1138
1139 /* Set number of rows to display */
1140 z = P("n");
1141 if( z ){
1142 nEntry = atoi(z);
 
 
 
 
 
 
 
 
 
 
 
1143 }else{
1144 cgi_replace_query_parameter("n","50");
1145 nEntry = 50;
1146 }
1147
1148
--- src/timeline.c
+++ src/timeline.c
@@ -48,11 +48,11 @@
48 ** Generate a hyperlink to a date & time.
49 */
50 void hyperlink_to_date(const char *zDate, const char *zSuffix){
51 if( zSuffix==0 ) zSuffix = "";
52 if( g.perm.Hyperlink ){
53 @ %z(href("%R/timeline?c=%T",zDate))%s(zDate)</a>%s(zSuffix)
54 }else{
55 @ %s(zDate)%s(zSuffix)
56 }
57 }
58
@@ -1137,11 +1137,22 @@
1137 char *zOlderButton = 0; /* URL for Older button at the bottom */
1138
1139 /* Set number of rows to display */
1140 z = P("n");
1141 if( z ){
1142 if( fossil_strcmp(z,"all")==0 ){
1143 nEntry = 0;
1144 }else{
1145 nEntry = atoi(z);
1146 if( nEntry<=0 ){
1147 cgi_replace_query_parameter("n","10");
1148 nEntry = 10;
1149 }
1150 }
1151 }else if( zCirca ){
1152 cgi_replace_query_parameter("n","11");
1153 nEntry = 11;
1154 }else{
1155 cgi_replace_query_parameter("n","50");
1156 nEntry = 50;
1157 }
1158
1159
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1252,11 +1252,11 @@
12521252
blob_appendf(p->pOut, "%z[",href("%R/info/%s", zTarget));
12531253
zTerm = "]</a>";
12541254
}
12551255
}else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
12561256
&& db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
1257
- blob_appendf(p->pOut, "<a href=\"%R/timeline?n=11&c=%T\">", zTarget);
1257
+ blob_appendf(p->pOut, "<a href=\"%R/timeline?c=%T\">", zTarget);
12581258
}else if( (z = validWikiPageName(p, zTarget))!=0 ){
12591259
blob_appendf(p->pOut, "<a href=\"%R/wiki?name=%T\">", z);
12601260
}else if( zTarget>=&zOrig[2] && !fossil_isspace(zTarget[-2]) ){
12611261
/* Probably an array subscript in code */
12621262
zTerm = "";
12631263
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1252,11 +1252,11 @@
1252 blob_appendf(p->pOut, "%z[",href("%R/info/%s", zTarget));
1253 zTerm = "]</a>";
1254 }
1255 }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
1256 && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
1257 blob_appendf(p->pOut, "<a href=\"%R/timeline?n=11&c=%T\">", zTarget);
1258 }else if( (z = validWikiPageName(p, zTarget))!=0 ){
1259 blob_appendf(p->pOut, "<a href=\"%R/wiki?name=%T\">", z);
1260 }else if( zTarget>=&zOrig[2] && !fossil_isspace(zTarget[-2]) ){
1261 /* Probably an array subscript in code */
1262 zTerm = "";
1263
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1252,11 +1252,11 @@
1252 blob_appendf(p->pOut, "%z[",href("%R/info/%s", zTarget));
1253 zTerm = "]</a>";
1254 }
1255 }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
1256 && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
1257 blob_appendf(p->pOut, "<a href=\"%R/timeline?c=%T\">", zTarget);
1258 }else if( (z = validWikiPageName(p, zTarget))!=0 ){
1259 blob_appendf(p->pOut, "<a href=\"%R/wiki?name=%T\">", z);
1260 }else if( zTarget>=&zOrig[2] && !fossil_isspace(zTarget[-2]) ){
1261 /* Probably an array subscript in code */
1262 zTerm = "";
1263

Keyboard Shortcuts

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