Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix error when opening tag album #2492

Merged
merged 1 commit into from
Jul 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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