Fossil SCM

Add some primitive clean-up buttons on the access log.

drh 2011-01-19 16:16 trunk
Commit a37abeca655ec69154a0db5827f4a5259765f64c
1 file changed +34 -1
+34 -1
--- src/user.c
+++ src/user.c
@@ -405,10 +405,27 @@
405405
int cnt = 0;
406406
407407
login_check_credentials();
408408
if( !g.okAdmin ){ login_needed(); return; }
409409
410
+ if( P("delall") && P("delallbtn") ){
411
+ db_multi_exec("DELETE FROM accesslog");
412
+ cgi_redirectf("%s/access_log?y=%d&n=%d&o=%o", g.zTop, y, n, skip);
413
+ return;
414
+ }
415
+ if( P("delanon") && P("delanonbtn") ){
416
+ db_multi_exec("DELETE FROM accesslog WHERE uname='anonymous'");
417
+ cgi_redirectf("%s/access_log?y=%d&n=%d&o=%o", g.zTop, y, n, skip);
418
+ return;
419
+ }
420
+ if( P("delold") && P("deloldbtn") ){
421
+ db_multi_exec("DELETE FROM accesslog WHERE rowid in"
422
+ "(SELECT rowid FROM accesslog ORDER BY rowid DESC"
423
+ " LIMIT -1 OFFSET 200)");
424
+ cgi_redirectf("%s/access_log?y=%d&n=%d", g.zTop, y, n);
425
+ return;
426
+ }
410427
style_header("Access Log");
411428
blob_zero(&sql);
412429
blob_append(&sql,
413430
"SELECT uname, ipaddr, datetime(mtime, 'localtime'), success"
414431
" FROM accesslog", -1
@@ -416,11 +433,11 @@
416433
if( y==1 ){
417434
blob_append(&sql, " WHERE success", -1);
418435
}else if( y==2 ){
419436
blob_append(&sql, " WHERE NOT success", -1);
420437
}
421
- blob_appendf(&sql," ORDER BY mtime DESC LIMIT %d OFFSET %d", n+1, skip);
438
+ blob_appendf(&sql," ORDER BY rowid DESC LIMIT %d OFFSET %d", n+1, skip);
422439
if( skip ){
423440
style_submenu_element("Newer", "Newer entries",
424441
"%s/access_log?o=%d&n=%d&y=%d", g.zTop, skip>=n ? skip-n : 0,
425442
n, y);
426443
}
@@ -451,7 +468,23 @@
451468
style_submenu_element("All", "All entries",
452469
"%s/access_log?n=10000000", g.zTop);
453470
}
454471
@ </table></center>
455472
db_finalize(&q);
473
+ @ <hr>
474
+ @ <form method="post" action="%s(g.zTop)/access_log">
475
+ @ <input type="checkbox" name="delold">
476
+ @ Delete all but the most recent 200 entries</input>
477
+ @ <input type="submit" name="deloldbtn" value="Delete"></input>
478
+ @ </form>
479
+ @ <form method="post" action="%s(g.zTop)/access_log">
480
+ @ <input type="checkbox" name="delanon">
481
+ @ Delete all entries for user "anonymous"</input>
482
+ @ <input type="submit" name="delanonbtn" value="Delete"></input>
483
+ @ </form>
484
+ @ <form method="post" action="%s(g.zTop)/access_log">
485
+ @ <input type="checkbox" name="delall">
486
+ @ Delete all entries</input>
487
+ @ <input type="submit" name="delallbtn" value="Delete"></input>
488
+ @ </form>
456489
style_footer();
457490
}
458491
--- src/user.c
+++ src/user.c
@@ -405,10 +405,27 @@
405 int cnt = 0;
406
407 login_check_credentials();
408 if( !g.okAdmin ){ login_needed(); return; }
409
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410 style_header("Access Log");
411 blob_zero(&sql);
412 blob_append(&sql,
413 "SELECT uname, ipaddr, datetime(mtime, 'localtime'), success"
414 " FROM accesslog", -1
@@ -416,11 +433,11 @@
416 if( y==1 ){
417 blob_append(&sql, " WHERE success", -1);
418 }else if( y==2 ){
419 blob_append(&sql, " WHERE NOT success", -1);
420 }
421 blob_appendf(&sql," ORDER BY mtime DESC LIMIT %d OFFSET %d", n+1, skip);
422 if( skip ){
423 style_submenu_element("Newer", "Newer entries",
424 "%s/access_log?o=%d&n=%d&y=%d", g.zTop, skip>=n ? skip-n : 0,
425 n, y);
426 }
@@ -451,7 +468,23 @@
451 style_submenu_element("All", "All entries",
452 "%s/access_log?n=10000000", g.zTop);
453 }
454 @ </table></center>
455 db_finalize(&q);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456 style_footer();
457 }
458
--- src/user.c
+++ src/user.c
@@ -405,10 +405,27 @@
405 int cnt = 0;
406
407 login_check_credentials();
408 if( !g.okAdmin ){ login_needed(); return; }
409
410 if( P("delall") && P("delallbtn") ){
411 db_multi_exec("DELETE FROM accesslog");
412 cgi_redirectf("%s/access_log?y=%d&n=%d&o=%o", g.zTop, y, n, skip);
413 return;
414 }
415 if( P("delanon") && P("delanonbtn") ){
416 db_multi_exec("DELETE FROM accesslog WHERE uname='anonymous'");
417 cgi_redirectf("%s/access_log?y=%d&n=%d&o=%o", g.zTop, y, n, skip);
418 return;
419 }
420 if( P("delold") && P("deloldbtn") ){
421 db_multi_exec("DELETE FROM accesslog WHERE rowid in"
422 "(SELECT rowid FROM accesslog ORDER BY rowid DESC"
423 " LIMIT -1 OFFSET 200)");
424 cgi_redirectf("%s/access_log?y=%d&n=%d", g.zTop, y, n);
425 return;
426 }
427 style_header("Access Log");
428 blob_zero(&sql);
429 blob_append(&sql,
430 "SELECT uname, ipaddr, datetime(mtime, 'localtime'), success"
431 " FROM accesslog", -1
@@ -416,11 +433,11 @@
433 if( y==1 ){
434 blob_append(&sql, " WHERE success", -1);
435 }else if( y==2 ){
436 blob_append(&sql, " WHERE NOT success", -1);
437 }
438 blob_appendf(&sql," ORDER BY rowid DESC LIMIT %d OFFSET %d", n+1, skip);
439 if( skip ){
440 style_submenu_element("Newer", "Newer entries",
441 "%s/access_log?o=%d&n=%d&y=%d", g.zTop, skip>=n ? skip-n : 0,
442 n, y);
443 }
@@ -451,7 +468,23 @@
468 style_submenu_element("All", "All entries",
469 "%s/access_log?n=10000000", g.zTop);
470 }
471 @ </table></center>
472 db_finalize(&q);
473 @ <hr>
474 @ <form method="post" action="%s(g.zTop)/access_log">
475 @ <input type="checkbox" name="delold">
476 @ Delete all but the most recent 200 entries</input>
477 @ <input type="submit" name="deloldbtn" value="Delete"></input>
478 @ </form>
479 @ <form method="post" action="%s(g.zTop)/access_log">
480 @ <input type="checkbox" name="delanon">
481 @ Delete all entries for user "anonymous"</input>
482 @ <input type="submit" name="delanonbtn" value="Delete"></input>
483 @ </form>
484 @ <form method="post" action="%s(g.zTop)/access_log">
485 @ <input type="checkbox" name="delall">
486 @ Delete all entries</input>
487 @ <input type="submit" name="delallbtn" value="Delete"></input>
488 @ </form>
489 style_footer();
490 }
491

Keyboard Shortcuts

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