* chore: update to node 18 and alpine 3.17
Signed-off-by: martin <martin.labat92@gmail.com>
* chore: fix sharp version
Signed-off-by: martin <martin.labat92@gmail.com>
* chore(server): use vips-dev
Signed-off-by: martin <martin.labat92@gmail.com>
* update checkDiskUsage
Signed-off-by: martin <martin.labat92@gmail.com>
* fix: use vips-heif instead of libheif
Signed-off-by: martin <martin.labat92@gmail.com>
* fix: use vips instead of vips-cpp
Signed-off-by: martin <martin.labat92@gmail.com>
* fix: ensure vips installation
Signed-off-by: martin <martin.labat92@gmail.com>
---------
Signed-off-by: martin <martin.labat92@gmail.com>
* First crude implementation of the global asset map in web
* Use single DOM element for all markers
* Minor layout changes
* Refactor
* Add asset viewer
* Add API endpoint that returns only assets with location information (Thanks @EPP100)
* Remove sidebar icon flip
* Add dark theme support
* Center map to most recent asset
* Allow cluster viewing
* Fix linter errors
* Add newlines
* Fix ts errors
* Fix eslint error
* Run prettier
* Server code style
* Fix openapi mobile code generation issues
* Map markers test
* fix: Support video thumbnails
* Update API
* Review suggestions
* Review suggestions
* Linter error
* Chage mapMarker endpoint to map-marker
* Clean up leaflet imports
* chore(server): remove unused device info code
* chore: generate open api
* remove any DeviceTypeEnum usage from mobile
* chore: coverage
* fix: drop device info table
---------
Co-authored-by: Fynn Petersen-Frey <zody22@gmail.com>
* feat: manage authorized devices
* chore: open api
* get header from mobile app
* write header from mobile app
* styling
* fix unit test
* feat: use relative time
* feat: update access time
* fix: tests
* chore: confirm wording
* chore: bump test coverage thresholds
* feat: add some icons
* chore: icon tweaks
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* update asset to include isArchive property
* Not display archived assets on timeline
* replace share button to archive button
* Added archive page
* Add bottom nav bar
* clean up homepage
* remove deadcode
* improve on sync is archive
* show archive asset correctly
* better merge condition
* Added back renderList to re-rendering don't jump around
* Better way to handle showing archive assets
* complete ArchiveSelectionNotifier
* toggle archive
* remove deadcode
* fix unit tests
* update assets in DB when changing assets
* update asset state to reflect archived status
* allow to archive assets via multi-select from timeline
* fixed logic
* Add options to bulk unarchive
* regenerate api
* Change position of toast message
---------
Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
* Added dto, logic to insert description and web implementation
* create text field and update on remote database
* Update description and save changes
* styling
* fix web test
* fix server test
* preserve description on metadata extraction job run
* handle exif info is null situation
* pr feedback
* format openapi spec
* update createAssetDto
* refactor logic to service
* move files
* only owner can update description
* Render description correctly in shared album
* Render description correctly in shared link
* disable description edit for not owner of asset on mobile
* localization and clean up
* fix test
* Uses providers for description text (#2244)
* uses providers for description text
* comments
* fixes initial data setting
* fixes notifier
---------
Co-authored-by: martyfuhry <martyfuhry@gmail.com>
* fix(server): generate thumbnail job' using stale path
* add query for webp generation
* revert query for webp because it happens after files are moved
* Add log info
* chore(server): commented out debug log line for codecs
* chore(server): removed debug log line for codecs as it's not needed
* Prettier run
* Make the log more useful and move it to verbose level
* test: rename some fixtures and add text for vertical video conversion
* feat: transcode video asset when audio or container don't match target
* chore: add niceness to the ffmpeg command to allow other processes to be prioritised
* chore: change video conversion queue to one concurrency
* feat: add transcode disabled preset to completely turn off transcoding
* linter
* Change log level and remove unused await
* opps forgot to save
* better logging
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat: change target scaling to resolution in ffmpeg config
* feat(microservices): scale vertical video correctly, only scale if video is larger than target
* default NODE_ENV to production for server image
* update node image to use 3.17 alpine in server
* update web docker image to use alpine 3.17
* remove NODE_ENV from production docker-compose
* NODE_ENV is also needed default in machine-learning
* feat(server/web): jobs clear button + queue status
* adjust design and colors
* Adjust some styling
* show status next to buttons instead of on top
* Update rounded corner for badge
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* fix(server): user update
* update dto
* generate api
* improve validation
* add e2e tests for updating user
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* feat(server): require auth for more endpoints
* dev: add authorization header to profile image on mobile
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(server): Return the original path for gifs.
Usually browser is able to play them directly.
* fix(server): Better place for the condition.
* fix(server): gif viewing works properly.
* refactor: job to domain
* chore: regenerate open api
* chore: tests
* fix: missing breaks
* fix: get asset with missing exif data
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* add check for encoded video file to be deleted with asset
* remove unnecessary code and adjust test
* complete test
* fix unit test
* fix unit test properly this time
* fix formatting
---------
Co-authored-by: Sebastian Schöttl <sebastian.schoettl@cybertechnologies.com>
* 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>
* feat(server): improve thumbnail relation and updating
* improve query + update tests and migration
* make sure uuids are valid in migration
* fix unit test
* feature(mobile): sync assets, albums & users to local database on device
* try to fix tests
* move DB sync operations to new SyncService
* clear db on user logout
* fix reason for endless loading timeline
* fix error when deleting album
* fix thumbnail of device albums
* add a few comments
* fix Hive box not open in album service when loading local assets
* adjust tests to int IDs
* fix bug: show all albums when Recent is selected
* update generated api
* reworked Recents album isAll handling
* guard against wrongly interleaved sync operations
* fix: timeline asset ordering (sort asset state by created at)
* fix: sort assets in albums by created at
* 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: update package-lock.json version
* rfix(server) long album load time
* remove all eagerness
* generate index
* remove console.log
* remove deadcode
* fix: shared link album owner
* fix(server): Object detection query has incorrect value
* fix: get stats for user using the wrong property id from response
* chore: update openapi version
* stlye: forms
* style: navigation bar
* style: user profile popup
* style: context menu
* fix: prettier
* style: manage account dark theme color
* style: user profile image border; fix: profile panel z-index
* style: border for profile image on hover and scrolling in administration page
* style: font size
* style: gap between day in a row
* 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
* infra: make api-key primary key column a UUID
* infra: move ManyToMany relations in album entity, make ownerId ManyToOne
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
BREAKING CHANGES
* Users have to update the docker-compose file, machine-learning portion.
* Temporary dropping machine-learning support for Arm64 and Armv7
* fix(web/server): Uploaded asset to shared link does not get added to the shared link/album
* remove unused code
* Add endpoints for each remove and add assets to shared link
* Update api
* Added deletion logic
* Convert callback to async/await
* Fix linter
* Fix test
* Fix server test
* added test
* Test coverage
* modify DTO
* Add notification
* fix test