Migration complete

This commit is contained in:
2026-06-23 19:24:38 +02:00
parent 279160c1cb
commit 64b26ef059
126 changed files with 8121 additions and 221 deletions

View File

@@ -1,5 +1,5 @@
<div>
<div class="form-group grid-c2">
<div class="form-group grid-c2" x-ref="authorsSelector">
<div>
@if( $newAuthor === false)
<div class="game-selector">

View File

@@ -6,7 +6,7 @@
placeholder="Search..."
class="form-input filter-bar-search"
>
@if( $search || $types || $platforms || $games || $statuses || $authors || $languages || $modifications || $categories || $levels || $systems )
@if( $search || $types || $platforms || $games || $statuses || $authors || $languages || $modifications || $categories || $levels || $systems || $userId )
<button type="button" wire:click="clearFilters" class="btn">
<i data-lucide="x"></i> Clear filters
</button>
@@ -32,7 +32,7 @@
</div>
{{-- Games --}}
<x-database-filter-without-mode-search title="Game" :items="$allGames" model="games" />
<x-database-filter-without-mode-search title="Game" :items="$allGames" model="games" search-model="gameSearch" />
{{-- Platforms --}}
<x-database-filter-without-mode title="Platform" :items="$allPlatforms" model="platforms"/>
@@ -44,7 +44,7 @@
<x-database-filter-without-mode title="Status" :items="$allStatuses" model="statuses"/>
{{-- Authors --}}
<x-database-filter-with-mode-search title="Authors" :items="$allAuthors" model="authors" mode-model="authorsMode" :selected-mode="$authorsMode" />
<x-database-filter-with-mode-search title="Authors" :items="$allAuthors" search-model="authorSearch" model="authors" mode-model="authorsMode" :selected-mode="$authorsMode" />
{{-- Languages --}}
<x-database-filter-with-mode title="Languages" :items="$allLanguages" model="languages" mode-model="languagesMode" :selected-mode="$languagesMode" />

View File

@@ -84,7 +84,7 @@
class="dropdown-item" {{ $gameId === $game->id ? 'selected' : '' }} >
<span class="dropdown-item-name">{{ $game->name }}</span>
@if($game->platform)
<span class="badge">{{ $game->platform->short_name }}</span>
<span class="badge">{{ $game->platform->short_name ?? $game->platform->name }}</span>
@endif
@if($game->genre)
<span class="badge">{{ $game->genre->name }}</span>

View File

@@ -0,0 +1,68 @@
<div class="patcher-container" x-data="HashesChecker($wire)"
x-ref="hashRoot" @refresh.window="refreshIcons($el)">
<div class="form-group">
<label class="form-label">ROM</label>
<div class="form-upload">
<input type="file" id="rom-field" @change="handleSubmitFile($event)" :disabled="isCalculating">
<div class="form-upload-placeholder level">
<i data-lucide="file-archive" size="36" style="margin-bottom:15px;color:var(--text2)"></i>
<div style="font-size: 1.1rem;color:var(--text);margin-bottom:5px;">
<span x-text="isCalculating ? 'Please wait' : 'Click or drag\'n drop files here.'"></span>
</div>
</div>
</div>
</div>
@if($hash)
<div>
<x-form-field-title name="Hash" />
<div class="form-group grid-hashes">
<div class="hash-filename hash-first">
<x-form-field-title name="Filename" />
</div>
<div class="hash-crc32 hash-first">
<x-form-field-title name="CRC32" />
</div>
<div class="hash-sha1 hash-first">
<x-form-field-title name="SHA-1" />
</div>
<div class="hash-verified hash-first">
<x-form-field-title name="Verified" />
</div>
<div class="hash-remove hash-first">
<x-form-field-title name="Actions" />
</div>
<div class="hash-filename">
<input class="form-input" type="text" autocomplete="off" value="{{ $hash['filename'] }}" disabled>
</div>
<div class="hash-crc32">
<input class="form-input" type="text" autocomplete="off" value="{{ $hash['hash_crc32'] }}" disabled>
</div>
<div class="hash-sha1">
<input class="form-input" type="text" autocomplete="off" value="{{ $hash['hash_sha1'] }}" disabled>
</div>
<div class="hash-verified">
<input class="form-input" type="text" autocomplete="off" value="{{ $hash['verified'] }}" disabled>
</div>
<div class="hash-remove">
<button type="button" class="btn" wire:click="removeHash()">
Remove
</button>
</div>
</div>
<x-form-field-title name="Related entries" />
<div class="form-group">
<div class="grid-entries">
@forelse( $entries as $entry )
<x-entry-card :entry="$entry" />
@empty
No entries related.
@endforelse
</div>
</div>
</div>
@endif
</div>

View File

@@ -3,25 +3,24 @@
@if( count( $hashes ) > 0)
<div class="form-group grid-hashes">
<div class="hash-filename">
<div class="hash-filename hash-first">
<x-form-field-title name="Filename" />
</div>
<div class="hash-crc32">
<div class="hash-crc32 hash-first">
<x-form-field-title name="CRC32" />
</div>
<div class="hash-sha1">
<div class="hash-sha1 hash-first">
<x-form-field-title name="SHA-1" />
</div>
<div class="hash-verified">
<div class="hash-verified hash-first">
<x-form-field-title name="Verified" />
</div>
<div class="hash-remove">
<div class="hash-remove hash-first">
<x-form-field-title name="Actions" />
</div>
@foreach( $hashes as $i => $hash )

View File

@@ -0,0 +1,51 @@
<div @filters-updated.window="refreshIcons($el)">
<div class="database-search filter-bar">
@if($rating || $entryId)
<button type="button" wire:click="clearFilters" class="btn">
<i data-lucide="x"></i> Clear filters
</button>
@endif
</div>
<div class="database-wrapper">
<aside class="database-filters">
<div class="filter-group" x-data="{open: true}">
<div class="filter-title-row" @click="open = !open">
<h4 class="filter-title">Rating</h4>
<i data-lucide="chevron-down" size="14" class="filter-chevron" :class="{ 'rotated': !open }"></i>
</div>
<div class="filter-options" x-show="open" x-transition>
@for($i=1;$i<=5;$i++)
<label class="filter-option">
<input type="radio" wire:model.live="rating" value="{{ $i }}">
{{ $i }}
</label>
@endfor
</div>
</div>
</aside>
<div class="database-results">
<div class="database-sort">
@foreach( \App\Livewire\Reviews::SORT_OPTIONS as $k => $v )
<button type="button" wire:click="setSort('{{ $k }}')" class="btn {{ $sortBy === $k ? 'active' : '' }}">
{{ $v }}
</button>
@if( $sortBy === $k )
<i data-lucide="{{ $sortDir === 'asc' ? 'arrow-up' : 'arrow-down' }}"></i>
@endif
@endforeach
<span class="database-results-count">{{ $reviews->total() }} results</span>
</div>
<div class="entry-content">
@forelse($reviews as $review)
<x-review-card :review="$review" :entry-show="true" />
@empty
<p>No reviews found.</p>
@endforelse
</div>
{{ $reviews->links() }}
</div>
</div>
</div>