admin views
This commit is contained in:
parent
79d9d8df71
commit
6251eb3281
6
.env
6
.env
|
@ -22,9 +22,9 @@ LOG_LEVEL=debug
|
|||
DB_CONNECTION=pgsql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=5432
|
||||
DB_DATABASE=laravel
|
||||
DB_USERNAME=laravel
|
||||
DB_PASSWORD=laravel
|
||||
DB_DATABASE=dym
|
||||
DB_USERNAME=dym
|
||||
DB_PASSWORD=+-Vl+'&Qfb[2LxbhpR].S6F<MC}>xk(Y+qQfg:Hj
|
||||
|
||||
SESSION_DRIVER=database
|
||||
SESSION_LIFETIME=120
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
use HasFactory, Notifiable;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password',
|
||||
'remember_token',
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the attributes that should be cast.
|
||||
*
|
||||
* @return array<string, string>
|
||||
*/
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'email_verified_at' => 'datetime',
|
||||
'password' => 'hashed',
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class layout-admin extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*/
|
||||
public function render(): View|Closure|string
|
||||
{
|
||||
return view('components.layout-admin');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class tag extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*/
|
||||
public function render(): View|Closure|string
|
||||
{
|
||||
return view('components.tag');
|
||||
}
|
||||
}
|
|
@ -13,7 +13,6 @@ return new class extends Migration
|
|||
{
|
||||
Schema::create('users', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('email')->unique();
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
|
|
|
@ -43,6 +43,10 @@
|
|||
, span
|
||||
, ul, ol, li
|
||||
, dl, dd, dt
|
||||
, form
|
||||
, input
|
||||
, textarea
|
||||
, button
|
||||
{ all : unset
|
||||
; margin : 0
|
||||
; padding : 0
|
||||
|
@ -366,13 +370,29 @@ figure > figcaption
|
|||
|
||||
input
|
||||
, button
|
||||
, textarea
|
||||
{ padding: 0.25rem 0.5rem
|
||||
; border-radius: var(--mw)
|
||||
; background: none
|
||||
; color: var(--text)
|
||||
}
|
||||
|
||||
button
|
||||
{ background: var(--gray)
|
||||
; color: var(--bg)
|
||||
}
|
||||
|
||||
input
|
||||
, button
|
||||
{ box-shadow : inset 0 0 0 0.125rem #ddd }
|
||||
|
||||
input
|
||||
{ width : 14rem
|
||||
; padding : 0 1rem
|
||||
}
|
||||
|
||||
.buttons input[type="search"]
|
||||
{ color : var(--bg) }
|
||||
|
||||
input[type="search"] + button
|
||||
{ margin-left : -3rem
|
||||
; display : none
|
||||
|
@ -418,7 +438,7 @@ button
|
|||
; grid-template-columns : 1fr 1fr
|
||||
}
|
||||
|
||||
.about
|
||||
.article
|
||||
{ gap : 3rem
|
||||
; display : grid
|
||||
; grid-template-columns : 10rem 1fr
|
||||
|
@ -426,7 +446,7 @@ button
|
|||
; align-content: start
|
||||
}
|
||||
|
||||
.about a
|
||||
.article a
|
||||
, summary
|
||||
{ border-radius : 0.125rem
|
||||
; text-decoration : underline
|
||||
|
@ -440,9 +460,9 @@ button
|
|||
, summary
|
||||
{ color : var(--green) }
|
||||
|
||||
.about a:not(.th):active
|
||||
, .about a:not(.th):focus
|
||||
, .about a:not(.th):hover
|
||||
.article a:not(.th):active
|
||||
, .article a:not(.th):focus
|
||||
, .article a:not(.th):hover
|
||||
{ background : var(--bg)
|
||||
; box-shadow:
|
||||
0 0 0 0.125rem var(--bg)
|
||||
|
@ -459,7 +479,7 @@ button
|
|||
; color : var(--honey)
|
||||
; font-weight : 500
|
||||
}
|
||||
.about h3
|
||||
.article h3
|
||||
{ text-align : unset
|
||||
; margin-top: 1rem
|
||||
}
|
||||
|
@ -472,8 +492,8 @@ h2 a:any-link
|
|||
, h2 a[href^='/']:any-link
|
||||
{ color : var(--honey) }
|
||||
|
||||
.about ul
|
||||
, .about p
|
||||
.article ul
|
||||
, .article p
|
||||
{ margin : 0 }
|
||||
|
||||
h1 + ul
|
||||
|
@ -481,10 +501,10 @@ h2 a:any-link
|
|||
, h3 + ul
|
||||
{ padding-top : 0 }
|
||||
|
||||
.about ul + h1
|
||||
, .about ul + h2
|
||||
, .about ul + h3
|
||||
, .about ul > :last-child
|
||||
.article ul + h1
|
||||
, .article ul + h2
|
||||
, .article ul + h3
|
||||
, .article ul > :last-child
|
||||
{ padding-bottom : 0 }
|
||||
|
||||
ul
|
||||
|
@ -547,7 +567,7 @@ ul > li::before
|
|||
|
||||
|
||||
@media screen and (max-width : 600px) {
|
||||
.about
|
||||
.article
|
||||
{ display : flex
|
||||
; flex-direction : column
|
||||
; gap : 1rem
|
||||
|
@ -558,11 +578,11 @@ ul > li::before
|
|||
}
|
||||
}
|
||||
@media screen and (max-width : 800px) {
|
||||
.about .col-2
|
||||
.article .col-2
|
||||
{ display : flex }
|
||||
}
|
||||
@media screen and (max-width : 1000px) {
|
||||
.about .col-2.tablet-col-1
|
||||
.article .col-2.tablet-col-1
|
||||
{ display : flex }
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<x-layout>
|
||||
|
||||
<main class="about">
|
||||
<main class="article">
|
||||
<firugre class="thumbnail">
|
||||
<img src="/pages/about/photo.jpg" width="125" height="125" alt="photo">
|
||||
</firugre>
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
<x-layout-admin>
|
||||
|
||||
</x-layout-admin>
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<div class="about">
|
||||
<div class="article">
|
||||
|
||||
<h2>/vis</h2>
|
||||
<ul>
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
<!doctype html>
|
||||
<html lang="en" prefix="og: http://ogp.me/ns#"><head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf8">
|
||||
<title>{{ request()->path() }}</title>
|
||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<nav class="c">
|
||||
<div class="buttons round">
|
||||
<x-nav-link class="orange">new</x-nav-link>
|
||||
<x-nav-link class="gray">list</x-nav-link>
|
||||
<x-nav-link class="pink">tags</x-nav-link>
|
||||
<x-nav-link class="gray">collections</x-nav-link>
|
||||
<x-nav-link class="gray">admin/list</x-nav-link>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
{{-- <?php
|
||||
if ( $_SESSION['active']) {
|
||||
echo $slot;
|
||||
} else { ?>
|
||||
--}}
|
||||
|
||||
<form class="col c" method="post" name="login_form">
|
||||
<input type="email" name="email" placeholder="email">
|
||||
<input type="password" name="password" placeholder="password">
|
||||
<button onclick="login_form.submit()">Login</button>
|
||||
</form>
|
||||
|
||||
{{ $slot }}
|
||||
{{-- <?php } ?> --}}
|
||||
|
||||
<footer class="c">
|
||||
<form class="buttons round c" method="get" name="search_form">
|
||||
<input type="search" name="search">
|
||||
<button onclick="search_form.submit()"
|
||||
class="gray" title="search"
|
||||
><span class="hidden">/</span>
|
||||
</search>
|
||||
</form>
|
||||
</footer>
|
||||
|
||||
</body></html>
|
|
@ -70,8 +70,8 @@
|
|||
<footer class="c">
|
||||
<div class="buttons round">
|
||||
<a href="{{ str_starts_with(request()->path(), 'about') ? '/' : '/about/' }}"
|
||||
class="bg-icon" title="about"
|
||||
><span class="hidden">about</span>
|
||||
class="bg-icon" title="{{ str_starts_with(request()->path(), 'about') ? '/' : 'about' }}"
|
||||
><span class="hidden">{{ str_starts_with(request()->path(), 'about') ? '/' : 'about' }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<a href="'/tags/'.$slot.'/' }}"
|
||||
aria-current="{{ str_starts_with(request()->path(), 'tags/'.$slot) ? 'true' : 'false' }}"
|
||||
{{ $attributes->merge(['class' => str_starts_with(request()->path(), 'tags/'.$slot ) ? 'current' : '' ])}}
|
||||
>{{ $slot }}</a>
|
|
@ -0,0 +1,9 @@
|
|||
<x-layout-admin>
|
||||
|
||||
<form>
|
||||
<input type="text" name="slug">
|
||||
<textarea name="body"></textarea>
|
||||
<input type="submit">
|
||||
</form>
|
||||
|
||||
</x-layout-admin>
|
|
@ -6,7 +6,7 @@
|
|||
<a href="/articles">/<span>articles</span></a>
|
||||
</aside>
|
||||
|
||||
<main class="about">
|
||||
<main class="article">
|
||||
<h1>2024</h1>
|
||||
<section>
|
||||
<p>a groot start</p>
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<x-layout>
|
||||
|
||||
<main class="article">
|
||||
|
||||
</main>
|
||||
|
||||
</x-layout>
|
|
@ -0,0 +1,7 @@
|
|||
<x-layout>
|
||||
|
||||
<main class="article">
|
||||
|
||||
</main>
|
||||
|
||||
</x-layout>
|
|
@ -7,26 +7,41 @@ Route::get('/', function () {
|
|||
});
|
||||
|
||||
|
||||
Route::get('/about', function () {
|
||||
Route::name('about.show')->get('/about', function () {
|
||||
return view('about');
|
||||
});
|
||||
|
||||
Route::get('/graphics', function () {
|
||||
return view('graphics');
|
||||
});
|
||||
|
||||
Route::get('/photos', function () {
|
||||
return view('photos');
|
||||
});
|
||||
|
||||
Route::get('/comics', function () {
|
||||
return view('comics');
|
||||
});
|
||||
|
||||
Route::get('/code', function () {
|
||||
return view('code');
|
||||
});
|
||||
|
||||
Route::get('/notes', function () {
|
||||
return view('code');
|
||||
return view('notes');
|
||||
});
|
||||
|
||||
|
||||
Route::name('pages.list')->get('/list', function () {
|
||||
return view('list');
|
||||
});
|
||||
Route::name('admin.new')->get('/new', function () {
|
||||
return view('edit');
|
||||
});
|
||||
Route::name('admin.edit')->get('/edit/{slug}', function ($name) {
|
||||
return view('edit');
|
||||
})->where('slug', '[A-Za-z0-9-]+');
|
||||
Route::name('admin.index')->get('/admin', function ($name = null) {
|
||||
return view('admin');
|
||||
});
|
||||
|
||||
|
||||
Route::name('page.show')->get('/{slug}', function () {
|
||||
return view('page');
|
||||
})->where('slug', '[A-Za-z0-9-]+');
|
||||
|
|
Loading…
Reference in New Issue