Commit Graph

131 Commits

Author SHA1 Message Date
martin
36e5d298db
perf(web): optimize images and modules (#7088)
* perf: optimize images and modules

* fix: tests

* fix: missing font

* fix: delay showing the loading spinner

* simplify

* simplify

* pr feedback

* chore: merge main

* fix: enum

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-18 13:18:40 -06:00
Ben McCann
3915867b1b
chore: remove svelte-preprocess (#7159) 2024-02-17 08:35:51 -05:00
Michel Heusschen
c84c0bae6c
refactor(web): websocket events (#7152) 2024-02-16 15:43:40 -05:00
Daniel Dietzler
bbf7a54c65
chore(web): upgrade to maplibre 4 (#7132)
upgrade to maplibre 4
2024-02-16 07:55:13 -06:00
Jason Rasmussen
747df0ae86
chore(web): auto sort imports (#7118)
chore(web): auto sort impomrts
2024-02-14 10:54:32 -05:00
Alex
dca1bd22df
Change license to AGPLv3 (#7046)
* Change license to AGPLv3

* Readme and documentation

* Package.json

* More replacement

* Added License MIT for previous code

* NIT

* Update LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* Update cli/LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* remote mit

---------

Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-02-12 15:31:59 +00:00
Ben McCann
28e4f8e042
chore: upgrade to Vite 5.1.1 (#7040) 2024-02-11 16:44:32 -05:00
Dmitry Brazhenko
2ee9044b6a
fix (web): panorama / 360 view - partial panorama: use photo-sphere-viewer (#6992)
* panorama viewer fixes

* prettifier

* fix
2024-02-09 10:17:51 -06:00
Ben McCann
b273ea2ba4
chore: setup rollup-plugin-visualizer and remove lodash (#6974)
* chore: setup rollup-plugin-visualizer

* chore: remove lodash

* format

* remove lodash-es from build
2024-02-08 02:27:54 -05:00
renovate[bot]
f80af067bf
chore(deps): update dependency eslint-plugin-unicorn to v51 (#6952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-06 23:53:55 +01:00
Daniel Dietzler
3092a72ac5
chore(web): remove maplibre dependency (#6948)
remove maplibre dependency
2024-02-06 15:30:52 -06:00
Jonathan Jogenfors
f44fa45aa0
chore(server,cli,web): housekeeping and stricter code style (#6751)
* 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>
2024-02-01 22:18:00 -05:00
Jason Rasmussen
2e39243670
deps: open-api generator (#6655)
* deps: open-api generator

* fix: unused sed/replace
2024-01-26 11:40:28 -05:00
Jason Rasmussen
6e066aa220
chore: svelte-kit-2 (#6103)
* chore: upgrade svelte

* chore: type imports

* chore: types
2024-01-20 12:47:41 -06:00
Jason Rasmussen
2439c5ab57
refactor: open api (#6334) 2024-01-12 07:36:27 -05:00
martin
c24d0e82bb
fix: use loading spinner for library spinner (#6116) 2024-01-01 22:10:48 -05:00
Jorge Avila
5f6d09d3da
chore(web): migrate to vitest (#5754)
* Updated vite and ts config file with vtest options and a new alias to fix the dev command error

* Updated package script and update the packages
 -- this removes jest dependencies

* Added new setup file needed in vitest in order to be able to use the jest-dom matchers in tests

* Updated deprecated utilities when using faker

* Updated test files and mocks to use vitest instead of jest

* Enabled web test check in GitHub actions

* remove babel dependencies as they are no longer needed with vitest

* move the jest config files to a folder in case we need to go back to jest

* chore: remove old files

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-01 12:36:49 -05:00
martin
f13dce7d0d
fix: warning when building web (#5680) 2023-12-13 12:02:26 -05:00
Jason Rasmussen
e5d083fe79
chore(deps): remove unused cookie type (#5385) 2023-11-29 04:24:38 +00:00
renovate[bot]
6aa356e69f
chore(deps): update web (#5381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 22:57:20 -05:00
renovate[bot]
cd1b6e6976
chore(deps): update typescript-eslint monorepo to v6 (#5343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 21:11:43 -05:00
Jason Rasmussen
0758d55dea
chore(deps): remove unused package (#5337) 2023-11-27 11:48:07 -05:00
Jason Rasmussen
3992119e32
fix(deps): prettier 3 (#5336) 2023-11-27 11:42:04 -05:00
renovate[bot]
f97dca7707
chore(deps): update web (#5239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-26 00:14:06 -06:00
renovate[bot]
106bae4a31
chore(deps): update dependency svelte-jester to v3 (#5252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 08:08:11 -06:00
renovate[bot]
b06c2b786c
chore(deps): update web (#4961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 13:46:07 -05:00
renovate[bot]
2a5cf20c9f
chore(deps): update dependency eslint-config-prettier to v9 (#5173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:39:00 -06:00
Jason Rasmussen
adae5dd758
feat(web)!: SPA (#5069)
* feat(web): SPA

* chore: remove unnecessary prune

* feat(web): merge with immich-server

* Correct method name

* fix: bugs, docs, workflows, etc.

* chore: keep dockerignore for dev

* chore: remove license

* fix: expose 2283

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-11-17 22:13:36 -06:00
renovate[bot]
b82db1edaa
chore(deps): update dependency @testing-library/jest-dom to v6 (#5073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:52:34 -06:00
renovate[bot]
69030ea9a7
chore(deps): update dependency @faker-js/faker to v8 (#5059)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 17:50:07 -06:00
Daniel Dietzler
ad4cbf20de
refactor: map (#4957)
* fix mixed up lng lat for asset map

* minor cleanup

* update packages
2023-11-11 16:32:39 -06:00
Daniel Dietzler
a147dee4b6
feat: Maplibre (#4294)
* 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>
2023-11-09 10:10:56 -06:00
Jason Rasmussen
2ad389f64e
refactor(web): material icons (#4636) 2023-10-25 13:48:25 +00:00
Alex
9a7e48eaa6
chore(web): remove flowbite (#4178)
* chore(web): remove flowbite

* Added confirmation prompt for deletion
2023-09-23 11:50:21 +07:00
Jonathan Jogenfors
acdc66413c
feat(server,web): libraries (#3124)
* feat: libraries

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-09-20 13:16:33 +02:00
Alex
88e92332ee
chore(web): organize prettier trigger order (#3538)
* chore(web): organize prettier trigger order

* fix package.json

* fix package.json
2023-08-03 16:26:48 -05:00
Dmitry Brazhenko
e071b82e8a
feat (web/server) 360 degrees Web panoramas [attempt 2] (#3412)
* commit 1 (isPanorama: boolean)

* working solution for projectiontypeenum

* fix

* format fix

* fix

* fix

* fix

* fix

* enum projectiontype

* working solution with exif

* fix

* reverted >

* fix format

* reverted auto-magic api.ts prettification

* fix

* reverted api.ts autogenerated

* api ts regenerated

* Update web/src/lib/components/assets/thumbnail/thumbnail.svelte

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* Update web/src/lib/components/asset-viewer/asset-viewer.svelte

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* exifProjectionType

* Update server/src/microservices/processors/metadata-extraction.processor.ts

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* projectionType?: string = ProjectionType.NONE;

* not null

* projectionType!: ProjectionType;

* opeapi generator fix

* fixes

* fix

* fix

* generate api

* asset.exifInifo?.projectionType

* Update server/src/domain/asset/response-dto/exif-response.dto.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* Update server/src/microservices/processors/metadata-extraction.processor.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* enum -> varchar;projectiontypeenum->projectiontype

* asset-viewer fixed prettiffier

* @Column({}) single line

* enum | string

* make api

* enum | string

* enum | str fix

* fix

* chore: use string instead of enum

* chore: open api

* fix: checks

---------

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-07-27 23:29:09 -05:00
Alex
7316ad5a72
chore(web): sort tailwindcss class automatically (#3330) 2023-07-18 13:19:39 -05:00
Thomas
8045fd3f14
fix(web): remove dependency on rxjs (#3301)
The dependency on rxjs has been removed in favour of iterators as it's clearer
and the nature of the workload is inherently non-reactive. The uncaught error
when the list of files is empty has also been implicitly fixed by this change.

Fixes: #3300
2023-07-17 11:22:29 -05:00
faupau
7595d01956
feat(web): set asset as profile picture (#3106)
* add profile-image-cropper component

* add dom-to-image library

* add store to update user profile picture when set

* dom-to-image

* remove console.logs, add svelte binding

* fix format, unused vars

* change caching of profile image

* set hash after profile image change

* remove unnecessary store

* remove unecesarry changes

* set types/dom-to-image as devDependency

* remove unecessary type declarations
use handleError

* remove error notification
which is already handled by handleError

* Revert "set types/dom-to-image as devDependency"

This reverts commit ca8b3ed1bb.

* add types do dev dependencies

* use on:close instead of on:close={()=>...}

* add newline

* sort imports

* bind photo-viewer imgElement directly, not working

* remove console.log, fix binding

* make imgElement optional

* fix element as optional prop

* fix type

* check for transparency

* small changes

* fix img.decode

* add bg, remove publicsharedkey

* fix omit publicSharedKey

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-07-15 20:31:33 -05:00
Alex
d5b96c0257
chore(web): Update to Svelte 4 (#3196)
* 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>
2023-07-15 20:13:04 -05:00
Keszei Balázs
454fb106d2
Updated OSM tile URLs immich-app/immich#2874 (#2961)
Co-authored-by: Balazs Keszei <balazs.keszei@clbr.hu>
2023-06-26 08:47:37 -05:00
Thomas
df74111427
chore(web): fade between thumbhash and thumbnail (#2856) 2023-06-19 16:21:06 -05:00
Covalent
3e804f16df
feat(web,server): add thumbhash support (#2649)
* 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>
2023-06-17 22:22:31 -05:00
renovate[bot]
5d7d615433
chore(deps): update web (#2806)
* chore(deps): update web

* fixed svelte-check being a nuisance

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-06-16 12:45:05 -05:00
Sergey Kondrikov
5764bf16f3
feat(web, server): Implement justified layout for AssetGrid (#2666)
* Implement justified layout for timeline

* Add withoutThumbs field to GetTimelineLayotDto

* Back to rough estimation of initial buckets height

* Remove getTimelineLayout endpoint

* Estimate rough viewport height better

* Fix shift/jump issues while scrolling up

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-06-08 10:22:45 -05:00
Michel Heusschen
9807f76aff
chore(web): improve type checking (#2644)
* fix(web): use id instead of assetId

* chore(web): improve type checking

* fix test jobs

* improve type checking and resolve errors
2023-06-02 08:55:08 -05:00
Manuel Taberna
e7122d7a72
feat(web): add zoom to photo viewer (#2577)
* feat(web): add zoom to photo viewer

* reduce asset viewer next/prev button div width

* add wrap to block statement
2023-05-29 09:12:58 -05:00
Alex
b4d312efb6
fix(web): revert justify layout - improve gallery view load time (#2522)
* fix(web): revert justify layout - improve gallery view load time

* Remove package
2023-05-22 21:01:32 -05:00
Michel Heusschen
c7c0ef6abc
chore(web): switch to eslint-plugin-svelte package (#2467) 2023-05-18 10:43:09 -05:00
Michel Heusschen
98b9d815a6
chore(web): update svelte related packages (#2419) 2023-05-10 04:58:53 -05:00
Matthias Rupp
65daf342df
feat(web): Global map showing all assets with geo information (#2355)
* First crude implementation of the global asset map in web

* Use single DOM element for all markers

* Minor layout changes

* Refactor

* Add asset viewer

* Add API endpoint that returns only assets with location information (Thanks @EPP100)

* Remove sidebar icon flip

* Add dark theme support

* Center map to most recent asset

* Allow cluster viewing

* Fix linter errors

* Add newlines

* Fix ts errors

* Fix eslint error

* Run prettier

* Server code style

* Fix openapi mobile code generation issues

* Map markers test

* fix: Support video thumbnails

* Update API

* Review suggestions

* Review suggestions

* Linter error

* Chage mapMarker endpoint to map-marker

* Clean up leaflet imports
2023-05-05 20:33:30 -05:00
Alex
91e27affeb
feat(web): add justify layout for GalleryViewer (#2207)
* Implemented justify layout

* Fixed issue with asset selection does not show style for selected assets

* pr feedback

* PR feedback

* fix test

* Added flip animation
2023-04-08 20:40:37 -05:00
Michel Heusschen
641c05c6fe
chore(web): update dependencies (#1877)
* chore(web): update dependencies

* remove invalid alt attribute
2023-02-26 13:18:26 -06:00
Michel Heusschen
10cb612fb1
feat(web): theme/locale preferences and improve SSR (#1832) 2023-02-22 11:53:08 -06:00
Michel Heusschen
bf6f94f69f
feat(web): only show copy image when supported (#1776) 2023-02-17 10:41:52 -06:00
Michel Heusschen
575154fdea
refactor(web): use cookies interface (#1777) 2023-02-17 10:37:26 -06:00
Alex
db67093391
Revert "feat(web): avoid duplicate call + small refactor (#1731)" (#1750)
This reverts commit 53fb3a36f7.
2023-02-13 16:27:15 -06:00
Alex
2c1aab154a
feat(web): remove upload file limit with rxjs and improve import size (#1743)
* feat(web): remove upload file limit with rxjs

* refactor: remove exif

* refactor: remove unused code

* fix: import lodash-es instead of lodash

* refactor: optimize import
2023-02-13 13:18:11 -06:00
Michel Heusschen
53fb3a36f7
feat(web): avoid duplicate call + small refactor (#1731) 2023-02-11 22:36:26 -06:00
Michel Heusschen
d91cc3616b
feat(web): make assets cachable (#1724) 2023-02-10 16:01:35 -06:00
Zack Pollard
43da8c2a72
chore: reduce docker image size (#1523)
* chore: remove @tensorflow/tfjs-node-gpu as it is unused

* chore: remove ffmpeg from machine-learning docker image

* chore: remove unneeded dependencies + move dev dependencies in server

* chore: reduce server image size

* chore: machine-learning remove extraneous dependencies

* chore: web remove extraneous dependencies

* chore: web Dockerfile reduce production image size

* chore: add exiftool-vendored.pl as a dependency
2023-02-02 21:28:34 -06:00
Jason Rasmussen
755a1331da
chore(web,server): run code coverage reports (#1313)
* chore(web,server): run code coverage reports

* chore(tests): fail test check if coverage drops

* chore: disable e2e until they are fixed

* chore(web): coverage threshold
2023-01-12 16:07:57 -06:00
Jason Rasmussen
bd838a71d1
feat(web,server): disable password login (#1223)
* feat(web,server): disable password login

* chore: unit tests

* chore: fix import

* chore: linting

* feat(cli): server command for enable/disable password login

* chore: update docs

* feat(web): confirm dialogue

* chore: linting

* chore: linting

* chore: linting

* chore: linting

* chore: linting

* chore: fix web test

* chore: server unit tests
2023-01-09 16:32:58 -05:00
Alex
03e86ed147
chore(web) update SvelteKit to 1.0.0 (#1110) 2022-12-16 20:51:17 -06:00
Alex
c754c860fd
feat(server) user-defined storage structure (#1098)
[Breaking] newly uploaded file will conform to the default structure of `{uploadLocation}/{userId}/year/year-month-day/filename.ext`
2022-12-16 14:26:12 -06:00
Kiel Hurley
5f2b75997f
feat(web): Localize dates and numbers (#1056) 2022-12-04 09:35:20 -06:00
Fynn Petersen-Frey
dc2c92e721
feat(server/web): download entire album as zip archive (#897)
* feat(server/web): download entire album as zip archive

* fix: remove duplicate API call

* disable ZIP compression (images are already compressed)
2022-10-30 12:38:04 -05:00
bo0tzz
b0f10b1851
feat(web) add handler for ctrl-c copying images from viewer (#881) 2022-10-28 17:18:28 -05:00
Jaime Baez
6725954b70 Add web check / lint npm commands
`svelte-check` returns some "hints" that can be ignored since some
are not true and others are not relevant.
2022-09-08 17:17:15 +02:00
Jaime Baez
f476bd985b Add AlbumCard UI tests
- add libraries for component UI testing
- implement AlbumCard UI tests
2022-09-07 16:00:57 +02:00
Jaime Baez
645bd8a109
Add web test setup (#597)
* Extract logic from Albums page

- move "albums" page logic to `albums-bloc`
- add types to AlbumCard custom events

* Implement some album-bloc unit-tests

- add libraries for testing
- add album factory
- changes in albums-bloc API

* Add rest of albums-bloc test

Cleanup and remove console logs

* Refactor `isShowContextMenu` writable to derived
2022-09-07 05:20:19 -05:00
Alex
db2ed2d881
Migrate SvelteKit to the latest version 431 (#526) 2022-08-24 21:10:48 -07:00
Alex
7134f93eb8
Add ablum feature to web (#352)
* Added album page

* Refactor sidebar

* Added album assets count info

* Added album viewer page

* Refactor album sorting

* Fixed incorrectly showing selected asset in album selection

* Improve fetching speed with prefetch

* Refactor to use ImmichThubmnail component for all

* Update to the latest version of Svelte

* Implement fixed app bar in album viewer

* Added shared user avatar

* Correctly get all owned albums, including shared
2022-07-15 23:18:17 -05:00
Zack Pollard
1a3d05ffc3
chore: improve default setup (#234)
* chore: remove UPLOAD_LOCATION as it isn't used in the server

* docker: remove network in docker compose as docker creates one by default

* nginx: update reverse proxy to put web at root and api at /api

* docker: remove unneeded exposed ports and docker network

Align dev setup with prod, but with ports exposed for direct connection
Most communication between services happens on the internal network, so we don't need to expose all these services.
With the nginx changes, the api and web panel are both server through the reverse proxy on / for web and /api for the API.
The only service that should expose ports is nginx as that is the entrypoint to the application.

* chore: remove CORS now we serve the api on /api in the default setup

* docs: update README.md to include /api

* Fixed docket-compose file for dev environment and websocket on web and mobile

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2022-06-23 22:18:50 -05:00
Alex
1e3464fe47
Feature - Add upload functionality on Web (#231)
* Added file selector

* Extract metadata to upload files to the web

* Added request for uploading

* Generate jpeg/Webp thumbnail for asset uploaded without thumbnail data

* Added generating thumbnail for video and WebSocket broadcast after thumbnail is generated

* Added video length extraction

* Added Uploading Panel

* Added upload progress store and styling the uploaded asset

* Added condition to only show upload panel when there is upload in progress

* Remove asset from the upload list after successfully uploading

* Added WebSocket to listen to upload event on the web

* Added mechanism to check for existing assets before uploading on the web

* Added test workflow

* Update readme
2022-06-19 08:16:35 -05:00
Alex
ab6909bfbd
20 video conversion for web view (#200)
* Added job for video conversion every 1 minute

* Handle get video as mp4 on the web

* Auto play video on web on hovered

* Added video player

* Added animation and video duration to thumbnail player

* Fixed issue with video not playing on hover

* Added animation when loading thumbnail
2022-06-04 18:34:11 -05:00
Alex
53c3c916a6
View assets detail and download operation (#198)
* Fixed not displaying default user profile picture

* Added buttons to close viewer and micro-interaction for navigating assets left, right

* Add additional buttons to the control bar

* Display EXIF info

* Added map to detail info

* Handle user input keyboard

* Fixed incorrect file name when downloading multiple files

* Implemented download panel
2022-06-03 11:04:30 -05:00
Alex
ce06af0c9b
Fixed lodash library not invoking in production build (#171)
* Added staging docker-compose file
* Use lodash-es and remove hydration option on photos page fixed the problem
2022-05-22 04:48:38 -05:00
Alex
6023c3c624
Show assets on web (#168)
* Implemented lazy loading thumbnail
* Display assets as date-time grouping
* Update Readme
* Modify GitHub action to run from the latest update
2022-05-21 16:50:56 -05:00
Alex
a779c3803c
Add web interface with admin functionality (#167) 2022-05-21 02:23:55 -05:00