mega-commit: migrations, controllers, models, etc.

This commit is contained in:
Didier Slof 2022-12-08 09:30:07 +01:00
parent 9732135e90
commit 2c6745e812
Signed by: didier
GPG key ID: 01E71F18AA4398E5
70 changed files with 2124 additions and 400 deletions

View file

@ -0,0 +1,48 @@
@extends('manage.layout')
@section('content')
<h1>Cinemas</h1>
<hr/><br/>
<h2>Stats:</h2>
<div class="spread-h">
<a class="clicky-card" href="{{ route('manage.cinemas') }}">
<div class="card">
<h3>Amount Cinemas</h3>
<span class="big-stat">{{ $cinemas->count() }}</span>
</div>
</a>
<a class="clicky-card" href="{{ route('manage.cinemas.employees') }}">
<div class="card">
<h3>Amount Employees</h3>
<span class="big-stat">{{ $employees->count() }}</span>
</div>
</a>
</div>
<br/>
<h2>Cinemas:</h2>
<div class="spread-h">
@foreach($cinemas as $cinema)
<a class="clicky-card" href="{{ route('manage.cinemas.show', ['id' => $cinema->id]) }}">
<div class="card">
<h3>{{ $cinema->name }}</h3>
<span class="big-stat">{{ $cinema->address->address_city }}</span>
</div>
</a>
@endforeach
</div>
<br/>
<h2>Employees:</h2>
<div class="spread-h">
@foreach($employees as $employee)
<a class="clicky-card" href="{{ route('manage.cinemas.employees.show', ['id' => $employee->id]) }}">
<div class="card">
<h3>{{ $employee->name }}</h3>
<span class="big-stat">{{ $employee->cinema->name }}</span>
</div>
</a>
@endforeach
</div>
<br/>
<a class="btn btn-primary" href="{{ route('manage') }}">Back</a>
@endsection

View file

@ -0,0 +1,19 @@
@extends('manage.layout')
@section('content')
<br/>
<h1>Create Genre</h1>
<hr/>
<br/>
<form action="{{ route('manage.genres') }}" method="post" class="form">
@csrf
<div class="form-group">
<label for="genre_name">Genre Name</label>
<input type="text" name="genre_name" id="genre_name" value="{{ old('genre_name') }}" required>
</div>
<br/>
<div class="form-group">
<button type="submit" class="button">Create Genre</button>
</div>
</form>
@endsection

View file

@ -0,0 +1,20 @@
@extends('manage.layout')
@section('content')
<br/>
<h1>Edit Genre</h1>
<hr/>
<br/>
<form action="{{ route('manage.genre', $genre->genre_id) }}" method="post" class="form">
@csrf
@method('PUT')
<div class="form-group">
<label for="genre_name">Genre Name</label>
<input type="text" name="genre_name" id="genre_name" value="{{ $genre->genre_name }}" required>
</div>
<br/>
<div class="form-group">
<button type="submit" class="button">Update Genre</button>
</div>
</form>
@endsection

View file

@ -0,0 +1,32 @@
@extends('manage.layout')
@section('content')
<br/>
<div class="spread-h">
<h1>Genres</h1>
<a href="{{ route('manage.genres.create') }}" class="button" style="height: 2rem; margin: 0.5rem 0;">Add
Genre</a>
</div>
<hr/>
<br/>
<table>
<thead>
<tr>
<th>Genre Name</th>
<th>Associated Movie Count</th>
</tr>
</thead>
<tbody>
@foreach($genres as $genre)
<tr>
<td>
<a href="{{ route('manage.genre', $genre->genre_id) }}">
{{ $genre->genre_name }}
</a>
</td>
<td>Associated Movies: {{ $genre->movies->count() }}</td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View file

@ -0,0 +1,33 @@
@extends('manage.layout')
@section('content')
<h1>Dashboard</h1>
<hr/><br/>
<h2>Stats:</h2>
<div class="spread-h">
<a class="clicky-card" href="{{ route('manage') }}">
<div class="card">
<h3>Amount Users</h3>
<span class="big-stat">{{ $users->count() }}</span>
</div>
</a>
<a class="clicky-card" href="{{ route('manage.movies') }}">
<div class="card">
<h3>Amount Movies</h3>
<span class="big-stat">{{ $movies->count() }}</span>
</div>
</a>
<a class="clicky-card" href="{{ route('manage.genres') }}">
<div class="card">
<h3>Amount Genres</h3>
<span class="big-stat">{{ $genres->count() }}</span>
</div>
</a>
<a class="clicky-card" href="{{ route('manage') }}">
<div class="card">
<h3>Amount Showings</h3>
<span class="big-stat">{{ $showings->count() }}</span>
</div>
</a>
</div>
@endsection

View file

@ -0,0 +1,31 @@
{{-- Layout for admins --}}
{{-- Will have a sidebar with links --}}
{{-- Will have a top bar with account and link to main site--}}
{{--@extends('layout')--}}
@push('head')
<link rel="stylesheet" href="{{ asset('css/generic.css') }}">
<link rel="stylesheet" href="{{ asset('css/manage.css') }}">
@endpush
@section('body')
<header>
<a href="{{ route('manage') }}"><span>{{ config('app.name', 'CineFlex') }}</span></a>
<div id="links">
<a href="{{ route('home') }}">Main Site</a>
<a href="{{ route('logout') }}">Logout</a>
</div>
</header>
<div id="sidebar"> {{-- Page Aware --}}
<a class="{{ Request::is('manage') ? 'active' : '' }}" href="{{ route('manage') }}">Dashboard</a>
{{-- manage cinemas--}}
<a class="{{ Request::is('manage/cinemas') ? 'active' : '' }}" href="{{ route('manage.cinemas') }}">Cinemas</a>
{{-- <a class="{{ Request::is('manage/cinemas/employees') ? 'active' : '' }} child" href="{{ route('manage.cinemas.employees') }}">Employees</a>--}}
<a class="{{ Request::is('manage/movies') ? 'active' : '' }}" href="{{ route('manage.movies') }}">Movies</a>
<a class="{{ Request::is('manage/genres') ? 'active' : '' }}" href="{{ route('manage.genres') }}">Genres</a>
</div>
<main>
@yield('content')
@yield('main')
</main>
@endsection

