Skip to content

Commit

Permalink
Fix error when opening tag album (#2492)
Browse files Browse the repository at this point in the history
  • Loading branch information
ildyria authored Jul 5, 2024
1 parent 9065072 commit e52e412
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 1 deletion.
12 changes: 12 additions & 0 deletions app/Livewire/Components/Forms/Album/Properties.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use App\Livewire\Traits\UseValidator;
use App\Models\Album as ModelsAlbum;
use App\Models\Extensions\BaseAlbum;
use App\Models\TagAlbum;
use App\Policies\AlbumPolicy;
use App\Rules\CopyrightRule;
use App\Rules\TitleRule;
Expand All @@ -38,6 +39,7 @@ class Properties extends Component

#[Locked] public string $albumID;
#[Locked] public bool $is_model_album;
#[Locked] public bool $is_tag_album;
public string $title; // ! wired
public string $description; // ! wired
public string $photo_sorting_column = ''; // ! wired
Expand All @@ -47,6 +49,7 @@ class Properties extends Component
public string $album_aspect_ratio = ''; // ! wired
public string $license = 'none'; // ! wired
public string $copyright = ''; // ! wired
public ?string $tag = ''; // ! wired

/**
* This is the equivalent of the constructor for Livewire Components.
Expand All @@ -60,6 +63,7 @@ public function mount(BaseAlbum $album): void
Gate::authorize(AlbumPolicy::CAN_EDIT, [AbstractAlbum::class, $album]);

$this->is_model_album = $album instanceof ModelsAlbum;
$this->is_tag_album = $album instanceof TagAlbum;

$this->albumID = $album->id;
$this->title = $album->title;
Expand All @@ -74,6 +78,10 @@ public function mount(BaseAlbum $album): void
$this->album_sorting_order = $album->album_sorting?->order->value ?? '';
$this->album_aspect_ratio = $album->album_thumb_aspect_ratio?->value ?? '';
}
if ($this->is_tag_album) {
/** @var TagAlbum $album */
$this->tag = implode(', ', $album->show_tags);
}
}

/**
Expand Down Expand Up @@ -132,6 +140,10 @@ public function submit(AlbumFactory $albumFactory): void
$baseAlbum->album_sorting = $albumSortingCriterion;
$baseAlbum->album_thumb_aspect_ratio = AspectRatioType::tryFrom($this->album_aspect_ratio);
}
if ($this->is_tag_album) {
/** @var TagAlbum $baseAlbum */
$baseAlbum->show_tags = collect(explode(',', $this->tag))->map(fn ($v) => trim($v))->filter(fn ($v) => $v !== '')->all();
}

$this->notify(__('lychee.CHANGE_SUCCESS'));
$baseAlbum->save();
Expand Down
3 changes: 3 additions & 0 deletions app/Livewire/DTO/AlbumRights.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use App\Contracts\Models\AbstractAlbum;
use App\Livewire\Traits\UseWireable;
use App\Models\Album;
use App\Policies\AlbumPolicy;
use Illuminate\Support\Facades\Gate;
use Livewire\Wireable;
Expand All @@ -22,6 +23,7 @@ public function __construct(
public bool $can_share_with_users = false,
public bool $can_download = false,
public bool $can_upload = false,
public bool $can_move = false,
public bool $can_delete = false,
public bool $can_access_original = false,
) {
Expand All @@ -42,6 +44,7 @@ public static function make(?AbstractAlbum $abstractAlbum): AlbumRights
can_share_with_users: Gate::check(AlbumPolicy::CAN_SHARE_WITH_USERS, [AbstractAlbum::class, $abstractAlbum]),
can_download: Gate::check(AlbumPolicy::CAN_DOWNLOAD, [AbstractAlbum::class, $abstractAlbum]),
can_upload: Gate::check(AlbumPolicy::CAN_UPLOAD, [AbstractAlbum::class, $abstractAlbum]),
can_move: Gate::check(AlbumPolicy::CAN_DELETE, [AbstractAlbum::class, $abstractAlbum]) && $abstractAlbum instanceof Album,
can_delete: Gate::check(AlbumPolicy::CAN_DELETE, [AbstractAlbum::class, $abstractAlbum]),
can_access_original: Gate::check(AlbumPolicy::CAN_ACCESS_FULL_PHOTO, [AbstractAlbum::class, $abstractAlbum]),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<livewire:forms.album.share-with :album="$this->album" />
</div>
@endif
@if($this->rights->can_delete === true)
@if($this->rights->can_move === true)
<div class="w-full xl:w-5/6 flex justify-center flex-wrap mb-4 sm:mt-7 pl-7" x-cloak x-show="albumFlags.activeTab === 2">
<livewire:forms.album.move-panel :album="$this->album" />
</div>
Expand Down
6 changes: 6 additions & 0 deletions resources/views/livewire/forms/album/properties.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@
<x-forms.dropdown class="mx-2" :options="$this->aspectRatios" id="aspect_ratio_dialog_select" wire:model='album_aspect_ratio'/>
</div>
@endif
@if($is_tag_album)
<div class="mb-4 h-10">
<span class="font-bold">{{ __('lychee.ALBUM_SET_SHOWTAGS') }}</span>
<x-forms.inputs.text wire:model='tag' id="albumTags" />
</div>
@endif
<x-forms.buttons.action class="rounded w-full" wire:click='submit' >
{{ __('lychee.SAVE') }}
</x-forms.buttons.action>
Expand Down

0 comments on commit e52e412

Please sign in to comment.