Commit graph

581 commits

Author SHA1 Message Date
Jason Rasmussen
ad0dbf0315
fix(web): delete non-empty album (#12937) 2024-09-25 20:54:42 +00:00
Jonathan Jogenfors
b2f2be3485
refactor(server): library syncing (#12220)
* refactor: library scanning

fix tests

remove offline files step

cleanup library service

improve tests

cleanup tests

add db migration

fix e2e

cleanup openapi

fix tests

fix tests

update docs

update docs

update mobile code

fix formatting

don't remove assets from library with invalid import path

use trash for offline files

add migration

simplify scan endpoint

cleanup library panel

fix library tests

e2e lint

fix e2e

trash e2e

fix lint

add asset trash tests

add more tests

ensure thumbs are generated

cleanup svelte

cleanup queue names

fix tests

fix lint

add warning due to trash

fix trash tests

fix lint

fix tests

Admin message for offline asset

fix comments

Update web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

add permission to library scan endpoint

revert asset interface sort

add trash reason to shared link stub

improve path view in offline

update docs

improve trash performance

fix comments

remove stray comment

* refactor: add back isOffline and remove trashReason from asset, change sync job flow

* chore(server): drop coverage to 80% for functions

* chore: rebase and generated files

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-09-25 18:26:19 +01:00
Daniel Dietzler
b45fce8ddf
fix: album title state weirdness (#12874) 2024-09-24 11:13:37 -04:00
Daniel Dietzler
87c54d6659
fix: show asset count for unassigned faces (#12871) 2024-09-23 17:37:08 +00:00
Caesiumhydroxid
9a4a320cfb
fix(web): Fix same key for delete and stack actions (#12865)
Fix same key for delete and stack actions
2024-09-23 15:38:50 +00:00
Daniel Dietzler
8cd3f6b884
fix(web): events as props (#12825) 2024-09-20 18:24:46 -04:00
Daniel Dietzler
124eb8251b
chore: migrate away from event dispatcher (#12820) 2024-09-20 17:02:58 -04:00
Jason Rasmussen
94fc1f213a
refactor(web): migrate away from event dispatcher (#12802) 2024-09-19 18:20:09 -04:00
Jason Rasmussen
6740c67ed8
fix: empty and restore over 1,000 items (#12751) 2024-09-18 09:57:52 -04:00
Alex
186b4e1333
feat(web): improve UI/UX for settings pages (#12626)
* fix(web): local date time for buckets

* feat(web): improve UI/UX for setting pages

* search admin settings and icon

* clean up

* fix translation file

* Update web/src/routes/admin/system-settings/+page.svelte

Co-authored-by: Ben <45583362+ben-basten@users.noreply.github.com>

* Update web/src/lib/components/shared-components/settings/setting-accordion.svelte

Co-authored-by: Ben <45583362+ben-basten@users.noreply.github.com>

* better search bar on smaller screen

* lint

* template syntax

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Ben <45583362+ben-basten@users.noreply.github.com>
2024-09-16 16:51:03 -04:00
Jason Rasmussen
b74b20824a
feat: tag cleanup job (#12654) 2024-09-16 16:49:12 -04:00
Jason Rasmussen
01c7adc24d
feat(web): unlink live photos (#12574)
feat(web): unlink live photo
2024-09-11 16:26:29 -04:00
Jason Rasmussen
27050af57b
feat(web): manually link live photos (#12514)
feat(web,server): manually link live photos
2024-09-10 08:51:11 -04:00
Jason Rasmussen
8cf33690b8
fix(web): select partner assets from timeline (#12517)
fix(web): add partner assets to album
2024-09-09 16:03:30 -04:00
Michel Heusschen
9fc30d6bf6
fix(web): auth on navigation from shared link to timeline (#12385) 2024-09-06 08:15:48 -05:00
Jason Rasmussen
b0af9be513
fix(web): person asset grid (#12370) 2024-09-05 20:49:23 +00:00
Alex
dfcdaefa22
fix(web): showing album timeline after adding new assets (#12354) 2024-09-05 10:37:14 -05:00
Min Idzelis
d7d3b8dfec
fix: flash bug on tag (#12332)
* fix flash bug on tag

* fix lint

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-09-05 09:29:07 -05:00
Ben
c5848112bb
feat(web): add skip link to sidebar (#12330)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-09-05 08:24:24 -05:00
BugFest
77e6a6d78b
feat(server): Import face regions from metadata (#6455)
* feat: faces-from-metadata - Import face regions from metadata

Implements immich-app#1692.
- OpenAPI spec changes to accomodate metadata face import configs. New settings to enable the feature.
- Updates admin UI compoments
- ML faces detection/recognition & Exif/Metadata faces compatibility

Signed-off-by: BugFest <bugfest.dev@pm.me>

* chore(web): remove unused file confirm-enable-import-faces

* chore(web): format metadata-settings

* fix(server): faces-from-metadata tests and format

* fix(server): code refinements, nullable face asset sourceType

* fix(server): Add RegionInfo to ImmichTags interface

* fix(server): deleteAllFaces sourceType param can be undefined

* fix(server): exiftool-vendored 27.0.0 moves readArgs into ExifToolOptions

* fix(server): rename isImportFacesFromMetadataEnabled to isFaceImportEnabled

* fix(server): simplify sourceType conditional

* fix(server): small fixes

* fix(server): handling sourceType

* fix(server): sourceType enum

* fix(server): refactor metadata applyTaggedFaces

* fix(server): create/update signature changes

* fix(server): reduce computational cost of Person.getManyByName

* fix(server): use faceList instead of faceSet

* fix(server): Skip regions without Name defined

* fix(mobile): Update open-api (face assets feature changes)

* fix(server): Face-Person reconciliation with map/index

* fix(server): tags.RegionInfo.AppliedToDimensions must be defined to process face-region

* fix(server): fix shared-link.service.ts format

* fix(mobile): Update open-api after branch update

* simplify

* fix(server): minor fixes

* fix(server): person create/update methods type enforcement

* fix(server): style fixes

* fix(server): remove unused metadata code

* fix(server): metadata faces unit tests

* fix(server): top level config metadata category

* fix(server): rename upsertFaces to replaceFaces

* fix(server): remove sourceType when unnecessary

* fix(server): sourceType as ENUM

* fix(server): format fixes

* fix(server): fix tests after sourceType ENUM change

* fix(server): remove unnecessary JobItem cast

* fix(server): fix asset enum imports

* fix(open-api): add metadata config

* fix(mobile): update open-api after metadata open-api spec changes

* fix(web): update web/api metadata config

* fix(server): remove duplicated sourceType def

* fix(server): update generated sql queries

* fix(e2e): tests for metadata face import feature

* fix(web): Fix check:typescript

* fix(e2e): update subproject ref

* fix(server): revert format changes to pass format checks after ci

* fix(mobile): update open-api

* fix(server,movile,open-api,mobile): sourceType as DB data type

* fix(e2e): upload face asset after enabling metadata face import

* fix(web): simplify metadata admin settings and i18n keys

* Update person.repository.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* fix(server): asset_faces.sourceType column not nullable

* fix(server): simplified syntax

* fix(e2e): use SDK for everything except the endpoint being tested

* fix(e2e): fix test format

* chore: clean up

* chore: clean up

* chore: update e2e/test-assets

---------

Signed-off-by: BugFest <bugfest.dev@pm.me>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-04 18:23:58 -04:00
Ben
1e509d97f6
feat(web): show folder navigation in root directory (#12299) 2024-09-03 22:53:48 -05:00
Ben
d8b602f757
feat(web): shared breadcrumbs component for folders and tags (#12215)
* feat(web): shared breadcrumbs component for folders and tags

* chore: revert changes to tree view
2024-09-02 14:42:27 -05:00
Alex
bd6c5e1b1c
feat(web): tag button in album/shared album (#12172) 2024-09-02 14:39:16 -05:00
Michel Heusschen
67468ea367
fix(web): avoid deleting empty album unexpectedly (#12175) 2024-08-31 12:24:38 -05:00
Jason Rasmussen
5e6ac87eaf
chore: object shorthand linting rule (#12152)
chore: object shorthand
2024-08-30 14:38:53 -04:00
Michel Heusschen
b1e780561d
fix(web): reset asset grid after changing album order (#12139) 2024-08-30 09:31:53 -05:00
Alex
ebecb60f39
feat: user's features preferences (#12099)
* feat: metadata in UserPreference

* feat: web metadata settings

* feat: web metadata settings

* fix: typo

* patch openapi

* fix: missing translation key

* new organization of preference strucutre

* feature settings on web

* localization

* added and used feature settings

* add default value to response dto

* patch openapi

* format en.json file

* implement helper method

* use tags preference logic

* Fix logic bug and add tests

* fix preference can be null in detail panel
2024-08-29 14:29:04 -05:00
Jason Rasmussen
d08a20bd57
feat: tags (#11980)
* 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>
2024-08-29 12:14:03 -04:00
Michel Heusschen
9f5a3f1e84
chore(web): enforce valid translation keys using typescript (#12106) 2024-08-29 08:41:39 -04:00
Jonathan Jogenfors
363c558db7
fix(server): don't crash when refreshing large libraries (#7934)
* add job to check for offline files

* fix lint

* only check for offline when using checkForOffline

* improve tests

* remove old test

* wip

* remove trie

* refactor batches

* also check offline status

* fix spelling

* don't do offline scan

* rename scan to check

* fix job statuses

* fix lint

* cleanup

* add test

* open-api

* fix test

* fix spinner

* reset text

* don't double batch

* fix comments from mert

* remove tries

* fix tests

* fix e2e

* fix test

* fix test

* add tests

* fix lint

* fix e2e

* interweave scans

* fix errors

* fix messages

* fix test

* add mock

* fix sql

* fix e2e

* use library batch size

* save -> update

* add file extensions

* update specs

* test for import paths

* check import paths when testing offline

* fix lint

* normalize import path

* remove console logs

* decrease batch size to 1000

* add test for import path

* add test for already-online assets

* fix merge

* fix lint

* add library job back

* add offline job to correct queue

* library spec compiles now

* move one test to new e2e

* fix comments

* fix comments

* fix lint

* refactor path validation

* fix loop bug

* remove logging

* expect responses

* fix asset mock

* take the straightforward approach

* use generator correctly

* fix vitest on file edit

* bump vitest to 1.6.0

* test for offline check

* add e2e tests for offlining assets depending on import path

* cleanup e2e test after finish

* cleanup library service

* paginate the walk generator

* fix tests

* fix typo

* refactoring handleOfflineCheck

* better testing of handleOfflineCheck

* fix lint

* handle large library deletions

* dont check if library is deleted

* fix mock

* add a 100k page size to library

* fix loading animation

* better log messages

* Better logging for offline asset removal

* fix sql and tests

* fix number format

* Remove submodule

* fix format

* chore: cleanup

* chore: fix tests

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-28 13:05:48 -04:00
Alex
be476d7982
chore(web): ensure goto is awaited for login page (#12087)
* chore(web): ensure goto is await for login page

* ensure server config is updated after onboarding is finished
2024-08-27 22:29:50 +00:00
Alex
edf47dbbd0
feat(web): restore scroll position on navigating back to search page (#12042)
* feat(web): restore scroll position on navigating back to search page

* set 0 for scroll X

* lint

* simplify
2024-08-26 11:26:23 -05:00
Min Idzelis
b2dd5a3152
feat: loading screen, initSDK on bootstrap, fix FOUC for theme (#10350)
* feat: loading screen, initSDK on bootstrap, fix FOUC for theme

* pulsate immich logo, don't set localstorage

* Make it spin

* Rework error handling a bit

* Cleanup

* fix test

* rename, memoize

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-08-25 17:34:08 -05:00
Snowknight26
7a4fccb1b2
fix(web): show a clearer confirmation message when deleting an unnamed album (#11988)
* fix(web): show a different confirmation message when deleting an unnamed album

* Rename the function

* Fix formatting
2024-08-24 23:59:18 -05:00
Daniel Dietzler
da12d5f567
feat(web): my immich shortcut (#12007)
feat: my immich shortcut in web
2024-08-23 23:03:36 +00:00
Jason Rasmussen
f69ce6ad8a
refactor(web): folder view (#11967)
refactor(web): tree view
2024-08-22 11:38:19 -04:00
Min Idzelis
837b1e4929
feat(web): Scroll to asset in gridview; increase gridview perf; reduce memory; scrollbar ticks in fixed position (#10646)
* 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>
2024-08-21 21:15:21 -05:00
David Kerr
07538299cf
feat: folder view (#11880)
* feat: folder view poc

* fix(folder-view): ui modifications

* fix(folder-view): improves utility return types

* fix(folder-view): update getAssetsByOriginalPath

Endpoint now only returns direct children of the path instead of all images in all subfolders.  Functions renamed and scoped to "folder", endpoints renamed

* fix(folder-view): improve typing

* fix(folder-view): replaces css with tailwind

* fix(folder-view): includes folders in main panel

* feat(folder-view): folder cache implementation

* fix(folder-view): can now search for absolute paths

* fix(folder-view): sets default sort to alphabetical by filename

* refactor/styling the browser view

* double click to navigate

* folder tree

* use correct side bar icon

* styling when selected

* correct open icon

* folder layout

* return assetReponseDto

* it's alive

* update new api

* more styling for folder tree

* use query params and path viewer

* use arrow up left for parent folder backward navigation

* use arrow up left for parent folder backward navigation

* encode URL

* handle long folder name

* refactor to the view controller

* remove unused code

* clear cache when logout

* cleaning up

* cleaning up web

* clean as new

* clean as new

* pr feedback + show asset name

* add tests

* add tests

* remove generated file

* lint

* revert docker-compose.dev file

* Update server/src/services/view.service.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* Update server/src/services/view.service.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-21 13:49:37 -05:00
martin
fdf0b16fe3
feat(web): add privacy step in the onboarding (#11359)
* feat: add privacy step in the onboarding

* fix: remove console.log

* feat:Details the implications of enabling the map on the settings page

Added a link to the guide on customizing map styles as well

* feat: add map implication

* refactor: onboarding style

* fix: tile provider

* fix: remove long explanations

* chore: cleanup

---------

Co-authored-by: pcouy <contact@pierre-couy.dev>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-13 17:01:30 +00:00
Michel Heusschen
b014162088
refactor(web): add tailwind plugin for repeating grid cols (#11748) 2024-08-13 11:36:46 -04:00
Michel Heusschen
276101ee82
feat(web): improve shared link management on mobile (#11720)
* feat(web): improve shared link management on mobile

* fix format
2024-08-13 09:37:47 -05:00
Michel Heusschen
5acdc958b6
fix(web): single row of items (#11729)
* fix(web): single row of items

* remove filterBoxWidth

* slight size adjustment

* rewrite action as component
2024-08-13 08:20:08 -04:00
Michel Heusschen
b749a68349
fix(web): hide import json button when using config file (#11714) 2024-08-12 07:40:31 -04:00
Michel Heusschen
96481aae5d
refactor(web): supporter badge (#11656)
* refactor(web): supporter badge

* add style lang
2024-08-08 14:02:44 -04:00
Michel Heusschen
66f2ac8ce3
fix(web): keep album description in sync (#11652) 2024-08-08 09:02:08 -05:00
Michel Heusschen
96f8050143
feat(web): improve group-tab accessibility (#11647)
feat(web): improve GroupTab accessibility
2024-08-08 07:28:24 -04:00
i-am-a-teapot
65f5118bdd
feat(web): Add stacking option to deduplication utilities (#11114)
* feat(web): Add stacking option to deduplication utilities

* Update web/src/lib/components/utilities-page/duplicates/duplicates-compare-control.svelte

Co-authored-by: Alex <alex.tran1502@gmail.com>

* Fix prettier

* Draft for server side modifications. Endpoint for stacks (PUT,DELETE)

* Fix error

* Disable stakc button if less or more than one asset selected

* Remove unnecesarry log

* Revert to first commit

* Further Revert

* Actually Revert to Origin

* Only one stack button

* Update +page.svelte

* Fix optional arguments

* Fix Prettier

* Fix Linting

* Add stack information to asset view

* clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-08-06 17:06:30 +00:00
renovate[bot]
2821e0bf95
chore(deps): update typescript-eslint monorepo to v8 (major) (#11598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-08-05 19:13:00 +00:00
Jason Rasmussen
94da5942bd
feat(web): open in map view (#11592) 2024-08-05 10:25:53 -05:00
Zack Pollard
55b31d1ce2
chore(web): fix weblate and other cleanup (#11532) 2024-08-02 13:35:47 +00:00