commit c88e6ef4048271c53553435f2d1dbb06afd39c24 parent 823a3de7205af291f8da86a47ab68d7150296eeb Author: Natasha Kerensikova <natgh@instinctive.eu> Date: Tue, 28 Apr 2026 18:59:07 +0000 Restore for auto-deleted gruik is corrected Diffstat:
| M | src/cgi.scm | | | 19 | +++++++++++++++---- |
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/cgi.scm b/src/cgi.scm @@ -143,6 +143,9 @@ END-OF-CSS (cond ((null? rest) #f) ((string=? (caar rest) name) (cadar rest)) (else (loop (cdr rest)))))) +(define (optional-input-var name fallback) + (let ((val (input-var name))) + (if val val fallback))) (define (required-input-var name) (let ((val (input-var name))) (if val val (bad-input (conc "missing " name))))) @@ -692,16 +695,24 @@ END-OF-CSS (else (bad-input "bad value for submit"))))) (define (do-undelete) - (let ((id (required-input-var "id")) - (submit (required-input-var "submit"))) + (let ((id (required-input-var "id")) + (oldmark (string->number (optional-input-var "from" ""))) + (submit (required-input-var "submit"))) (cond + ((and oldmark (<= -5 oldmark -1) (string=? submit "Restore")) + (db-set-mark id oldmark 0) + (redirect (conc "/gruik/" id))) ((string=? submit "Restore") (db-set-mark id -10 0) (redirect "/")) (else (bad-input "bad value for submit"))))) (define (xdo-undelete) - (let ((id (required-input-var "id")) - (submit (required-input-var "submit"))) + (let ((id (required-input-var "id")) + (oldmark (string->number (optional-input-var "from" ""))) + (submit (required-input-var "submit"))) (cond + ((and oldmark (<= -5 oldmark -1) (string=? submit "Restore")) + (db-set-mark id oldmark 0) + (post-htmx id)) ((string=? submit "Restore") (db-set-mark id -10 0) (htmx-output '())) (else (bad-input "bad value for submit")))))