34 changed files with 3124 additions and 15 deletions
@ -0,0 +1,39 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use Illuminate\Foundation\Auth\ConfirmsPasswords; |
||||
|
|
||||
|
class ConfirmPasswordController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Confirm Password Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller is responsible for handling password confirmations and |
||||
|
| uses a simple trait to include the behavior. You're free to explore |
||||
|
| this trait and override any functions that require customization. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use ConfirmsPasswords; |
||||
|
|
||||
|
/** |
||||
|
* Where to redirect users when the intended url fails. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $redirectTo = '/home'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new controller instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
$this->middleware('auth'); |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use Illuminate\Foundation\Auth\SendsPasswordResetEmails; |
||||
|
|
||||
|
class ForgotPasswordController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Password Reset Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller is responsible for handling password reset emails and |
||||
|
| includes a trait which assists in sending these notifications from |
||||
|
| your application to your users. Feel free to explore this trait. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use SendsPasswordResetEmails; |
||||
|
} |
@ -0,0 +1,40 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use Illuminate\Foundation\Auth\AuthenticatesUsers; |
||||
|
|
||||
|
class LoginController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Login Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller handles authenticating users for the application and |
||||
|
| redirecting them to your home screen. The controller uses a trait |
||||
|
| to conveniently provide its functionality to your applications. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use AuthenticatesUsers; |
||||
|
|
||||
|
/** |
||||
|
* Where to redirect users after login. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $redirectTo = '/home'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new controller instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
$this->middleware('guest')->except('logout'); |
||||
|
$this->middleware('auth')->only('logout'); |
||||
|
} |
||||
|
} |
@ -0,0 +1,72 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use App\Models\User; |
||||
|
use Illuminate\Foundation\Auth\RegistersUsers; |
||||
|
use Illuminate\Support\Facades\Hash; |
||||
|
use Illuminate\Support\Facades\Validator; |
||||
|
|
||||
|
class RegisterController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Register Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller handles the registration of new users as well as their |
||||
|
| validation and creation. By default this controller uses a trait to |
||||
|
| provide this functionality without requiring any additional code. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use RegistersUsers; |
||||
|
|
||||
|
/** |
||||
|
* Where to redirect users after registration. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $redirectTo = '/home'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new controller instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
$this->middleware('guest'); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Get a validator for an incoming registration request. |
||||
|
* |
||||
|
* @param array $data |
||||
|
* @return \Illuminate\Contracts\Validation\Validator |
||||
|
*/ |
||||
|
protected function validator(array $data) |
||||
|
{ |
||||
|
return Validator::make($data, [ |
||||
|
'name' => ['required', 'string', 'max:255'], |
||||
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], |
||||
|
'password' => ['required', 'string', 'min:8', 'confirmed'], |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create a new user instance after a valid registration. |
||||
|
* |
||||
|
* @param array $data |
||||
|
* @return \App\Models\User |
||||
|
*/ |
||||
|
protected function create(array $data) |
||||
|
{ |
||||
|
return User::create([ |
||||
|
'name' => $data['name'], |
||||
|
'email' => $data['email'], |
||||
|
'password' => Hash::make($data['password']), |
||||
|
]); |
||||
|
} |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use Illuminate\Foundation\Auth\ResetsPasswords; |
||||
|
|
||||
|
class ResetPasswordController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Password Reset Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller is responsible for handling password reset requests |
||||
|
| and uses a simple trait to include this behavior. You're free to |
||||
|
| explore this trait and override any methods you wish to tweak. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use ResetsPasswords; |
||||
|
|
||||
|
/** |
||||
|
* Where to redirect users after resetting their password. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $redirectTo = '/home'; |
||||
|
} |
@ -0,0 +1,41 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Auth; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use Illuminate\Foundation\Auth\VerifiesEmails; |
||||
|
|
||||
|
class VerificationController extends Controller |
||||
|
{ |
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Email Verification Controller |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This controller is responsible for handling email verification for any |
||||
|
| user that recently registered with the application. Emails may also |
||||
|
| be re-sent if the user didn't receive the original email message. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
use VerifiesEmails; |
||||
|
|
||||
|
/** |
||||
|
* Where to redirect users after verification. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $redirectTo = '/home'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new controller instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
$this->middleware('auth'); |
||||
|
$this->middleware('signed')->only('verify'); |
||||
|
$this->middleware('throttle:6,1')->only('verify', 'resend'); |
||||
|
} |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers; |
||||
|
|
||||
|
use Illuminate\Http\Request; |
||||
|
|
||||
|
class HomeController extends Controller |
||||
|
{ |
||||
|
/** |
||||
|
* Create a new controller instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
$this->middleware('auth'); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Show the application dashboard. |
||||
|
* |
||||
|
* @return \Illuminate\Contracts\Support\Renderable |
||||
|
*/ |
||||
|
public function index() |
||||
|
{ |
||||
|
return view('home'); |
||||
|
} |
||||
|
} |
@ -0,0 +1,72 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers; |
||||
|
|
||||
|
use App\Models\User; |
||||
|
use Illuminate\Http\Request; |
||||
|
|
||||
|
|
||||
|
class usuariosController extends Controller |
||||
|
{ |
||||
|
/** |
||||
|
* Display a listing of the resource. |
||||
|
*/ |
||||
|
public function index() |
||||
|
{ |
||||
|
$user=User::all(); |
||||
|
|
||||
|
return view('usuarios',['user'=>$user]); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Show the form for creating a new resource. |
||||
|
*/ |
||||
|
public function create() |
||||
|
{ |
||||
|
return view('usuariosCrearEditar'); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Store a newly created resource in storage. |
||||
|
*/ |
||||
|
public function store(Request $request) |
||||
|
{ |
||||
|
|
||||
|
$user = new User($request->all()); |
||||
|
$user->save(); |
||||
|
return redirect()->route('usuarios'); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Display the specified resource. |
||||
|
*/ |
||||
|
public function show(string $id) |
||||
|
{ |
||||
|
// |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Show the form for editing the specified resource. |
||||
|
*/ |
||||
|
public function edit(string $id) |
||||
|
{ |
||||
|
// |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Update the specified resource in storage. |
||||
|
*/ |
||||
|
public function update(Request $request, string $id) |
||||
|
{ |
||||
|
// |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Remove the specified resource from storage. |
||||
|
*/ |
||||
|
public function destroy(string $id) |
||||
|
{ |
||||
|
// |
||||
|
} |
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
<?php |
||||
|
|
||||
|
use Illuminate\Database\Migrations\Migration; |
||||
|
use Illuminate\Database\Schema\Blueprint; |
||||
|
use Illuminate\Support\Facades\Schema; |
||||
|
|
||||
|
return new class extends Migration |
||||
|
{ |
||||
|
/** |
||||
|
* Run the migrations. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function up() |
||||
|
{ |
||||
|
Schema::create('password_resets', function (Blueprint $table) { |
||||
|
$table->string('email')->index(); |
||||
|
$table->string('token'); |
||||
|
$table->timestamp('created_at')->nullable(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Reverse the migrations. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function down() |
||||
|
{ |
||||
|
Schema::dropIfExists('password_resets'); |
||||
|
} |
||||
|
}; |
File diff suppressed because it is too large
@ -0,0 +1,277 @@ |
|||||
|
/********** Template CSS **********/ |
||||
|
:root { |
||||
|
--primary: #009CFF; |
||||
|
--light: #F3F6F9; |
||||
|
--dark: #191C24; |
||||
|
} |
||||
|
|
||||
|
.back-to-top { |
||||
|
position: fixed; |
||||
|
display: none; |
||||
|
right: 45px; |
||||
|
bottom: 45px; |
||||
|
z-index: 99; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Spinner ***/ |
||||
|
#spinner { |
||||
|
opacity: 0; |
||||
|
visibility: hidden; |
||||
|
transition: opacity .5s ease-out, visibility 0s linear .5s; |
||||
|
z-index: 99999; |
||||
|
} |
||||
|
|
||||
|
#spinner.show { |
||||
|
transition: opacity .5s ease-out, visibility 0s linear 0s; |
||||
|
visibility: visible; |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Button ***/ |
||||
|
.btn { |
||||
|
transition: .5s; |
||||
|
} |
||||
|
|
||||
|
.btn.btn-primary { |
||||
|
color: #FFFFFF; |
||||
|
} |
||||
|
|
||||
|
.btn-square { |
||||
|
width: 38px; |
||||
|
height: 38px; |
||||
|
} |
||||
|
|
||||
|
.btn-sm-square { |
||||
|
width: 32px; |
||||
|
height: 32px; |
||||
|
} |
||||
|
|
||||
|
.btn-lg-square { |
||||
|
width: 48px; |
||||
|
height: 48px; |
||||
|
} |
||||
|
|
||||
|
.btn-square, |
||||
|
.btn-sm-square, |
||||
|
.btn-lg-square { |
||||
|
padding: 0; |
||||
|
display: inline-flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
font-weight: normal; |
||||
|
border-radius: 50px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Layout ***/ |
||||
|
.sidebar { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
width: 250px; |
||||
|
height: 100vh; |
||||
|
overflow-y: auto; |
||||
|
background: var(--light); |
||||
|
transition: 0.5s; |
||||
|
z-index: 999; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
margin-left: 250px; |
||||
|
min-height: 100vh; |
||||
|
background: #FFFFFF; |
||||
|
transition: 0.5s; |
||||
|
} |
||||
|
|
||||
|
@media (min-width: 992px) { |
||||
|
.sidebar { |
||||
|
margin-left: 0; |
||||
|
} |
||||
|
|
||||
|
.sidebar.open { |
||||
|
margin-left: -250px; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
width: calc(100% - 250px); |
||||
|
} |
||||
|
|
||||
|
.content.open { |
||||
|
width: 100%; |
||||
|
margin-left: 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 991.98px) { |
||||
|
.sidebar { |
||||
|
margin-left: -250px; |
||||
|
} |
||||
|
|
||||
|
.sidebar.open { |
||||
|
margin-left: 0; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
width: 100%; |
||||
|
margin-left: 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Navbar ***/ |
||||
|
.sidebar .navbar .navbar-nav .nav-link { |
||||
|
padding: 7px 20px; |
||||
|
color: var(--dark); |
||||
|
font-weight: 500; |
||||
|
border-left: 3px solid var(--light); |
||||
|
border-radius: 0 30px 30px 0; |
||||
|
outline: none; |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .navbar-nav .nav-link:hover, |
||||
|
.sidebar .navbar .navbar-nav .nav-link.active { |
||||
|
color: var(--primary); |
||||
|
background: #FFFFFF; |
||||
|
border-color: var(--primary); |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .navbar-nav .nav-link i { |
||||
|
width: 40px; |
||||
|
height: 40px; |
||||
|
display: inline-flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
background: #FFFFFF; |
||||
|
border-radius: 40px; |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .navbar-nav .nav-link:hover i, |
||||
|
.sidebar .navbar .navbar-nav .nav-link.active i { |
||||
|
background: var(--light); |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .dropdown-toggle::after { |
||||
|
position: absolute; |
||||
|
top: 15px; |
||||
|
right: 15px; |
||||
|
border: none; |
||||
|
content: "\f107"; |
||||
|
font-family: "Font Awesome 5 Free"; |
||||
|
font-weight: 900; |
||||
|
transition: .5s; |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .dropdown-toggle[aria-expanded=true]::after { |
||||
|
transform: rotate(-180deg); |
||||
|
} |
||||
|
|
||||
|
.sidebar .navbar .dropdown-item { |
||||
|
padding-left: 25px; |
||||
|
border-radius: 0 30px 30px 0; |
||||
|
} |
||||
|
|
||||
|
.content .navbar .navbar-nav .nav-link { |
||||
|
margin-left: 25px; |
||||
|
padding: 12px 0; |
||||
|
color: var(--dark); |
||||
|
outline: none; |
||||
|
} |
||||
|
|
||||
|
.content .navbar .navbar-nav .nav-link:hover, |
||||
|
.content .navbar .navbar-nav .nav-link.active { |
||||
|
color: var(--primary); |
||||
|
} |
||||
|
|
||||
|
.content .navbar .sidebar-toggler, |
||||
|
.content .navbar .navbar-nav .nav-link i { |
||||
|
width: 40px; |
||||
|
height: 40px; |
||||
|
display: inline-flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
background: #FFFFFF; |
||||
|
border-radius: 40px; |
||||
|
} |
||||
|
|
||||
|
.content .navbar .dropdown-toggle::after { |
||||
|
margin-left: 6px; |
||||
|
vertical-align: middle; |
||||
|
border: none; |
||||
|
content: "\f107"; |
||||
|
font-family: "Font Awesome 5 Free"; |
||||
|
font-weight: 900; |
||||
|
transition: .5s; |
||||
|
} |
||||
|
|
||||
|
.content .navbar .dropdown-toggle[aria-expanded=true]::after { |
||||
|
transform: rotate(-180deg); |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 575.98px) { |
||||
|
.content .navbar .navbar-nav .nav-link { |
||||
|
margin-left: 15px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Date Picker ***/ |
||||
|
.bootstrap-datetimepicker-widget.bottom { |
||||
|
top: auto !important; |
||||
|
} |
||||
|
|
||||
|
.bootstrap-datetimepicker-widget .table * { |
||||
|
border-bottom-width: 0px; |
||||
|
} |
||||
|
|
||||
|
.bootstrap-datetimepicker-widget .table th { |
||||
|
font-weight: 500; |
||||
|
} |
||||
|
|
||||
|
.bootstrap-datetimepicker-widget.dropdown-menu { |
||||
|
padding: 10px; |
||||
|
border-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
.bootstrap-datetimepicker-widget table td.active, |
||||
|
.bootstrap-datetimepicker-widget table td.active:hover { |
||||
|
background: var(--primary); |
||||
|
} |
||||
|
|
||||
|
.bootstrap-datetimepicker-widget table td.today::before { |
||||
|
border-bottom-color: var(--primary); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Testimonial ***/ |
||||
|
.progress .progress-bar { |
||||
|
width: 0px; |
||||
|
transition: 2s; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*** Testimonial ***/ |
||||
|
.testimonial-carousel .owl-dots { |
||||
|
margin-top: 24px; |
||||
|
display: flex; |
||||
|
align-items: flex-end; |
||||
|
justify-content: center; |
||||
|
} |
||||
|
|
||||
|
.testimonial-carousel .owl-dot { |
||||
|
position: relative; |
||||
|
display: inline-block; |
||||
|
margin: 0 5px; |
||||
|
width: 15px; |
||||
|
height: 15px; |
||||
|
border: 5px solid var(--primary); |
||||
|
border-radius: 15px; |
||||
|
transition: .5s; |
||||
|
} |
||||
|
|
||||
|
.testimonial-carousel .owl-dot.active { |
||||
|
background: var(--dark); |
||||
|
border-color: var(--primary); |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
// Body |
||||
|
$body-bg: #f8fafc; |
||||
|
|
||||
|
// Typography |
||||
|
$font-family-sans-serif: 'Nunito', sans-serif; |
||||
|
$font-size-base: 0.9rem; |
||||
|
$line-height-base: 1.6; |
@ -0,0 +1,8 @@ |
|||||
|
// Fonts |
||||
|
@import url('https://fonts.bunny.net/css?family=Nunito'); |
||||
|
|
||||
|
// Variables |
||||
|
@import 'variables'; |
||||
|
|
||||
|
// Bootstrap |
||||
|
@import 'bootstrap/scss/bootstrap'; |
@ -0,0 +1,73 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@section('content') |
||||
|
<div class="container"> |
||||
|
<div class="row justify-content-center"> |
||||
|
<div class="col-md-8"> |
||||
|
<div class="card"> |
||||
|
<div class="card-header">{{ __('Login') }}</div> |
||||
|
|
||||
|
<div class="card-body"> |
||||
|
<form method="POST" action="{{ route('login') }}"> |
||||
|
@csrf |
||||
|
|
||||
|
<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" autofocus> |
||||
|
|
||||
|
@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="current-password"> |
||||
|
|
||||
|
@error('password') |
||||
|
<span class="invalid-feedback" role="alert"> |
||||
|
<strong>{{ $message }}</strong> |
||||
|
</span> |
||||
|
@enderror |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row mb-3"> |
||||
|
<div class="col-md-6 offset-md-4"> |
||||
|
<div class="form-check"> |
||||
|
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> |
||||
|
|
||||
|
<label class="form-check-label" for="remember"> |
||||
|
{{ __('Remember Me') }} |
||||
|
</label> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row mb-0"> |
||||
|
<div class="col-md-8 offset-md-4"> |
||||
|
<button type="submit" class="btn btn-primary"> |
||||
|
{{ __('Login') }} |
||||
|
</button> |
||||
|
|
||||
|
@if (Route::has('password.request')) |
||||
|
<a class="btn btn-link" href="{{ route('password.request') }}"> |
||||
|
{{ __('Forgot Your Password?') }} |
||||
|
</a> |
||||
|
@endif |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,49 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@section('content') |
||||
|
<div class="container"> |
||||
|
<div class="row justify-content-center"> |
||||
|
<div class="col-md-8"> |
||||
|
<div class="card"> |
||||
|
<div class="card-header">{{ __('Confirm Password') }}</div> |
||||
|
|
||||
|
<div class="card-body"> |
||||
|
{{ __('Please confirm your password before continuing.') }} |
||||
|
|
||||
|
<form method="POST" action="{{ route('password.confirm') }}"> |
||||
|
@csrf |
||||
|
|
||||
|
<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="current-password"> |
||||
|
|
||||
|
@error('password') |
||||
|
<span class="invalid-feedback" role="alert"> |
||||
|
<strong>{{ $message }}</strong> |
||||
|
</span> |
||||
|
@enderror |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row mb-0"> |
||||
|
<div class="col-md-8 offset-md-4"> |
||||
|
<button type="submit" class="btn btn-primary"> |
||||
|
{{ __('Confirm Password') }} |
||||
|
</button> |
||||
|
|
||||
|
@if (Route::has('password.request')) |
||||
|
<a class="btn btn-link" href="{{ route('password.request') }}"> |
||||
|
{{ __('Forgot Your Password?') }} |
||||
|
</a> |
||||
|
@endif |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,47 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@section('content') |
||||
|
<div class="container"> |
||||
|
<div class="row justify-content-center"> |
||||
|
<div class="col-md-8"> |
||||
|
<div class="card"> |
||||
|
<div class="card-header">{{ __('Reset Password') }}</div> |
||||
|
|
||||
|
<div class="card-body"> |
||||
|
@if (session('status')) |
||||
|
<div class="alert alert-success" role="alert"> |
||||
|
{{ session('status') }} |
||||
|
</div> |
||||
|
@endif |
||||
|
|
||||
|
<form method="POST" action="{{ route('password.email') }}"> |
||||
|
@csrf |
||||
|
|
||||
|
<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" autofocus> |
||||
|
|
||||
|
@error('email') |
||||
|
<span class="invalid-feedback" role="alert"> |
||||
|
<strong>{{ $message }}</strong> |
||||
|
</span> |
||||
|
@enderror |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row mb-0"> |
||||
|
<div class="col-md-6 offset-md-4"> |
||||
|
<button type="submit" class="btn btn-primary"> |
||||
|
{{ __('Send Password Reset Link') }} |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,65 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@section('content') |
||||
|
<div class="container"> |
||||
|
<div class="row justify-content-center"> |
||||
|
<div class="col-md-8"> |
||||
|
<div class="card"> |
||||
|
<div class="card-header">{{ __('Reset Password') }}</div> |
||||
|
|
||||
|
<div class="card-body"> |
||||
|
<form method="POST" action="{{ route('password.update') }}"> |
||||
|
@csrf |
||||
|
|
||||
|
<input type="hidden" name="token" value="{{ $token }}"> |
||||
|
|
||||
|
<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="{{ $email ?? old('email') }}" required autocomplete="email" autofocus> |
||||
|
|
||||
|
@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"> |
||||
|
{{ __('Reset Password') }} |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,77 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@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> |
||||
|
|
||||
|
<div class="card-body"> |
||||
|
<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="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 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> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,28 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@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="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> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,23 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@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> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
@ -0,0 +1,273 @@ |
|||||
|
@extends('layouts.plantilla') |
||||
|
|
||||
|
@section('titulo') |
||||
|
Inicio |
||||
|
@endsection |
||||
|
|
||||
|
@section('contenido') |
||||
|
<!-- Sale & Revenue Start --> |
||||
|
<div class="container-fluid pt-4 px-4"> |
||||
|
<div class="row g-4"> |
||||
|
<div class="col-sm-6 col-xl-3"> |
||||
|
<div class="bg-light rounded d-flex align-items-center justify-content-between p-4"> |
||||
|
<i class="fa fa-chart-line fa-3x text-primary"></i> |
||||
|
<div class="ms-3"> |
||||
|
<p class="mb-2">Today Sale</p> |
||||
|
<h6 class="mb-0">$1234</h6> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-6 col-xl-3"> |
||||
|
<div class="bg-light rounded d-flex align-items-center justify-content-between p-4"> |
||||
|
<i class="fa fa-chart-bar fa-3x text-primary"></i> |
||||
|
<div class="ms-3"> |
||||
|
<p class="mb-2">Total Sale</p> |
||||
|
<h6 class="mb-0">$1234</h6> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-6 col-xl-3"> |
||||
|
<div class="bg-light rounded d-flex align-items-center justify-content-between p-4"> |
||||
|
<i class="fa fa-chart-area fa-3x text-primary"></i> |
||||
|
<div class="ms-3"> |
||||
|
<p class="mb-2">Today Revenue</p> |
||||
|
<h6 class="mb-0">$1234</h6> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-6 col-xl-3"> |
||||
|
<div class="bg-light rounded d-flex align-items-center justify-content-between p-4"> |
||||
|
<i class="fa fa-chart-pie fa-3x text-primary"></i> |
||||
|
<div class="ms-3"> |
||||
|
<p class="mb-2">Total Revenue</p> |
||||
|
<h6 class="mb-0">$1234</h6> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- Sale & Revenue End --> |
||||
|
|
||||
|
|
||||
|
<!-- Sales Chart Start --> |
||||
|
<div class="container-fluid pt-4 px-4"> |
||||
|
<div class="row g-4"> |
||||
|
<div class="col-sm-12 col-xl-6"> |
||||
|
<div class="bg-light text-center rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-4"> |
||||
|
<h6 class="mb-0">Worldwide Sales</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<canvas id="worldwide-sales"></canvas> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-12 col-xl-6"> |
||||
|
<div class="bg-light text-center rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-4"> |
||||
|
<h6 class="mb-0">Salse & Revenue</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<canvas id="salse-revenue"></canvas> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- Sales Chart End --> |
||||
|
|
||||
|
|
||||
|
<!-- Recent Sales Start --> |
||||
|
<div class="container-fluid pt-4 px-4"> |
||||
|
<div class="bg-light text-center rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-4"> |
||||
|
<h6 class="mb-0">Recent Salse</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<div class="table-responsive"> |
||||
|
<table class="table text-start align-middle table-bordered table-hover mb-0"> |
||||
|
<thead> |
||||
|
<tr class="text-dark"> |
||||
|
<th scope="col"><input class="form-check-input" type="checkbox"></th> |
||||
|
<th scope="col">Date</th> |
||||
|
<th scope="col">Invoice</th> |
||||
|
<th scope="col">Customer</th> |
||||
|
<th scope="col">Amount</th> |
||||
|
<th scope="col">Status</th> |
||||
|
<th scope="col">Action</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td><input class="form-check-input" type="checkbox"></td> |
||||
|
<td>01 Jan 2045</td> |
||||
|
<td>INV-0123</td> |
||||
|
<td>Jhon Doe</td> |
||||
|
<td>$123</td> |
||||
|
<td>Paid</td> |
||||
|
<td><a class="btn btn-sm btn-primary" href="">Detail</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input class="form-check-input" type="checkbox"></td> |
||||
|
<td>01 Jan 2045</td> |
||||
|
<td>INV-0123</td> |
||||
|
<td>Jhon Doe</td> |
||||
|
<td>$123</td> |
||||
|
<td>Paid</td> |
||||
|
<td><a class="btn btn-sm btn-primary" href="">Detail</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input class="form-check-input" type="checkbox"></td> |
||||
|
<td>01 Jan 2045</td> |
||||
|
<td>INV-0123</td> |
||||
|
<td>Jhon Doe</td> |
||||
|
<td>$123</td> |
||||
|
<td>Paid</td> |
||||
|
<td><a class="btn btn-sm btn-primary" href="">Detail</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input class="form-check-input" type="checkbox"></td> |
||||
|
<td>01 Jan 2045</td> |
||||
|
<td>INV-0123</td> |
||||
|
<td>Jhon Doe</td> |
||||
|
<td>$123</td> |
||||
|
<td>Paid</td> |
||||
|
<td><a class="btn btn-sm btn-primary" href="">Detail</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input class="form-check-input" type="checkbox"></td> |
||||
|
<td>01 Jan 2045</td> |
||||
|
<td>INV-0123</td> |
||||
|
<td>Jhon Doe</td> |
||||
|
<td>$123</td> |
||||
|
<td>Paid</td> |
||||
|
<td><a class="btn btn-sm btn-primary" href="">Detail</a></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- Recent Sales End --> |
||||
|
|
||||
|
|
||||
|
<!-- Widgets Start --> |
||||
|
<div class="container-fluid pt-4 px-4"> |
||||
|
<div class="row g-4"> |
||||
|
<div class="col-sm-12 col-md-6 col-xl-4"> |
||||
|
<div class="h-100 bg-light rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-2"> |
||||
|
<h6 class="mb-0">Messages</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-3"> |
||||
|
<img class="rounded-circle flex-shrink-0" src="img/user.jpg" alt="" style="width: 40px; height: 40px;"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 justify-content-between"> |
||||
|
<h6 class="mb-0">Jhon Doe</h6> |
||||
|
<small>15 minutes ago</small> |
||||
|
</div> |
||||
|
<span>Short message goes here...</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-3"> |
||||
|
<img class="rounded-circle flex-shrink-0" src="img/user.jpg" alt="" style="width: 40px; height: 40px;"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 justify-content-between"> |
||||
|
<h6 class="mb-0">Jhon Doe</h6> |
||||
|
<small>15 minutes ago</small> |
||||
|
</div> |
||||
|
<span>Short message goes here...</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-3"> |
||||
|
<img class="rounded-circle flex-shrink-0" src="img/user.jpg" alt="" style="width: 40px; height: 40px;"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 justify-content-between"> |
||||
|
<h6 class="mb-0">Jhon Doe</h6> |
||||
|
<small>15 minutes ago</small> |
||||
|
</div> |
||||
|
<span>Short message goes here...</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center pt-3"> |
||||
|
<img class="rounded-circle flex-shrink-0" src="img/user.jpg" alt="" style="width: 40px; height: 40px;"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 justify-content-between"> |
||||
|
<h6 class="mb-0">Jhon Doe</h6> |
||||
|
<small>15 minutes ago</small> |
||||
|
</div> |
||||
|
<span>Short message goes here...</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-12 col-md-6 col-xl-4"> |
||||
|
<div class="h-100 bg-light rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-4"> |
||||
|
<h6 class="mb-0">Calender</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<div id="calender"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-sm-12 col-md-6 col-xl-4"> |
||||
|
<div class="h-100 bg-light rounded p-4"> |
||||
|
<div class="d-flex align-items-center justify-content-between mb-4"> |
||||
|
<h6 class="mb-0">To Do List</h6> |
||||
|
<a href="">Show All</a> |
||||
|
</div> |
||||
|
<div class="d-flex mb-2"> |
||||
|
<input class="form-control bg-transparent" type="text" placeholder="Enter task"> |
||||
|
<button type="button" class="btn btn-primary ms-2">Add</button> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-2"> |
||||
|
<input class="form-check-input m-0" type="checkbox"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 align-items-center justify-content-between"> |
||||
|
<span>Short task goes here...</span> |
||||
|
<button class="btn btn-sm"><i class="fa fa-times"></i></button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-2"> |
||||
|
<input class="form-check-input m-0" type="checkbox"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 align-items-center justify-content-between"> |
||||
|
<span>Short task goes here...</span> |
||||
|
<button class="btn btn-sm"><i class="fa fa-times"></i></button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-2"> |
||||
|
<input class="form-check-input m-0" type="checkbox" checked> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 align-items-center justify-content-between"> |
||||
|
<span><del>Short task goes here...</del></span> |
||||
|
<button class="btn btn-sm text-primary"><i class="fa fa-times"></i></button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center border-bottom py-2"> |
||||
|
<input class="form-check-input m-0" type="checkbox"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 align-items-center justify-content-between"> |
||||
|
<span>Short task goes here...</span> |
||||
|
<button class="btn btn-sm"><i class="fa fa-times"></i></button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex align-items-center pt-2"> |
||||
|
<input class="form-check-input m-0" type="checkbox"> |
||||
|
<div class="w-100 ms-3"> |
||||
|
<div class="d-flex w-100 align-items-center justify-content-between"> |
||||
|
<span>Short task goes here...</span> |
||||
|
<button class="btn btn-sm"><i class="fa fa-times"></i></button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- Widgets End --> |
||||
|
|
||||
|
@endsection |
@ -0,0 +1,80 @@ |
|||||
|
<!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.bunny.net"> |
||||
|
<link href="https://fonts.bunny.net/css?family=Nunito" rel="stylesheet"> |
||||
|
|
||||
|
<!-- Scripts --> |
||||
|
@vite(['resources/sass/app.scss', '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> |
@ -0,0 +1,17 @@ |
|||||
|
<!-- Footer Start --> |
||||
|
<div class="container-fluid pt-4 px-4"> |
||||
|
<div class="bg-light rounded-top p-4"> |
||||
|
<div class="row"> |
||||
|
<div class="col-12 col-sm-6 text-center text-sm-start"> |
||||
|
© <a href="#">Your Site Name</a>, All Right Reserved. |
||||
|
</div> |
||||
|
<div class="col-12 col-sm-6 text-center text-sm-end"> |
||||
|
<!--/*** This template is free as long as you keep the footer author’s credit link/attribution link/backlink. If you'd like to use the template without the footer author’s credit link/attribution link/backlink, you can purchase the Credit Removal License from "https://htmlcodex.com/credit-removal". Thank you for your support. ***/--> |
||||
|
Designed By <a href="https://htmlcodex.com">HTML Codex</a> |
||||
|
</br> |
||||
|
Distributed By <a class="border-bottom" href="https://themewagon.com" target="_blank">ThemeWagon</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- Footer End --> |
@ -0,0 +1,30 @@ |
|||||
|
<!-- Navbar Start --> |
||||
|
<nav class="navbar navbar-expand bg-light navbar-light sticky-top px-4 py-0"> |
||||
|
<a href="index.html" class="navbar-brand d-flex d-lg-none me-4"> |
||||
|
<h2 class="text-primary mb-0"><i class="fa fa-hashtag"></i></h2> |
||||
|
</a> |
||||
|
<a href="#" class="sidebar-toggler flex-shrink-0"> |
||||
|
<i class="fa fa-bars"></i> |
||||
|
</a> |
||||
|
|
||||
|
<div class="navbar-nav align-items-center ms-auto"> |
||||
|
|
||||
|
<div class="nav-item dropdown"> |
||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> |
||||
|
<img class="rounded-circle me-lg-2" src="{{asset('img/avatar.jpeg')}}" alt="" style="width: 40px; height: 40px;"> |
||||
|
<span class="d-none d-lg-inline-flex">{{Auth::user()->name}}</span> |
||||
|
</a> |
||||
|
<div class="dropdown-menu dropdown-menu-end bg-light border-0 rounded-0 rounded-bottom m-0"> |
||||
|
<a href="#" class="dropdown-item">My Profile</a> |
||||
|
<a href="#" class="dropdown-item">Settings</a> |
||||
|
<a href="#" class="dropdown-item" href="{{ route('logout') }}" |
||||
|
onclick="event.preventDefault(); |
||||
|
document.getElementById('logout-form').submit();">Log Out</a> |
||||
|
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none"> |
||||
|
@csrf |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</nav> |
||||
|
<!-- Navbar End --> |
@ -0,0 +1,39 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
|
||||
|
<!-- Google Web Fonts --> |
||||
|
<link rel="preconnect" href="https://fonts.googleapis.com"> |
||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
||||
|
<link href="https://fonts.googleapis.com/css2?family=Heebo:wght@400;500;600;700&display=swap" rel="stylesheet"> |
||||
|
|
||||
|
<!-- Icon Font Stylesheet --> |
||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.0/css/all.min.css" rel="stylesheet"> |
||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.4.1/font/bootstrap-icons.css" rel="stylesheet"> |
||||
|
|
||||
|
|
||||
|
<link rel="stylesheet" href="{{asset('css/style.css')}}"> |
||||
|
<title>@yield('titulo')</title> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div class="container-xxl position-relative bg-white d-flex p-0"> |
||||
|
@include('layouts.siderbar') |
||||
|
<div class="content"> |
||||
|
@include('layouts.nadbar') |
||||
|
@yield('contenido') |
||||
|
@include('layouts.footer') |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
<script src="{{asset('js/main.js')}}"></script> |
||||
|
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
|
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,40 @@ |
|||||
|
<!-- Sidebar Start --> |
||||
|
<div class="sidebar pe-4 pb-3"> |
||||
|
<nav class="navbar bg-light navbar-light"> |
||||
|
<a href="index.html" class="navbar-brand mx-4 mb-3"> |
||||
|
<h3 class="text-primary"><i class="fa fa-hashtag me-2"></i>DASHMIN</h3> |
||||
|
</a> |
||||
|
<div class="d-flex align-items-center ms-4 mb-4"> |
||||
|
<div class="position-relative"> |
||||
|
<img class="rounded-circle" src="{{asset('img/logo.jpg')}}" alt="" style="width: 50px; height: 50px;"> |
||||
|
<div class="bg-success rounded-circle border border-2 border-white position-absolute end-0 bottom-0 p-1"></div> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<div class="navbar-nav w-100"> |
||||
|
<a href="index.html" class="nav-item nav-link active"><i class="fa fa-tachometer-alt me-2"></i>Dashboard</a> |
||||
|
<div class="nav-item dropdown"> |
||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"><i class="fa fa-laptop me-2"></i>Elements</a> |
||||
|
<div class="dropdown-menu bg-transparent border-0"> |
||||
|
<a href="button.html" class="dropdown-item">Buttons</a> |
||||
|
<a href="typography.html" class="dropdown-item">Typography</a> |
||||
|
<a href="element.html" class="dropdown-item">Other Elements</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<a href="{{route('consecionarios.index')}}" class="nav-item nav-link"><i class="fa fa-th me-2"></i>consecionario de autos</a> |
||||
|
<a href="{{route('trabajadores.index')}}" class="nav-item nav-link"><i class="fa fa-keyboard me-2"></i>trabajadores</a> |
||||
|
<a href="{{route('usuarios')}}" class="nav-item nav-link"><i class="fa fa-table me-2"></i>usuarios</a> |
||||
|
<a href="chart.html" class="nav-item nav-link"><i class="fa fa-chart-bar me-2"></i>Charts</a> |
||||
|
<div class="nav-item dropdown"> |
||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"><i class="far fa-file-alt me-2"></i>Pages</a> |
||||
|
<div class="dropdown-menu bg-transparent border-0"> |
||||
|
<a href="signin.html" class="dropdown-item">Sign In</a> |
||||
|
<a href="signup.html" class="dropdown-item">Sign Up</a> |
||||
|
<a href="404.html" class="dropdown-item">404 Error</a> |
||||
|
<a href="blank.html" class="dropdown-item">Blank Page</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</nav> |
||||
|
</div> |
||||
|
<!-- Sidebar End --> |
@ -0,0 +1,47 @@ |
|||||
|
@extends('layouts.plantilla') |
||||
|
|
||||
|
@section('titulo') |
||||
|
modulo de usuario |
||||
|
@endsection |
||||
|
@section('contenido') |
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
<div class="col-m1-12 p-5"> |
||||
|
<h1>usuarios</h1> |
||||
|
</div> |
||||
|
<div class="col-12"> |
||||
|
<div class="bg-light rounded h-100 p-4"> |
||||
|
<a href="{{Route ('usuarios.create')}}" class="btn btn-primary">nuevo</a> |
||||
|
|
||||
|
<div class="table-responsive"> |
||||
|
<table class="table"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th scope="col">#</th> |
||||
|
<th scope="col">nombre</th> |
||||
|
<th scope="col">Email</th> |
||||
|
<th scope="col">fecha</th> |
||||
|
|
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
@foreach ($user as $Item ) |
||||
|
<tr> |
||||
|
<th scope="row">{{$Item->id}}</th> |
||||
|
<td>{{$Item->name}}</td> |
||||
|
<td>{{$Item->email}}</td> |
||||
|
<td>{{$Item->created_at}}</td> |
||||
|
|
||||
|
</tr> |
||||
|
@endforeach |
||||
|
|
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endsection |
||||
|
|
||||
|
|
@ -0,0 +1,40 @@ |
|||||
|
@extends('layouts.plantilla') |
||||
|
|
||||
|
@section('titulo') |
||||
|
Nuevo Usuario |
||||
|
@endsection |
||||
|
|
||||
|
@section('contenido') |
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-12 p5"> |
||||
|
<h3>Nuevo Usuario</h3> |
||||
|
</div> |
||||
|
<div class="col-md-6"> |
||||
|
<div class="bg-light rounded h-100 p-4"> |
||||
|
|
||||
|
<form action="{{route('usuarios.store')}}" method="post"> |
||||
|
@csrf |
||||
|
<div class="mb-3"> |
||||
|
<label for="name" class="form-label">nombre</label> |
||||
|
<input type="text" class="form-control" id="name" name="name"> |
||||
|
</div> |
||||
|
|
||||
|
<div class="mb-3"> |
||||
|
<label for="email" class="form-label">correo</label> |
||||
|
<input type="email" class="form-control" id="email" name="email"> |
||||
|
</div> |
||||
|
<div class="mb-4"> |
||||
|
<label for="password" class="form-label">contraseña</label> |
||||
|
<input type="password" class="form-control" id="password" name="password"> |
||||
|
</div> |
||||
|
<a href="{{route('usuarios')}}" class="btn btn-danger">cancelar</a> |
||||
|
<button type="submit" class="btn btn-primary">aceptar</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@endsection |
@ -1,18 +1,22 @@ |
|||||
<?php |
<?php |
||||
|
|
||||
|
use App\Http\Controllers\usuariosController; |
||||
use Illuminate\Support\Facades\Route; |
use Illuminate\Support\Facades\Route; |
||||
|
|
||||
/* |
|
||||
|-------------------------------------------------------------------------- |
|
||||
| Web Routes |
|
||||
|-------------------------------------------------------------------------- |
|
||||
| |
|
||||
| Here is where you can register web routes for your application. These |
|
||||
| routes are loaded by the RouteServiceProvider and all of them will |
|
||||
| be assigned to the "web" middleware group. Make something great! |
|
||||
| |
|
||||
*/ |
|
||||
|
|
||||
Route::get('/', function () { |
Route::get('/', function () { |
||||
return view('welcome'); |
return view('auth.login'); |
||||
}); |
}); |
||||
|
|
||||
|
Auth::routes(['register'=>false,'reset'=>false]); |
||||
|
|
||||
|
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); |
||||
|
|
||||
|
Route::get('/usuarios', [usuariosController::class,'index'])->name('usuarios'); |
||||
|
|
||||
|
Route::get('/usuarios/nuevo', [usuariosController::class,'create'])->name('usuarios.create'); |
||||
|
|
||||
|
Route::post('/usuarios/store', [usuariosController::class,'store'])->name('usuarios.store'); |
||||
|
|
||||
|
|
||||
|
|
||||
|
Loading…
Reference in new issue