parent
c02a51a4dd
commit
6e6f86323e
19 changed files with 238 additions and 156 deletions
@ -1,64 +1,78 @@ |
|||||||
import './bootstrap'; |
import './bootstrap'; |
||||||
|
|
||||||
|
function addEvent(btn, func) { |
||||||
|
if(btn) func(btn); |
||||||
|
} |
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", () => { |
window.addEventListener("DOMContentLoaded", () => { |
||||||
let modal = document.querySelector('#modal-update'); |
let modal = document.querySelector('#modal-update'); |
||||||
let openModalBtn = document.querySelector("#open-modal"); |
let openModalBtn = document.querySelector("#open-modal"); |
||||||
let closeModalBtn = document.querySelector(".close-modal"); |
let closeModalBtn = document.querySelector("#close-modal"); |
||||||
let deleteUserBtn = document.querySelector(".btn-user-delete"); |
let deleteUserBtn = document.querySelector("#btn-user-delete"); |
||||||
let updateUserBtn = document.querySelector(".btn-user-update"); |
let updateUserBtn = document.querySelector("#btn-user-update"); |
||||||
let followBtn = document.querySelector(".btn-follow"); |
let followBtn = document.querySelector("#btn-follow"); |
||||||
|
|
||||||
followBtn.addEventListener("click", (e) => { |
addEvent(followBtn, (btn) => { |
||||||
e.preventDefault(); |
btn.addEventListener("click", (e) => { |
||||||
let id = e.target.getAttribute("data-id"); |
e.preventDefault(); |
||||||
let token = document.querySelector('input[name=_token]').value; |
let id = e.target.getAttribute("data-id"); |
||||||
fetch(`/follow/${id}`, { |
let token = document.querySelector('input[name=_token]').value; |
||||||
method: "POST", |
fetch(`/follow/${id}`, { |
||||||
headers: { |
method: "POST", |
||||||
"X-CSRF-Token": token |
headers: { |
||||||
} |
"X-CSRF-Token": token |
||||||
}).then((res) => { |
} |
||||||
if (res.status === 400) alert("Couldn't follow this user"); |
}).then((res) => { |
||||||
//else if (res.status === 200) window.location.href = "/profile/" + id;
|
if (res.status === 400) alert("Couldn't follow this user"); |
||||||
|
//else if (res.status === 200) window.location.href = "/profile/" + id;
|
||||||
|
}); |
||||||
}); |
}); |
||||||
}); |
}); |
||||||
|
|
||||||
openModalBtn.addEventListener("click", (e) => { |
addEvent(openModalBtn, (btn) => { |
||||||
modal.showModal(); |
btn.addEventListener("click", (e) => { |
||||||
|
modal.showModal(); |
||||||
|
}); |
||||||
}); |
}); |
||||||
|
|
||||||
closeModalBtn.addEventListener("click", (e) => { |
addEvent(closeModalBtn, (btn) => { |
||||||
modal.close(); |
btn.addEventListener("click", (e) => { |
||||||
|
modal.close(); |
||||||
|
}); |
||||||
}); |
}); |
||||||
|
|
||||||
updateUserBtn.addEventListener("click", (e) => { |
addEvent(updateUserBtn, (btn) => { |
||||||
e.preventDefault(); |
btn.addEventListener("click", (e) => { |
||||||
let id = e.target.getAttribute("data-id"); |
e.preventDefault(); |
||||||
let token = document.querySelector('input[name=_token]').value; |
let id = e.target.getAttribute("data-id"); |
||||||
let form = document.querySelector('.update-form'); |
let token = document.querySelector('input[name=_token]').value; |
||||||
let formData = new FormData(form); |
let form = document.querySelector('#update-form'); |
||||||
fetch(`/user/${id}`, { |
let formData = new FormData(form); |
||||||
method: "POST", |
fetch(`/user/${id}`, { |
||||||
headers: { |
method: "POST", |
||||||
"X-CSRF-Token": token |
headers: { |
||||||
}, |
"X-CSRF-Token": token |
||||||
body: formData |
}, |
||||||
}).then((res) => { |
body: formData |
||||||
window.location.href = "/profile/" + id; |
}).then((res) => { |
||||||
|
window.location.href = "/profile/" + id; |
||||||
|
}); |
||||||
}); |
}); |
||||||
}); |
}); |
||||||
|
|
||||||
deleteUserBtn.addEventListener("click", (e) => { |
addEvent(deleteUserBtn, (btn) => {
|
||||||
e.preventDefault(); |
btn.addEventListener("click", (e) => { |
||||||
let id = e.target.getAttribute("data-id"); |
e.preventDefault(); |
||||||
let token = document.querySelector('input[name=_token]').value; |
let id = e.target.getAttribute("data-id"); |
||||||
fetch(`/user/${id}`, { |
let token = document.querySelector('input[name=_token]').value; |
||||||
method: "DELETE", |
fetch(`/user/${id}`, { |
||||||
headers: { |
method: "DELETE", |
||||||
"X-CSRF-Token": token |
headers: { |
||||||
} |
"X-CSRF-Token": token |
||||||
}).then((res) => { |
} |
||||||
window.location.href = "/" |
}).then((res) => { |
||||||
|
window.location.href = "/" |
||||||
|
}); |
||||||
}); |
}); |
||||||
}); |
}); |
||||||
}) |
}); |
@ -1,11 +1,19 @@ |
|||||||
@extends('base.layout') |
@extends('base.layout') |
||||||
|
|
||||||
@section('content') |
@section('content') |
||||||
<h1>Login</h1> |
<div class="w-full flex justify-center items-center"> |
||||||
<form action="/login" method="post"> |
<div class="w-2/3 p-10 border border-black dark:border-white rounded-lg"> |
||||||
@csrf |
<h1 class="text-6xl font-bold pb-3 mb-5 border-b border-black dark:border-white">Login</h1> |
||||||
<p>Email</p><input name="email" type="email" value="{{ old('email') }}"> |
<form action="/login" method="post" class="flex flex-col items-center"> |
||||||
<p>Password</p><input name="password" type="password"> |
<div class="grid grid-cols-4 w-full"> |
||||||
<input type="submit"> |
<p>Email :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
</form> |
name="email" type="email" value="{{ old('email') }}"> |
||||||
|
<p>Password :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="password" type="password"> |
||||||
|
</div> |
||||||
|
@csrf |
||||||
|
<button type="submit" class="rounded-lg bg-blue-500 text-white p-2 w-fit">Send</button> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@endsection |
@endsection |
@ -1,15 +1,25 @@ |
|||||||
@extends('base.layout') |
@extends('base.layout') |
||||||
|
|
||||||
@section('content') |
@section('content') |
||||||
<h1>Register</h1> |
<div class="w-full flex justify-center items-center"> |
||||||
<form action="/register" method="post"> |
<div class="w-2/3 p-10 border border-black dark:border-white rounded-lg"> |
||||||
@csrf |
<h1 class="text-6xl font-bold pb-3 mb-5 border-b border-black dark:border-white">Register</h1> |
||||||
<p>Username</p><input name="username" type="text" value="{{ old('username') }}"> |
<form action="/register" method="post" class="flex flex-col items-center"> |
||||||
<p>Name</p><input name="name" type="text" value="{{ old('name') }}"> |
<div class="grid grid-cols-4 w-full"> |
||||||
<p>Email</p><input name="email" type="email" value="{{ old('email') }}"> |
<p>Username :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
<p>Description</p><textarea name="description" type="text">{{ old('description') }}</textarea> |
name="username" type="text" value="{{ old('username') }}"> |
||||||
<p>Password</p><input name="password" type="password" > |
<p>Name (Optional):</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
<br> |
name="name" type="text" value="{{ old('name') }}"> |
||||||
<input type="submit"> |
<p>Email :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
</form> |
name="email" type="email" value="{{ old('email') }}"> |
||||||
|
<p>Description (Optional):</p><textarea class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="description" type="text">{{ old('description') }}</textarea> |
||||||
|
<p>Password :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="password" type="password" > |
||||||
|
</div> |
||||||
|
@csrf |
||||||
|
<button type="submit" class="rounded-lg bg-blue-500 text-white p-2 w-fit">Send</button> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@endsection |
@endsection |
@ -1,23 +1,17 @@ |
|||||||
@extends('base.layout') |
@extends('base.layout') |
||||||
|
|
||||||
@section('content') |
@section('content') |
||||||
<div> |
<div class="w-full flex justify-center items-center"> |
||||||
<h1>Email verification</h1> |
<div class="w-2/3 p-10 border border-black dark:border-white rounded-lg"> |
||||||
|
<h1 class="text-6xl font-bold pb-3 mb-5 border-b border-black dark:border-white">Email verification</h1> |
||||||
@if(session('resent')) |
<div class="flex flex-col"> |
||||||
<div> |
<p class="mr-5">Before proceeding, please check your email for a verification link. If you did not receive the email,<p> |
||||||
A fresh verification link has been sent to your email address. |
<form action="/email/verification-notification" method="post" class="mr-5"> |
||||||
|
@csrf |
||||||
|
<button type="submit" class="rounded-lg bg-blue-500 text-white p-2 w-fit">click here</button> |
||||||
|
</form> |
||||||
|
<p>to request another.</p> |
||||||
</div> |
</div> |
||||||
@endif |
|
||||||
|
|
||||||
<div> |
|
||||||
Before proceeding, please check your email for a verification link. If you did not receive the email, |
|
||||||
<form action="/email/verification-notification" method="POST"> |
|
||||||
@csrf |
|
||||||
<button type="submit"> |
|
||||||
click here to request another |
|
||||||
</button>. |
|
||||||
</form> |
|
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
@endsection |
@endsection |
@ -1,5 +1,5 @@ |
|||||||
<li class="flex justify-center mb-5"> |
<li class="flex justify-center mb-5"> |
||||||
<a href="{{ $link }}"> |
<a href="{{ $link }}"> |
||||||
<img class="size-12" src="/img/{{ $icon }}"> |
<img class="size-12 text-black dark:brightness-0 dark:invert" src="/img/{{ $icon }}"> |
||||||
</a> |
</a> |
||||||
</li> |
</li> |
@ -1,13 +1,23 @@ |
|||||||
<dialog id="modal-update" modal-disable> |
<dialog id="modal-update" modal-disable |
||||||
<button class="close-modal">Cancel</button> |
class="modal w-2/3 p-10 border rounded-lg border-black dark:border-white dark:bg-black dark:text-white"> |
||||||
<form class="update-form"> |
<div class="flex flex-row-reverse"> |
||||||
|
<button id="close-modal" class="rounded-lg bg-red-500 text-white p-2 w-fit">Cancel</button> |
||||||
|
</div> |
||||||
|
<h1 class="text-6xl font-bold pb-3 mb-5 border-b border-black dark:border-white">Update blog</h1> |
||||||
|
<form id="update-form" class="flex flex-col items-center"> |
||||||
|
<div class="grid grid-cols-4 w-full"> |
||||||
|
<p>Title</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="title" type="text" value="{{ old('title') ? old('title') : $blog->title }}"> |
||||||
|
<p>Image</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="image" type="file" value="{{ old('image') ? old('image') : $blog->image }}"> |
||||||
|
<p>Epilog</p><textarea class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="epilog" type="text">{{ old('epilog') ? old('epilog') : $blog->epilog }}</textarea> |
||||||
|
<p>Content</p><textarea class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="containt" type="text">{{ old('containt') ? old('containt') : $blog->containt }}</textarea> |
||||||
|
</div> |
||||||
|
<button id="btn-blog-update" data-id="{{$blog->id}}" |
||||||
|
class="rounded-lg bg-blue-500 text-white p-2 w-fit">Update</button> |
||||||
@csrf |
@csrf |
||||||
<p>Title</p><input name="title" type="text" value="{{ old('title') ? old('title') : $blog->title }}"> |
|
||||||
<p>Image</p><input name="image" type="file" value="{{ old('image') ? old('image') : $blog->image }}"> |
|
||||||
<p>Epilog</p><textarea name="epilog" type="text">{{ old('epilog') ? old('epilog') : $blog->epilog }}</textarea> |
|
||||||
<p>Content</p><textarea name="containt" type="text">{{ old('containt') ? old('containt') : $blog->containt }}</textarea> |
|
||||||
<br> |
|
||||||
<button class="btn btn-blog-update" data-id="{{$blog->id}}">Update</button> |
|
||||||
</form> |
</form> |
||||||
|
|
||||||
</dialog> |
</dialog> |
@ -1,9 +1,19 @@ |
|||||||
<dialog id="modal-update" modal-disable> |
<dialog class="modal w-2/3 p-10 border rounded-lg border-black dark:border-white dark:bg-black dark:text-white" |
||||||
<button class="close-modal">Cancel</button> |
id="modal-update" modal-disable> |
||||||
<form class="update-form"> |
<div class="flex flex-row-reverse"> |
||||||
|
<button id="close-modal" class="rounded-lg bg-red-500 text-white p-2 w-fit">Cancel</button> |
||||||
|
</div> |
||||||
|
<h1 class="text-6xl font-bold pb-3 mb-5 border-b border-black dark:border-white">Update user info</h1> |
||||||
|
<form id="update-form" class="flex flex-col items-center" > |
||||||
|
<div class="grid grid-cols-4 w-full"> |
||||||
|
<p>Username :</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="username" type="text" value="{{ old('username') ? old('username') : $user->username }}"> |
||||||
|
<p>Name (Optional):</p><input class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="name" type="text" value="{{ old('name') ? old('name') : $user->name }}"> |
||||||
|
<p>Description (Optional):</p><textarea class="border border-gray-300 rounded-lg col-span-3 mb-5 p-2 dark:bg-black" |
||||||
|
name="description" type="text">{{ old('description') ? old('description') : $user->description }}</textarea> |
||||||
|
</div> |
||||||
@csrf |
@csrf |
||||||
<input name="name" type="text" required value="{{ $user->name }}"> |
<button id="btn-user-update" data-id="{{$user->id}}" class="rounded-lg bg-blue-500 text-white p-2 w-fit">Send</button> |
||||||
<button class="btn btn-user-update" data-id="{{$user->id}}">Update</button> |
|
||||||
</form> |
</form> |
||||||
|
|
||||||
</dialog> |
</dialog> |
Loading…
Reference in New Issue