* feat: add OCR functionality and related configurations
* chore: update labeler configuration for machine learning files
* feat(i18n): enhance OCR model descriptions and add orientation classification and unwarping features
* chore: update Dockerfile to include ccache for improved build performance
* feat(ocr): enhance OCR model configuration with orientation classification and unwarping options, update PaddleOCR integration, and improve response structure
* refactor(ocr): remove OCR_CLEANUP job from enum and type definitions
* refactor(ocr): remove obsolete OCR entity and migration files, and update asset job status and schema to accommodate new OCR table structure
* refactor(ocr): update OCR schema and response structure to use individual coordinates instead of bounding box, and adjust related service and repository files
* feat: enhance OCR configuration and functionality
- Updated OCR settings to include minimum detection box score, minimum detection score, and minimum recognition score.
- Refactored PaddleOCRecognizer to utilize new scoring parameters.
- Introduced new database tables for asset OCR data and search functionality.
- Modified related services and repositories to support the new OCR features.
- Updated translations for improved clarity in settings UI.
* sql changes
* use rapidocr
* change dto
* update web
* update lock
* update api
* store positions as normalized floats
* match column order in db
* update admin ui settings descriptions
fix max resolution key
set min threshold to 0.1
fix bind
* apply config correctly, adjust defaults
* unnecessary model type
* unnecessary sources
* fix(ocr): switch RapidOCR lang type from LangDet to LangRec
* fix(ocr): expose lang_type (LangRec.CH) and font_path on OcrOptions for RapidOCR
* fix(ocr): make OCR text search case- and accent-insensitive using ILIKE + unaccent
* fix(ocr): add OCR search fields
* fix: Add OCR database migration and update ML prediction logic.
* trigrams are already case insensitive
* add tests
* format
* update migrations
* wrong uuid function
* linting
* maybe fix medium tests
* formatting
* fix weblate check
* openapi
* sql
* minor fixes
* maybe fix medium tests part 2
* passing medium tests
* format web
* readd sql
* format dart
* disabled in e2e
* chore: translation ordering
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* added user preference for always loading original video
added ability to toggle between transcoded/original in the video viewer
add fix to static check error
* address PR comments
* Update asset-viewer-nav-bar.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* feat: improved update messaging on app bar server info
* chore: message improvements
* chore: failed to fetch version error message
* feat: open latest release when tapping "Update" on server out of date message
* fix: text alignment states
* chore: code review updates
* Apply suggestion from @alextran1502
Co-authored-by: Alex <alex.tran1502@gmail.com>
* Apply suggestion from @alextran1502
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore: lots of rework of the version checking code to be cleaner
Added a semver utility class to simplify comparisons, broke the update notification logic into own widget, reworked view construction and colors.
* fix: show warnign without having to tap on app bar icon
* chore: colors
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(server): Option to configure SMTPS transport
This commit adds a boolean option in the SMTP transport configuration to
enable the so-called "secure" mode. What it does is use SMTP over TLS
instead of relying on the more common STARTTLS option over plain SMTP.
* Add missing field in dto
* Add missing field
* Use a switch instead of text field
* Add field in spec
* chore: regen open-api
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* fix: navigate to time action
* change-date -> DateSelectionModal; use luxon; use handle* for callback fn name
* refactor change-date dialogs
* Review comments
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* feat: add auto play setting to mobile
* feat: add auto play video setting to web
* address review comments
* fix setting id
---------
Co-authored-by: Saschl <noreply@saschl.com>
* fix: shared album control permissions
* fix: properly display "add photos"
* fix: dont allow modification of album order
* fix: album title/description edit from app bar
* chore: code review changes
* chore: format translations
* chore: lintings
* feat: add configurable on charging only and delay
* Segmented and style the settings
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* wip
* album creation
* fix: album api repository no invalidating after logging out
* add linkedRemoteAlbumId column and migration
* link/unlink remote album
* logic to find and add new assets to album
* pr feedback
* add toggle option to backup option page
* refactor: provider > service
* rename
* Handle page pop manually
* UI feedback for user creation and sync linked album
* uncomment migration
* remove unused method
* Enable filteing by example
* Drop `@GenerateSql` for `getEmbedding`?
* Improve error message
* PR Feedback
* Sort en.json
* Add SQL
* Fix lint
* Drop test that is no longer valid
* Fix i18n file sorting
* Fix TS error
* Add a `requireAccess` before pulling the embedding
* Fix decorators
* Run `make open-api`
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(mobile): Add Kid (Readonly) Mode toggle
This commit introduces a "Kid (Readonly) Mode" feature.
- Adds a `KidModeProvider` to manage the state of Kid Mode.
- Implements a `KidModeCheckbox` widget in the app bar dialog to toggle Kid Mode.
- When Kid Mode is enabled,
- Disables selecting the multigrid & the bottom bar
- Removes the top bar from view
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Reverts the changes to devtools_options.yaml file
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
refactor: replace Kid Mode with Readonly Mode
This commit replaces the "Kid Mode" feature with a more generic "Readonly Mode".
- Renamed `KidModeProvider` to `ReadonlyModeProvider`.
- Readonly Mode state is now persisted in app settings.
- Added a new app setting `allowUserAvatarOverride` to toggle read-only mode.
- Updated translations.
- Added a message in the app bar dialog indicating when read-only mode is active.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Address comments -
- Removes the `allowUserAvatarOverride` setting.
- Hides the bottom gallery bar when read-only mode is enabled.
- Adds an icon on the main app bar when read-only mode is enabled with a snackbar.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Update to snackbar
- When toggling readonly mode from either the settings or the app bar, a snackbar notification will now appear.
- The readonly mode message in the profile drawer has been restyled.
- The upload button in the app bar is now hidden when readonly mode is enabled.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Removes clearing of snackbar
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Address Comments
- Consolidated snackbar messages for enabling/disabling readonly mode.
- Ensured the "Select All" icon in asset group titles is hidden in readonly mode.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Adds in the missing translation keys for readonly_mode
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Fix translation
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Fix check failure for BorderRadius
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Changes:
- Adjusted AppBar background color in readonly mode.
- Removes cross-out pencil icon button in favor of above.
- Hides the "Edit" icon next to date/time, disable description and onTap for people and location when readonly mode is enabled.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
Address comments from Alex
- Moved readonly mode check to `GalleryAppBar` to hide the entire `TopControlAppBar` when readonly mode is enabled.
- Changed `toggleReadonlyMode` in `ImmichAppBar` to directly toggle the state.
Signed-off-by: Sudheer Puthana <Sud-Puth@users.noreply.github.com>
migrate readonly mode to new beta timeline
remove readonly mode from legacy UI
only show readonly functionality when on beta timeline
simplify selection icon
update generated provider
chore: more formatting
* fix: bad merge
* chore: use Notifier for readonlyModeProvider
* fix: drag select now honors readonly mode
* fix: disable asset bottom sheet in readonly
* fix: disable editing user icon when in readonly
* chore: remove generated file
* fix: disable tabs instead entire tab bar
This solves the issues with the scrubber
* chore: remove unneeded import
* chore: lint
* remove unused condition in bottomsheet
---------
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(mobile): shared album activities
* add like buttons and fix behavior of unliking
* fix: conditionally show activity button and fix title truncations
* fix(mobile): newest/oldest album sort (#20743)
* fix(mobile): newest/oldest album sort
* chore: use sqlite to determine album asset timestamps
* Fix missing future
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: async handling of sort
* chore: tests
* chore: code review changes
* fix: use created at for newest asset
* fix: use localDateTime for sorting
* chore: cleanup
* chore: use final
* feat: loading indicator
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(mobile): newest/oldest album sort
* chore: use sqlite to determine album asset timestamps
* Fix missing future
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: async handling of sort
* chore: tests
* chore: code review changes
* fix: use created at for newest asset
* fix: use localDateTime for sorting
* chore: cleanup
* chore: use final
* feat: loading indicator
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>