576 Commits

Author SHA1 Message Date
Ben
0a552d2bfa
feat(web): responsive top navigation (#12373)
- icons fit in mobile
- guarantee the search bar space in all screen sizes
- fix the storage bar being too wide
2024-09-09 10:29:23 -04:00
Jason Rasmussen
2554cc96b0
feat(web): logout of all tabs (#12407) 2024-09-07 13:21:05 -04:00
Jason Rasmussen
d6729c50c9
fix: only load rtl plugin once (#12365)
fix(web): only load rtl plugin once
2024-09-05 14:29:41 -04:00
Carsten Otto
259bc8a6b0
fix(web): only show valid time zones/offsets, update list based on date (#12315)
fix(web): only show valid time zones / offsets, update list based on date

this also prefers the local time zone over others with the same offset
2024-09-05 09:12:22 -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
Jason Rasmussen
f4ec842577
refactor(web): upload panel (#12326)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-09-04 23:38:55 -04:00
Jason Rasmussen
720412645f
feat(web): sort albums in modal (#12331) 2024-09-04 18:21:21 -04:00
Alex
0a8bd7dc66
fix(web): correct color for active tree item (#12318)
* fix(web): correct color for active tree item

* remove white space
2024-09-04 14:07:32 -05:00
Zack Pollard
1783dfd393
fix(web): handle RTL languages in the map component (#12308) 2024-09-04 17:02:37 +01:00
Carsten Otto
4bf82fb4c4
fix(web): retain selected time zone offset also for +00:00 (#12310)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-09-04 14:47:40 +00:00
Jason Rasmussen
69cedef772
chore: remove repair sidebar item (#12294) 2024-09-03 22:54:13 -05:00
Jason Rasmussen
c7ddd0b44a
fix(web): paste event in input fields (#12297) 2024-09-03 22:53:34 -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
59507e557e
fix(web): auto grow area extend when there is no content (#12197)
* fix(web): text area expand when there is no description

* use correct content
2024-09-02 14:41:19 -05:00
Ben
4cc11efd04
fix(web): hide tree view text overflow with ellipsis (#12161)
fix(web): hide tree view overflow with ellipsis
2024-08-30 17:32:12 -04: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
Ben
72ab664936
feat(web): announce notifications to screen readers (#12071) 2024-08-27 17:13:17 -05:00
Ben
9894b9513b
fix(web): shared link expiration date accessibility (#12060)
- use native select - shows focus, automatically has keyboard
  navigation, accessible for screen readers
- remove DropdownButton component
- fix dropdown styling in Safari
2024-08-26 21:05:23 -04:00
Alex
f4371578f5
fix(web): show supporter badge for account less than 14 days (#12058) 2024-08-26 17:20:50 +00:00
Ben
96056208fc
fix(web): announce current theme to screen reader users (#12039) 2024-08-25 18:50:54 -05:00
Christopher Makarem
b41af65997
fix: align camera model drop down behavior with other drop downs on web and mobile (#11951)
* fix(web): align search filter behavior to show all camera models

* fix(mobile): align search filter behavior to clear camera model when make is set

* (mobile) correctly clear the model controller

* fix(mobile) re-add text controller to dropdown

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-08-25 05:00:15 +00:00
Ben
c14e2914f8
fix(web): rating stars accessibility (#11966)
* fix(web): exif ratings accessibility

* chore: add tests

* fix: eslint errors

* fix: clean up issues from changes in use:focusOutside
2024-08-23 12:34:12 -04: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
Jason Rasmussen
817f42aef7
fix(web): upload on file paste (#11922) 2024-08-20 08:25:26 -05:00
Jason Rasmussen
ef9a06be5c
fix(server): album statistics endpoint (#11924) 2024-08-20 07:50:36 -04:00
simkli
5ab92f346a
feat(web): drag and drop or paste directories for upload (#11879)
feat(web): support for directories drag and drop

Allows directories to be drag and dropped or pasted for upload.
2024-08-18 09:38:21 -05:00
Snowknight26
bd42e05152
fix(web): correctly populate the camera model search dropdown (#11883) 2024-08-18 08:13:41 -04:00
Michel Heusschen
c9f1304bce
fix(web): show camera make in search options after searching (#11884) 2024-08-18 08:12:10 -04:00
Michel Heusschen
5ef9a8ff8d
feat(web): pasting coordinates (#11866) 2024-08-17 11:03:34 -04: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
Christoph Suter
f33dbdfe9a
feat(web): add Exif-Rating (#11580)
* Add Exif-Rating

* Integrate star rating as own component

* Add e2e tests for rating and validation

* Rename component and async handleChangeRating

* Display rating can be enabled in app settings

* Correct i18n reference

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Star rating: change from slider to buttons

* Star rating for clarity

* Design updates.

* Renaming and code optimization

* chore: clean up

* chore: e2e formatting

* light mode border and default value

---------

Co-authored-by: Christoph Suter <christoph@suter-burri.ch>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-08-09 17:45:52 +00:00
Michel Heusschen
96481aae5d
refactor(web): supporter badge (#11656)
* refactor(web): supporter badge

* add style lang
2024-08-08 14:02:44 -04:00
Zack Pollard
14689462f8
feat: change web asset detail map to zoom level 12.5 (#11643) 2024-08-07 23:38:02 +01: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
oidq
37cc6fbf27
fix(web): prevent change-location suggestion race-condition (#11523)
When debouncer activated on deletion, the handleSearchPlaces() function
would fire a request with empty query. UI would then show Immich API error.
2024-08-02 05:52:17 +00:00
Justin Forseth
d3a5490e71
feat(server): search unknown place (#10866)
* Allow submission of null country

* Update searchAssetBuilder to handle nulls

andWhere({country:null}) produces `"exifInfo"."country" = NULL`. We want
`"exifInfo"."country" IS NULL`, so we have to treat NULL as a special
case

* Allow null country in frontend

* Make the query code a bit more straightforward

* Remove unused brackets import

* Remove log message

* Don't change whitespace for no reason

* Fix prettier style issue

* Update search.dto.ts validators per @jrasm91's recommendation

* Update api types

* Combine null country and state into one guard clause

* chore: clean up

* chore: add e2e for null/empty city, state, country search

* refactor: server returns suggestion for null values

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-02 03:27:40 +00:00
Michel Heusschen
281cfc95a4
refactor(web): asset viewer actions (#11449)
* refactor(web): asset viewer actions

* motion photo slot and more refactoring
2024-07-31 12:25:38 -04:00
Michel Heusschen
0237f9baa3
feat(web): more localized number formatting (#11401) 2024-07-29 10:38:27 -04:00
Michel Heusschen
2e059bfbfd
fix(web): avoid nesting buttons inside links (#11425) 2024-07-29 10:36:10 -04:00
waclaw66
a321db9f48
fix(web): translation leftovers (#11412)
fix: new album
2024-07-28 15:43:25 -05:00
Jan
e1ac73718c
feat(web): Duplicate-Page shortcut changes (#11183)
* duplicate page assign other shortcut keys, add 'open image' shortcut

* add shortcut info page to duplicates with own list of keys

* edit translations, add translationkeys

* format fix

* remove typo

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-07-26 21:47:51 +00:00
Ben
a78eeb9b9c
feat(web): search bar keyboard accessibility (#11323)
* feat(web): search bar keyboard accessibility

* fix: adjust aria attributes

* fix: safari announcing the correct option count

* minor adjustments

- CircleIconButton disabled cursor
- more generic selection handler

* fix: more subtle border color in dark mode

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-07-26 16:45:15 -05:00
martin
86b3e3ee13
fix(web): responsive design when selecting assets in an album (#11169)
fix: responsive design when selecting assets in an album
2024-07-26 16:33:20 -05:00
Michel Heusschen
ce15cf6065
fix(web): buy immich translations (#11379) 2024-07-26 13:41:59 -05:00