Update (all): fix php formatting using laravel pint, fix blade using shufo
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
|
||||
require 'string_helper.php';
|
||||
require 'geo_helper.php';
|
||||
@@ -5,7 +5,6 @@
|
||||
* A better function to check if a value is empty or null. Strings, arrays, and Objects are supported.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return bool
|
||||
*/
|
||||
function is_empty($value): bool
|
||||
{
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
/**
|
||||
|
||||
@@ -3,9 +3,8 @@
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Http\Requests\ProfileUpdateRequest;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use App\Models\User;
|
||||
|
||||
class UserController extends Controller
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\Models\User;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
@@ -44,7 +44,6 @@ public function __construct()
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
@@ -59,7 +58,6 @@ protected function validator(array $data)
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\Models\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
|
||||
@@ -3,13 +3,9 @@
|
||||
namespace App\Http\Controllers\Front;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Stevebauman\Location\Facades\Location;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\CountryLocale;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
@@ -22,8 +18,7 @@ public function country(Request $request, $country)
|
||||
{
|
||||
$country = CountryLocale::where('slug', $country)->first();
|
||||
|
||||
if (!is_null($country))
|
||||
{
|
||||
if (! is_null($country)) {
|
||||
$categories = Category::where('country_locale_id', $country->id)->get();
|
||||
|
||||
return view('front.country', ['categories' => $categories, 'country' => $country]);
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ProfileUpdateRequest extends FormRequest
|
||||
{
|
||||
|
||||
@@ -26,14 +26,12 @@
|
||||
* @property string|null $deleted_at
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
*
|
||||
* @property CountryLocale $country_locale
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class Category extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'categories';
|
||||
|
||||
protected $casts = [
|
||||
@@ -42,7 +40,7 @@ class Category extends Model
|
||||
'is_top' => 'bool',
|
||||
'_lft' => 'int',
|
||||
'_rgt' => 'int',
|
||||
'parent_id' => 'int'
|
||||
'parent_id' => 'int',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
@@ -54,7 +52,7 @@ class Category extends Model
|
||||
'is_top',
|
||||
'_lft',
|
||||
'_rgt',
|
||||
'parent_id'
|
||||
'parent_id',
|
||||
];
|
||||
|
||||
public function country_locale()
|
||||
|
||||
@@ -21,22 +21,21 @@
|
||||
* @property string|null $deleted_at
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class CountryLocale extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'country_locales';
|
||||
|
||||
protected $casts = [
|
||||
'enabled' => 'bool'
|
||||
'enabled' => 'bool',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'slug',
|
||||
'i18n',
|
||||
'enabled'
|
||||
'enabled',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
"laravel/pint": "^1.0",
|
||||
"laravel/pint": "^1.10",
|
||||
"laravel/sail": "^1.18",
|
||||
"laraveldaily/larastarters": "^2.3",
|
||||
"mockery/mockery": "^1.4.4",
|
||||
|
||||
2
composer.lock
generated
2
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "7c7dee8e0b413eb119aa5455e2d5a6ce",
|
||||
"content-hash": "d4622e7e11ee1dc87e72a4ec06a255f9",
|
||||
"packages": [
|
||||
{
|
||||
"name": "artesaos/seotools",
|
||||
|
||||
@@ -489,18 +489,18 @@
|
||||
|
|
||||
*/
|
||||
|
||||
// 'connections' => [
|
||||
// 'read_only_external' => [
|
||||
// 'parent' => \App\Models\ReadOnlyModel::class,
|
||||
// 'connection' => true,
|
||||
// 'users' => [
|
||||
// 'connection' => false,
|
||||
// ],
|
||||
// 'my_other_database' => [
|
||||
// 'password_resets' => [
|
||||
// 'connection' => false,
|
||||
// ]
|
||||
// ]
|
||||
// ],
|
||||
// ],
|
||||
// 'connections' => [
|
||||
// 'read_only_external' => [
|
||||
// 'parent' => \App\Models\ReadOnlyModel::class,
|
||||
// 'connection' => true,
|
||||
// 'users' => [
|
||||
// 'connection' => false,
|
||||
// ],
|
||||
// 'my_other_database' => [
|
||||
// 'password_resets' => [
|
||||
// 'connection' => false,
|
||||
// ]
|
||||
// ]
|
||||
// ],
|
||||
// ],
|
||||
];
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
return [
|
||||
'app_version' => '1.0.0',
|
||||
|
||||
'dev_default_ip' => env('DEV_DEFAULT_IP','127.0.0.1'),
|
||||
'dev_default_ip' => env('DEV_DEFAULT_IP', '127.0.0.1'),
|
||||
];
|
||||
@@ -1,11 +1,10 @@
|
||||
<?php
|
||||
|
||||
use App\Models\CountryLocale;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
use App\Models\CountryLocale;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
@extends('layouts.admin.app')
|
||||
|
||||
@section('custom_styles')
|
||||
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($users as $user)
|
||||
@foreach ($users as $user)
|
||||
<tr>
|
||||
<td>{{ $user->name }}</td>
|
||||
<td>{{ $user->email }}</td>
|
||||
@@ -39,7 +39,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@if( $users->hasPages() )
|
||||
@if ($users->hasPages())
|
||||
<div class="card-footer pb-0">
|
||||
{{ $users->links() }}
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Email address') }}</label>
|
||||
<input type="email" name="email" value="{{ old('email') }}" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Enter email') }}" required autofocus tabindex="1">
|
||||
<input type="email" name="email" value="{{ old('email') }}"
|
||||
class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Enter email') }}" required
|
||||
autofocus tabindex="1">
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -24,7 +26,8 @@
|
||||
</span>
|
||||
@endif
|
||||
</label>
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('Password') }}" required tabindex="2">
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
|
||||
placeholder="{{ __('Password') }}" required tabindex="2">
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -48,5 +51,4 @@
|
||||
{{ __("Don't have account yet?") }} <a href="{{ route('register') }}" tabindex="-1">{{ __('Sign up') }}</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
</span>
|
||||
@endif
|
||||
</label>
|
||||
<input type="password" name="password" class="form-control form-control-user @error('password') is-invalid @enderror" placeholder="{{ __('Enter Password') }}">
|
||||
<input type="password" name="password"
|
||||
class="form-control form-control-user @error('password') is-invalid @enderror"
|
||||
placeholder="{{ __('Enter Password') }}">
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
@extends('layouts.admin.guest')
|
||||
|
||||
@section('content')
|
||||
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('status') }}
|
||||
@@ -14,11 +13,14 @@
|
||||
<div class="card-body">
|
||||
<h2 class="card-title text-center mb-4">{{ __('Forgot password') }}</h2>
|
||||
|
||||
<p class="text-muted mb-4">{{ __('Enter your email address and your password will be reset and emailed to you.') }}</p>
|
||||
<p class="text-muted mb-4">
|
||||
{{ __('Enter your email address and your password will be reset and emailed to you.') }}</p>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Email address') }}</label>
|
||||
<input type="email" name="email" value="{{ old('email') }}" class="form-control form-control-user @error('email') is-invalid @enderror" placeholder="{{ __('Enter Email Address...') }}">
|
||||
<input type="email" name="email" value="{{ old('email') }}"
|
||||
class="form-control form-control-user @error('email') is-invalid @enderror"
|
||||
placeholder="{{ __('Enter Email Address...') }}">
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -37,5 +39,4 @@
|
||||
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Email address') }}</label>
|
||||
<input type="email" name="email" value="{{ old('email') }}" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
|
||||
<input type="email" name="email" value="{{ old('email') }}"
|
||||
class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -19,7 +20,8 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('New Password') }}</label>
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('New Password') }}">
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
|
||||
placeholder="{{ __('New Password') }}">
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -27,7 +29,9 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Repeat New Password') }}</label>
|
||||
<input type="password" name="password_confirmation" class="form-control @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('Repeat New Password') }}">
|
||||
<input type="password" name="password_confirmation"
|
||||
class="form-control @error('password_confirmation') is-invalid @enderror"
|
||||
placeholder="{{ __('Repeat New Password') }}">
|
||||
@error('password_confirmation')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
<div class="alert alert-success alert-dismissible">
|
||||
<div class="d-flex">
|
||||
<div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon alert-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon alert-icon" width="24"
|
||||
height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M5 12l5 5l10 -10"></path>
|
||||
</svg>
|
||||
@@ -46,7 +48,8 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required">{{ __('Name') }}</label>
|
||||
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="{{ __('Name') }}" value="{{ old('name', auth()->user()->name) }}" required>
|
||||
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror"
|
||||
placeholder="{{ __('Name') }}" value="{{ old('name', auth()->user()->name) }}" required>
|
||||
</div>
|
||||
@error('name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@@ -54,7 +57,8 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required">{{ __('Email address') }}</label>
|
||||
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email') }}" value="{{ old('email', auth()->user()->email) }}" required>
|
||||
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror"
|
||||
placeholder="{{ __('Email') }}" value="{{ old('email', auth()->user()->email) }}" required>
|
||||
</div>
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@@ -62,7 +66,8 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required">{{ __('New password') }}</label>
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('New password') }}">
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
|
||||
placeholder="{{ __('New password') }}">
|
||||
</div>
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@@ -70,7 +75,9 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required">{{ __('New password confirmation') }}</label>
|
||||
<input type="password" name="password_confirmation" class="form-control @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('New password confirmation') }}" autocomplete="new-password">
|
||||
<input type="password" name="password_confirmation"
|
||||
class="form-control @error('password_confirmation') is-invalid @enderror"
|
||||
placeholder="{{ __('New password confirmation') }}" autocomplete="new-password">
|
||||
</div>
|
||||
@error('password_confirmation')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@@ -86,5 +93,4 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -9,28 +9,33 @@
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Name') }}</label>
|
||||
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="{{ __('Name') }}">
|
||||
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror"
|
||||
placeholder="{{ __('Name') }}">
|
||||
@error('name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Email address') }}</label>
|
||||
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
|
||||
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror"
|
||||
placeholder="{{ __('Email Address') }}">
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Password') }}</label>
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('Password') }}">
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
|
||||
placeholder="{{ __('Password') }}">
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">{{ __('Repeat Password') }}</label>
|
||||
<input type="password" name="password_confirmation" class="form-control form-control-user @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('Repeat Password') }}">
|
||||
<input type="password" name="password_confirmation"
|
||||
class="form-control form-control-user @error('password_confirmation') is-invalid @enderror"
|
||||
placeholder="{{ __('Repeat Password') }}">
|
||||
@error('password_confirmation')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -47,5 +52,4 @@
|
||||
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
@extends('layouts.front.app')
|
||||
|
||||
@section('content')
|
||||
<div class="container py-3">
|
||||
<div class="container py-3">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-12 col-lg-8 py-5">
|
||||
<h2 class="h3 fw-bold">ProductAlert is the place to be for top rated product reviews with recommendation such as the right price, latest trend, from the best brands.</h2>
|
||||
<h2 class="h3 fw-bold">ProductAlert is the place to be for top rated product reviews with recommendation such
|
||||
as the right price, latest trend, from the best brands.</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid py-4 bg-dark text-light">
|
||||
</div>
|
||||
<div class="container-fluid py-4 bg-dark text-light">
|
||||
<div class="container">
|
||||
<h3 class="h4 fw-bold text-center mb-3">Featured Articles</h3>
|
||||
<div class="row g-3 justify-content-center">
|
||||
@for($i = 1; $i <= 3; $i++)
|
||||
@for ($i = 1; $i <= 3; $i++)
|
||||
<div class="col-12 col-xl-3">
|
||||
<a href="#" class="text-decoration-none">
|
||||
<div class="card shadow-sm">
|
||||
<img src="https://placekitten.com/400/300" alt="" class="card-img-top">
|
||||
<div class="card-body">
|
||||
<p class="card-text fw-bold">Here is why a kitten catches mice faster than an adult cat.</p>
|
||||
<p class="card-text fw-bold">Here is why a kitten catches mice faster than an adult cat.
|
||||
</p>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<small class="text-body-secondary">5 April 2023</small>
|
||||
<small class="text-body-secondary">9 mins</small>
|
||||
@@ -31,25 +33,28 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid py-4">
|
||||
</div>
|
||||
<div class="container-fluid py-4">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-lg-9">
|
||||
<h3 class="h4 fw-bold text-center mb-3">What's New</h3>
|
||||
<h3 class="h4 fw-bold text-center mb-3">What's New</h3>
|
||||
<div class="row g-3">
|
||||
@for($i = 1; $i <= 12; $i++)
|
||||
@for ($i = 1; $i <= 12; $i++)
|
||||
<div class="col-6">
|
||||
<a href="#" class="text-decoration-none">
|
||||
<div class="card">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4">
|
||||
<img src="https://placekitten.com/400/300" class="img-fluid rounded-start" alt="...">
|
||||
<img src="https://placekitten.com/400/300" class="img-fluid rounded-start"
|
||||
alt="...">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
<p class="card-title fw-bold">Here is why a kitten catches mice faster than an adult cat.</p>
|
||||
<p class="card-text"><small class="text-body-secondary">5 April 2023 <span class="mx-4"></span> 3 mins</small></p>
|
||||
<p class="card-title fw-bold">Here is why a kitten catches mice faster
|
||||
than an adult cat.</p>
|
||||
<p class="card-text"><small class="text-body-secondary">5 April 2023
|
||||
<span class="mx-4"></span> 3 mins</small></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -65,5 +70,5 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -14,6 +14,7 @@
|
||||
@yield('custom_styles')
|
||||
|
||||
</head>
|
||||
|
||||
<body class="theme-light">
|
||||
<div class="page">
|
||||
<div class="sticky-top">
|
||||
@@ -40,4 +41,5 @@
|
||||
@yield('custom_scripts')
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="row text-center align-items-center flex-row-reverse">
|
||||
<div class="col-lg-auto ms-lg-auto">
|
||||
<ul class="list-inline list-inline-dots mb-0">
|
||||
{{-- <li class="list-inline-item"><a href="https://preview.tabler.io" target="_blank" class="link-secondary" rel="noopener">Tabler Demo</a></li>
|
||||
{{-- <li class="list-inline-item"><a href="https://preview.tabler.io" target="_blank" class="link-secondary" rel="noopener">Tabler Demo</a></li>
|
||||
<li class="list-inline-item"><a href="https://preview.tabler.io/docs/index.html" target="_blank" class="link-secondary" rel="noopener">Tabler Doc.</a></li>
|
||||
<li class="list-inline-item"><a href="https://preview.tabler.io/license.html" target="_blank" class="link-secondary" rel="noopener">Tabler License</a></li>
|
||||
<li class="list-inline-item"><a href="https://github.com/tabler/tabler" target="_blank" class="link-secondary" rel="noopener">Tabler Source code</a></li>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
@@ -9,6 +10,7 @@
|
||||
|
||||
@vite('resources/sass/app.scss')
|
||||
</head>
|
||||
|
||||
<body class="border-top-wide border-primary d-flex flex-column">
|
||||
|
||||
<div class="page page-center">
|
||||
@@ -26,4 +28,5 @@
|
||||
|
||||
@vite('resources/js/app.js')
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -10,8 +10,10 @@
|
||||
|
||||
@auth
|
||||
<div class="nav-item dropdown">
|
||||
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown" aria-label="Open user menu">
|
||||
<span class="avatar avatar-sm" style="background-image: url(https://eu.ui-avatars.com/api/?name={{ urlencode(auth()->user()->name) }})"></span>
|
||||
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown"
|
||||
aria-label="Open user menu">
|
||||
<span class="avatar avatar-sm"
|
||||
style="background-image: url(https://eu.ui-avatars.com/api/?name={{ urlencode(auth()->user()->name) }})"></span>
|
||||
<div class="d-none d-xl-block ps-2">
|
||||
{{ auth()->user()->name ?? null }}
|
||||
</div>
|
||||
@@ -21,7 +23,8 @@
|
||||
<div class="dropdown-divider"></div>
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<a href="{{ route('logout') }}" class="dropdown-item" onclick="event.preventDefault(); this.closest('form').submit();">
|
||||
<a href="{{ route('logout') }}" class="dropdown-item"
|
||||
onclick="event.preventDefault(); this.closest('form').submit();">
|
||||
{{ __('Log Out') }}
|
||||
</a>
|
||||
</form>
|
||||
|
||||
@@ -4,10 +4,13 @@
|
||||
<div class="container-xl">
|
||||
<ul class="navbar-nav">
|
||||
|
||||
<li class="nav-item @if(request()->routeIs('home')) active @endif">
|
||||
<a class="nav-link" href="{{ route('home') }}" >
|
||||
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-door-exit" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<li class="nav-item @if (request()->routeIs('home')) active @endif">
|
||||
<a class="nav-link" href="{{ route('home') }}">
|
||||
<span
|
||||
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-door-exit"
|
||||
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
|
||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M13 12v.01"></path>
|
||||
<path d="M3 21h18"></path>
|
||||
@@ -22,10 +25,18 @@
|
||||
</li>
|
||||
|
||||
|
||||
<li class="nav-item @if(request()->routeIs('dashboard')) active @endif">
|
||||
<a class="nav-link" href="{{ route('dashboard') }}" >
|
||||
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><polyline points="5 12 3 12 12 3 21 12 19 12" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
|
||||
<li class="nav-item @if (request()->routeIs('dashboard')) active @endif">
|
||||
<a class="nav-link" href="{{ route('dashboard') }}">
|
||||
<span
|
||||
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<polyline points="5 12 3 12 12 3 21 12 19 12" />
|
||||
<path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" />
|
||||
<path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="nav-link-title">
|
||||
{{ __('Dashboard') }}
|
||||
@@ -33,10 +44,13 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item @if(request()->routeIs('users.index')) active @endif">
|
||||
<a class="nav-link" href="{{ route('users.index') }}" >
|
||||
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<li class="nav-item @if (request()->routeIs('users.index')) active @endif">
|
||||
<a class="nav-link" href="{{ route('users.index') }}">
|
||||
<span
|
||||
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users"
|
||||
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
|
||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<circle cx="9" cy="7" r="4"></circle>
|
||||
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path>
|
||||
@@ -50,10 +64,13 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item @if(request()->routeIs('about')) active @endif">
|
||||
<a class="nav-link" href="{{ route('about') }}" >
|
||||
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<li class="nav-item @if (request()->routeIs('about')) active @endif">
|
||||
<a class="nav-link" href="{{ route('about') }}">
|
||||
<span
|
||||
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle"
|
||||
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
|
||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<circle cx="12" cy="12" r="9"></circle>
|
||||
<line x1="12" y1="8" x2="12.01" y2="8"></line>
|
||||
@@ -67,16 +84,23 @@
|
||||
</li>
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#navbar-extra" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false" >
|
||||
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/star -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-list-details" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<a class="nav-link dropdown-toggle" href="#navbar-extra" data-bs-toggle="dropdown"
|
||||
data-bs-auto-close="outside" role="button" aria-expanded="false">
|
||||
<span
|
||||
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/star -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon icon-tabler icon-tabler-list-details" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M13 5h8"></path>
|
||||
<path d="M13 9h5"></path>
|
||||
<path d="M13 15h8"></path>
|
||||
<path d="M13 19h5"></path>
|
||||
<rect x="3" y="4" width="6" height="6" rx="1"></rect>
|
||||
<rect x="3" y="14" width="6" height="6" rx="1"></rect>
|
||||
<rect x="3" y="4" width="6" height="6"
|
||||
rx="1"></rect>
|
||||
<rect x="3" y="14" width="6" height="6"
|
||||
rx="1"></rect>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="nav-link-title">
|
||||
@@ -84,11 +108,12 @@
|
||||
</span>
|
||||
</a>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#" >
|
||||
<a class="dropdown-item" href="#">
|
||||
Submenu Item #1
|
||||
</a>
|
||||
<div class="dropend">
|
||||
<a class="dropdown-item dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false">
|
||||
<a class="dropdown-item dropdown-toggle" href="#" data-bs-toggle="dropdown"
|
||||
data-bs-auto-close="outside" role="button" aria-expanded="false">
|
||||
Submenu Item #2
|
||||
</a>
|
||||
<div class="dropdown-menu">
|
||||
@@ -103,7 +128,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<a class="dropdown-item" href="#" >
|
||||
<a class="dropdown-item" href="#">
|
||||
Submenu Item #3
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
@include('layouts.front.header')
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@include('layouts.front.navigation')
|
||||
@@ -31,4 +32,5 @@
|
||||
@yield('custom_scripts')
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
|
||||
</li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
|
||||
</ul>
|
||||
@@ -16,8 +17,10 @@
|
||||
<h5>Section</h5>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a>
|
||||
</li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
|
||||
</li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
|
||||
</ul>
|
||||
@@ -27,8 +30,10 @@
|
||||
<h5>Section</h5>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a>
|
||||
</li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
|
||||
</li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
|
||||
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
|
||||
</ul>
|
||||
@@ -50,9 +55,18 @@
|
||||
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4">
|
||||
<p>© {{ date('Y') }} {{ config('app.name') }}. All rights reserved.</p>
|
||||
<ul class="list-unstyled d-flex">
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#twitter"></use></svg></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#instagram"></use></svg></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#facebook"></use></svg></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
|
||||
height="24">
|
||||
<use xlink:href="#twitter"></use>
|
||||
</svg></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
|
||||
height="24">
|
||||
<use xlink:href="#instagram"></use>
|
||||
</svg></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
|
||||
height="24">
|
||||
<use xlink:href="#facebook"></use>
|
||||
</svg></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
<div class="container-fluid border-bottom">
|
||||
<header class="d-flex flex-wrap align-items-center justify-content-center justify-content-md-between py-3">
|
||||
<div class="col-md-3 mb-2 mb-md-0">
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar" aria-label="Toggle navigation">
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar"
|
||||
aria-controls="offcanvasNavbar" aria-label="Toggle navigation">
|
||||
<i class="h4 bi bi-list"></i>
|
||||
</button>
|
||||
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
|
||||
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasNavbar"
|
||||
aria-labelledby="offcanvasNavbarLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h4 class="offcanvas-title fw-bold mb-0" id="offcanvasNavbarLabel">{{ config('app.name') }}</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
@@ -37,8 +39,9 @@
|
||||
</ul>
|
||||
|
||||
<div class="col-md-3 text-end">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="dropdownMenuSwitch" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="dropdownMenuSwitch"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{ $country->name }}
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenuSwitch">
|
||||
@@ -46,7 +49,7 @@
|
||||
<li><a class="dropdown-item" href="#">Country 2</a></li>
|
||||
<li><a class="dropdown-item" href="#">Country 3</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
@@ -19,12 +19,10 @@
|
||||
|
||||
Auth::routes();
|
||||
|
||||
|
||||
Route::prefix('admin')->middleware('auth')->group(function () {
|
||||
|
||||
Route::get('/', [App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
|
||||
Route::view('about', 'admin.about')->name('about');
|
||||
|
||||
Route::get('users', [\App\Http\Controllers\Admin\UserController::class, 'index'])->name('users.index');
|
||||
|
||||
Reference in New Issue
Block a user