mega-commit: migrations, controllers, models, etc.
This commit is contained in:
parent
9732135e90
commit
2c6745e812
70 changed files with 2124 additions and 400 deletions
|
@ -1,17 +1,63 @@
|
|||
@extends('layout')
|
||||
@extends('main.layout')
|
||||
|
||||
@section('head')
|
||||
@push('head')
|
||||
<link rel="stylesheet" href="{{ asset('css/auth.css') }}">
|
||||
@endsection
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<h2>{{ __('Login') }}</h2>
|
||||
|
||||
<div class="form">
|
||||
<form method="POST" action="{{ route('login') }}">
|
||||
@csrf
|
||||
<div class="item">
|
||||
<label for="email">{{ __('E-Mail Address') }}</label><br/>
|
||||
<input type="email" name="email" id="email" value="{{ old('email') }}" required autocomplete="email"
|
||||
autofocus>
|
||||
<br/>
|
||||
|
||||
|
||||
@error('email')
|
||||
<span style="color: red">{{ $message }}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<label for="password">{{ __('Password') }}</label><br/>
|
||||
<input type="password" name="password" id="password" required autocomplete="current-password">
|
||||
<br/>
|
||||
|
||||
@error('password')
|
||||
<span style="color: red">{{ $message }}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
|
||||
<label for="remember">Remember me</label>
|
||||
<br/>
|
||||
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
|
||||
</form>
|
||||
|
||||
<br/>
|
||||
|
||||
<div class="spread-h">
|
||||
@if (Route::has('password.request'))
|
||||
<a href="{{ route('password.request') }}">
|
||||
{{ __('Forgot Your Password?') }}
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if (Route::has('register'))
|
||||
<a href="{{ route('register') }}">
|
||||
{{ __('Register') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
|
@ -1,77 +1,67 @@
|
|||
@extends('layout')
|
||||
@extends('main.layout')
|
||||
|
||||
@section('head')
|
||||
<link rel="stylesheet" href="{{ asset('css/auth.css') }}">
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">{{ __('Register') }}</div>
|
||||
<h2>{{__('Register')}}</h2>
|
||||
|
||||
<div class="card-body">
|
||||
<form method="POST" action="{{ route('register') }}">
|
||||
@csrf
|
||||
<div class="form">
|
||||
<form method="POST" action="{{route('register')}}">
|
||||
@csrf
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="col-md-4 col-form-label text-md-end">{{ __('Name') }}</label>
|
||||
<div class="item">
|
||||
<label for="name">{{__('Name')}}</label><br/>
|
||||
<input type="text" name="name" id="name" value="{{old('name')}}" required autocomplete="name" autofocus>
|
||||
<br/>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
|
||||
@error('name')
|
||||
<span style="color: red">{{$message}}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
@error('name')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="email" class="col-md-4 col-form-label text-md-end">{{ __('Email Address') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">
|
||||
|
||||
@error('email')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="password" class="col-md-4 col-form-label text-md-end">{{ __('Password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
|
||||
|
||||
@error('password')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="password-confirm" class="col-md-4 col-form-label text-md-end">{{ __('Confirm Password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-0">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
{{ __('Register') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<label for="email">{{__('E-Mail Address')}}</label><br/>
|
||||
<input type="email" name="email" id="email" value="{{old('email')}}" required autocomplete="email">
|
||||
<br/>
|
||||
|
||||
@error('email')
|
||||
<span style="color: red">{{$message}}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<label for="password">{{__('Password')}}</label><br/>
|
||||
<input type="password" name="password" id="password" required autocomplete="new-password">
|
||||
<br/>
|
||||
|
||||
@error('password')
|
||||
<span style="color: red">{{$message}}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<label for="password-confirm">{{__('Confirm Password')}}</label><br/>
|
||||
<input type="password" name="password_confirmation" id="password-confirm" required
|
||||
autocomplete="new-password">
|
||||
<br/>
|
||||
|
||||
@error('password_confirmation')
|
||||
<span style="color: red">{{$message}}</span>
|
||||
<br/>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
|
@ -1,28 +1,30 @@
|
|||
@extends('layout')
|
||||
@extends('main.layout')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">{{ __('Verify Your Email Address') }}</div>
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">{{ __('Verify Your Email Address') }}</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if (session('resent'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ __('A fresh verification link has been sent to your email address.') }}
|
||||
</div>
|
||||
@endif
|
||||
<div class="card-body">
|
||||
@if (session('resent'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ __('A fresh verification link has been sent to your email address.') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{ __('Before proceeding, please check your email for a verification link.') }}
|
||||
{{ __('If you did not receive the email') }},
|
||||
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
|
||||
@csrf
|
||||
<button type="submit" class="btn btn-link p-0 m-0 align-baseline">{{ __('click here to request another') }}</button>.
|
||||
</form>
|
||||
{{ __('Before proceeding, please check your email for a verification link.') }}
|
||||
{{ __('If you did not receive the email') }},
|
||||
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
|
||||
@csrf
|
||||
<button type="submit"
|
||||
class="btn btn-link p-0 m-0 align-baseline">{{ __('click here to request another') }}</button>
|
||||
.
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
27
resources/views/components/seat-chooser.blade.php
Normal file
27
resources/views/components/seat-chooser.blade.php
Normal file
|
@ -0,0 +1,27 @@
|
|||
@extends('layout')
|
||||
|
||||
@push('head')
|
||||
<link rel="stylesheet" href="{{ asset('css/seat-chooser.css') }}">
|
||||
<style>
|
||||
:root {
|
||||
--rows: {{ $room->room_rows }};
|
||||
--cols: {{ $room->room_columns }};
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
<div class="seat-chooser">
|
||||
@foreach($seatmatrix as $row)
|
||||
<div class="row">
|
||||
@foreach($row as $seat)
|
||||
<div class="seat @if($seat->isReserved) reserved @endif"
|
||||
data-seat-id="{{ $seat->seat_id }}"
|
||||
data-seat-status="{{ $seat->seat_status }}"
|
||||
data-seat-row="{{ $seat->seat_row }}"
|
||||
data-seat-column="{{ $seat->seat_column }}">
|
||||
<div class="seat-number">{{ $seat->seat_row }}{{ $seat->seat_column }}</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
|
@ -1,23 +1,25 @@
|
|||
@extends('layout')
|
||||
@extends('main.layout')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">{{ __('Dashboard') }}</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{ __('You are logged in!') }}
|
||||
</div>
|
||||
</div>
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<h1>{{ __('Dashboard') }}</h1>
|
||||
<hr/>
|
||||
|
||||
@if(Auth::user()->atleast('employee'))
|
||||
<a href="/manage" class="button">Management Panel</a>
|
||||
<hr/>
|
||||
@endif
|
||||
|
||||
<h2>Permissions</h2>
|
||||
<hr/>
|
||||
|
||||
<ul class="numbered">
|
||||
@foreach(Auth::user()->permissions as $permission)
|
||||
<li>{{ $permission->permission_name }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
||||
|
|
|
@ -1,28 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{ isset($title) ? $title : 'Page' }} - CineFlex</title>
|
||||
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
|
||||
@yield('head')
|
||||
<title>{{ isset($title) ? $title : 'Page' }} - {{ config('app.name', 'CineFlex') }} Manage</title>
|
||||
@stack('head')
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<span>CineFlex</span>
|
||||
<div id="links">
|
||||
<a href="{{ route('home') }}">Home</a>
|
||||
<a href="{{ route('movies') }}">Movies</a>
|
||||
|
||||
@if (Auth::check())
|
||||
<a href="{{ route('dashboard') }}">Dashboard</a>
|
||||
<a href="{{ route('logout') }}">Logout</a>
|
||||
@else
|
||||
<a href="{{ route('login') }}">Login</a>
|
||||
@endif
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
@yield('content')
|
||||
</main>
|
||||
<body>
|
||||
@yield('body')
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<title>{{ config('app.name', 'Laravel') }}</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||
<link href="https://fonts.bunny.net/css?family=Nunito" rel="stylesheet">
|
||||
|
||||
<!-- Scripts -->
|
||||
@vite(['resources/css/style.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{{ url('/') }}">
|
||||
{{ config('app.name', 'Laravel') }}
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<!-- Left Side Of Navbar -->
|
||||
<ul class="navbar-nav me-auto">
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- Right Side Of Navbar -->
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<!-- Authentication Links -->
|
||||
@guest
|
||||
@if (Route::has('login'))
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (Route::has('register'))
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@else
|
||||
<li class="nav-item dropdown">
|
||||
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
|
||||
{{ Auth::user()->name }}
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{{ route('logout') }}"
|
||||
onclick="event.preventDefault();
|
||||
document.getElementById('logout-form').submit();">
|
||||
{{ __('Logout') }}
|
||||
</a>
|
||||
|
||||
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
||||
@csrf
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
@endguest
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="py-4">
|
||||
@yield('content')
|
||||
</main>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
16
resources/views/main/cinemas.blade.php
Normal file
16
resources/views/main/cinemas.blade.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
@extends('main.layout')
|
||||
|
||||
@section('content')
|
||||
<h1>{{ config('app.name', 'CineFlex') }}</h1>
|
||||
<hr/>
|
||||
<h2>Cinemas</h2>
|
||||
<ul>
|
||||
@foreach($cinemas as $cinema)
|
||||
<li>
|
||||
<a href="{{ route('cinema', ['id' => $cinema->id]) }}">
|
||||
{{ $cinema->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
32
resources/views/main/home.blade.php
Normal file
32
resources/views/main/home.blade.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
@extends('main.layout')
|
||||
|
||||
@push('head')
|
||||
<link rel="stylesheet" href="{{ asset('css/extra.css') }}">
|
||||
<script defer src="{{ asset('js/jumbotron.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
{{-- data-images is a , seperated list with all images--}}
|
||||
<section id="jumbotron" class="jumbotron" data-delay="5000" data-images="img/bar.jpg,img/cinema.jpg,img/lobby.jpg">
|
||||
<div class="container">
|
||||
<h1 class="display-4">{{ config('app.name', 'CineFlex') }}</h1>
|
||||
<p class="lead">Welcome to CineFlex, the best cinema management system in the world!</p>
|
||||
<p>Here you can see what movies are playing at your local cinema and buy tickets for them.</p>
|
||||
<a class="button" href="{{ route('cinemas') }}" role="button">Cinemas</a>
|
||||
</div>
|
||||
<img class="jumbotron-image" src="" data-order="1">
|
||||
<img class="jumbotron-image" src="" data-order="2">
|
||||
|
||||
</section>
|
||||
|
||||
<h2>Cinemas</h2>
|
||||
<ul>
|
||||
@foreach($cinemas as $cinema)
|
||||
<li>
|
||||
<a href="{{ route('cinema', ['id'=>$cinema->cinema_id]) }}">
|
||||
{{ $cinema->cinema_name }} - {{ $cinema->address->address_city }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
26
resources/views/main/layout.blade.php
Normal file
26
resources/views/main/layout.blade.php
Normal file
|
@ -0,0 +1,26 @@
|
|||
@extends('layout')
|
||||
|
||||
@push('head')
|
||||
<link rel="stylesheet" href="{{ asset('css/generic.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('css/main.css') }}">
|
||||
@endpush
|
||||
|
||||
@section('body')
|
||||
<header>
|
||||
<a href="{{ route('home') }}"><span>{{ config('app.name', 'CineFlex') }}</span></a>
|
||||
<div id="links">
|
||||
<a href="{{ route('home') }}">Home</a>
|
||||
<a href="{{ route('movies') }}">Movies</a>
|
||||
|
||||
@if (Auth::check())
|
||||
<a href="{{ route('dash') }}">Dashboard</a>
|
||||
<a href="{{ route('logout') }}">Logout</a>
|
||||
@else
|
||||
<a href="{{ route('login') }}">Login</a>
|
||||
@endif
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
@yield('content')
|
||||
</main>
|
||||
@endsection
|
|
@ -1,4 +1,4 @@
|
|||
@extends('layout')
|
||||
@extends('main.layout')
|
||||
|
||||
@section('content')
|
||||
|
||||
|
@ -8,7 +8,8 @@
|
|||
<div id="movies">
|
||||
@foreach($showings as $showing)
|
||||
<a href="/movie/{{$showing->movie->movie_id}}">
|
||||
<img src="{{$showing->movie->movie_image}}" alt="{{$showing->movie->movie_name}} Poster" width="200px">
|
||||
<img src="{{$showing->movie->movie_image}}" alt="{{$showing->movie->movie_name}} Poster"
|
||||
width="200px">
|
||||
<div class="details">
|
||||
<span>{{$showing->movie->movie_name}}</span><br/>
|
||||
<span>{{$showing->movie->movie_length}} min</span>
|
48
resources/views/manage/cinemas/index.blade.php
Normal file
48
resources/views/manage/cinemas/index.blade.php
Normal 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
|
19
resources/views/manage/genres/create.blade.php
Normal file
19
resources/views/manage/genres/create.blade.php
Normal 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
|
20
resources/views/manage/genres/genre.blade.php
Normal file
20
resources/views/manage/genres/genre.blade.php
Normal 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
|
32
resources/views/manage/genres/index.blade.php
Normal file
32
resources/views/manage/genres/index.blade.php
Normal 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
|
33
resources/views/manage/index.blade.php
Normal file
33
resources/views/manage/index.blade.php
Normal 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
|
31
resources/views/manage/layout.blade.php
Normal file
31
resources/views/manage/layout.blade.php
Normal 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
|
64
resources/views/manage/movies/create.blade.php
Normal file
64
resources/views/manage/movies/create.blade.php
Normal 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
|
24
resources/views/manage/movies/index.blade.php
Normal file
24
resources/views/manage/movies/index.blade.php
Normal 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
|
60
resources/views/manage/movies/movie.blade.php
Normal file
60
resources/views/manage/movies/movie.blade.php
Normal 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
|
|
@ -1,7 +0,0 @@
|
|||
@extends('layout')
|
||||
|
||||
@section('content')
|
||||
<h1>{{ config('app.name', 'CineFlex') }}</h1>
|
||||
<hr/>
|
||||
<h2>Movies:</h2>
|
||||
@endsection
|
Loading…
Add table
Add a link
Reference in a new issue