feat: Added shortcuts, shift-multi select and missing menu options to GalleryViewer (Search, Share, Memories)
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(web): jump to timeline
* Update web/src/lib/components/memory-page/memory-viewer.svelte
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* wording and open in new tab
* Use correct wording and icon
* fix: hide on archived and trashed assets
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* Squashed
* Change strategy - now pre-measure buckets offscreen, so don't need to worry about sub-bucket scroll preservation
* Reduce jank on scroll, delay DOM updates until after scroll
* css opt, log measure time
* Trickle out queue while scrolling, flush when stopped
* yay
* Cleanup cleanup...
* everybody...
* everywhere...
* Clean up cleanup!
* Everybody do their share
* CLEANUP!
* package-lock ?
* dynamic measure, todo
* Fix web test
* type lint
* fix e2e
* e2e test
* Better scrollbar
* Tuning, and more tunables
* Tunable tweaks, more tunables
* Scrollbar dots and viewport events
* lint
* Tweaked tunnables, use requestIdleCallback for garbage tasks, bug fixes
* New tunables, and don't update url by default
* Bug fixes
* Bug fix, with debug
* Fix flickr, fix graybox bug, reduced debug
* Refactor/cleanup
* Fix
* naming
* Final cleanup
* review comment
* Forgot to update this after naming change
* scrubber works, with debug
* cleanup
* Rename scrollbar to scrubber
* rename to
* left over rename and change to previous album bar
* bugfix addassets, comments
* missing destroy(), cleanup
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(web,a11y): context menu keyboard navigation
* wip: all context menus visible
* wip: more migrations to the ButtonContextMenu, usability improvements
* wip: migrate Administration, PeopleCard
* wip: refocus the button on click, docs
* fix: more intuitive RightClickContextMenu
- configurable title
- focus management: tab keys, clicks, closing the menu
- automatically closing when an option is selected
* fix: refining the little details
- adjust the aria attributes
- intuitive escape key propagation
- extract context into its own file
* fix: dropdown options not clickable in a <Portal>
* wip: small fixes
- export selectedColor to prevent unexpected styling
- better context function naming
* chore: revert changes to list navigation, to reduce scope of the PR
* fix: remove topBorder prop
* feat: automatically select the first option on enter or space keypress
* fix: use Svelte store instead to handle selecting menu options
- better prop naming for ButtonContextMenu
* feat: hovering the mouse can change the active element
* fix: remove Portal, more predictable open/close behavior
* feat: make selected item visible using a scroll
- also: minor cleanup of the context-menu-navigation Svelte action
* feat: maintain context menu position on resize
* fix: use the whole padding class as better tailwind convention
* fix: options not announcing with screen reader for ButtonContextMenu
* fix: screen reader announcing right click context menu options
* fix: handle focus out scenario
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* First test
* Added translation using Weblate (French)
* Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)
Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/de/
* Translated using Weblate (French)
Currently translated at 100.0% (4 of 4 strings)
Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/fr/
* Further testing
* Further testing
* Translated using Weblate (German)
Currently translated at 100.0% (18 of 18 strings)
Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/de/
* Further work
* Update string file.
* More strings
* Automatically changed strings
* Add automatically translated german file for testing purposes
* Fix merge-face-selector component
* Make server stats strings uppercase
* Fix uppercase string
* Fix some strings in jobs-panel
* Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements
* Update german test translations
* Fix typo in locales file
* Change string keys
* Extract more strings
* Extract and replace some more strings
* Update testtranslationfile
* Change translation keys
* Fix rebase errors
* Fix one more rebase error
* Remove german translation file
* Co-authored-by: Daniel Dietzler <danieldietzler@users.noreply.github.com>
* chore: clean up translations
* chore: add new line
* fix formatting
* chore: fixes
* fix: loading and tests
---------
Co-authored-by: root <root@Blacki>
Co-authored-by: admin <admin@example.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
* refactor: asset media endpoints
* refactor: mobile upload livePhoto as separate request
* refactor: change mobile backup flow to use new asset upload endpoints
* chore: format and analyze dart code
* feat: mark motion as hidden when linked
* feat: upload video portion of live photo before image portion
* fix: incorrect assetApi calls in mobile code
* fix: download asset
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
* fix(web): keyboard shortcut handling
* drop executeShortcuts in favor of action
* fix merge
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* fix: Hide play bar when there's only one image in memory
This commit introduces a fixto hide the play bar at the top of the memory viewer when there's only one image in the memory. Previously, the play bar was displayed regardless of the number of images, leading to unnecessary UI elements for single-image memories.
* Update web/src/lib/components/memory-page/memory-viewer.svelte
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* alt text
* memory lane alt text
* revert sql generator change
* use getAltText
* oops
* handle large number of people in asset
* nit
* add aria-label to search button
* update api
* fixed tests
* fixed typing
* fixed spacing
* fix displaying null
* no-misused-promises
* no-floating-promises
* format
* revert for now
* remove load function
* require-await
* revert a few no-floating-promises changes that would cause no-misused-promises failures
* format
* fix a few more
* fix most remaining errors
* executor-queue
* executor-queue.spec
* remove duplicate comments by grouping rules
* upgrade sveltekit and enforce rules
* oops. move await
* try this
* just ignore for now since it's only a test
* run in parallel
* Update web/src/routes/admin/jobs-status/+page.svelte
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* remove Promise.resolve call
* rename function
* remove unnecessary warning silencing
* make handleError sync
* fix new errors from recently merged PR to main
* extract method
* use handlePromiseError
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat: hybrid search
* fixing normal search
* building out the query
* okla
* filters
* date
* order by date
* Remove hybrid search endpoint
* remove search hybrid endpoint
* faces query
* search for person
* search and pagination
* with exif
* with exif
* justify gallery viewer
* memory view
* Fixed userId is null
* openapi and styling
* searchdto
* lint and format
* remove term
* generate sql
* fix test
* chips
* not showing true
* pr feedback
* pr feedback
* nit name
* linting
* pr feedback
* styling
* linting
* add unicorn to eslint
* fix lint errors for cli
* fix merge
* fix album name extraction
* Update cli/src/commands/upload.command.ts
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* es2k23
* use lowercase os
* return undefined album name
* fix bug in asset response dto
* auto fix issues
* fix server code style
* es2022 and formatting
* fix compilation error
* fix test
* fix config load
* fix last lint errors
* set string type
* bump ts
* start work on web
* web formatting
* Fix UUIDParamDto as UUIDParamDto
* fix library service lint
* fix web errors
* fix errors
* formatting
* wip
* lints fixed
* web can now start
* alphabetical package json
* rename error
* chore: clean up
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* feat: search peoples
* fix: responsive design
* use existing count
* generate sql file
* fix: tests
* remove visible people
* fix: merge, hide...
* use component
* fix: linter
* chore: regenerate api
* fix: change name when searching for a face
* save search
* remove duplicate
* use enums for query parameters
* fix: increase to 20 for the local search
* use constants
* simplify
* fix: number of people more visible
* fix: merge
* fix: search
* fix: loading spinner position
* pr feedback
* fix: timezone bucket timezones
* chore: open api
* fix: interpret local time in utc
* fix: tests
* fix: refactor memory lane
* fix(web): use local date in memory viewer
* chore: set localDateTime non-null
* fix: filter out memories from the current year
* wip: move localDateTime to asset
* fix: correct sorting from db
* fix: migration
* fix: web typo
* fix: formatting
* fix: e2e
* chore: localDateTime is non-null
* chore: more non-nulliness
* fix: asset stub
* fix: tests
* fix: use extract and index for day of year
* fix: don't show memories before today
* fix: cleanup
* fix: tests
* fix: only use localtime for tz
* fix: display memories in client timezone
* fix: tests
* fix: svelte tests
* fix: bugs
* chore: open api
---------
Co-authored-by: Jonathan Jogenfors <jonathan@jogenfors.se>
* trying to update to svelte 4
* update dependencies
* remove global transition
* suppress wrning
* chore: install from github
* revert material icon change
* Supress a11y warning
* update
* remove coverage test on web
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
The bars are 2 pixels tall, which can be tricky to click. Additional padding
increases the height to 16 pixels, without changing how it looks, and makes for
much easier clicking.
In addition, remove the onDestroy lifecycle for the tween as it's not
necessary. It was a relic from using animation frames.
* chore(deps): update web
* fixed svelte-check being a nuisance
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
It look like Svelte has a concept of 'tweening' for writing animations, which should reduce the complexity of the animation code.
Thanks to @probablykasper for finding this.
A lot of the logic has been rewritten for reactivity, which further reduces
complexity.