* 15712: Added keyboard shortcuts for opening add to album modal and highlighting/selecting an album to add to.
* 15712: Re-factored logic from template code into script. Extracted new album button into separate cmponent.
* 15712: Document new keyboard shortucts now that they work everywhere.
* 15712: Extract some constants/helper functions.
* 15712: Missing comma.
* 15712: Pulled logic out into separate unit testable class.
* 15712: Added a unit test.
* 15712: Move the modal back up to keep the github PR happy.
* 15712: PR feedback - renamed typescript files and switch to class bind directive.
* 15712:Move selection modal into correct package.
* 15712: Better naming of module and files.
* 15712: Add asset highlight using arrow keys.
* 15172: Add escape behaviour everywhere.
* 15712: Don't allow highlighting past start or end.
* 15712: Clear the highlight on changes to the component state.
* 15712: Use focus to track highlighted element.
* 15712: Rename highlight -> focussed.
* 15712: Better naming.
* 15712: Cleanup.
* 15712: Cleanup & simplify.
* 15712: bugfix for clicking on button.
* 15712: Cleanup.
* 15712: Rollback unnecessary changes.
* 15712: Add unit test.
* 15712: Add thumbnail unit test.
* 15712: Prettier.
* 15712: Fix merge issue.
* 15712: Add shortcut info.
* 15712: Fix linter.
* Work in progress - super quick asset store->state
* bugfix: deep linking to timeline, on scrub stop
* format, remove stale
* disable test, todo: fix test
* remove unused import
* Fix merge
* lint
* lint
* lint
* Default to non-wasm layout
* lint
* intobs fix
* fix rejected promise
* Review comments, static import wasm
* Back to dynamic
* try top-level-await
* back to the first solution, with more finesse
* comment out wasm for now
* back out the wasm/thumbhash/thumbnail changes
* lint
* Fully remove wasm
* lockfile
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat: tags
* fix: folder tree icons
* navigate to tag from detail panel
* delete tag
* Tag position and add tag button
* Tag asset in detail panel
* refactor form
* feat: navigate to tag page from clicking on a tag
* feat: delete tags from the tag page
* refactor: moving tag section in detail panel and add + tag button
* feat: tag asset action in detail panel
* refactor add tag form
* fdisable add tag button when there is no selection
* feat: tag bulk endpoint
* feat: tag colors
* chore: clean up
* chore: unit tests
* feat: write tags to sidecar
* Remove tag and auto focus on tag creation form opened
* chore: regenerate migration
* chore: linting
* add color picker to tag edit form
* fix: force render tags timeline on navigating back from asset viewer
* feat: read tags from keywords
* chore: clean up
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* Squashed
* Change strategy - now pre-measure buckets offscreen, so don't need to worry about sub-bucket scroll preservation
* Reduce jank on scroll, delay DOM updates until after scroll
* css opt, log measure time
* Trickle out queue while scrolling, flush when stopped
* yay
* Cleanup cleanup...
* everybody...
* everywhere...
* Clean up cleanup!
* Everybody do their share
* CLEANUP!
* package-lock ?
* dynamic measure, todo
* Fix web test
* type lint
* fix e2e
* e2e test
* Better scrollbar
* Tuning, and more tunables
* Tunable tweaks, more tunables
* Scrollbar dots and viewport events
* lint
* Tweaked tunnables, use requestIdleCallback for garbage tasks, bug fixes
* New tunables, and don't update url by default
* Bug fixes
* Bug fix, with debug
* Fix flickr, fix graybox bug, reduced debug
* Refactor/cleanup
* Fix
* naming
* Final cleanup
* review comment
* Forgot to update this after naming change
* scrubber works, with debug
* cleanup
* Rename scrollbar to scrubber
* rename to
* left over rename and change to previous album bar
* bugfix addassets, comments
* missing destroy(), cleanup
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* refactor: stacks
* mobile: get it built
* chore: feedback
* fix: sync and duplicates
* mobile: remove old stack reference
* chore: add primary asset id
* revert change to asset entity
* mobile: refactor mobile api
* mobile: sync stack info after creating stack
* mobile: update timeline after deleting stack
* server: update asset updatedAt when stack is deleted
* mobile: simplify action
* mobile: rename to match dto property
* fix: web test
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(web): translate image alt text
* fix: capitalize translations, improve unit test
* fix: unit testing against the actual en.json file
* fix: use derived store to generate alt text
* refactor: asset media endpoints
* refactor: mobile upload livePhoto as separate request
* refactor: change mobile backup flow to use new asset upload endpoints
* chore: format and analyze dart code
* feat: mark motion as hidden when linked
* feat: upload video portion of live photo before image portion
* fix: incorrect assetApi calls in mobile code
* fix: download asset
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
* feat(web): add preference for thumbnail playback on hover
* pr feedback, add user settings behavior setting
* user settings consistency
* rename appearance to app settings
* collapse single trash setting into app settings
* 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
* 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(web): ✨ Rounded corners on selected assets
Add rounded corner on selected items and fix circle icon transparent background on selection
* refactor: Ran prettier to fix formatting issues
* trying to update to svelte 4
* update dependencies
* remove global transition
* suppress wrning
* chore: install from github
* revert material icon change
* Supress a11y warning
* update
* remove coverage test on web
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* fix(web): aspect ratio for photos with Rotate 270 CW orientation
* Remove checks assuming we can have only numeric values
* Remove the -90 value check for the orientation
* Add comment to numeric values of the orientation tag
* add thumbhash: server generation and web impl
* move logic to infra & use byta in db
* remove unnecesary logs
* update generated API and simplify thumbhash gen
* fix check errors
* removed unnecessary library and css tag
* style edits
* syntax mistake
* update server test, change thumbhash job name
* fix tests
* Update server/src/domain/asset/response-dto/asset-response.dto.ts
Co-authored-by: Thomas <9749173+uhthomas@users.noreply.github.com>
* add unit test, change migration date
* change to official thumbhash impl
* update call method to not use eval
* "generate missing" looks for thumbhash
* improve queue & improve syntax
* update syntax again
* update tests
* fix thumbhash generation
* consolidate queueing to avoid duplication
* cover all types of incorrect thumbnail cases
* split out jest tasks
* put back thumbnail duration loading for images without thumbhash
* Remove stray package.json
---------
Co-authored-by: Luke McCarthy <mail@lukehmcc.com>
Co-authored-by: Thomas <9749173+uhthomas@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* Truncate date group title
* Precalculate justified layout width
* Add title to date group title to show when truncated
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
* feat: return asset checksum
* chore: generate open api
* chore: coverage
* feat(server): support base64 hashes in bulk upload check:
* chore: generate open api