관리-도구
편집 파일: profile.blade.php
@extends('layouts.app') @section('content') <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <style> body { background: #eee; } .card { border: none; position: relative; overflow: hidden; border-radius: 8px; cursor: pointer; } .card:before { content: ""; position: absolute; left: 0; top: 0; width: 4px; height: 100%; background-color: linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%); transform: scaleY(1); transition: all 0.5s; transform-origin: bottom } .card:after { content: ""; position: absolute; left: 0; top: 0; width: 4px; height: 100%; background-color: linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%); transform: scaleY(0); transition: all 0.5s; transform-origin: bottom } .card:hover::after { transform: scaleY(1); } .fonts { font-size: 11px; } .social-list { display: flex; list-style: none; justify-content: center; padding: 0; } .social-list li { padding: 10px; color: #d9a734; font-size: 19px; } .buttons button:nth-child(1) { border: 1px solid linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%) !important; color: linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%); height: 40px; } .buttons button:nth-child(1):hover { border: 1px solid linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%) !important; color: #fff; height: 40px; background-color: linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%); } .buttons button:nth-child(2) { border: 1px solid linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%) !important; background-color: linear-gradient(291deg, rgba(235,215,89,0.532) 49%, rgba(159,102,0,0.767) 100%); color: #fff; height: 40px; } </style> <body> <div class="container mt-5"> <div class="row d-flex justify-content-center mb-5"> <div class="col-md-7"> <div class="card p-3 py-4 bg-light"> <div class="text-center"> <img src="{{asset('img/logo.png')}}" width="100" class="rounded-circle"> </div> <div class="text-center mt-3"> <!-- <span class="bg-secondary p-1 px-4 rounded text-white">Pro</span> --> <h5 class="mt-2 mb-0 text-dark">{{ $user->name }}</h5> <span class="text-dark">{{ $user->email }}</span> <div class="px-4 mt-1"> <!-- <p class="fonts">Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </p> --> </div> <!-- <ul class="social-list"> <li><i class="fa fa-facebook"></i></li> <li><i class="fa fa-dribbble"></i></li> <li><i class="fa fa-instagram"></i></li> <li><i class="fa fa-linkedin"></i></li> <li><i class="fa fa-google"></i></li> </ul> --> <div class="buttons mb-5 mt-5"> <button class="btn btn-outline-primary px-4" data-toggle="modal" data-target="#editDetailsModal">Edit Details</button> <button class="btn btn-primary px-4 ms-3" data-toggle="modal" data-target="#resetPasswordModal">Reset Password</button> </div> </div> <!-- Edit Details Modal --> <div class="modal fade" id="editDetailsModal" tabindex="-1" role="dialog" aria-labelledby="editDetailsModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="editDetailsModalLabel">Edit Details</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form id="editDetailsForm" method="POST" action="{{ route('user.update') }}"> @csrf <div class="form-group"> <label for="name">Name</label> <input type="text" class="form-control" id="name" name="name" value="{{ $user->name }}" required> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" class="form-control" id="email" name="email" value="{{ $user->email }}" required> </div> <button type="submit" class="btn btn-primary">Save</button> </form> </div> </div> </div> </div> <!-- Reset Password Modal --> <div class="modal fade" id="resetPasswordModal" tabindex="-1" role="dialog" aria-labelledby="resetPasswordModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="resetPasswordModalLabel">Reset Password</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form method="POST" action="{{ route('password.updates') }}"> @csrf <div class="mb-3"> <label for="current_password" class="form-label">Current Password</label> <input type="password" class="form-control" id="current_password" name="current_password" required> </div> <div class="mb-3"> <label for="new_password" class="form-label">New Password</label> <input type="password" class="form-control" id="new_password" name="new_password" required> </div> <div class="mb-3"> <label for="new_password_confirmation" class="form-label">Confirm New Password</label> <input type="password" class="form-control" id="new_password_confirmation" name="new_password_confirmation" required> </div> <div class="mb-3 form-check"> <input type="checkbox" class="form-check-input" id="show_passwords"> <label class="form-check-label" for="show_passwords">Show Passwords</label> </div> <button type="submit" class="btn btn-primary">Update Password</button> </form> <script> document.addEventListener('DOMContentLoaded', function() { const showPasswordsCheckbox = document.getElementById('show_passwords'); const passwordFields = [ document.getElementById('current_password'), document.getElementById('new_password'), document.getElementById('new_password_confirmation') ]; showPasswordsCheckbox.addEventListener('change', function() { const type = this.checked ? 'text' : 'password'; passwordFields.forEach(field => { field.type = type; }); }); }); </script> </div> </div> </div> </div> </div> </div> </div> @endsection </div> </body>