Commit Graph

84 Commits

Author SHA1 Message Date
Min Idzelis 0a9f1a3cbf feat: cache asset info for prev/next navigation (#24482)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-01-07 19:10:29 -05:00
Jason Rasmussen 5bb3492616 refactor: favorite action (#25121) 2026-01-07 21:21:19 +00:00
Min Idzelis 78229baeab feat: improve asset-viewer next/prev perf and standardize preloading behavior (#24422)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-01-07 21:17:12 +01:00
Jason Rasmussen 1293e473ca refactor: cast button (#25101) 2026-01-06 18:51:19 -05:00
Jason Rasmussen 1a24a2d35e refactor: asset viewer navbar actions (#25091) 2026-01-06 17:35:37 -05:00
Jason Rasmussen 984f06ac40 refactor: asset viewer (#25059) 2026-01-05 21:02:01 +00:00
Min Idzelis 369a30e227 fix: canceling a bucket while findMonthGroupForAsset is waiting fails (#24898) 2025-12-29 09:28:37 -06:00
Jason Rasmussen dd744f8ee3 refactor: album edit modal (#24786) 2025-12-22 13:33:49 -05:00
Jason Rasmussen 40e750e8be refactor: api key service (#24779) 2025-12-22 11:09:11 -05:00
Alex 28f6064240 feat: workflow ui (#24190)
* feat: workflow ui

* wip

* wip

* wip

* pr feedback

* refactor: picker field

* use showDialog directly

* better test

* refactor step selection modal

* move enable button to info form

* use  for Props

* pr feedback

* refactor ActionItem

* refactor ActionItem

* more refactor

* fix: new schemaformfield has value of the same type

* chore: clean up
2025-12-20 21:07:07 -06:00
Min Idzelis 161147af51 feat: timeline-manager improvement to use AssetResponseDto efficiently (#24421) 2025-12-11 01:07:31 +01:00
Jason Rasmussen 45f68f73a9 feat: queue detail page (#24352) 2025-12-03 13:39:32 -05:00
idubnori d8ca210641 chore(web): minor UX improvements of "view asset owners" feature (#24319)
* feat: toggle in options modal

* feat(i18n): add labels to display who uploaded each asset and show asset owners

* feat: migrate asset owner settings to TimelineManager and update AlbumOptionsModal

* Revert "feat(i18n): add labels to display who uploaded each asset and show asset owners"

This reverts commit cf8f4eb135.

* fix: simplify AlbumOptionsModal invocation and update aria-label for asset owners

* feat(i18n): add label for viewing asset owners in the interface

* feat: add tests for showAssetOwners functionality in TimelineManager

* chore: move asset owner visibility toggle to kebabu menu
2025-12-01 10:25:12 -06:00
Min Idzelis ab35afd3b1 refactor(web): reimplement operation-support as part of timeline-manager (#24056)
* refactor(web): reimplement operation-support as part of timeline-manager

Improve clarity of methods. 
Add inline method documentation.  
Make return type of AssetOperation optional.

* Review comments - self document code. remove optional return from callback
2025-12-01 09:04:39 -06:00
Jason Rasmussen 64cd4e96e3 fix: theme switcher (#24209) 2025-11-26 21:17:26 +00:00
Min Idzelis d6b39a464d feat: improve performance: don't sort timeline buckets from server (#24032) 2025-11-24 17:26:52 +01:00
Jason Rasmussen 9a403d5886 refactor(web): user delete websocket event (#24015) 2025-11-20 07:54:29 -05:00
Jason Rasmussen 1a31faf1a2 fix: effect loop (#24014) 2025-11-20 07:52:37 -05:00
Daniel Dietzler f59417cc77 chore(web): refactor replace asset (#23972) 2025-11-19 08:49:15 -06:00
Min Idzelis 11cec56e80 refactor(web): consolidate timeline API - merge addAssets/updateAssets into upsertAssets (#23985) 2025-11-19 08:48:16 -06:00
Min Idzelis 42dd3315f8 refactor(web): fix TimelineManager import - use value import instead of type-only (#23983) 2025-11-18 21:26:15 -06:00
Daniel Dietzler d310c6f3cd feat: library details page (#23908)
* feat: library details page

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-11-18 15:27:41 -05:00
Min Idzelis 237ddcb648 fix: incorrect header height calculation in estimated month height (#23923) 2025-11-17 14:14:06 -06:00
Min Idzelis d64c339b4f fix: null dereference when canceling bucket in album (#23924) 2025-11-17 14:12:28 -06:00
Min Idzelis 69880ee165 fix: deep link to last asset (#23920) 2025-11-17 14:12:07 -06:00
Daniel Dietzler 1200bfad13 refactor: server config and feature flags managers (#23894) 2025-11-14 14:10:44 -05:00
Daniel Dietzler f1f203719d refactor: admin settings (#23843) 2025-11-13 13:17:44 -05:00
Jason Rasmussen 2f40f5aad8 refactor: user admin service (#23785) 2025-11-11 07:42:33 -05:00
Jason Rasmussen d5c5bdffcb refactor: album delete (#23773) 2025-11-10 16:10:29 -05:00
Jason Rasmussen dea95ac2e6 refactor: shared-link service (#23770) 2025-11-10 20:49:02 +00:00
Jason Rasmussen 8de6ec1a1b refactor: album service (#23768) 2025-11-10 13:40:58 -05:00
Daniel Dietzler dd393c8346 feat(web): event handler component (#23763) 2025-11-10 11:49:46 -05:00
Daniel Dietzler c76324c611 fix(web): mobile scrubber on page load (#23488) 2025-11-01 22:15:33 -05:00
Min Idzelis c666dc6c67 fix: back/forward navigation won't reset scroll in timeline (#22838)
* fix: back/forward navigation won't reset scroll in timeline

Fixes a bug where navigating to/from the asser-viewer from timeline causes the scroll position to be reset.

* Fix back after assetviewer next/prev navigation

* Bug fix from review

* review comments
2025-10-27 08:56:03 -05:00
Mert 3f03a88767 feat(web): wasm justified layout, sync edition (#23194)
* the invisible wasm

use npm version

* deterministic tests

* add todo

* linting

* bump library, add helpers

* use target height for unfilled rows

* update tests
2025-10-25 00:06:05 -05:00
Min Idzelis 04e2e42c88 refactor(web): improve date labels in scrubber (#23046)
refactor(web): improve timeline scrubber labeling logic

Refactor the segment calculation in the timeline scrubber to improve code clarity and fix label positioning. Process months in reverse order for more intuitive label selection, use descriptive variable names, and remove unnecessary index tracking.
2025-10-20 22:13:49 -05:00
Min Idzelis 3174a27902 refactor(web): Extract VirtualScrollManager base class from TimelineManager (#23017)
Extract common virtual scrolling functionality from TimelineManager into
a new abstract VirtualScrollManager base class. This refactoring improves
code organization and enables reuse of virtual scrolling logic.

Changes:
- Create new VirtualScrollManager abstract base class with common virtual
  scrolling state and methods
- Refactor TimelineManager to extend VirtualScrollManager
- Rename 'assetsHeight' to 'bodySectionHeight' for semantic clarity
- Convert methods to use override keyword where appropriate
- Enable noImplicitOverride in tsconfig for better type safety
- Fix ApiError and AbortError class definitions with override keywords
2025-10-17 17:37:54 +00:00
Min Idzelis 2919ee4c65 fix: navigate to time action (#20928)
* 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>
2025-10-16 17:44:09 +00:00
Min Idzelis b3055d2e94 refactor: TimelineManager is owned by Timeline.svelte (#22839)
feat: TimelineManager is owned by Timeline.svelte
2025-10-15 17:27:44 +00:00
Min Idzelis f1e03d0022 fix(web): improve scrubber behavior on scroll-limited timelines (#22917)
Improves scroll indicator positioning when scrubbing through timelines with limited scrollable content (e.g., small albums). When a timeline's scrollable height is less than 50% of the viewport height, the scroll position is now properly distributed across the entire scrubber height, making the indicator more responsive and accurate.

Changes:
- Add `limitedScroll` state to detect scroll-constrained timelines (threshold: 50%)
- Introduce `ViewportTopMonth` type to handle lead-in/lead-out sections
- Calculate `totalViewerHeight` including top/bottom sections for accurate positioning
- Refactor scrubber to treat lead-in and lead-out as distinct scroll segments
- Update scroll position calculations to use relative percentages on constrained timelines
2025-10-15 13:13:05 -04:00
Min Idzelis 146973b072 fix: re-add scroll compensation (efficiently) (#22848)
* fix: re-add scroll compensation (efficient)

* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.

* Fix faulty logic, simplify

* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-10-14 02:16:05 +00:00
Min Idzelis ce4e8fa6ba feat: (perf) remove scroll compensation (#22837) 2025-10-10 15:48:29 -04:00
Pascal Sommer 6f3cb4f1bb fix(web): Uniform random distribution during shuffle (#19902)
feat: better random distribution
2025-10-08 10:19:33 -04:00
Min Idzelis b06b8ceef6 chore(web): upgrade ESLint and plugins (#22495)
* chore(web): upgrade ESLint and plugins, simplify linting configuration

- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
  - eslint-plugin-svelte: ^3.9.0 → ^3.12.4
  - eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
  - svelte-eslint-parser: ^1.2.0 → ^1.3.3
  - typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command

* pnpm dedupe

---------

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2025-10-06 12:41:28 -04:00
Jason Rasmussen e52cc259d5 fix(web): cancel uploads on logout (#21760) 2025-09-10 08:15:03 -04:00
Johann 7a1c45c364 feat(web): use timeline in geolocation manager (#21492) 2025-09-09 21:26:26 -04:00
Jason Rasmussen 76eaee3657 fix: timeline scroll error handling (#21324) 2025-08-26 17:07:26 -05:00
Jason Rasmussen d5a01c0310 fix(web): timeline time bucket issue (#20438) 2025-07-30 11:21:02 -05:00
Jed-Giblin 9b3718120b feat: shared links custom URL (#19999)
* feat: custom url for shared links

* feat: use a separate route and query param

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 14:16:55 -04:00
Daimolean a36840d7cc fix(web): multi-select in ascending asset order (#19461) 2025-07-24 22:37:44 +01:00