миграция для удаления имени пользователя, модальное окно, js-логика, клиентская…

миграция для удаления имени пользователя, модальное окно, js-логика, клиентская валидация, правки по верстке
parent e794075d
......@@ -19,19 +19,18 @@ class UserController extends Controller
//dd($request->all());
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|confirmed',
]);
$user = User::create([
'name' => $request->name, // || 'name' => $request->input('name'),
//'name' => $request->name, // || 'name' => $request->input('name'),
'email' => $request->email,
'password' => Hash::make($request->password),
'email_verified_at' => NOW(),
]);
session()->flash('success', 'Successful registration');
session()->flash('success', 'Реєстрація успішна');
Auth::login($user);
return redirect()->route('home'); // || redirect()->home(); || redirect('/');
}
......@@ -40,29 +39,32 @@ class UserController extends Controller
//dd($request->all());
$request->validate([
'name' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed',
]);
$user = Auth()->user();
$user->name = $request->name;
$user->email = $request->email;
$user->password = Hash::make($request->password);
$user->email_verified_at = NOW();
if ($user->save()) {
session()->flash('success', 'Sittings saved successful');
session()->flash('success', 'Налаштування збережено успішно');
return redirect()->back();
}
return redirect()->back()->with('error', 'Sittings saving error');
return redirect()->back()->with('error', 'Виникла помилка при збереженні налаштувань');
}
public function loginForm() {
return view('user.login');
}
public function loginAuth() {
$is_auth = true;
return view('user.auth', compact('is_auth'));
}
public function login(Request $request) {
$request->validate([
......@@ -76,12 +78,13 @@ class UserController extends Controller
])) {
return redirect()->route('home');
}
return redirect()->back()->with('error', 'Incorrect login or password');
return redirect()->back()->with('error', 'Введено невiрний Email або пароль');
}
public function logout(Request $request) {
Auth::logout();
return redirect()->route('login.create');
//return redirect()->route('login.create');
return redirect()->route('home');
}
public function settings() {
......@@ -94,7 +97,6 @@ class UserController extends Controller
$user = User::where('email','=', $googleUser->email)->first();
if (!$user) {
$user = User::create([
'name' => $googleUser->name,
'email' => $googleUser->email,
'password' => Hash::make(config('project.empty_password')),
]);
......@@ -111,8 +113,7 @@ class UserController extends Controller
$user = User::where('email','=', $appleUser->email)->first();
if (!$user) {
$user = User::create([
'name' => $googleUser->name,
'email' => $googleUser->email,
'email' => $appleUser->email,
'password' => Hash::make(config('project.empty_password')),
]);
}
......
......@@ -12,6 +12,6 @@ class Authenticate extends Middleware
*/
protected function redirectTo(Request $request): ?string
{
return $request->expectsJson() ? null : route('login'); // перенаправление для не зарегистрированного
return $request->expectsJson() ? null : route('login.auth'); // перенаправление для не зарегистрированного
}
}
......@@ -6,6 +6,7 @@
"license": "MIT",
"require": {
"php": "^8.1",
"doctrine/dbal": "^3.6",
"genealabs/laravel-sign-in-with-apple": "^0.7.0",
"genealabs/laravel-socialiter": "^10.0",
"guzzlehttp/guzzle": "^7.2",
......
......@@ -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": "0287343da2ecbdb8d4c4d640fa53b6ac",
"content-hash": "0454f6fb0fb8d09966da87472a35d789",
"packages": [
{
"name": "brick/math",
......@@ -136,6 +136,349 @@
},
"time": "2022-10-27T11:44:00+00:00"
},
{
"name": "doctrine/cache",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
"reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
"shasum": ""
},
"require": {
"php": "~7.1 || ^8.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"cache/integration-tests": "dev-master",
"doctrine/coding-standard": "^9",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"psr/cache": "^1.0 || ^2.0 || ^3.0",
"symfony/cache": "^4.4 || ^5.4 || ^6",
"symfony/var-exporter": "^4.4 || ^5.4 || ^6"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
"homepage": "https://www.doctrine-project.org/projects/cache.html",
"keywords": [
"abstraction",
"apcu",
"cache",
"caching",
"couchdb",
"memcached",
"php",
"redis",
"xcache"
],
"support": {
"issues": "https://github.com/doctrine/cache/issues",
"source": "https://github.com/doctrine/cache/tree/2.2.0"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
"type": "tidelift"
}
],
"time": "2022-05-20T20:07:39+00:00"
},
{
"name": "doctrine/dbal",
"version": "3.6.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/9a747d29e7e6b39509b8f1847e37a23a0163ea6a",
"reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.11|^2.0",
"doctrine/deprecations": "^0.5.3|^1",
"doctrine/event-manager": "^1|^2",
"php": "^7.4 || ^8.0",
"psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3"
},
"require-dev": {
"doctrine/coding-standard": "12.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2022.3",
"phpstan/phpstan": "1.10.14",
"phpstan/phpstan-strict-rules": "^1.5",
"phpunit/phpunit": "9.6.7",
"psalm/plugin-phpunit": "0.18.4",
"squizlabs/php_codesniffer": "3.7.2",
"symfony/cache": "^5.4|^6.0",
"symfony/console": "^4.4|^5.4|^6.0",
"vimeo/psalm": "4.30.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
},
"bin": [
"bin/doctrine-dbal"
],
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\DBAL\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
}
],
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
"keywords": [
"abstraction",
"database",
"db2",
"dbal",
"mariadb",
"mssql",
"mysql",
"oci8",
"oracle",
"pdo",
"pgsql",
"postgresql",
"queryobject",
"sasql",
"sql",
"sqlite",
"sqlserver",
"sqlsrv"
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.6.3"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
"type": "tidelift"
}
],
"time": "2023-06-01T05:46:46+00:00"
},
{
"name": "doctrine/deprecations",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
"reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
"reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^9",
"phpstan/phpstan": "1.4.10 || 1.10.15",
"phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"psalm/plugin-phpunit": "0.18.4",
"psr/log": "^1 || ^2 || ^3",
"vimeo/psalm": "4.30.0 || 5.12.0"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
"source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
},
"time": "2023-06-03T09:27:29+00:00"
},
{
"name": "doctrine/event-manager",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
"reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
"reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
"doctrine/coding-standard": "^10",
"phpstan/phpstan": "^1.8.8",
"phpunit/phpunit": "^9.5",
"vimeo/psalm": "^4.28"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
"keywords": [
"event",
"event dispatcher",
"event manager",
"event system",
"events"
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
"source": "https://github.com/doctrine/event-manager/tree/2.0.0"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
"type": "tidelift"
}
],
"time": "2022-10-12T20:59:15+00:00"
},
{
"name": "doctrine/inflector",
"version": "2.0.6",
......@@ -2842,6 +3185,55 @@
],
"time": "2023-02-25T19:38:58+00:00"
},
{
"name": "psr/cache",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
"php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
],
"support": {
"source": "https://github.com/php-fig/cache/tree/3.0.0"
},
"time": "2021-02-03T23:26:27+00:00"
},
{
"name": "psr/clock",
"version": "1.0.0",
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table -> dropColumn('name');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
//
});
}
};
......@@ -6,23 +6,77 @@
z-index: 9999;
}
.b-alerts .alert.m-hide
{
display: none;
}
.b-header-menu
{
text-align: right;
}
#navbar,
#navbar ul,
#navbar ul li.dropdown,
#navbar ul li.dropdown span
/*
+++ Обрезание логина-почты
*/
#navbar
{
max-width: 65%;
}
#navbar>ul
{
max-width: 100%;
}
#navbar ul li.dropdown
{
max-width: 100%;
}
#navbar ul li.dropdown>a
{
overflow: hidden;
max-width: 100%;
}
#navbar ul li.dropdown span
#navbar ul li.dropdown span
{
overflow: hidden;
text-overflow: ellipsis;
}
/*
--- Обрезание логина-почты
*/
.b-social.m-hide,
.b-auth.m-hide,
.b-email.m-hide,
.b-reg.m-hide,
.soc-link.m-hide,
.modal-header .modal-title.auth.m-hide,
.modal-header .modal-title.reg.m-hide
{
display: none;
}
.modal-body
{
padding: 3rem;
}
.b-social
{
margin: 10px;
}
.b-auth-wrap
......@@ -56,15 +110,3 @@
border: none !important;
}
.b-email,
.b-social
{
//transition: all 1s ease-out;
//animation: 3s linear 1s slidein;
}
.b-email.m-hide,
.b-social.m-hide
{
display: none;
}
\ No newline at end of file
(function() {
"use strict";
console.log('AAA login page');
const select = (el, all = false) => {
el = el.trim()
......@@ -23,13 +22,27 @@
}
}
let email = select('.b-email');
let social = select('.b-social');
function ToggleAuthBlock()
let
social = select('.b-social'),
auth = select('.b-auth'),
email = select('.b-email'),
reg = select('.b-reg'),
authTitle = select('.modal-title.auth'),
regTitle = select('.modal-title.reg');
function ToggleLoginBlock()
{
email.classList.toggle('m-hide');
reg.classList.toggle('m-hide');
authTitle.classList.toggle('m-hide');
regTitle.classList.toggle('m-hide');
}
function ToggleAuthBlock()
{
social.classList.toggle('m-hide');
auth.classList.toggle('m-hide');
}
on('click', '.btn-email', function(e) {
......@@ -37,13 +50,120 @@
ToggleAuthBlock();
});
on('click', '.b-email_back', function(e) {
on('click', '.soc-link', function(e) {
e.preventDefault();
ToggleAuthBlock();
});
on('click', '.soc-link2', function(e) {
e.preventDefault();
ToggleAuthBlock();
});
on('click', '.auth-link', function(e) {
e.preventDefault();
ToggleLoginBlock();
});
on('click', '.reg-link', function(e) {
e.preventDefault();
ToggleLoginBlock();
});
})();
(function() {
var constraintsAuth = {
email: {
presence: {message: "Email не повинен бути пустим"},
email: {message: "Перевiрте поштову адресу"}
},
password: {
presence: {message: "Пароль не повинен бути пустим"},
},
};
var constraintsReg = {
email: {
presence: {message: "Email не повинен бути пустим"},
email: {message: "Перевiрте поштову адресу"}
},
password: {
presence: {message: "Пароль не повинен бути пустим"},
},
'password_confirmation': {
presence: {message: "Повторiть пароль"},
equality: {
attribute: "password",
message: "Паролi не спiвпадають"
}
},
};
var alertForm = document.querySelector(".b-alerts .alert.form");
var alertAll = document.querySelectorAll(".b-alerts .alert");
// клик извне, чтобы закрыть сообщение ошибок
document.addEventListener( 'click', (e) => {
const withinAlertAll = e.composedPath().includes(alertAll);
if (!withinAlertAll) {
//alertAll.classList.add('m-hide');
alertAll.forEach(function(item){
item.classList.add('m-hide');
})
}
});
var formAuth = document.querySelector("form#auth-form");
formAuth.addEventListener("submit", function(ev) {
ev.preventDefault();
handleFormSubmit(formAuth, constraintsAuth);
});
var formReg = document.querySelector("form#reg-form");
formReg.addEventListener("submit", function(ev) {
ev.preventDefault();
handleFormSubmit(formReg, constraintsReg);
});
var formSet = document.querySelector("form#set-form");
if (formSet) {
formSet.addEventListener("submit", function(ev) {
ev.preventDefault();
handleFormSubmit(formSet, constraintsReg);
});
}
function handleFormSubmit(form, constraints) {
var errors = validate(form, constraints, {fullMessages: false});
showErrors(errors || {});
if (!errors) {
form.submit();
}
}
function showErrors(errors) {
if (!Object.keys(errors).length) {
return false;
}
var messageText = '<ul>';
for (const [key, value] of Object.entries(errors)) {
messageText += `<li>${value}</li>`;
}
messageText += '</ul>';
alertForm.innerHTML = messageText;
alertForm.classList.remove('m-hide');
}
})()
\ No newline at end of file
})();
\ No newline at end of file
......@@ -282,9 +282,11 @@
const withinDropdown = e.composedPath().includes(navbarDropdown);
const withinBoundaries = e.composedPath().includes(navbarDropdownUl);
if (withinDropdown && !withinBoundaries) {
console.log('AAA 1');
e.preventDefault();
navbarDropdownUl.classList.toggle('visible');
} else if (!withinBoundaries) {
console.log('AAA 2');
navbarDropdownUl.classList.remove('visible');
}
});
......
......@@ -23,7 +23,6 @@
}
thisForm.querySelector('.loading').classList.add('d-block');
thisForm.querySelector('.error-message').classList.remove('d-block');
thisForm.querySelector('.sent-message').classList.remove('d-block');
let formData = new FormData( thisForm );
......@@ -65,7 +64,6 @@
.then(data => {
thisForm.querySelector('.loading').classList.remove('d-block');
if (data.trim() == 'OK') {
thisForm.querySelector('.sent-message').classList.add('d-block');
thisForm.reset();
} else {
throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action);
......@@ -77,8 +75,11 @@
}
function displayError(thisForm, error) {
console.log('AAA error = ', error);
thisForm.querySelector('.loading').classList.remove('d-block');
thisForm.querySelector('.error-message').innerHTML = error;
thisForm.querySelector('.error-message').innerHTML = error.message;
thisForm.querySelector('.error-message').classList.add('d-block');
}
......
<div class="b-alerts row justify-content-center">
<div class="alert form alert-danger col-4 m-hide">
</div>
@if(session('success'))
<div class="alert alert-success col-4">
{{ session('success') }}
......
......@@ -25,6 +25,9 @@
<body>
<!-- ======= Modal ======= -->
@include('layouts.modal')
<!-- ======= Header ======= -->
<header id="header" class="fixed-top">
<div class="container d-flex align-items-center justify-content-between">
......@@ -34,10 +37,6 @@
<nav id="navbar" class="navbar">
<ul>
@auth
<?php /*?>
$email = auth()->user()->email;
$email_brief = (strlen($email) > 30) ? substr_replace($email, '...', 5, 25) : $email;
<?php */ ?>
<li class="dropdown"><a href="#"><span class="fw-bold">{{ auth()->user()->email }}</span> <i class="bi bi-chevron-down"></i></a>
<ul>
<li><a href="{{ url('settings') }}">Налаштування</a></li>
......@@ -46,7 +45,9 @@
</li>
@endauth
@guest
<li><a class="getstarted" href="{{ route('login.create') }}">Увiйти</a></li>
<li>
<a class="getstarted" href="#" data-bs-toggle="modal" data-bs-target="#loginModal">Увiйти</a>
</li>
@endguest
</ul>
......
<div class="modal fade" id="loginModal" data-bs-backdrop="static" tabindex="-1" aria-labelledby="loginModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title auth">Авторизацiя</h5>
<h5 class="modal-title reg m-hide">Новий акаунт</h5>
@isset ($is_auth)
<a class="btn-close" href="{{ route('home') }}" role="button"></a>
@else
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрити"></button>
@endisset
</div>
<div class="modal-body">
<div class="b-social text-center">
<div class="row">
<a class="btn btn-google" href="{{ route('login.google') }}" role="button"><img src="https://img.icons8.com/color/16/000000/google-logo.png"> Sign in with Google</a>
</div>
<br>
<div class="row b-social_apple">
@signInWithApple("white", true, "sign-in", 10)
</div>
<br>
<div class="row">
<a class="btn btn-email" href="#" role="button">Продовжити за допомогою e-mail</a>
</div>
</div>
<div class="b-auth m-hide">
<div class="b-email contact text-center">
<form method="post" action="{{ route('login') }}" class="php-email-form" id="auth-form">
@csrf
<div class="form-group">
<input class="form-control" type="email" id="email_1" name="email" placeholder="Ваша електронна пошта" value="{{ old('email') }}">
<div class="messages"></div>
</div>
<div class="form-group">
<input class="form-control" type="password" id="password_1" name="password" placeholder="Пароль">
<div class="messages"></div>
</div>
<div class="form-group d-flex justify-content-between align-items-center">
<a class="soc-link" href="#">Назад</a>
<a class="reg-link" href="#">Новий акаунт</a>
<button type="submit" class="btn btn-primary">Увiйти</button>
</div>
</form>
</div>
<div class="b-reg contact text-center m-hide">
<form method="post" action="{{ route('register.store') }}" class="php-email-form" id="reg-form">
@csrf
<div class="form-group">
<input class="form-control" type="email" id="email_2" name="email" placeholder="Ваша електронна пошта" value="{{ old('email') }}">
</div>
<div class="form-group">
<input class="form-control" type="password" id="password_2" placeholder="Пароль" name="password">
</div>
<div class="form-group">
<input class="form-control" type="password" id="password_confirmation" name="password_confirmation" placeholder="Підтвердіть пароль">
</div>
<div class="form-group d-flex justify-content-between align-items-center">
<a class="soc-link2" href="#">Назад</a>
<a class="auth-link" href="#">Вже є акаунт</a>
<button type="submit">Зареєструватись</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
......@@ -10,8 +10,11 @@
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
<script src="assets/vendor/php-email-form/validate.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/validate.js/0.13.1/validate.min.js"></script>
<script src="assets/js/main.js"></script>
<script src="assets/js/login.js"></script>
@endif
\ No newline at end of file
@extends('layouts.layout')
@section('title')Авторизацiя @endsection
@section('page_scripts')
@if(!config('project.minificate_static'))
<script>
document.querySelector('#navbar .getstarted').click();
</script>
@endif
@endsection
......@@ -50,12 +50,12 @@
@csrf
<div class="form-group">
<label for='email'>Email address</label>
<label for='email'>Ваша електронна пошта</label>
<input class="form-control" type="email" id="email" name="email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label for='password'>Password</label>
<label for='password'>Пароль</label>
<input class="form-control" type="password" id="password" name="password">
</div>
<br>
......
......@@ -5,31 +5,26 @@
@section('content')
<section>
<div class='container'>
<div class='container contact'>
<h4>Налаштування</h4>
<form method="post" action="{{ route('settings.edit') }}">
<form method="post" action="{{ route('settings.edit') }}" class="php-email-form" id="set-form">
@csrf
<div class="form-group">
<label for='name'>Ваше имя</label>
<input class="form-control" type="text" id="name" name="name" value="{{ auth()->user()->name }}">
</div>
<div class="form-group">
<label for='email'>Email address</label>
<label for='email'>Ваша електронна пошта</label>
<input class="form-control" type="email" id="email" name="email" value="{{ auth()->user()->email }}">
</div>
<div class="form-group">
<label for='password'>Password</label>
<label for='password'>Пароль</label>
<input class="form-control" type="password" id="password" name="password">
</div>
<div class="form-group">
<label for='password_confirmation'>Confirm password</label>
<label for='password_confirmation'>Підтвердіть пароль</label>
<input class="form-control" type="password" id="password_confirmation" name="password_confirmation">
</div>
......
......@@ -30,10 +30,10 @@ Route::group(['middleware' => 'guest'], function(){
Route::get('/register', [UserController::class, 'create']) -> name('register.create');
Route::post('/register', [UserController::class, 'store']) -> name('register.store');
Route::get('/login', [UserController::class, 'loginForm']) -> name('login.create');
Route::get('/login', [UserController::class, 'loginAuth']) -> name('login.auth');
//Route::get('/login', [UserController::class, 'loginForm']) -> name('login.create');
Route::post('/login', [UserController::class, 'login']) -> name('login');
//Auth Google
Route::get('/login/google', function () {
return Socialite::driver('google')->redirect();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment