Fossil SCM

Add "fco" query parameter and the "Simplified"/"Full" submenu items to control it on the "finfo" web page.

drh 2012-09-05 11:33 trunk
Commit f1fae7f9eab303dd43e77f1840aa0285cfacf062
1 file changed +27 -2
+27 -2
--- src/finfo.c
+++ src/finfo.c
@@ -228,21 +228,28 @@
228228
const char *zA;
229229
const char *zB;
230230
int n;
231231
Blob title;
232232
Blob sql;
233
+ HQuery url;
233234
GraphContext *pGraph;
234235
int brBg = P("brbg")!=0;
235236
int uBg = P("ubg")!=0;
237
+ int firstChngOnly = P("fco")!=0;
236238
237239
login_check_credentials();
238240
if( !g.perm.Read ){ login_needed(); return; }
239241
style_header("File History");
240242
login_anonymous_available();
243
+ url_initialize(&url, "finfo");
244
+ if( brBg ) url_add_parameter(&url, "brbg", 0);
245
+ if( uBg ) url_add_parameter(&url, "ubg", 0);
246
+ if( firstChngOnly ) url_add_parameter(&url, "fco", 0);
241247
242248
zPrevDate[0] = 0;
243249
zFilename = PD("name","");
250
+ url_add_parameter(&url, "name", zFilename);
244251
blob_zero(&sql);
245252
blob_appendf(&sql,
246253
"SELECT"
247254
" datetime(event.mtime,'localtime')," /* Date of change */
248255
" coalesce(event.ecomment, event.comment)," /* Check-in comment */
@@ -252,26 +259,44 @@
252259
" (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
253260
" (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
254261
" (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
255262
" event.bgcolor," /* Background color */
256263
" (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
257
- " AND tagxref.rid=mlink.mid)" /* Tags */
264
+ " AND tagxref.rid=mlink.mid)", /* Tags */
265
+ TAG_BRANCH
266
+ );
267
+ if( firstChngOnly ){
268
+ blob_appendf(&sql, ", min(event.mtime)");
269
+ }
270
+ blob_appendf(&sql,
258271
" FROM mlink, event"
259272
" WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q %s)"
260273
" AND event.objid=mlink.mid",
261
- TAG_BRANCH,
262274
zFilename, filename_collation()
263275
);
264276
if( (zA = P("a"))!=0 ){
265277
blob_appendf(&sql, " AND event.mtime>=julianday('%q')", zA);
278
+ url_add_parameter(&url, "a", zA);
266279
}
267280
if( (zB = P("b"))!=0 ){
268281
blob_appendf(&sql, " AND event.mtime<=julianday('%q')", zB);
282
+ url_add_parameter(&url, "b", zB);
283
+ }
284
+ if( firstChngOnly ){
285
+ blob_appendf(&sql, " GROUP BY mlink.fid");
269286
}
270287
blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
271288
if( (n = atoi(PD("n","0")))>0 ){
272289
blob_appendf(&sql, " LIMIT %d", n);
290
+ url_add_parameter(&url, "n", P("n"));
291
+ }
292
+ if( firstChngOnly ){
293
+ style_submenu_element("Full", "Show all changes",
294
+ url_render(&url, "fco", 0, 0, 0));
295
+ }else{
296
+ style_submenu_element("Simplified", "Show only first use of a change",
297
+ url_render(&url, "fco", "1", 0, 0));
273298
}
274299
db_prepare(&q, blob_str(&sql));
275300
blob_reset(&sql);
276301
blob_zero(&title);
277302
blob_appendf(&title, "History of ");
278303
--- src/finfo.c
+++ src/finfo.c
@@ -228,21 +228,28 @@
228 const char *zA;
229 const char *zB;
230 int n;
231 Blob title;
232 Blob sql;
 
233 GraphContext *pGraph;
234 int brBg = P("brbg")!=0;
235 int uBg = P("ubg")!=0;
 
236
237 login_check_credentials();
238 if( !g.perm.Read ){ login_needed(); return; }
239 style_header("File History");
240 login_anonymous_available();
 
 
 
 
241
242 zPrevDate[0] = 0;
243 zFilename = PD("name","");
 
244 blob_zero(&sql);
245 blob_appendf(&sql,
246 "SELECT"
247 " datetime(event.mtime,'localtime')," /* Date of change */
248 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
@@ -252,26 +259,44 @@
252 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
253 " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
254 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
255 " event.bgcolor," /* Background color */
256 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
257 " AND tagxref.rid=mlink.mid)" /* Tags */
 
 
 
 
 
 
258 " FROM mlink, event"
259 " WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q %s)"
260 " AND event.objid=mlink.mid",
261 TAG_BRANCH,
262 zFilename, filename_collation()
263 );
264 if( (zA = P("a"))!=0 ){
265 blob_appendf(&sql, " AND event.mtime>=julianday('%q')", zA);
 
266 }
267 if( (zB = P("b"))!=0 ){
268 blob_appendf(&sql, " AND event.mtime<=julianday('%q')", zB);
 
 
 
 
269 }
270 blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
271 if( (n = atoi(PD("n","0")))>0 ){
272 blob_appendf(&sql, " LIMIT %d", n);
 
 
 
 
 
 
 
 
273 }
274 db_prepare(&q, blob_str(&sql));
275 blob_reset(&sql);
276 blob_zero(&title);
277 blob_appendf(&title, "History of ");
278
--- src/finfo.c
+++ src/finfo.c
@@ -228,21 +228,28 @@
228 const char *zA;
229 const char *zB;
230 int n;
231 Blob title;
232 Blob sql;
233 HQuery url;
234 GraphContext *pGraph;
235 int brBg = P("brbg")!=0;
236 int uBg = P("ubg")!=0;
237 int firstChngOnly = P("fco")!=0;
238
239 login_check_credentials();
240 if( !g.perm.Read ){ login_needed(); return; }
241 style_header("File History");
242 login_anonymous_available();
243 url_initialize(&url, "finfo");
244 if( brBg ) url_add_parameter(&url, "brbg", 0);
245 if( uBg ) url_add_parameter(&url, "ubg", 0);
246 if( firstChngOnly ) url_add_parameter(&url, "fco", 0);
247
248 zPrevDate[0] = 0;
249 zFilename = PD("name","");
250 url_add_parameter(&url, "name", zFilename);
251 blob_zero(&sql);
252 blob_appendf(&sql,
253 "SELECT"
254 " datetime(event.mtime,'localtime')," /* Date of change */
255 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
@@ -252,26 +259,44 @@
259 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
260 " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
261 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
262 " event.bgcolor," /* Background color */
263 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
264 " AND tagxref.rid=mlink.mid)", /* Tags */
265 TAG_BRANCH
266 );
267 if( firstChngOnly ){
268 blob_appendf(&sql, ", min(event.mtime)");
269 }
270 blob_appendf(&sql,
271 " FROM mlink, event"
272 " WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q %s)"
273 " AND event.objid=mlink.mid",
 
274 zFilename, filename_collation()
275 );
276 if( (zA = P("a"))!=0 ){
277 blob_appendf(&sql, " AND event.mtime>=julianday('%q')", zA);
278 url_add_parameter(&url, "a", zA);
279 }
280 if( (zB = P("b"))!=0 ){
281 blob_appendf(&sql, " AND event.mtime<=julianday('%q')", zB);
282 url_add_parameter(&url, "b", zB);
283 }
284 if( firstChngOnly ){
285 blob_appendf(&sql, " GROUP BY mlink.fid");
286 }
287 blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
288 if( (n = atoi(PD("n","0")))>0 ){
289 blob_appendf(&sql, " LIMIT %d", n);
290 url_add_parameter(&url, "n", P("n"));
291 }
292 if( firstChngOnly ){
293 style_submenu_element("Full", "Show all changes",
294 url_render(&url, "fco", 0, 0, 0));
295 }else{
296 style_submenu_element("Simplified", "Show only first use of a change",
297 url_render(&url, "fco", "1", 0, 0));
298 }
299 db_prepare(&q, blob_str(&sql));
300 blob_reset(&sql);
301 blob_zero(&title);
302 blob_appendf(&title, "History of ");
303

Keyboard Shortcuts

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