* feat: explore
* chore: generate open api
* styling explore page
* styling no result page
* style overlay
* style: bluring text on thumbnail card for readability
* explore page tweaks
* fix(web): search urls
* feat(web): use objects for things
* feat(server): filter by motion, sort by createdAt
* More styling
* better navigation
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* build: add typesense to docker
* feat(server): typesense search
* feat(web): search
* fix(web): show api error response message
* chore: search tests
* chore: regenerate open api
* fix: disable typesense on e2e
* fix: number properties for open api (dart)
* fix: e2e test
* fix: change lat/lng from floats to typesense geopoint
* dev: Add smartInfo relation to findAssetById to be able to query against it
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* chore(server): tidy up exif typeorm entity definition
* chore(server): tidy up shared link typeorm entity definition
* chore(server): tidy up smart info typeorm entity definition
* chore(server): tidy up tag typeorm entity definition
* ci: add job that checks typeorm migrations are correct and up-to-date
* fix: add correct relations to asset typeorm entity
* fix: add missing createdAt column to asset entity
* ci: run check to make sure generated API is up-to-date
* ci: cancel workflows that aren't for the latest commit in a branch
* chore: add fvm config for flutter
BREAKING CHANGES
* Users have to update the docker-compose file, machine-learning portion.
* Temporary dropping machine-learning support for Arm64 and Armv7
* feat(server/web): Initial support for RAF and SRW RAW formats.
* It should return the promise.
* Better comment
* feat(server/web): file-uploader needed changes.
* Remove un-used imports
* The failing test.. is no longer failing.
* Run prettier
* Original implementation with just a catch block added.
* feat(server): Some tests and specific handling for the two raw formats
* feat(web): Helper for raw image type.
* Handling of mimetype on server
* Handling of mimetypes on web with a map
* Bring back the acceptedfile filter
* Fix the asset-upload tests after changes
* acceptedFile is not usable due to type being empty from browser.
* Switch needs to use lowercase variants.
* Address Discord comments
* feat(mobile): Library page rework (album sorting, favorites) (#1501)
* Add album sorting
* Change AppBar to match photos page behaviour
* Add buttons
* First crude implementation of the favorites page
* Clean up
* Add favorite button
* i18n
* Add star indicator to thumbnail
* Add favorite logic to separate provider and fix favorite behavior in album
* Review feedback (Add isFavorite variable)
* dev: style buttons
* dev: styled drop down button
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat(mobile): Tap to enter immersive mode on gallery viewer (#1546)
* feat(mobile): Removed stay logged in checkbox and made it enabled by default (#1550)
* removed stay logged in checkbox and made it enabled by default
* adds padding to login button
* removed all isSaveLogin
* fix: logout would re-login with previous credential upon app restart
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(server): remove token when logged out (#1560)
* chore(mobile): invoke logout() on mobile app
* feat: add mechanism to delete token from logging out endpoint
* fix: set state after login sequence success
* fix: not removing token when logging out from OAuth
* fix: prettier
* refactor: using accessTokenId to delete
* chore: pr comments
* fix: test
* fix: test threshold
* feat(deployment): support docker secrets (#1254)
* Support secrets
* Rewrite to support sh
* Remove JWT_SECRET
* fix(mobile): Added flutter native splash and splash screens (#1520)
* rebasing
* added launch background image to repository
---------
Co-authored-by: Marty Fuhry <marty@fuhry.farm>
* refactor(mobile): introduce Album & User classes (#1561)
replace usages of AlbumResponseDto with Album
replace usages of UserResponseDto with User
* feat(mobile): Multiselect add to favorite from the timeline (#1558)
* multiselect add to favorites
* feat(server): add updatedAt to Asset, Album and User (#1566)
* feat: add updatedAt info to DTO and generate api
* chore: remove unsued file
* chore: Add update statement to add/remove asset/user to album
* fix: test
* chore(server): update package-lock.json to match package.json (#1573)
* chore(server) Add user FK to album entity (#1569)
* chore(deps): bump docker/setup-buildx-action from 2.4.0 to 2.4.1 (#1575)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.4.0...v2.4.1)
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(server): make owner as required response for AlbumResponseDto (#1579)
* feat(GitHub): update bug and feature request template (#1584)
* dev: Reusing template from Home Assistant
* dev: add bug report template
* fix: template
* dev: change type
* dev:
* dev: add default labels
* dev: Add default title
* dev: add feature request template
* remove feature request from markdown
* dev: frontmatter
* fix(GitHub): feature request template
* fix(GitHub): feature request form has wrong type for textarea
* feat(mobile): Responsive layout improvements with a navigation rail and album grid (#1583)
* feat(proxy): Initial IPv6 support (#1577)
* fix(server): Create album response doesn't have owner property as required (#1704)
* feat(web): allow uploading more file types (#1570)
* feat(web): allow uploading more file types
* fix(web): make filename extension lowercase
* refactor(mobile): add Isar DB & Store class (#1574)
* refactor(mobile): add Isar DB & Store class
new Store: globally accessible key-value store like Hive (but based on Isar)
replace first few places of Hive usage with the new Store
* reduce max. DB size to prevent errors on older iOS devices
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(mobile): Home screen customization options (#1563)
* Try staggered layout for home page
* Introduce setting for dynamic layout
* Fix some provider related bugs
* Make asset grouping configurable
* Add translation keys, refactor group title
* Rename enum values
* Fix enum names
* Reformat long if statement
* Fix timezone related bug
* Minor clean up
* Fix unit test
* Add second assets check back to home screen
* [Localizely] Translations update (#1707)
* fix(server): get shared link album info doesn't contain owner property (#1708)
* Version v1.46.0
* feat(server/web): file-uploader needed changes.
* Add raf and srw to the file names.
* Remember to add the extensions to fileSelector.
* Removed the getMimeType function on server as shouldn't be needed anymore.
* Revert "Removed the getMimeType function on server as shouldn't be needed anymore."
It is required still.
This reverts commit fc766dd0be.
* Should use proper mimetypes.
* fix linter
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matthias Rupp <matthias.rupp@posteo.de>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: martyfuhry <martyfuhry@gmail.com>
Co-authored-by: James <jdm12989@gmail.com>
Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Immich Release Bot <bot@immich.app>
* Added migration files
* Added logic for shared album level
* Added permission for EXIF
* Update shared link response dto
* Added condition to show download button
* Create and edit link with new parameter:
* Remove deadcode
* PR feedback
* More refactor
* Move logic of allow original file to service
* Simplify
* Wording
* feat: support isEdited flag for SettingSwitch
* feat: add transcodeAll ffmpeg settings for extra transcoding control
* refactor: tidy up and rename current video transcoding code + transcode everything
* feat: better video transcoding with ffprobe
analyses video files to see if they are already in the desired format
allows admin to choose to transcode all videos regardless of the current format
* fix: always serve encoded video if it exists
* feat: change video codec option to a select box, limit options
removed previous video codec config option as it's incompatible with new options
removed mapping for encoder to codec as we now store the codec in the config
* feat: add video conversion job for transcoding previously missed videos
* chore: fix spelling of job messages to pluralise assets
* chore: fix prettier/eslint warnings
* feat: force switch targetAudioCodec default to aac to avoid iOS incompatibility
* chore: lint issues after rebase
* Trying to get exifdata working with different lib.
* Got the new library working.
* Addressing PR comments.
* Removed not used vars and proper place for the eslint disable.
* Fix time-utils to use the exiftool-vendored lib.
Fixed also one test, as that would be valid.
* Using filename for timestamp as well if possible.
* Add new tests for time-utils.
* Remember to gracefully terminate the exiftool instance when not needed.
* eslint ignore...
* Apperantly Dockerfile changes were not pushed.
* feat(dockerfile): Tweak the Server Dockerfile
* feat(server): getTimestampFromFilename should return string or undefined.
* feat(server): If we don't have exifData or timestamp from filename, raise an error.
* Apparently test was already right, but my local system disagrees.
* More utilities for parsing and fix the timestampFromFilename.
It was returning an incorrect date as the regex doesn't seem to be the best for this as files named `IMG_0115.HEIC` will want to get parsed incorrectly due to it.
* feat(server/docker): Install perl as it seems to be required.
* feat(server): remember to include exposureTime and focalLength in new exif data.
* feat(server): Remove the parsing from filename as requested.
* feat(server): Import exiftool differently in time-utils.
* feat(server): Error handling when there is no exifData.
* feat(server): Fixes for the error handling when there is no exifData.
* feat(server): Remember to include modifyDate despite no exif.
* feat(server): Remember to include model of Camera.
* feat(server): Fixing up Exiftool usage.
Including proper logging for it, which had to be done in wrapped fashion due to it expecting all the logging levels which NextJS logger doesn't implement.
* feat(server): Do not use a wrapper for ExifTool logging.
* fix merge conflicts in metadata-extractor
* refactor: user repository
* refactor: user module
* refactor: move database into infra
* refactor(cli): use user core
* chore: import path
* chore: tests
* feat: add admin config module for user configured config, uses it for ffmpeg
* feat: add api endpoint to retrieve admin config settings and values
* feat: add settings panel to admin page on web (wip)
* feat: add api endpoint to update the admin config
* chore: re-generate openapi spec after rebase
* refactor: move from admin config to system config naming
* chore: move away from UseGuards to new @Authenticated decorator
* style: dark mode styling for lists and fix conflicting colors
* wip: 2 column design, no edit button
* refactor: system config
* chore: generate open api
* chore: rm broken test
* chore: cleanup types
* refactor: config module names
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack.pollard@moonpig.com>
* Add proxy changes
* Add web changes
* Add microservices changes
* Add examples
* Add header comment to nginx config
* Use URLs instead of host and port
* delete and restore user from admin UI
* addressed review comments and fix e2e test
* added cron job to delete user, and some formatting changes
* addressed review comments
* adding missing queue registration