c625ee860a
api/v0: implement similarity search for media
...
Use a very naive approach: define similarity as the number of shared
tags between two media pieces. It can be implemented in SQL and produces
decent results.
2025-04-29 12:08:22 +00:00
29aa172391
api/v0: make escaped sequences work for search
...
Reorder the regex chars and remove a needless escape while there.
2025-04-28 21:00:32 +00:00
202c6fa878
site: fix propagation prevention on Enter and Tab keys
2025-04-28 19:27:37 +00:00
3ea1283af8
site: refactor search component a bit
...
Move external functions into the object and improve naming.
2025-04-28 19:26:59 +00:00
f4f059578d
site: typo: returrn -> return
2025-04-28 16:00:25 +00:00
9935590a19
site: remove x-model="search" in search component
...
There is an issue that screws with cursor position afterwards, always
placing it at the end. For the time being, manage the binding manually.
2025-04-28 15:59:10 +00:00
bf21610576
site: bind search component open to items.length
2025-04-28 15:58:00 +00:00
cc25efc5f4
site: rework {up,down} arrow handling
...
Allows it to work when setting the cursor via the pointer.
2025-04-28 14:19:01 +00:00
301b28e7e1
site: remove focus event from search
2025-04-28 13:48:07 +00:00
e28a2e2239
site: add a class to search form
2025-04-28 13:43:21 +00:00
005560bd4c
site: css polishing
...
- relocate a couple of specific blocks out of the general area
- rename --gap to --vertical-unit
2025-04-28 13:39:51 +00:00
07987b7c0e
site: rework search component
...
Don't reimplement a bunch of reactive stuff that Alpine.js handles by
default.
2025-04-28 12:46:29 +00:00
15a98e03d1
site: style fixes
...
Set the right variables for dark mode --tag-kind-*. Style input
foreground and background colors.
2025-04-28 12:42:48 +00:00
ba424dcb02
site: make /search always return JSON
2025-04-28 12:24:33 +00:00
41f759c566
site: make gallery, navbar, search and media align
2025-04-28 07:18:02 +00:00
4a2fb176d8
site: reset suggestions state when clicking anywhere else
2025-04-28 06:52:23 +00:00
8168bb9715
site: decouple state from event handlers
...
Try to avoid directly setting state from event handlers and instead
provide utility functions that mutate state in a consistent way.
2025-04-28 06:52:23 +00:00
b1cd0dad8d
site: adjust cursor position after search autocompletion
2025-04-27 19:36:08 +00:00
6250bb9699
site: fix mouseenter event detection
2025-04-27 19:24:16 +00:00
d1cbeea1ac
site: also include search bar in media view
2025-04-27 17:32:19 +00:00
c11460232c
Small style fixes
...
- write site's HTTP 400 in a single line
- add an space at the end of the query parameter in site's random/tag in
order to start writing after a space on focus
- use <%= ... %> instead of manually escaping a smiley
2025-04-27 17:20:44 +00:00
08be6b17f5
site: implement search functionality
2025-04-27 15:20:49 +00:00
3ae6b02672
api/v0: implement tag search
2025-04-27 15:19:28 +00:00
d1031a9162
api/v0: remove duplicates from tags in list_media
2025-04-27 15:11:03 +00:00
e178a261e6
site: use promise interfaces for Mojo::UserAgent
2025-04-26 17:16:39 +00:00
1a0a224edc
site: extend extended_pager
...
Make it return a hash for page numbers and shortcuts. Move logic
handling for the shortcuts from the templates to the helper. Make the
pager length configurable. Add a helper for producing the shortcuts'
links.
2025-04-26 13:29:29 +00:00
dd492db92e
Initial import
2025-04-26 09:41:50 +00:00