layouts
This commit is contained in:
parent
fbc8bf9de4
commit
7971abee3d
17 changed files with 251 additions and 239 deletions
|
@ -73,6 +73,10 @@ @layer components {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.window:not(:last-child) {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.window hr {
|
.window hr {
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border-top: 1px solid var(--button-shadow);
|
border-top: 1px solid var(--button-shadow);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<x-layout>
|
<x-layout title="Admin">
|
||||||
<x-slot:title>Admin</x-slot>
|
<x-window>
|
||||||
|
<p>You're logged in!</p>
|
||||||
|
|
||||||
<p>You're logged in!</p>
|
<a href="{{ route('categories.index') }}">Categories</a>
|
||||||
|
</x-window>
|
||||||
<a href="{{ route('categories.index') }}">Categories</a>
|
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<x-layout>
|
<x-layout title="Confirm Password">
|
||||||
<x-slot:title>Confirm Password</x-slot>
|
<x-window>
|
||||||
|
|
||||||
<x-window title="Confirm Password">
|
|
||||||
<div>
|
<div>
|
||||||
This is a secure area of the application. Please confirm your password
|
This is a secure area of the application. Please confirm your password
|
||||||
before continuing.
|
before continuing.
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
<x-guest-layout>
|
<x-layout title="Forgot Password">
|
||||||
<x-slot:title>Forgot Password</x-slot>
|
<x-window>
|
||||||
|
<div>
|
||||||
<div>
|
Forgot your password? No problem. Just let us know your email address and
|
||||||
Forgot your password? No problem. Just let us know your email address and we
|
we will email you a password reset link that will allow you to choose a
|
||||||
will email you a password reset link that will allow you to choose a new
|
new one.
|
||||||
one.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Session Status -->
|
|
||||||
<x-auth-session-status :status="session('status')" />
|
|
||||||
|
|
||||||
<form method="POST" action="{{ route('password.email') }}">
|
|
||||||
@csrf
|
|
||||||
|
|
||||||
<div class="field-row">
|
|
||||||
<label for="email">Email</label>
|
|
||||||
<input
|
|
||||||
id="email"
|
|
||||||
type="email"
|
|
||||||
name="email"
|
|
||||||
value="{{ old('email') }}"
|
|
||||||
required
|
|
||||||
autofocus
|
|
||||||
/>
|
|
||||||
<x-input-error :messages="$errors->get('email')" />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit">Email Password Reset Link</button>
|
<!-- Session Status -->
|
||||||
</form>
|
<x-auth-session-status :status="session('status')" />
|
||||||
</x-guest-layout>
|
|
||||||
|
<form method="POST" action="{{ route('password.email') }}">
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<div class="field-row">
|
||||||
|
<label for="email">Email</label>
|
||||||
|
<input
|
||||||
|
id="email"
|
||||||
|
type="email"
|
||||||
|
name="email"
|
||||||
|
value="{{ old('email') }}"
|
||||||
|
required
|
||||||
|
autofocus
|
||||||
|
/>
|
||||||
|
<x-input-error :messages="$errors->get('email')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit">Email Password Reset Link</button>
|
||||||
|
</form>
|
||||||
|
</x-window>
|
||||||
|
</x-layout>
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<x-layout>
|
<x-layout title="Login">
|
||||||
<x-slot:title>Login</x-slot>
|
<x-window>
|
||||||
|
|
||||||
<x-window title="Login">
|
|
||||||
<!-- Session Status -->
|
<!-- Session Status -->
|
||||||
<x-auth-session-status :status="session('status')" />
|
<x-auth-session-status :status="session('status')" />
|
||||||
|
|
||||||
|
|
|
@ -1,72 +1,72 @@
|
||||||
<x-guest-layout>
|
<x-layout title="Register">
|
||||||
<x-slot:title>Register</x-slot>
|
<x-window>
|
||||||
|
<form method="POST" action="{{ route('register') }}">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<form method="POST" action="{{ route('register') }}">
|
<!-- Name -->
|
||||||
@csrf
|
<div class="field-row">
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<input
|
||||||
|
id="name"
|
||||||
|
type="text"
|
||||||
|
name="name"
|
||||||
|
value="{{ old('name') }}"
|
||||||
|
required
|
||||||
|
autofocus
|
||||||
|
autocomplete="name"
|
||||||
|
/>
|
||||||
|
<x-input-error :messages="$errors->get('name')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Name -->
|
<!-- Email Address -->
|
||||||
<div class="field-row">
|
<div class="field-row">
|
||||||
<label for="name">Name</label>
|
<label for="email">Email</label>
|
||||||
<input
|
<input
|
||||||
id="name"
|
id="email"
|
||||||
type="text"
|
type="email"
|
||||||
name="name"
|
name="email"
|
||||||
value="{{ old('name') }}"
|
value="{{ old('email') }}"
|
||||||
required
|
required
|
||||||
autofocus
|
autocomplete="username"
|
||||||
autocomplete="name"
|
/>
|
||||||
/>
|
<x-input-error :messages="$errors->get('email')" />
|
||||||
<x-input-error :messages="$errors->get('name')" />
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Email Address -->
|
<!-- Password -->
|
||||||
<div class="field-row">
|
<div class="field-row">
|
||||||
<label for="email">Email</label>
|
<label for="password">Password</label>
|
||||||
<input
|
|
||||||
id="email"
|
|
||||||
type="email"
|
|
||||||
name="email"
|
|
||||||
value="{{ old('email') }}"
|
|
||||||
required
|
|
||||||
autocomplete="username"
|
|
||||||
/>
|
|
||||||
<x-input-error :messages="$errors->get('email')" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Password -->
|
<input
|
||||||
<div class="field-row">
|
id="password"
|
||||||
<label for="password">Password</label>
|
type="password"
|
||||||
|
name="password"
|
||||||
|
required
|
||||||
|
autocomplete="new-password"
|
||||||
|
/>
|
||||||
|
|
||||||
<input
|
<x-input-error :messages="$errors->get('password')" />
|
||||||
id="password"
|
</div>
|
||||||
type="password"
|
|
||||||
name="password"
|
|
||||||
required
|
|
||||||
autocomplete="new-password"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<x-input-error :messages="$errors->get('password')" />
|
<!-- Confirm Password -->
|
||||||
</div>
|
<div class="field-row">
|
||||||
|
<label for="password_confirmation">Confirm Password</label>
|
||||||
|
|
||||||
<!-- Confirm Password -->
|
<input
|
||||||
<div class="field-row">
|
id="password_confirmation"
|
||||||
<label for="password_confirmation">Confirm Password</label>
|
type="password"
|
||||||
|
name="password_confirmation"
|
||||||
|
required
|
||||||
|
autocomplete="new-password"
|
||||||
|
/>
|
||||||
|
|
||||||
<input
|
<x-input-error :messages="$errors->get('password_confirmation')" />
|
||||||
id="password_confirmation"
|
</div>
|
||||||
type="password"
|
|
||||||
name="password_confirmation"
|
|
||||||
required
|
|
||||||
autocomplete="new-password"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<x-input-error :messages="$errors->get('password_confirmation')" />
|
<div>
|
||||||
</div>
|
<a href="{{ route('login') }}">Already registered?</a>
|
||||||
|
|
||||||
<div>
|
<button type="submit">Register</button>
|
||||||
<a href="{{ route('login') }}">Already registered?</a>
|
</div>
|
||||||
|
</form>
|
||||||
<button type="submit">Register</button>
|
</x-window>
|
||||||
</div>
|
</x-layout>
|
||||||
</form>
|
|
||||||
</x-guest-layout>
|
|
||||||
|
|
|
@ -1,55 +1,59 @@
|
||||||
<x-guest-layout>
|
<x-layout title="Reset Password">
|
||||||
<x-slot:title>Reset Password</x-slot>
|
<x-window>
|
||||||
|
<form method="POST" action="{{ route('password.store') }}">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<form method="POST" action="{{ route('password.store') }}">
|
<!-- Password Reset Token -->
|
||||||
@csrf
|
|
||||||
|
|
||||||
<!-- Password Reset Token -->
|
|
||||||
<input type="hidden" name="token" value="{{ $request->route('token') }}" />
|
|
||||||
|
|
||||||
<!-- Email Address -->
|
|
||||||
<div class="field-row">
|
|
||||||
<label for="email">Email</label>
|
|
||||||
<input
|
<input
|
||||||
id="email"
|
type="hidden"
|
||||||
type="email"
|
name="token"
|
||||||
name="email"
|
value="{{ $request->route('token') }}"
|
||||||
value="{{ old('email', $request->email) }}"
|
|
||||||
required
|
|
||||||
autofocus
|
|
||||||
autocomplete="username"
|
|
||||||
/>
|
|
||||||
<x-input-error :messages="$errors->get('email')" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Password -->
|
|
||||||
<div class="field-row">
|
|
||||||
<label for="password">Password</label>
|
|
||||||
<input
|
|
||||||
id="password"
|
|
||||||
type="password"
|
|
||||||
name="password"
|
|
||||||
required
|
|
||||||
autocomplete="new-password"
|
|
||||||
/>
|
|
||||||
<x-input-error :messages="$errors->get('password')" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Confirm Password -->
|
|
||||||
<div class="field-row">
|
|
||||||
<label for="password_confirmation">Confirm Password</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
id="password_confirmation"
|
|
||||||
type="password"
|
|
||||||
name="password_confirmation"
|
|
||||||
required
|
|
||||||
autocomplete="new-password"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<x-input-error :messages="$errors->get('password_confirmation')" />
|
<!-- Email Address -->
|
||||||
</div>
|
<div class="field-row">
|
||||||
|
<label for="email">Email</label>
|
||||||
|
<input
|
||||||
|
id="email"
|
||||||
|
type="email"
|
||||||
|
name="email"
|
||||||
|
value="{{ old('email', $request->email) }}"
|
||||||
|
required
|
||||||
|
autofocus
|
||||||
|
autocomplete="username"
|
||||||
|
/>
|
||||||
|
<x-input-error :messages="$errors->get('email')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<button type="submit">Reset Password</button>
|
<!-- Password -->
|
||||||
</form>
|
<div class="field-row">
|
||||||
</x-guest-layout>
|
<label for="password">Password</label>
|
||||||
|
<input
|
||||||
|
id="password"
|
||||||
|
type="password"
|
||||||
|
name="password"
|
||||||
|
required
|
||||||
|
autocomplete="new-password"
|
||||||
|
/>
|
||||||
|
<x-input-error :messages="$errors->get('password')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Confirm Password -->
|
||||||
|
<div class="field-row">
|
||||||
|
<label for="password_confirmation">Confirm Password</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
id="password_confirmation"
|
||||||
|
type="password"
|
||||||
|
name="password_confirmation"
|
||||||
|
required
|
||||||
|
autocomplete="new-password"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<x-input-error :messages="$errors->get('password_confirmation')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit">Reset Password</button>
|
||||||
|
</form>
|
||||||
|
</x-window>
|
||||||
|
</x-layout>
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
<x-guest-layout>
|
<x-layout title="Verify Email">
|
||||||
<x-slot:title>Verify Email</x-slot>
|
<x-window>
|
||||||
|
|
||||||
<p>
|
|
||||||
Thanks for signing up! Before getting started, could you verify your email
|
|
||||||
address by clicking on the link we just emailed to you? If you didn't
|
|
||||||
receive the email, we will gladly send you another.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
@if (session('status') == 'verification-link-sent')
|
|
||||||
<p>
|
<p>
|
||||||
A new verification link has been sent to the email address you provided
|
Thanks for signing up! Before getting started, could you verify your email
|
||||||
during registration.
|
address by clicking on the link we just emailed to you? If you didn't
|
||||||
|
receive the email, we will gladly send you another.
|
||||||
</p>
|
</p>
|
||||||
@endif
|
|
||||||
|
|
||||||
<div>
|
@if (session('status') == 'verification-link-sent')
|
||||||
<form method="POST" action="{{ route('verification.send') }}">
|
<p>
|
||||||
@csrf
|
A new verification link has been sent to the email address you provided
|
||||||
|
during registration.
|
||||||
|
</p>
|
||||||
|
@endif
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button type="submit">Resend Verification Email</button>
|
<form method="POST" action="{{ route('verification.send') }}">
|
||||||
</div>
|
@csrf
|
||||||
</form>
|
|
||||||
|
|
||||||
<form method="POST" action="{{ route('logout') }}">
|
<div>
|
||||||
@csrf
|
<button type="submit">Resend Verification Email</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<button type="submit">Log Out</button>
|
<form method="POST" action="{{ route('logout') }}">
|
||||||
</form>
|
@csrf
|
||||||
</div>
|
|
||||||
</x-guest-layout>
|
<button type="submit">Log Out</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</x-window>
|
||||||
|
</x-layout>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<x-layout>
|
<x-layout title="New Category">
|
||||||
<x-slot:title>New Category</x-slot>
|
<x-window>
|
||||||
|
<form action="{{ route('categories.store') }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<form action="{{ route('categories.store') }}" method="POST">
|
<div class="field-row">
|
||||||
@csrf
|
<label for="name">Category Name</label>
|
||||||
|
<input type="text" id="name" name="name" />
|
||||||
|
<x-input-error :messages="$errors->get('name')" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="field-row">
|
<button type="submit">Submit</button>
|
||||||
<label for="name">Category Name</label>
|
</form>
|
||||||
<input type="text" id="name" name="name" />
|
</x-window>
|
||||||
<x-input-error :messages="$errors->get('name')" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|
|
@ -1,30 +1,35 @@
|
||||||
<x-layout>
|
<x-layout title="Categories">
|
||||||
<x-slot:title>Categories</x-slot>
|
<x-window>
|
||||||
|
<div class="sunken-panel">
|
||||||
<div class="sunken-panel">
|
<table class="interactive">
|
||||||
<table class="interactive">
|
<thead>
|
||||||
<thead>
|
<tr>
|
||||||
<tr>
|
<th>Category</th>
|
||||||
<th>Category</th>
|
<th>Actions</th>
|
||||||
<th>Actions</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody x-data="{ hovered: null }" x-on:mouseleave="hovered = null">
|
|
||||||
@foreach ($categories as $category)
|
|
||||||
<tr
|
|
||||||
id="{{ $category->id }}"
|
|
||||||
x-on:mouseenter="hovered = $event.target.id"
|
|
||||||
x-bind:class="{ 'highlighted': hovered === $el.id }"
|
|
||||||
>
|
|
||||||
<td>{{ $category->name }}</td>
|
|
||||||
<td>
|
|
||||||
<a href="{{ route('categories.show', $category->id) }}">View</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
</thead>
|
||||||
</tbody>
|
<tbody
|
||||||
</table>
|
x-data="{ hovered: null }"
|
||||||
</div>
|
x-on:mouseleave="hovered = null"
|
||||||
|
>
|
||||||
|
@foreach ($categories as $category)
|
||||||
|
<tr
|
||||||
|
id="{{ $category->id }}"
|
||||||
|
x-on:mouseenter="hovered = $event.target.id"
|
||||||
|
x-bind:class="{ 'highlighted': hovered === $el.id }"
|
||||||
|
>
|
||||||
|
<td>{{ $category->name }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="{{ route('categories.show', $category->id) }}">
|
||||||
|
View
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<a href="{{ route('categories.create') }}">New</a>
|
<a href="{{ route('categories.create') }}" class="button">New</a>
|
||||||
|
</x-window>
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<x-layout>
|
<x-layout :title="'Category: '. $category->name">
|
||||||
<x-slot:title>
|
<x-window>
|
||||||
Category: {{ $category->name }}
|
<a href="{{ route('categories.index') }}">All</a>
|
||||||
</x-slot>
|
</x-window>
|
||||||
|
|
||||||
<h2>{{ $category->name }}</h2>
|
|
||||||
<a href="{{ route('categories.index') }}">All</a>
|
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
@props([
|
||||||
|
'title',
|
||||||
|
])
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
@props([
|
@props([
|
||||||
'title',
|
|
||||||
'minimize' => true,
|
'minimize' => true,
|
||||||
'maximize' => false,
|
'maximize' => false,
|
||||||
'restore' => true,
|
'restore' => true,
|
||||||
|
@ -7,6 +6,10 @@
|
||||||
'close' => true,
|
'close' => true,
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@aware([
|
||||||
|
'title' => config('app.name', 'Laravel'),
|
||||||
|
])
|
||||||
|
|
||||||
@php
|
@php
|
||||||
if ($restore) {
|
if ($restore) {
|
||||||
$maximize = false;
|
$maximize = false;
|
||||||
|
@ -15,9 +18,7 @@
|
||||||
|
|
||||||
<div {{ $attributes->merge(['class' => 'window']) }}>
|
<div {{ $attributes->merge(['class' => 'window']) }}>
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
@isset($title)
|
<div class="title-bar-text">{{ $title }}</div>
|
||||||
<div class="title-bar-text">{{ $title }}</div>
|
|
||||||
@endisset
|
|
||||||
|
|
||||||
@if ($minimize || $maximize || $restore || $help || $close)
|
@if ($minimize || $maximize || $restore || $help || $close)
|
||||||
<div class="title-bar-controls">
|
<div class="title-bar-controls">
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<x-layout>
|
<x-layout title="Profile">
|
||||||
<x-slot:title>Profile</x-slot>
|
<x-window title="Profile Information">
|
||||||
|
@include('profile.partials.update-profile-information-form')
|
||||||
|
</x-window>
|
||||||
|
|
||||||
@include('profile.partials.update-profile-information-form')
|
<x-window title="Update Password">
|
||||||
@include('profile.partials.update-password-form')
|
@include('profile.partials.update-password-form')
|
||||||
|
</x-window>
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
<p>Update Password</p>
|
|
||||||
|
|
||||||
<p>Ensure your account is using a long, random password to stay secure.</p>
|
<p>Ensure your account is using a long, random password to stay secure.</p>
|
||||||
|
|
||||||
<form method="post" action="{{ route('password.update') }}">
|
<form method="post" action="{{ route('password.update') }}">
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
<h2>Profile Information</h2>
|
|
||||||
|
|
||||||
<p>Update your account's profile information and email address.</p>
|
<p>Update your account's profile information and email address.</p>
|
||||||
|
|
||||||
<form
|
<form
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
<x-layout></x-layout>
|
<x-layout>
|
||||||
|
<x-window>Welcome!</x-window>
|
||||||
|
</x-layout>
|
||||||
|
|
Loading…
Reference in a new issue