* add clear file cache handling and snackbar
* create function to count deleted cache size
* clean up code and test
* ensure stable behaviour on non ios device
* refactor(mobile): simplify clear file cache feedback
Update the shared album options menu to display "Hide asset owners" when asset owners are currently visible, and "View asset owners" when hidden.
Fixes#31369
* feat(mobile): map asset number
* chore: use totalAssets from service
* refactor: separate widget
* fix: async dispose
* chore: i18n
* chore: add back old i18n key
* bring back reactivity
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* permanently delete local copies when moving to the locked folder
* simplify the delete path and move the stubs into the mock defaults
* drop the kept count from the partial message and log the mismatch instead
* implement updated rename tag feature
* Fix tag update handler
* Ensure toast displays updated tag name
* Ensure toast displays updated tag name
* Handle updates to tag closure table, prevent slash in API filename, test case updates
* delete child tags on parent delete
* Update frontend for better handling of nested tags
* pr checklist fixes
* fix unit test for tag controller
* Hide path for top-level tags
* regenerate SQL files
* name updates optional for tag update operations
* e2e tests for new tag api changes
* changes from code review, additional test coverage
* test fixes, web component refactor
* test assets
* test asset updates
* open-api rebuild
* update unit tests
* fix tag dto tests
* Update web/src/lib/modals/TagEditModal.svelte
Fix missing color bug
Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>
* fix tag e2e test
* remove closure table bug fixes
* remove nullish from tag name update schema
* regenerate openapi and sql
* fix test and e2e test
* simplify tag repository update process
* minor fix and sql regenerate
* fix tests, regen open-api, update dto
* Remove unused function
* Remove accidental test asset ref
* re-add test assets
* pin submodule to main branch commit
* Update test cases based on feedback
* Server fixes based on feedback
* regenerate sql
---------
Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>
* fix: download archives via html POST forms
* refactor: fix css of download panel, add translations and toasts
* style: run lint, formatter, check
* chore: generate open-api specs
* refactor(web): simplify download manager, use SvelteMap
* refactor(server): parse fields from x-www-form-urlencoded request
* refactor: move content-disposition to ImmichReadStream
* Pass asset ids as a comma-separated string
This fixes a bug where the 1000 parameter limit is being hit when
downloading 1000+ assets.
* Add download controller test
* Fix lint warnings
* feat: workflow asset tag trigger and filter
* feat(web): show tag names in workflow editor
* fix(web): tag picker in schema config editor
* fix: invalid plugin manifest
* chore: update workflow method wrapper type
* chore: update tag filter method declaration
* feat: workflow action to add tags to assets
The ICU plural string for person_age_years in i18n/en.json only defined
the other plural category, so the intl MessageFormat runtime always
fell back to it — displaying '1 years old' instead of '1 year old'.
Added the missing one plural category:
Before: {years, plural, other {# years}} old
After: {years, plural, one {# year} other {# years}} old
No Dart source changes required. formatAge already uses the
localization system correctly.
Fixes#29865
Co-authored-by: priyanshuANDcoad <priyanshu23154050@akgec.ac.in>
the old notification toggles were removed in a cleanup, so once notifications were enabled the page had nothing left and went blank. show a "notifications enabled" status tile with a shortcut to the system notification settings instead.
* add user metadata table and use to filter persons in person.getAllForUser query
* update PersonRepository.getAllForUser query
* remove minFaces from PersonSearchOptions interface
* fix person.getAllForUser query
* update types and openapi specs
* add minFaces field to user settings page
* remove old arg from tests
* add e2e test to verify minimumFace user preference
* add i18n label and description for english
* update default min faces
* fetch minFaces ML default and use as per-user default in frontend
* update e2e tests
* fix bugs in people getAllForUser query
* update person getNumberOfPeople query to reflect correct number of people according to minFaces threshold
* updated mobile openapi specs?
* use subquery in coalesce instead of join
* remove out of scope query update