commit c60dd497e13b302caa48c81916b2a1054e249a5d
parent 4c5093dd51d30fd61c153e08dd9f27d8d5dc6c82
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date: Sun, 13 Sep 2026 17:39:14 +0000
Search gruiks by description
Diffstat:
| M | src/cgi.scm | | | 49 | +++++++++++++++++++++++++++++++------------------ |
1 file changed, 31 insertions(+), 18 deletions(-)
diff --git a/src/cgi.scm b/src/cgi.scm
@@ -935,6 +935,17 @@ END-OF-CSS
(li (a (@ (href "deleted")) "Deleted gruiks"))
(li (a (@ (href "search")) "Search forms"))
(li (a (@ (href "no-comm")) "Sourceless gruiks"))))
+ (h2 "Description")
+ (form (@ (method "GET") (action "description"))
+ (div (@ (class "form-body"))
+ (input (@ (type "text") (name "glob") (placeholder "*glob*")))))
+ (form (@ (method "GET") (action "description"))
+ (div (@ (class "form-body"))
+ (input (@ (type "text") (name "like") (placeholder "%like%")))))
+ (form (@ (method "GET") (action "description"))
+ (div (@ (class "form-body"))
+ (input (@ (type "text") (name "regexp")
+ (placeholder "^reg.*exp$")))))
(h2 "URL")
(form (@ (method "GET") (action "url"))
(div (@ (class "form-body"))
@@ -947,6 +958,20 @@ END-OF-CSS
(input (@ (type "text") (name "regexp")
(placeholder "^reg.*exp$")))))))))
+(define (view-search-field fi op q limit-offset)
+ (gruik-list-view
+ (conc "Gruiks with " fi " " op " " q)
+ post-fragment
+ '()
+ (conc "SELECT gruik.id,mark,ptime,section,title,url,comment_url,
+ group_concat('#'||name,' '),COALESCE(description,notes)
+ FROM gruik LEFT OUTER JOIN gruik_tags ON gruik_id=gruik.id
+ LEFT OUTER JOIN tag ON tag_id=tag.id
+ WHERE " fi " " op " ? GROUP BY gruik.id LIMIT ? OFFSET ?;")
+ q
+ (car limit-offset)
+ (cadr limit-offset)))
+
(define (view-selection id limit-offset)
(let ((row (query fetch-row
(sql/transient db "SELECT name,text
@@ -1002,20 +1027,6 @@ END-OF-CSS
(car limit-offset)
(cadr limit-offset)))))
-(define (view-url-search op q limit-offset)
- (gruik-list-view
- (conc "Gruiks " op " " q)
- post-fragment
- '()
- (conc "SELECT gruik.id,mark,ptime,section,title,url,comment_url,
- group_concat('#'||name,' '),COALESCE(description,notes)
- FROM gruik LEFT OUTER JOIN gruik_tags ON gruik_id=gruik.id
- LEFT OUTER JOIN tag ON tag_id=tag.id
- WHERE url " op " ? GROUP BY gruik.id LIMIT ? OFFSET ?;")
- q
- (car limit-offset)
- (cadr limit-offset)))
-
(define (db-push-gruik id)
(with-transaction db
(lambda ()
@@ -1342,15 +1353,17 @@ END-OF-CSS
(q (as-string (repeated item)))
(lo url-query))
(result (lambda () (view-domain-search q (q-limit-offset lo))))))
-(define route-search-url
- (sequence* ((_ (char-seq "url?"))
+(define route-search-field
+ (sequence* ((fi (any-of (char-seq "description")
+ (char-seq "url")))
+ (_ (is #\?))
(op (any-of (char-seq "glob")
(char-seq "like")
(char-seq "regexp")))
(_ (is #\=))
(q url-value)
(lo url-extra-query))
- (result (lambda () (view-url-search op q (q-limit-offset lo))))))
+ (result (lambda () (view-search-field fi op q (q-limit-offset lo))))))
(define route-selection
(sequence* ((_ (char-seq "selection/"))
(id (as-string (one-or-more irc-digit)))
@@ -1397,7 +1410,7 @@ END-OF-CSS
route-no-comm
route-search
route-search-domain
- route-search-url
+ route-search-field
route-selection
route-tag
route-x-new)))))