From c9347157f08225ac064aac963b7a32ff0ef355ed Mon Sep 17 00:00:00 2001 From: ildyria Date: Mon, 16 Jan 2023 17:58:55 +0100 Subject: [PATCH] WIP --- app/Enum/Livewire/PageMode.php | 2 + app/Http/Livewire/Components/Header.php | 52 ++ app/Http/Livewire/Index.php | 20 + app/Http/Livewire/Pages/Gallery.php | 24 +- app/Http/Livewire/Pages/Settings.php | 15 + app/Http/Livewire/Traits/UrlChange.php | 31 + resources/views/components/header.blade.php | 89 --- .../livewire/components/header.blade.php | 88 +++ .../livewire/components/left-menu.blade.php | 2 +- resources/views/livewire/index.blade.php | 2 + .../views/livewire/login-modal.blade.php | 28 - .../views/livewire/pages/gallery.blade.php | 2 +- .../views/livewire/pages/settings.blade.php | 657 ++++++++++-------- 13 files changed, 570 insertions(+), 442 deletions(-) create mode 100644 app/Http/Livewire/Components/Header.php create mode 100644 app/Http/Livewire/Traits/UrlChange.php delete mode 100644 resources/views/components/header.blade.php create mode 100644 resources/views/livewire/components/header.blade.php delete mode 100644 resources/views/livewire/login-modal.blade.php diff --git a/app/Enum/Livewire/PageMode.php b/app/Enum/Livewire/PageMode.php index 5cbf3ef0f2..8a581404a5 100644 --- a/app/Enum/Livewire/PageMode.php +++ b/app/Enum/Livewire/PageMode.php @@ -12,4 +12,6 @@ enum PageMode: string implements Wireable case GALLERY = 'gallery'; case MAP = 'map'; case SETTINGS = 'settings'; + case LOGS = 'logs'; + case DIAGNOSTICS = 'diagnostics'; } diff --git a/app/Http/Livewire/Components/Header.php b/app/Http/Livewire/Components/Header.php new file mode 100644 index 0000000000..08279266a4 --- /dev/null +++ b/app/Http/Livewire/Components/Header.php @@ -0,0 +1,52 @@ +openModal('forms.login'); + } +} \ No newline at end of file diff --git a/app/Http/Livewire/Index.php b/app/Http/Livewire/Index.php index 7a31686fca..c253809e95 100644 --- a/app/Http/Livewire/Index.php +++ b/app/Http/Livewire/Index.php @@ -5,6 +5,7 @@ use App\Enum\Livewire\PageMode; use App\Factories\AlbumFactory; use App\Http\Controllers\IndexController; +use App\Http\Livewire\Traits\UrlChange; use App\Models\Configs; use App\Models\Extensions\BaseAlbum; use App\Models\Photo; @@ -13,6 +14,8 @@ class Index extends Component { + use UrlChange; + public PageMode $mode; public ?string $albumId = null; public ?string $photoId = null; @@ -20,6 +23,7 @@ class Index extends Component // listeners of click events protected $listeners = [ 'openLeftMenu', + 'openPage', 'reloadPage', ]; @@ -87,6 +91,22 @@ public function openLeftMenu(): void $this->emitTo('components.left-menu', 'open'); } + /** + * Open page. + * + * @return void + */ + public function openPage(string $page): void + { + $this->albumId = null; + $this->photoId = null; + $this->mode = PageMode::from($page); + + // update URL + $this->emitUrlChange($this->mode, $this->albumId ?? '', $this->photoId ?? ''); + + } + /* ** This triggers a full reloading of the page */ diff --git a/app/Http/Livewire/Pages/Gallery.php b/app/Http/Livewire/Pages/Gallery.php index a112600153..d055e081d7 100644 --- a/app/Http/Livewire/Pages/Gallery.php +++ b/app/Http/Livewire/Pages/Gallery.php @@ -8,6 +8,7 @@ use App\Http\Controllers\IndexController; use App\Http\Livewire\Traits\AlbumProperty; use App\Http\Livewire\Traits\InteractWithModal; +use App\Http\Livewire\Traits\UrlChange; use App\Models\Configs; use App\Models\Extensions\BaseAlbum; use App\Models\Photo; @@ -21,6 +22,7 @@ class Gallery extends Component * Add interaction with modal */ use InteractWithModal; + use UrlChange; /** * Because AbstractAlbum is an Interface, it is not possible to make it @@ -48,7 +50,7 @@ class Gallery extends Component /** * @var array listeners of click events */ - protected $listeners = ['openAlbum', 'openPhoto', 'back', 'reloadPage' => '$refresh']; + protected $listeners = ['openAlbum', 'openPhoto', 'back']; /** * While in most Laravel Controller calls we use the constructor, @@ -170,7 +172,7 @@ public function openAlbum(string $albumId) { $this->albumId = $albumId; $this->load(); - $this->emit('urlChange', route('livewire_index', ['page' => PageMode::GALLERY, 'albumId' => $this->albumId, 'photoId' => $this->photoId])); + $this->emitUrlChange(PageMode::GALLERY, $this->albumId, $this->photoId); } /** @@ -185,7 +187,7 @@ public function openPhoto(string $photoId) $this->photoId = $photoId; // This ensures that the history has been updated - $this->emit('urlChange', route('livewire_index', ['page' => PageMode::GALLERY, 'albumId' => $this->albumId, 'photoId' => $this->photoId])); + $this->emitUrlChange(PageMode::GALLERY, $this->albumId, $this->photoId); } /** @@ -205,21 +207,7 @@ public function back() } // This ensures that the history has been updated - $this->emit('urlChange', route('livewire_index', [ - 'page' => PageMode::GALLERY, - 'albumId' => $this->albumId ?? '', - 'photoId' => $this->photoId ?? '', - ])); - } - - /** - * Open a login modal box. - * - * @return void - */ - public function openLoginModal(): void - { - $this->openModal('forms.login'); + $this->emitUrlChange(PageMode::GALLERY, $this->albumId ?? '', $this->photoId ?? ''); } /** diff --git a/app/Http/Livewire/Pages/Settings.php b/app/Http/Livewire/Pages/Settings.php index deceedb773..9bbcf75635 100644 --- a/app/Http/Livewire/Pages/Settings.php +++ b/app/Http/Livewire/Pages/Settings.php @@ -2,7 +2,9 @@ namespace App\Http\Livewire\Pages; +use App\Enum\Livewire\PageMode; use App\Http\Livewire\Traits\InteractWithModal; +use Illuminate\View\View; use Livewire\Component; class Settings extends Component @@ -11,4 +13,17 @@ class Settings extends Component * Add interaction with modal */ use InteractWithModal; + + public PageMode $mode = PageMode::SETTINGS; + + /** + * Rendering of the front-end. + * + * @return View + */ + public function render(): View + { + return view('livewire.pages.settings'); + } + } diff --git a/app/Http/Livewire/Traits/UrlChange.php b/app/Http/Livewire/Traits/UrlChange.php new file mode 100644 index 0000000000..d656f64458 --- /dev/null +++ b/app/Http/Livewire/Traits/UrlChange.php @@ -0,0 +1,31 @@ +emit('urlChange', route('livewire_index', ['page' => $page, 'albumId' => $albumId, 'photoId' => $photoId])); + } + +} \ No newline at end of file diff --git a/resources/views/components/header.blade.php b/resources/views/components/header.blade.php deleted file mode 100644 index 39d348e4d6..0000000000 --- a/resources/views/components/header.blade.php +++ /dev/null @@ -1,89 +0,0 @@ -@props([ - 'mode' => '', - 'title' => '', - 'album' => null, - // 'hidden' // - ]) -
- @if ($mode === App\Enum\Livewire\GalleryMode::ALBUMS ) - @if (Auth::user() === null) -
- - {{ $title }} -
- - × -
- -
- @else -
- - {{ $title }} -
- - × -
- - {{-- --}} - @can(App\Policies\AlbumPolicy::CAN_UPLOAD, [App\Contracts\Models\AbstractAlbum::class, null]) - - @endcan -
- @endif - @elseif ($mode === App\Enum\Livewire\GalleryMode::ALBUM) -
- - {{ $title }} - - @can(App\Policies\AlbumPolicy::CAN_SHARE_WITH_USERS, [App\Contracts\Models\AbstractAlbum::class, $album]) - - @endcan - @can(App\Policies\AlbumPolicy::CAN_EDIT, [App\Contracts\Models\AbstractAlbum::class, $album]) - - @endcan - - @can(App\Policies\AlbumPolicy::CAN_DOWNLOAD, [App\Contracts\Models\AbstractAlbum::class, $album]) - - @endcan - - - @can(App\Policies\AlbumPolicy::CAN_EDIT, [App\Contracts\Models\AbstractAlbum::class, $album]) - - - @endcan - - - - -
- @elseif ($mode === App\Enum\Livewire\GalleryMode::PHOTO) -
- - - - - - - - - - - - - - - -
- @elseif ($mode === App\Enum\Livewire\GalleryMode::MAP) -
- - -
- @elseif ($mode === App\Enum\Livewire\GalleryMode::SETTINGS) -
- - -
- @endif -
\ No newline at end of file diff --git a/resources/views/livewire/components/header.blade.php b/resources/views/livewire/components/header.blade.php new file mode 100644 index 0000000000..21399e3546 --- /dev/null +++ b/resources/views/livewire/components/header.blade.php @@ -0,0 +1,88 @@ +
$is_hidden + ])> + @if ($gallery_mode === App\Enum\Livewire\GalleryMode::ALBUMS) + @if (Auth::user() === null) + + @else +
+ + {{ $title }} +
+ + × +
+ + {{-- --}} + @can(App\Policies\AlbumPolicy::CAN_UPLOAD, [App\Contracts\Models\AbstractAlbum::class, null]) + + @endcan +
+ @endif + @elseif ($gallery_mode === App\Enum\Livewire\GalleryMode::ALBUM) +
+ + {{ $title }} + + @can(App\Policies\AlbumPolicy::CAN_SHARE_WITH_USERS, [App\Contracts\Models\AbstractAlbum::class, $this->album]) + + @endcan + @can(App\Policies\AlbumPolicy::CAN_EDIT, [App\Contracts\Models\AbstractAlbum::class, $this->album]) + + @endcan + + @can(App\Policies\AlbumPolicy::CAN_DOWNLOAD, [App\Contracts\Models\AbstractAlbum::class, $this->album]) + + @endcan + + + @can(App\Policies\AlbumPolicy::CAN_EDIT, [App\Contracts\Models\AbstractAlbum::class, $this->album]) + + + @endcan + + + + +
+ @elseif ($gallery_mode === App\Enum\Livewire\GalleryMode::PHOTO) +
+ + + + + + + + + + + + + + + +
+ @elseif ($gallery_mode === App\Enum\Livewire\GalleryMode::MAP) +
+ + +
+ @elseif ($page_mode === App\Enum\Livewire\PageMode::SETTINGS) +
+ + {{ $title }} +
+ @endif +
\ No newline at end of file diff --git a/resources/views/livewire/components/left-menu.blade.php b/resources/views/livewire/components/left-menu.blade.php index 1c520c52d9..76495ded54 100644 --- a/resources/views/livewire/components/left-menu.blade.php +++ b/resources/views/livewire/components/left-menu.blade.php @@ -3,7 +3,7 @@
{{ Lang::get("CLOSE") }} - {{ Lang::get("SETTINGS") }} + {{ Lang::get("SETTINGS") }} {{ Lang::get("USERS") }} {{ Lang::get("U2F") }} {{ Lang::get("SHARING") }} diff --git a/resources/views/livewire/index.blade.php b/resources/views/livewire/index.blade.php index e39215a439..b3b4c78dc6 100644 --- a/resources/views/livewire/index.blade.php +++ b/resources/views/livewire/index.blade.php @@ -5,6 +5,8 @@ @if($mode === App\Enum\Livewire\PageMode::GALLERY) + @elseif($mode === App\Enum\Livewire\PageMode::SETTINGS) + @else DO NOTHING FOR NOW; @endif diff --git a/resources/views/livewire/login-modal.blade.php b/resources/views/livewire/login-modal.blade.php deleted file mode 100644 index a64e2b24ef..0000000000 --- a/resources/views/livewire/login-modal.blade.php +++ /dev/null @@ -1,28 +0,0 @@ -
- -
\ No newline at end of file diff --git a/resources/views/livewire/pages/gallery.blade.php b/resources/views/livewire/pages/gallery.blade.php index 5d32aa2dcd..f8b7abdf8c 100644 --- a/resources/views/livewire/pages/gallery.blade.php +++ b/resources/views/livewire/pages/gallery.blade.php @@ -1,6 +1,6 @@
- + + + -
- -
-
-
-

