389 Commits

Author SHA1 Message Date
Sascha Ißbrücker
f67c4605fd Fix URL not updating on tag search 2026-01-25 11:44:48 +01:00
Sascha Ißbrücker
1f0a2201ba Preserve page and scroll position when editing tags (#1291) 2026-01-25 11:07:30 +01:00
Sascha Ißbrücker
d52caefe2c Add dev tool for quickly switching profile settings 2026-01-11 22:40:06 +01:00
Sascha Ißbrücker
414c7abbe5 Fix empty container spacing 2026-01-06 20:20:22 +01:00
Sascha Ißbrücker
7333b283cf Download PDF instead of creating HTML snapshot if URL points at PDF (#1271)
* basic pdf snapshots

* cleanup website_loader tests

* cleanup asset tests

* cleanup asset service tests

* use PDF download as display name

* update new snapshot name

* update docs

* update e2e test

* update test
2026-01-06 10:29:31 +01:00
Justin Mason
4f26c3483b Allow setting date_added and date_modified for new bookmarks through REST API (#1063)
* Make date_added and date_modified optionally writable fields for the POST /api/bookmarks/ API

* Update as per PR feedback to avoid double-save; add test coverage

* Remove blank line

* improve tests

---------

Co-authored-by: Justin.Mason <Justin.Mason@messagegears.com>
Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
2026-01-05 19:12:14 +01:00
Emanuele Beffa
1b90db70c0 Disable bulk execute button when no bookmarks selected (#1241)
* feat: disable execute button when no bookmarks selected in bulk edit

* format

---------

Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
2026-01-05 17:08:22 +01:00
Max
cbc8618805 Turn scheme-less URLs into HTTPS instead of HTTP links (#1225)
* Turn scheme-less URLs into HTTPS instead of HTTP links

Signed-off-by: Max Kunzelmann <maxdev@posteo.de>

* fix bug, add tests

* use single linker instance

* simplify logic

* lint

---------

Signed-off-by: Max Kunzelmann <maxdev@posteo.de>
Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
2026-01-05 16:45:33 +01:00
Sascha Ißbrücker
afbf85b249 Add option to disable login form (#1269) 2026-01-05 12:37:49 +01:00
Sascha Ißbrücker
5f5ea73aec Cleanup 2026-01-05 09:33:27 +01:00
Aidan Coyle
fdb5b4e82d Remove absolute URIs from settings page (#1261)
* Remove absolute URIs from admin page

The rest of the links on this page are absolute paths without a
specified hostname, but these in particlar use build_absolute_uri. I
am running linkding behind two different load balancers which makes
these links bubble up the "internal" hostname instead of the hostname
I actually got to the page from.

* Add LD_USE_X_FORWARDED_HOST

See: https://docs.djangoproject.com/en/6.0/ref/settings/#std-setting-USE_X_FORWARDED_HOST
2026-01-05 09:25:54 +01:00
Sascha Ißbrücker
50180c9684 Remove registration switch (#1268) 2026-01-05 05:52:43 +01:00
Sascha Ißbrücker
65f3759444 Align form usages in templates (#1267) 2026-01-05 05:33:59 +01:00
Sascha Ißbrücker
7dfb8126c4 Remove python-dateutil dependency (#1265) 2026-01-04 13:16:33 +01:00
Sascha Ißbrücker
3b26190df5 Format and lint with ruff (#1263) 2026-01-04 12:13:48 +01:00
Sascha Ißbrücker
4d82fefa4e Extract inline icons to SVG iconset (#1262) 2026-01-04 09:39:42 +01:00
Sascha Ißbrücker
06048ee26f Allow viewing video assets (#1259) 2026-01-03 16:33:49 +01:00
Sascha Ißbrücker
4f5009b30f Move bulk edit checkboxes into bookmark list container (#1257) 2026-01-03 09:27:30 +01:00
Sascha Ißbrücker
ee169e82cd Include templates in live reload 2026-01-03 08:27:23 +01:00
Sascha Ißbrücker
cce191440d Small UI tweaks 2026-01-02 18:36:57 +01:00
Sascha Ißbrücker
ec0c7ee253 Live reload for dev mode 2026-01-02 18:26:14 +01:00
Sascha Ißbrücker
4291bda9d4 Fix JS errors 2026-01-02 08:09:20 +01:00
Sascha Ißbrücker
f7c371bce1 Bump dependencies (#1255)
* Bump dependencies

* fix test
2026-01-01 21:30:51 +01:00
Sascha Ißbrücker
b4a5b34815 Use single bookmark page template 2026-01-01 19:18:23 +01:00
Sascha Ißbrücker
ffc1a69085 Template improvements 2026-01-01 13:40:57 +01:00
Sascha Ißbrücker
38d450a916 Run tests in CI in parallel (#1254)
* Run tests in CI in parallel

* make tests automatically open/close playwright

* fix parallel tests and screenshots

* fix capturing screenshots for non-failing tests

* cleanup

* cleanup

* format

* log js errors

* provide screenshots as artifacts

* remove old scripts
2026-01-01 01:46:31 +01:00
Sascha Ißbrücker
df595f2219 Fix web component initialization timing 2026-01-01 01:08:54 +01:00
Sascha Ißbrücker
b82d07c588 Move tag management forms into dialogs (#1253)
* Move tag management forms into dialogs

* add e2e tests
2025-12-31 21:38:46 +01:00
Sascha Ißbrücker
fc15363349 Fix missing file 2025-12-31 18:22:29 +01:00
Sascha Ißbrücker
b97b0493e0 Cleanup modals 2025-12-31 18:03:37 +01:00
Sascha Ißbrücker
4fed5de7b3 Convert behaviors to web components 2025-12-31 15:31:51 +01:00
Sascha Ißbrücker
ee1cf6596b Allow sandboxes scripts when viewing assets (#1252) 2025-12-30 11:34:04 +01:00
Sascha Ißbrücker
12dd1d8bc6 Refactor dropdowns to use fixed positioning 2025-12-21 10:22:39 +01:00
Sascha Ißbrücker
74ddf45632 Fix bookmark details focus restoration 2025-12-21 10:00:55 +01:00
Sascha Ißbrücker
83092ccb48 API token management (#1248) 2025-12-14 17:51:53 +01:00
Sascha Ißbrücker
c349ad7670 Use sandbox CSP for viewing assets (#1245) 2025-12-13 10:32:06 +01:00
Sascha Ißbrücker
70734ed273 Fix tag cloud highlighting first char when tags are not grouped (#1209)
* Fix tag cloud highlighting first char when tags are not grouped

* update test
2025-10-18 07:05:15 +02:00
Sascha Ißbrücker
eb99ece360 Attempt to fix botched normalized URL migration from 1.43.0 (#1205) 2025-10-11 11:12:27 +02:00
Sascha Ißbrücker
95529eccd4 Check for dupes by exact URL if normalized URL is missing (#1204) 2025-10-11 10:45:23 +02:00
Sascha Ißbrücker
a6b36750da Fix missing tags causing errors in import with Postgres (#1203)
* Handle missing tags in importer

* Make all tests run with Postgres again
2025-10-11 10:32:31 +02:00
Sascha Ißbrücker
8b98a335d4 Fix normalized URL not being generated in bookmark import (#1202) 2025-10-11 09:57:14 +02:00
Sascha Ißbrücker
051bd39256 Add new search engine that supports logical expressions (and, or, not) (#1198)
* parser implementation

* add support for quoted strings

* add support for tags

* ignore empty tags

* implicit and

* prepare query conversion by disabling tests

* convert query logic

* fix nested combined tag searches

* simplify query logic

* Add special keyword support to parser

* Add special keyword support to query builder

* Handle invalid queries in query builder

* Notify user about invalid queries

* Add helper to strip tags from search query

* Make tag cloud show all tags from search query

* Use new method for extracting tags

* Add query for getting tags from search query

* Get selected tags through specific context

* Properly remove selected tags from complex queries

* cleanup

* Clarify bundle search terms

* Add documentation draft

* Improve adding tags to search query

* Add option to switch back to the old search
2025-10-05 12:51:08 +02:00
Sascha Ißbrücker
229d3b511f Fix error button icon color 2025-10-04 02:56:21 +02:00
Sascha Ißbrücker
b9d6d91a91 Fix bundle preview pagination resetting to first page (#1194) 2025-10-03 10:12:50 +02:00
Dunlor
a7a4dd5fff Fix queued tasks link when context path is used (#1187)
* Fix queued tasks link when LD_CONTEXT_PATH is set

* cleanup

---------

Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
2025-10-03 10:11:42 +02:00
Dunlor
0c18b83a8e Fix pagination links to use relative URLs (#1186) 2025-10-03 09:54:50 +02:00
Sascha Ißbrücker
9cda5a54d3 Add href parsing test 2025-08-27 08:45:20 +02:00
Sascha Ißbrücker
67d5b17450 Fix filter background in dark theme 2025-08-27 08:31:49 +02:00
Sascha Ißbrücker
3ec6c0a7f8 Hide tag menu for unauthenticated users (#1176) 2025-08-26 19:06:04 +02:00
Sascha Ißbrücker
82e5b7d9d5 Add basic tag management (#1175) 2025-08-26 12:01:36 +02:00