Initial Commit
The initial public commit of MVGL website code.
This commit is contained in:
commit
b39ecf1638
2043 changed files with 215154 additions and 0 deletions
488
resources/views/pages/game-lists/edit.blade.php
Normal file
488
resources/views/pages/game-lists/edit.blade.php
Normal file
|
@ -0,0 +1,488 @@
|
|||
@php
|
||||
use App\Models\Game;
|
||||
use App\Models\GameList;
|
||||
use App\Models\Genre;
|
||||
use App\Models\Platform;
|
||||
|
||||
// Check to see if the user is logged in.
|
||||
if (Auth::check()) {
|
||||
// Check to see if the user has this game on their list already.
|
||||
$hasGame = GameList::whereUserId(Auth::user()->id)->whereGameId($gameList->game_id)->first();
|
||||
}
|
||||
|
||||
// Fetch the game object.
|
||||
$game = Game::findOrFail($gameList->game_id);
|
||||
|
||||
// Turn $game->genre_ids into an array.
|
||||
$genres = explode(',', $game->genre_ids);
|
||||
|
||||
// Determine the friendly genre name(s).
|
||||
$genreNames = [];
|
||||
foreach ($genres as $genre) {
|
||||
array_push($genreNames, Genre::whereId($genre)->value('name'));
|
||||
}
|
||||
|
||||
// Create a comma separated string of the genre names.
|
||||
$genreNames = implode(', ', $genreNames);
|
||||
|
||||
// Determine what other platforms this game exists on.
|
||||
$alsoExistsOn = Game::whereName($game->name)->where('id', '!=', $game->id)->get();
|
||||
|
||||
$platforms = [];
|
||||
if (count($alsoExistsOn) >= 1) {
|
||||
foreach ($alsoExistsOn as $alsoExistsOnGame) {
|
||||
array_push($platforms, [
|
||||
'id' => $alsoExistsOnGame->id,
|
||||
'name' => Platform::whereId($alsoExistsOnGame->platform_id)->value('name'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<x-base-layout>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row gy-5 g-xl-8">
|
||||
<!--begin::Col-->
|
||||
<div class="col-xxl-8">
|
||||
<div class="card shadow-sm mb-2">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{ $game->name }}</h3>
|
||||
<div class="card-toolbar">
|
||||
<div class="text-light-primary bg-primary p-3 rounded">
|
||||
{{ $game->platform()->get()[0]->name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (count($errors) > 0)
|
||||
<!--begin::Alert-->
|
||||
<div class="alert alert-danger d-flex align-items-center p-5 mb-10">
|
||||
<span class="svg-icon svg-icon-2hx svg-icon-danger me-4">
|
||||
<i class="fad fa-times-circle"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column">
|
||||
<h4 class="mb-1 text-danger">Error Editing List Entry</h4>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Alert-->
|
||||
@endif
|
||||
|
||||
@if (!$hasGame)
|
||||
<!--begin::Alert-->
|
||||
<div class="alert alert-danger d-flex align-items-center p-5 mb-0">
|
||||
<span class="svg-icon svg-icon-2hx svg-icon-danger me-4">
|
||||
<i class="fad fa-times-circle"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column">
|
||||
<h4 class="mb-1 text-danger">Error Editing List Entry</h4>
|
||||
<p>You do not appear to have this game on your list.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Alert-->
|
||||
@else
|
||||
<form class="form w-100" novalidate="novalidate" action="{{ route('games.list.update', $gameList) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
@isset ($game->alt_titles)
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Display Title</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="name">
|
||||
<option></option>
|
||||
@php
|
||||
$altTitles = explode('|', $game->alt_titles);
|
||||
@endphp
|
||||
@foreach ($altTitles as $altTitle)
|
||||
<option value="{{ $altTitle }}" @selected(old('name') ?? $gameList->name == $altTitle)>
|
||||
{{ $altTitle }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="text-muted mt-1">The title of the game that will be displayed on your list. If nothing is selected the default title will be used.</div>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
@else
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Name</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<input class="form-control" name="name" value="{{ $game->name }}" disabled/>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
@endisset
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Ownership</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="ownership">
|
||||
<option></option>
|
||||
@php
|
||||
$ownerships = [
|
||||
1 => 'Played, but don\'t own',
|
||||
2 => 'Own Digital Copy',
|
||||
3 => 'Own Retail Version',
|
||||
4 => 'Own Collectors Edition',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($ownerships as $key => $value)
|
||||
<option value="{{ $key }}" @selected(old('ownership') ?? $gameList->ownership == $key)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark required">Status</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" name="status">
|
||||
<option></option>
|
||||
@php
|
||||
$statuses = [
|
||||
1 => 'Playing',
|
||||
2 => 'Continuously Playing',
|
||||
3 => 'Completed',
|
||||
4 => 'On-Hold',
|
||||
5 => 'Dropped',
|
||||
6 => 'Plan to Play',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($statuses as $key => $value)
|
||||
<option value="{{ $key }}" @selected(old('status') ?? $gameList->status == $key)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Rating</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="rating">
|
||||
<option></option>
|
||||
@php
|
||||
$ratings = [
|
||||
1 => '1 (Unplayable)',
|
||||
2 => '2 (Horrible)',
|
||||
3 => '3 (Very Bad)',
|
||||
4 => '4 (Bad)',
|
||||
5 => '5 (Playable)',
|
||||
6 => '6 (Fine)',
|
||||
7 => '7 (Good)',
|
||||
8 => '8 (Very Good)',
|
||||
9 => '9 (Great)',
|
||||
10 => '10 (Masterpiece)',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($ratings as $key => $value)
|
||||
<option value="{{ $key }}" @selected(old('rating') ?? $gameList->rating == $key)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Priority</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="priority">
|
||||
<option></option>
|
||||
@php
|
||||
$priorities = [
|
||||
1 => 'Low',
|
||||
2 => 'Medium',
|
||||
3 => 'High',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($priorities as $key => $value)
|
||||
<option value="{{ $value }}" @selected(old('priority') ?? $gameList->priority == $value)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Difficulty</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="difficulty">
|
||||
<option></option>
|
||||
@php
|
||||
$difficulties = [
|
||||
1 => 'Easy',
|
||||
2 => 'Medium',
|
||||
3 => 'Hard',
|
||||
4 => 'Extremely Hard',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($difficulties as $key => $value)
|
||||
<option value="{{ $value }}" @selected(old('difficulty') ?? $gameList->difficulty == $value)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Hours Played</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="hoursPlayed">
|
||||
<option></option>
|
||||
@php
|
||||
$hoursPlayed = [
|
||||
1 => 'Less than 1 Hour',
|
||||
2 => '1-2 Hours',
|
||||
3 => '3-4 Hours',
|
||||
4 => '5-10 Hours',
|
||||
5 => '11-20 Hours',
|
||||
6 => '21-30 Hours',
|
||||
7 => '31-40 Hours',
|
||||
8 => '41-50 Hours',
|
||||
9 => '51-75 Hours',
|
||||
10 => '76-100 Hours',
|
||||
11 => '101-200 Hours',
|
||||
12 => '201-500 Hours',
|
||||
13 => '501+ Hours',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($hoursPlayed as $key => $value)
|
||||
<option value="{{ $key }}" @selected(old('hoursPlayed') ?? $gameList->hours_played == $key)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Start Date</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<div class="input-group mb-5">
|
||||
<span class="input-group-text" id="basic-addon1"><i class="fal fa-calendar-day"></i></span>
|
||||
<input class="form-control" placeholder="Pick a date" id="kt_datepicker_start" name="start_date" value="{{ $gameList->start_date }}" />
|
||||
</div>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Finish Date</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<div class="input-group mb-5">
|
||||
<span class="input-group-text" id="basic-addon1"><i class="fal fa-calendar-day"></i></span>
|
||||
<input class="form-control" placeholder="Pick a date" id="kt_datepicker_finish" name="finish_date" value="{{ $gameList->finish_date }}" />
|
||||
</div>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
@if ($gameList->status == 3)
|
||||
<div class="fv-row col-md-6 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Replay Value</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select" data-control="select2" data-placeholder="Select an option" data-allow-clear="true" name="replayValue">
|
||||
<option></option>
|
||||
@php
|
||||
$replayValues = [
|
||||
1 => 'Very Low',
|
||||
2 => 'Low',
|
||||
3 => 'Medium',
|
||||
4 => 'High',
|
||||
5 => 'Very High',
|
||||
]
|
||||
@endphp
|
||||
@foreach ($replayValues as $key => $value)
|
||||
<option value="{{ $key }}" @selected(old('replayValue') ?? $gameList->replay_value == $key)>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endphp
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
@endif
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row col-md-12 mb-5">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Notes</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<textarea class="form-control" data-kt-autosize="true" rows="5" name="notes">{{ $gameList->notes ?? '' }}</textarea>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
<!--begin::Input group-->
|
||||
@if ($gameList->status == 3)
|
||||
<div class="fv-row col-md-6 mb-10">
|
||||
<!--begin::Input-->
|
||||
<div class="form-check form-switch form-check-custom form-check-solid">
|
||||
<input class="form-check-input" type="checkbox" name="isReplaying" value="1" id="isReplaying" @checked(old('isReplaying') ?? $gameList->is_replaying == 'Y') />
|
||||
<label class="form-check-label" for="isReplaying">Are You Replaying This Game?</label>
|
||||
</div>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
@endif
|
||||
|
||||
<!--begin::Actions-->
|
||||
<div class="d-flex justify-content-between">
|
||||
<!--begin::Submit button-->
|
||||
|
||||
<button type="submit" id="kt_gameList_submit" class="btn btn-primary">
|
||||
<span class="indicator-label">Submit</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
</button>
|
||||
<!--end::Submit button-->
|
||||
</form>
|
||||
<!--begin::Delete button-->
|
||||
<form class="d-inline m-0" method="POST" action="{{ route('games.list.destroy', $gameList) }}">
|
||||
@method('DELETE')
|
||||
@csrf
|
||||
<a class="btn btn-danger" href="#" onclick="event.preventDefault(); this.closest('form').submit();">Delete</a>
|
||||
</form>
|
||||
<!--end::Delete button-->
|
||||
</div>
|
||||
<!--end::Actions-->
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
|
||||
<!--begin::Col-->
|
||||
<div class="col-xxl-4">
|
||||
<div class="card shadow-sm mb-2">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Game Information</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="d-flex justify-content-center"><img class="img-fluid img-thumbnail" src="{{ Storage::url('assets/boxart/') . $game->boxart }}" alt="image"></div>
|
||||
<dl class="row mt-5">
|
||||
@if ($game->alt_titles)
|
||||
@php
|
||||
$altTitles = str_replace('|', ', ', $game->alt_titles);
|
||||
@endphp
|
||||
<dt class="col-sm-5 fw-bolder">Alternative Titles</dt>
|
||||
<dd class="col-sm-7">{{ $altTitles }}</dd>
|
||||
@endif
|
||||
<dt class="col-sm-5 fw-bolder">Platform</dt>
|
||||
<dd class="col-sm-7">{{ $game->platform()->get()[0]->name }}</dd>
|
||||
<dt class="col-sm-5 fw-bolder">Developer(s)</dt>
|
||||
<dd class="col-sm-7">{{ $game->developers ?? '-' }}</dd>
|
||||
<dt class="col-sm-5 fw-bolder">Publishers(s)</dt>
|
||||
<dd class="col-sm-7">{{ $game->publishers ?? '-' }}</dd>
|
||||
<dt class="col-sm-5 fw-bolder">Genres(s)</dt>
|
||||
<dd class="col-sm-7">{{ $genreNames }}</dd>
|
||||
@if ($game->na_release_date)
|
||||
<dt class="col-sm-5 fw-bolder">NA Release Date</dt>
|
||||
<dd class="col-sm-7">{{ $game->na_release_date }}</dd>
|
||||
@endif
|
||||
@if ($game->jp_release_date)
|
||||
<dt class="col-sm-5 fw-bolder">JP Release Date</dt>
|
||||
<dd class="col-sm-7">{{ $game->jp_release_date }}</dd>
|
||||
@endif
|
||||
@if ($game->eu_release_date)
|
||||
<dt class="col-sm-5 fw-bolder">EU Release Date</dt>
|
||||
<dd class="col-sm-7">{{ $game->eu_release_date }}</dd>
|
||||
@endif
|
||||
@if ($game->aus_release_date)
|
||||
<dt class="col-sm-5 fw-bolder">AUS Release Date</dt>
|
||||
<dd class="col-sm-7">{{ $game->aus_release_date }}</dd>
|
||||
@endif
|
||||
@if ($game->esrb_rating)
|
||||
<dt class="col-sm-5 fw-bolder">ESRB Rating</dt>
|
||||
<dd class="col-sm-7">{{ $game->esrb_rating ?? '-' }}</dd>
|
||||
@endif
|
||||
@if ($game->pegi_rating)
|
||||
<dt class="col-sm-5 fw-bolder">PEGI Rating</dt>
|
||||
<dd class="col-sm-7">{{ $game->pegi_rating ?? '-' }}</dd>
|
||||
@endif
|
||||
@if ($game->cero_rating)
|
||||
<dt class="col-sm-5 fw-bolder">CERO Rating</dt>
|
||||
<dd class="col-sm-7">{{ $game->cero_rating ?? '-' }}</dd>
|
||||
@endif
|
||||
@if ($game->acb_rating)
|
||||
<dt class="col-sm-5 fw-bolder">ACB Rating</dt>
|
||||
<dd class="col-sm-7">{{ $game->acb_rating ?? '-' }}</dd>
|
||||
@endif
|
||||
<dt class="col-sm-5 fw-bolder">MVGL User Score</dt>
|
||||
<dd class="col-sm-7">{{ (round(GameList::whereGameId($game->id)->avg('rating'), 1)) != 0 ? round(GameList::whereGameId($game->id)->avg('rating'), 1) : '-'}} {{ (GameList::whereGameId($game->id)->where('rating', '>=', 1)->count()) != 0 ? ' by ' . GameList::whereGameId($game->id)->where('rating', '>=', 1)->count() . ' user(s) ' : '' }}</dd>
|
||||
<dt class="col-sm-5 fw-bolder">MVGL Difficulty</dt>
|
||||
<dd class="col-sm-7">{{ GameList::whereGameId($game->id)->avg('difficulty') ?? '-' }}</dd>
|
||||
<dt class="col-sm-5 fw-bolder">Composer(s)</dt>
|
||||
<dd class="col-sm-7">{{ $game->composers ?? '-'}}</dd>
|
||||
@if ($game->website)
|
||||
<dt class="col-sm-5 fw-bolder">Website</dt>
|
||||
<dd class="col-sm-7"><a href="{{ $game->website }}">Official Website</a></dd>
|
||||
@endif
|
||||
<dt class="col-sm-5 fw-bolder">Added by</dt>
|
||||
<dd class="col-sm-7">{{ GameList::whereGameId($game->id)->count() ?? '0' }} User(s)</dd>
|
||||
</dl>
|
||||
<p class="lh-lg">This game also exists on:<br />
|
||||
@foreach ($platforms as $platform)
|
||||
<a class="mt-1" href="/game/{{ $platform['id'] }}"><span class="badge badge-primary">{{ $platform['name'] }}</span></a>
|
||||
@endforeach
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
</x-base-layout>
|
Loading…
Add table
Add a link
Reference in a new issue