Enter your current password: - -

-

Your credentials will be changed to the following: - - - -

- -
-
-
-

- Sort albums by - - in an - - order. -

-

- Sort photos by - - in an - - order. -

- -
+
+
+ +
+ +
-
-

In order to import photos from your Dropbox, you need a valid drop-ins app key from their website. Generate yourself a personal key and enter it below: - -

- -
+
+
+

+ Enter your current password: + +

+

+ Your credentials will be changed to the following: + + + +

+ +
+
-
-

- Change Lychee language for: - - - -

- -
-
-

Default license for new uploads: - - - -
-Need help choosing? -

- -
+
+

+ Sort albums by + + in an + + order. +

+

+ Sort photos by + + in an + + order. +

+ +
+ +
+

In order to import photos from your Dropbox, you need a valid drop-ins app key from their website. Generate yourself a personal key and enter it below: + +

+ +
+ +
+

+ Change Lychee language for: + + + +

+ +
+ +
+

+ Default license for new uploads: + + + +
+ Need help choosing? +

+ +
+ +
+

+ Layout of photos: + + + +

+ +
+ +
+

+ Public search allowed: + +

+
+ +
+

+ Album decorations: + + + +

+

+ Orientation of album decorations: + + + +

+ +
-
-

Layout of photos: - - - -

