Tag functionality added

This commit is contained in:
Olaf
2026-08-24 20:42:15 +02:00
parent f96a4ab3ad
commit 2810fd914d
16 changed files with 448 additions and 18 deletions
+42
View File
@@ -325,3 +325,45 @@ where the hamburger menu shows the avatar and username, replace by username only
### Assistant outcome
Replaced the hamburger menu avatar/username row with a username-only link. After authentication, the link dynamically targets `/<username>/`; the separate Profile, Admin, and Sign out menu items retain their session-based visibility. Removed the old menu avatar dependency, bumped the shared header asset to `v3`, and verified all pages plus the strict backend suite with 12 tests.
### User
Change both the plugin and the backed to allow a logged link to be tagged witn zero or more tags (10 max). In the pluggin tags can be selected from existing tags and new ones can be created. Add the ability to sort on tags on the front page.
### Assistant outcome
Added schema migration 2 with normalized `tags` and `link_tags` tables, tag-aware link creation/editing with a ten-tag limit, existing-tag API support, Firefox popup checkboxes plus new comma-separated tags, and a front-page tag filter with tag display. Full strict backend validation passed with 13 tests and browser scripts passed syntax checks.
### User
The seed list is: #Internet #Cybersecurity #Fediverse #Food #Photography #Music #AI
### Assistant outcome
Added the seven requested hashtag-prefixed tags to installation seeding using idempotent inserts, verified them through the initialized `/api/tags` endpoint, and preserved the versioned migration flow. Focused tag/migration/Mastodon tests passed.
### User
The seed list is: #Internet, #Cybersecurity, #Fediverse, #Food, #Photography, #Music, #AI
### Assistant outcome
Confirmed that all seven requested hashtag-prefixed tags are already seeded idempotently in `database.py` and present in the initialized database. Focused migration, tag lifecycle, and Mastodon tests passed.
### User
On the home page allow filtering on tags
### Assistant outcome
Confirmed and strengthened the existing home-page tag filter. The page renders a tag dropdown populated from `/api/tags`, filters feed entries using their tags, persists the selection in feed preferences, and displays seeded tags. Bumped the feed asset to `v6`; the strict backend suite passed with 13 tests.
### User
when editing lables I want to be able to selec multiple tags or add one myself.
### Assistant outcome
Extended the inline link editor with checkboxes for multiple existing tags and a comma-separated new-tag field. New tags receive a leading `#`, duplicates are removed, and the interface displays an error when more than 10 tags are selected. Bumped the feed asset to `v7`; the strict backend suite passed with 13 tests.
### User
Make the tags filtering case incensitive (but maintain case of tags)
### Assistant outcome
Updated tag handling to preserve entered casing while comparing tag identity case-insensitively. Existing tags are reused regardless of case, duplicate tag variants are collapsed, the frontend filter compares case-insensitively, and API responses return the canonical stored spelling. The strict backend suite passed after the change.
### User
Display the date as "2026 June 18 - 20:22"
### Assistant outcome
Updated feed metadata rendering to format timestamps as `YYYY Month D - HH:mm`, such as `2026 June 18 - 20:22`, using zero-padded 24-hour time. Invalid timestamps retain the existing fallback text. The feed script and strict backend suite passed with 13 tests.