View file

@ -0,0 +1,64 @@
@extends('manage.layout')
@section('content')
<h1>Add Movie</h1>
<hr/>
<form action="{{ route('manage.movies') }}" method="POST" enctype="multipart/form-data" class="form">
@csrf
<div class="form-group @error('movie_name') error @enderror">
<label for="movie_name">Name:</label>
<input type="text" name="movie_name" id="movie_name" value="{{ old('movie_name') }}">
@error('movie_name')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('movie_description') error @enderror">
<label for="movie_description">Description:</label>
<textarea name="movie_description" id="movie_description" cols="30"
rows="10">{{ old('movie_description') }}</textarea>
@error('movie_description')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('movie_image') error @enderror">
<label for="movie_image">Image URL:</label>
<input type="text" name="movie_image" id="movie_image" value="{{ old('movie_image') }}">
@error('movie_image')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('movie_length') error @enderror">
<label for="movie_length">Length:</label>
<input type="number" name="movie_length" id="movie_length" value="{{ old('movie_length') }}">
@error('movie_length')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('movie_year') error @enderror">
<label for="movie_year">Year:</label>
<input type="number" name="movie_year" id="movie_year" value="{{ old('movie_year') }}">
@error('movie_year')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('movie_age_limit') error @enderror">
<label for="movie_age_limit">Age Limit:</label>
<input type="number" name="movie_age_limit" id="movie_age_limit" value="{{ old('movie_age_limit') }}">
@error('movie_age_limit')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<div class="form-group @error('genre_id') error @enderror">
<label for="genre_id">Genre:</label>
<select name="genre_id" id="genre_id">
@foreach($genres as $genre)
<option value="{{ $genre->genre_id }}">{{ $genre->genre_name }}</option>
@endforeach
</select>
@error('genre_id')
<span class="error-message">{{ $message }}</span>
@enderror
</div>
<button type="submit" class="button">Add Movie</button>
</form>
@endsection

View file

@ -0,0 +1,24 @@
@extends('manage.layout')
@section('content')
<br/>
<div class="spread-h">
<h1>Manage Movies:</h1>
<a href="{{ route('manage.movies.create') }}" class="button" style="height: 2rem; margin: 0.5rem 0;">Add Movie</a>
</div>
<hr/><br/>
<div id="movies">
@foreach($movies as $movie)
<a href="/manage/movie/{{$movie->movie_id}}">
<img src="{{$movie->movie_image}}" alt="{{$movie->movie_name}} Poster" width="200px">
<div class="details">
<h3>{{$movie->movie_name}}</h3><br/>
<span>{{ Str::limit($movie->movie_description, 500) }}</span><br/>
<hr/>
<span>{{$movie->movie_length}} min | {{$movie->movie_year}}</span>
</div>
</a>
@endforeach
</div>
@endsection

View file

@ -0,0 +1,60 @@
@extends('manage.layout')
@section('content')
<br/>
<div class="spread-h">
<h1>Edit Movie: {{ $movie->movie_name }}</h1>
<form action="{{ route('manage.movie', $movie->movie_id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="button" style="height: 2rem; margin: 0.5rem 0;">Delete Movie</button>
</form>
</div>
<hr/>
{{-- PUT Form with values: Name, Description, Image, Length, Year, Age Limit--}}
<form action="{{ route('manage.movie', $movie->movie_id) }}" method="POST" enctype="multipart/form-data" class="form">
@csrf
@method('PUT')
<div class="form-group">
<label for="movie_name">Name:</label>
<input type="text" name="movie_name" id="movie_name" value="{{ $movie->movie_name }}">
</div>
<div class="form-group">
<label for="movie_description">Description:</label>
<textarea name="movie_description" id="movie_description" cols="30"
rows="10">{{ $movie->movie_description }}</textarea>
</div>
<div class="form-group">
<label for="movie_image">Image URL:</label>
<input type="text" name="movie_image" id="movie_image" value="{{ $movie->movie_image }}">
</div>
<div class="form-group">
<label for="movie_length">Length:</label>
<input type="number" name="movie_length" id="movie_length" value="{{ $movie->movie_length }}">
</div>
<div class="form-group">
<label for="movie_year">Year:</label>
<input type="number" name="movie_year" id="movie_year" value="{{ $movie->movie_year }}">
</div>
<div class="form-group">
<label for="movie_age_limit">Age Limit:</label>
<input type="number" name="movie_age_limit" id="movie_age_limit" value="{{ $movie->movie_age_limit }}">
</div>
<div class="form-group">
<button type="submit" class="button">Update Movie</button>
</div>
</form>
<hr/>
<h2>Movie Showings:</h2>
<ul class="numbered" style="margin-left: 1.2rem;">
@foreach($showings as $showing)
<li>
{{-- TODO: placeholder--}}
<a href="{{ route('manage', $showing->showing_id) }}">
{{ $showing->room->room_name }} - {{ $showing->showing_start }}
</a>
</li>
@endforeach
</ul>
@endsection