Fossil SCM
Add some primitive clean-up buttons on the access log.
Commit
a37abeca655ec69154a0db5827f4a5259765f64c
Parent
e3b3c5cfbb65b27…
1 file changed
+34
-1
+34
-1
| --- src/user.c | ||
| +++ src/user.c | ||
| @@ -405,10 +405,27 @@ | ||
| 405 | 405 | int cnt = 0; |
| 406 | 406 | |
| 407 | 407 | login_check_credentials(); |
| 408 | 408 | if( !g.okAdmin ){ login_needed(); return; } |
| 409 | 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 | + } | |
| 410 | 427 | style_header("Access Log"); |
| 411 | 428 | blob_zero(&sql); |
| 412 | 429 | blob_append(&sql, |
| 413 | 430 | "SELECT uname, ipaddr, datetime(mtime, 'localtime'), success" |
| 414 | 431 | " FROM accesslog", -1 |
| @@ -416,11 +433,11 @@ | ||
| 416 | 433 | if( y==1 ){ |
| 417 | 434 | blob_append(&sql, " WHERE success", -1); |
| 418 | 435 | }else if( y==2 ){ |
| 419 | 436 | blob_append(&sql, " WHERE NOT success", -1); |
| 420 | 437 | } |
| 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); | |
| 422 | 439 | if( skip ){ |
| 423 | 440 | style_submenu_element("Newer", "Newer entries", |
| 424 | 441 | "%s/access_log?o=%d&n=%d&y=%d", g.zTop, skip>=n ? skip-n : 0, |
| 425 | 442 | n, y); |
| 426 | 443 | } |
| @@ -451,7 +468,23 @@ | ||
| 451 | 468 | style_submenu_element("All", "All entries", |
| 452 | 469 | "%s/access_log?n=10000000", g.zTop); |
| 453 | 470 | } |
| 454 | 471 | @ </table></center> |
| 455 | 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> | |
| 456 | 489 | style_footer(); |
| 457 | 490 | } |
| 458 | 491 |
| --- 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 |