- -
+
+

+ Photo overlay: + + + +

+ +
-
-

Public search allowed: - -

-
+
+

+ Enable maps (provided by OpenStreetMap): + +

+
-
-

Album decorations: - - - -

Orientation of album decorations: - - - -

-
+
+

+ Enable maps for public albums (provided by OpenStreetMap): + +

+
-
-

Photo overlay: - - - -

-
+
+

+ Provider of OpenStreetMap tiles: + + + +

+ +
-
-

Enable maps (provided by OpenStreetMap): - -

-
+
+

+ Include photos of subalbums on map: + +

+
-
-

Enable maps for public albums (provided by OpenStreetMap): - -

-
+
+

+ Decode GPS data into location name + +

+
-
-

Provider of OpenStreetMap tiles: - - - -

-
+
+

+ Show location name + +

+
-
-

Include photos of subalbums on map: - -

-
+
+

+ Show location name for public mode + +

+
-
-

Decode GPS data into location name - -

-
+
+

+ Make Sensitive albums visible by default. + +

+

+ If the album is public, it is still accessible, just hidden from the view and can be revealed by pressing H. +

+
-
-

Show location name - -

-
+
+

+ Send new photos notification emails. + +

+
-
-

Show location name for public mode - -

-
+
+

+ Personalize CSS: +

+ + +
-
-

Make Sensitive albums visible by default. -

-

If the album is public, it is still accessible, just hidden from the view and can be revealed by pressing H. -

-
+
+ More +
+
+
-
-

Send new photos notification emails. - -

-
+ -
-

Personalize CSS:

- - -
-
- More -
-
-
- -
\ No newline at end of file