* chore(web): translate image alt text
* fix: capitalize translations, improve unit test
* fix: unit testing against the actual en.json file
* fix: use derived store to generate alt text
* remove black bezels + better integrate activity status
* remove justify-self-end + mr-4 → mr-3 (closer to desired spacing)
* clean up
* clean up some more
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
- ability to add custom hover colors
- migrate activity menu to ButtonContextMenu component
- onClick callbacks rather than events for menu options
- remove slots
- configurable menu option colors
- improve menu option layout
* 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>
* chore(server): optional originalMimeType in asset response payload
* lint
* Update web/src/lib/utils/asset-utils.ts
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* fix permission of shared link
* test
* test
* test
* test server
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Motivation
----------
It's a follow up to #10028. I think it would be better user experience if one can tell by the icon what the delete button is about to do.
I hope I caught all the occurences where one can permanently delete assets.
How to test
-----------
1. Visit e.g. `/trash`
2. If you select some assets, the delete button in the top right corner
looks different.
* fix: prevent trashing of trashed assets
Motivation
----------
This will improve user experience by hiding a pointless action.
You can not trash a trashed asset again. It won't get any trashier than it already is.
How to test
-----------
1. Visit route `/trash`
2. Click on an asset
3. Press "Delete" on your keyboard
4. Nothing happens
5. Try to find the trash button in the top right
6. You can't find it
* refactor: follow @michelheusschen's review
See:
https://github.com/immich-app/immich/pull/10028#pullrequestreview-2105296755
* refactor: follow @michelheusschen's 2nd review
See: https://github.com/immich-app/immich/pull/10028#discussion_r1632057833
* feat(web): add archive shortcut to grid
* Fix error
* Don't unnecessarily pass parameter
* Use an existing function to close the menu
* Deduplicate type
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* added unassigned faces to people edit
* svelte fix
* fix format
* Captialized unassigned person name, removed person id from alttext, fixed problem with multiple faces per person
* Added faces to the getAssetInfo API endpoint
* Updated openApi clients
* Readded the photoeditor dependency
* fixed lint/format
* fixed photoViewer type
* changes getAssetInfo.faces to only include unassigned faces
* fix: bad merge
* title
* logic
---------
Co-authored-by: Jan108 <dasJan108@gmail.com>
Co-authored-by: Alex Tran <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>
* fix(web): set description textarea content correctly
* Deduplicate description textarea
* Add strict types to function
* Add strict types to functions
* Add default parameter values
* Add tests covering AutogrowTextarea
* Add another test and lint the files
* Add a test, fix a typo
* Implement suggestions
* Remove use of $$restProp
* 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>