* add LAST_MODIFIED attribute when exporting
* complement test_exporter for LAST_MODIFIED attribute
* parse LAST_MODIFIED attribute when importing
* use bookmark date_added when no modified date is parsed, otherwise use parsed datetime.
* complement test_parser and test_importer for LAST_MODIFIED attribute
* cleanup tests a bit
---------
Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
* add migration for merging fields
* remove usage of website title and description
* keep empty website title and description in API for compatibility
* restore scraping in API and add option for disabling it
* document API scraping behavior
* remove deprecated fields from API docs
* improve form layout
* cleanup migration
* cleanup website loader
* update tests
* return updated HTML from bookmark actions
* open details through URL
* fix details update
* improve modal behavior
* use a frame
* make behaviors properly destroy themselves
* remove page and details params from tag urls
* use separate behavior for details and tags
* remove separate details view
* make it work with other views
* add asset actions
* remove asset refresh for now
* remove details partial
* fix tests
* remove old partials
* update tests
* cache and reuse tags
* extract search autocomplete behavior
* remove details param from pagination
* fix tests
* only return details modal when navigating in frame
* fix link target
* remove unused behaviors
* use auto submit behavior for user select
* fix import
* Add basic HTML snapshots
* Implement asset list
* Add snapshot creation tests
* Add deletion tests
* Show file size
* Remove snapshots
* Create new snapshots
* Switch to single-file
* CSS tweak
* Remove auto refresh
* Show delete link when there is no file yet
* Add current date to display name
* Add flag for snapshot support
* Add option for disabling automatic snapshots
* Make snapshots sharable
* Document image variants
* Update README.md
* Add migrations
* Fix tests
* Add indicator for modified filters
* Rename shared filter values
* Add update search preferences handler
* Separate search and preferences forms
* Properly initialize bookmark search from get or post
* Add tests for applying search preferences
* Implement saving search preferences
* Remove bookmark search query alias
* Use search preferences as default
* Only show save button for authenticated users
* Only show modified indicator if preferences are modified
* Fix overriding search preferences
* Add missing migration
* Rename BookmarkFilters to BookmarkSearch
* Refactor queries to accept BookmarkSearch
* Sort query by data added and title
* Ensure pagination respects search parameters
* Ensure tag cloud respects search parameters
* Ensure user select respects search parameters
* Ensure return url respects search options
* Fix passing search options to user select
* Fix BookmarkSearch initialization
* Extract common search form logic
* Ensure partial update respects search options
* Add sort UI
* Use custom ICU collation when sorting with SQLite
* Support sort in API
* Extract bookmark view contexts
* Implement basic partial updates for bookmark list and tag cloud
* Refactor confirm button JS into web component
* Refactor bulk edit JS into web component
* Refactor tag autocomplete JS into web component
* Refactor bookmark page JS into web component
* Refactor global shortcuts JS into web component
* Update tests
* Add E2E test for partial updates
* Add partial updates for archived bookmarks
* Add partial updates for shared bookmarks
* Cleanup helpers
* Improve naming in bulk edit
* Refactor shared components into behaviors
* Refactor bulk edit components into behaviors
* Refactor bookmark list components into behaviors
* Update tests
* Combine all scripts into bundle
* Fix E2E CI
* Make shared view public, add user profile fallback
* Allow unauthenticated access to shared bookmarks API
* Link shared bookmarks in unauthenticated layout
* Add public sharing setting
* Only show shared bookmarks link if there are publicly shared bookmarks
* Disable public sharing if sharing is disabled
* Show specific helper text when public sharing is enabled
* Fix tests
* Add more tests
* Improve setting description
* Add basic bookmark notes
* Add bookmark list JS to shared bookmarks page
* Allow testing through ngrok
* Improve CSS
* Set notes through API
* Improve notes editing
* Improve notes icon
* Remove transitions for now
* Update keyboard shortcut
* Add bookmark list tests
* Add setting for showing notes permanently
* Add test for toggling notes
* Update API docs
* Allow searching for notes content
* Skip test
* Add links to remove tags from current query
* Display selected tags in tag cloud
* Add tag cloud tests
* Fix tag cloud in archive
* Add tests for bookmark views
* Expose parse query string
* Improve tag cloud tests
* Cleanup
* Fix rebase issues
* Ignore casing when removing tags from query
Co-authored-by: Jon Hauris <jonp@hauris.org>
* Allow marking bookmarks as shared
* Add basic share view
* Ensure tag names in tag cloud are unique
* Filter shared bookmarks by user
* Add link for filtering by user
* Prevent n+1 queries when rendering bookmark list
* Prevent empty query params in return URL
* Fix user select template tag name
* Create shared bookmarks through API
* List shared bookmarks through API
* Show bookmark suggestions for shared view
* Show unique tags in search suggestions
* Sort user options
* Add bookmark sharing feature flag
* Add test for share setting default
* Simplify settings view