* fix(web): keyboard shortcut handling
* drop executeShortcuts in favor of action
* fix merge
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* Fix: Disable 'As profile picture' option for videos in context menu asset-viewer-nav-bar.svelte
This commit modifies the context menu behavior to disable the "As profile picture" option when interacting with video assets. Previously, the option was available for all asset types, including videos, which could lead to confusion when this displayed an error.
With this change, the "As profile picture" option is conditionally rendered based on the asset type. If the asset is a video, the option is not displayed in the context menu.
This adjustment enhances the web experience by preventing users from attempting to set a video as their profile picture, which is not supported by the system.
Fixes: #7724
* Switched to check if photo instead of video
* alt text
* memory lane alt text
* revert sql generator change
* use getAltText
* oops
* handle large number of people in asset
* nit
* add aria-label to search button
* update api
* fixed tests
* fixed typing
* fixed spacing
* fix displaying null
* feat: ascending order for slideshow
* feat: use dropdown
* rename
* fix: size
* pr feedback
* fix: hide text on small screen
* Wording
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* no-misused-promises
* no-floating-promises
* format
* revert for now
* remove load function
* require-await
* revert a few no-floating-promises changes that would cause no-misused-promises failures
* format
* fix a few more
* fix most remaining errors
* executor-queue
* executor-queue.spec
* remove duplicate comments by grouping rules
* upgrade sveltekit and enforce rules
* oops. move await
* try this
* just ignore for now since it's only a test
* run in parallel
* Update web/src/routes/admin/jobs-status/+page.svelte
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* remove Promise.resolve call
* rename function
* remove unnecessary warning silencing
* make handleError sync
* fix new errors from recently merged PR to main
* extract method
* use handlePromiseError
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat: add an option to change the date formats
* pr feedback
* fix: change title
* fix: show list supported by the browser
* fix: tests
* fix: dates
* fix: check only if locale is set
* fix: better fallback value
* fix: fallback
* fix: fallback
* feat: add default locale option
* refactor: shared components
* refactor: shared components
* prepare for svelte 5
* don't use relative paths
* refactor: fallback value
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
* fix: parsing store
* fix: lint
* refactor: locales
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* refactor(web): use new open api client
* refactor: remove activity api
* refactor: trash, oauth, and partner apis
* refactor: job api
* refactor: face, library, system config
* refactor: user api
* refactor: album api
* add unicorn to eslint
* fix lint errors for cli
* fix merge
* fix album name extraction
* Update cli/src/commands/upload.command.ts
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* es2k23
* use lowercase os
* return undefined album name
* fix bug in asset response dto
* auto fix issues
* fix server code style
* es2022 and formatting
* fix compilation error
* fix test
* fix config load
* fix last lint errors
* set string type
* bump ts
* start work on web
* web formatting
* Fix UUIDParamDto as UUIDParamDto
* fix library service lint
* fix web errors
* fix errors
* formatting
* wip
* lints fixed
* web can now start
* alphabetical package json
* rename error
* chore: clean up
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* feat: search peoples
* fix: responsive design
* use existing count
* generate sql file
* fix: tests
* remove visible people
* fix: merge, hide...
* use component
* fix: linter
* chore: regenerate api
* fix: change name when searching for a face
* save search
* remove duplicate
* use enums for query parameters
* fix: increase to 20 for the local search
* use constants
* simplify
* fix: number of people more visible
* fix: merge
* fix: search
* fix: loading spinner position
* pr feedback
* Hide the person age if it is negative
* Add validation to prevent future birth dates
* Add comment
* Add test, Add birth date validation and update birth date modal
* Add birthDate validation in PersonService and SetBirthDateModal
* Running npm run format:fix
* Generating the migration file propoerly, and Make the birthdate form logic simpler
* Make birthDate type only string
* Adding useLocationPin back
* fix: don't limit merge face selector to 10 people
* fix: don't use class to hide people in detail-panel
* fix: map faces and person in asset response
* feat: unassign person faces
* multiple improvements
* chore: regenerate api
* feat: improve face interactions in photos
* fix: tests
* fix: tests
* optimize
* fix: wrong assignment on complex-multiple re-assignments
* fix: thumbnails with large photos
* fix: complex reassign
* fix: don't send people with faces
* fix: person thumbnail generation
* chore: regenerate api
* add tess
* feat: face box even when zoomed
* fix: change feature photo
* feat: make the blue icon hoverable
* chore: regenerate api
* feat: use websocket
* fix: loading spinner when clicking on the done button
* fix: use the svelte way
* fix: tests
* simplify
* fix: unused vars
* fix: remove unused code
* fix: add migration
* chore: regenerate api
* ci: add unit tests
* chore: regenerate api
* feat: if a new person is created for a face and the server takes more than 15 seconds to generate the person thumbnail, don't wait for it
* reorganize
* chore: regenerate api
* feat: global edit
* pr feedback
* pr feedback
* simplify
* revert test
* fix: face generation
* fix: tests
* fix: face generation
* fix merge
* feat: search names in unmerge face selector modal
* fix: merge face selector
* simplify feature photo generation
* fix: change endpoint
* pr feedback
* chore: fix merge
* chore: fix merge
* fix: tests
* fix: edit & hide buttons
* fix: tests
* feat: show if person is hidden
* feat: rename face to person
* feat: split in new panel
* copy-paste-error
* pr feedback
* fix: feature photo
* do not leak faces
* fix: unmerge modal
* fix: merge modal event
* feat(server): remove duplicates
* fix: title for image thumbnails
* fix: disable side panel when there's no face until next PR
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* Allow showing hidden people in image asset details view
This makes it possible to easily find people/faces that have accidentally been hidden.
Unhiding them still requires clicking on the person to go to their page to unhide them.
* Update web/src/lib/components/asset-viewer/detail-panel.svelte
Co-authored-by: martin <74269598+martabal@users.noreply.github.com>
---------
Co-authored-by: brokeh <git@brocky.net>
Co-authored-by: martin <74269598+martabal@users.noreply.github.com>
* fix(web): disable metadata edit if user is not owner
* pr feedback
* pr feedback
* get data from page data
* fix: better representation
* feat: warn user if there's issues with the selected assets
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* chore: rebase and clean-up
* feat: sync description, add e2e tests
* feat: simplify web code
* chore: unit tests
* fix: linting
* Bug fix with the arrows key
* timezone typeahead filter
timezone typeahead filter
* small stlying
* format fix
* Bug fix in the map selection
Bug fix in the map selection
* Websocket basic
Websocket basic
* Update metadata visualisation through the websocket
* Update timeline
* fix merge
* fix web
* fix web
* maplibre system
* format fix
* format fix
* refactor: clean up
* Fix small bug in the hour/timezone
* Don't diplay modify for readOnly asset
* Add log in case of failure
* Formater + try/catch error
* Remove everything related to websocket
* Revert "Remove everything related to websocket"
This reverts commit 14bcb9e1e4.
* remove notification
* fix test
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat(web): Add file path info for external assets
Add file path information to the asset details panel for External assets. This will allow a user to easily locate said asset in the filesystem, to perform any desired tasks on that asset. Styling was chosen to be as unobtrusive as possible.
* feat(web): toggleable file path info for external assets
If the user is the owner of the current asset and it's an external asset, then add a button next to the filename to reveal the asset's file path.
* show path on owned asset and styling
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* fix: like in global activity
* refactor: rename isGlobal to ReactionLevel.Album
* chore: open api
* chore: e2e test for album vs comment duplicate like checking
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* maplibre on web, custom styles from server
Actually use new vector tile server, custom style.json
support multiple style files, light/dark mode
cleanup, use new map everywhere
send file directly instead of loading first
better light/dark mode switching
remove leaflet
fix mapstyles dto, first draft of map settings
delete and add styles
fix delete default styles
fix tests
only allow one light and one dark style url
revert config core changes
fix server config store
fix tests
move axios fetches to repo
fix package-lock
fix tests
* open api
* add assets to docker container
* web: use mapSettings color for style
* style: add unique ids to map styles
* mobile: use style json for vector / raster
* do not use svelte-material-icons
* add click events to markers, simplify asset detail map
* improve map performance by using asset thumbnails for markers instead of original file
* Remove custom attribution
(by request)
* mobile: update map attribution
* style: map dark mode
* style: map light mode
* zoom level for state
* styling
* overflow gradient
* Limit maxZoom to 14
* mobile: listen for mapStyle changes in MapThumbnail
* mobile: update concurrency
---------
Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(web): shuffle slideshow order
* Fix play/stop issues
* Enter/exit fullscreen mode
* Prevent navigation to the next asset after exiting slideshow mode
* Fix entering the slideshow mode from an album page
* Simplify markup of the AssetViewer
Group viewer area and navigation (prev/next/slideshow bar) controls together
* Select a random asset from a random bucket
* Preserve assets order in random mode
* Exit fullscreen mode only if it is active
* Extract SlideshowHistory class
* Use traditional functions instead of arrow functions
* Refactor SlideshowHistory class
* Extract SlideshowBar component
* Fix comments
* Hide Say something in slideshow mode
---------
Co-authored-by: brighteyed <sergey.kondrikov@gmail.com>
* feat(web): show original uploader in shared album photo details
* feat: send owner in asset by id response
* chore: open api
* fix: linting
* fix: change to Shared By
* openapi
* openapi
* api
* styling
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* slideshow
slideshow for main screen
Added control buttons
update
close detail panel window sif opened
format
5 seconds
remove unused files
handle video player
format
* fix: restrict slideshow to timeline views
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* feat(web): add link to external map in leaflet popup
Sometimes it's useful to open a geo location to an external map
application to not have to copy the coordinates manually.
Here I put a link to OpenStreetMap because it's what I personally use.
But I known some people would want to use something different. We could
instead link to geohacks (eg. https://geohack.toolforge.org/geohack.php?params=048.861085_N_0002.313158_E_globe:Earth)
or make it a configurable param.
* chore: cleanup
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>