register.blade.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. @extends('auth.layout')
  2. @section('content')
  3. <div id="registerForm" class="container-fluid">
  4. <header>
  5. <a href="/" type="text/html" rel="noreferrer" referrerpolicy="no-referrer">
  6. {{ strtoupper(config('app.name')) }}
  7. </a>
  8. </header>
  9. <main>
  10. <div class="row">
  11. <div class="col">
  12. <h5>{{ __('Register') }}</h5>
  13. </div>
  14. <div class="col text-end">
  15. <label id="registerTip" data-bs-toggle="tooltip" data-bs-title="정확한 정보를 입력해주셔야 원활한 이용이 가능합니다.">
  16. <i class="fa-solid fa-circle-exclamation"></i>
  17. </label>
  18. </div>
  19. </div>
  20. @if(config('use_register_block'))
  21. <!-- 회원가입 차단 안내 -->
  22. <div class="alert alert-danger" role="alert">
  23. <small>현재 신규 가입이 중단되어 회원가입이 불가합니다.</small>
  24. </div>
  25. @endif
  26. <form name="f_register" id="fRegister" method="post" action="{{ route('register') }}" accept-charset="UTF-8" autocomplete="on">
  27. @csrf
  28. <input type="hidden" name="tx_id" id="txId" value=""/>
  29. <hr/>
  30. <section>
  31. <div class="row mb-2">
  32. <div class="col-12 col-sm-6 mb-3 mb-sm-0">
  33. {{ config('company_name') }}에 오신 것을 환영합니다.<br/>
  34. 이메일 인증 후 회원가입이 완료됩니다.
  35. </div>
  36. <div class="col-12 col-sm-6">
  37. <div class="row g-2">
  38. <div class="col">
  39. <!-- 이메일 -->
  40. <label for="email" class="form-label">{{ __('Email Address') }}</label>
  41. <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required/>
  42. @error('email')
  43. <span class="invalid-feedback" role="alert">
  44. <strong>{{ $message }}</strong>
  45. </span>
  46. @enderror
  47. @error('nickname')
  48. <span class="invalid-feedback" role="alert">
  49. <strong>{{ $message }}</strong>
  50. </span>
  51. @enderror
  52. </div>
  53. <div class="col-auto align-self-end" id="btnVerifyEmail">
  54. <button type="button" id="btnSendVerifyLinkRequest" class="btn btn-outline-secondary">인증하기</button>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="row">
  60. <div class="col-12 col-sm-6 mb-3 mb-sm-0">
  61. &nbsp;
  62. </div>
  63. <div class="col-12 col-sm-6">
  64. <!-- 닉네임 -->
  65. <label for="nickname" class="form-label">닉네임</label>
  66. <input id="nickname" type="text" class="form-control @error('nickname') is-invalid @enderror" name="nickname" value="{{ old('nickname') }}" required/>
  67. </div>
  68. </div>
  69. </section>
  70. <section>
  71. <div class="row">
  72. <div class="col-12 col-sm-6 mb-2 mb-sm-0 align-self-end" id="txtVerifyEmail"></div>
  73. <div class="col-12 col-sm-6">
  74. <div class="row g-2">
  75. <div class="col-12 col-sm mb-1 mb-sm-0">
  76. <!-- 비밀번호 -->
  77. <label for="password" class="form-label">{{ __('Password') }}</label>
  78. <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required/>
  79. @error('password')
  80. <span class="invalid-feedback" role="alert">
  81. <strong>{{ $message }}</strong>
  82. </span>
  83. @enderror
  84. </div>
  85. <div class="col-12 col-sm">
  86. <!-- 비밀번호 확인 -->
  87. <div class="row">
  88. <div class="col">
  89. <label for="password-confirm" class="form-label">{{ __('Confirm Password') }}</label>
  90. </div>
  91. <div class="col-auto">
  92. @if($passwordGuideTip)
  93. <label id="passwordGuideTip"
  94. data-bs-toggle="tooltip"
  95. data-bs-title="비밀번호는 다음과 같은 수준의 규칙을 가져야 합니다. ({{ $passwordGuideTip }})">
  96. <i class="fa-solid fa-circle-exclamation"></i>
  97. </label>
  98. @endif
  99. </div>
  100. </div>
  101. <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required/>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. </section>
  107. <hr/>
  108. <section>
  109. <div class="row">
  110. <div class="col-12 col-sm-6 mb-3 mb-sm-0">
  111. 약관 내용을 자세히 확인하신 후 동의해주세요.
  112. </div>
  113. <div class="col-12 col-sm-6">
  114. <!-- 이용약관 동의 -->
  115. <div class="form-check mb-2">
  116. <input type="checkbox" name="agree_1" id="agree_1" class="form-check-input" value="1"/>
  117. <label for="agree_1" class="form-check-label">
  118. (필수) <a href="{{ route('document', 'policy') }}" data-bs-toggle="modal" data-bs-target="#policyModal">이용약관</a>에 동의합니다.
  119. </label>
  120. </div>
  121. <!-- 개인정보처리 동의 -->
  122. <div class="form-check mb-2">
  123. <input type="checkbox" name="agree_2" id="agree_2" class="form-check-input" value="2"/>
  124. <label for="agree_2" class="form-check-label">
  125. (필수) <a href="{{ route('document', 'privacy') }}" data-bs-toggle="modal" data-bs-target="#privacyModal">개인정보처리방침</a>에 동의합니다.
  126. </label>
  127. </div>
  128. <div class="row justify-content-center g-2">
  129. <div class="col-12 col-sm-8">
  130. <!-- 회원가입 버튼 -->
  131. <button type="submit" class="btn btn-success w-100">
  132. {{ __('Register') }}
  133. </button>
  134. </div>
  135. <div class="col col-sm-4">
  136. <!-- 로그인 버튼 -->
  137. @if (Route::has('login'))
  138. <a href="{{ route('login') }}" class="btn btn-default w-100">이전</a>
  139. @endif
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </section>
  145. <!-- 이용약관 -->
  146. <div class="modal fade" id="policyModal" tabindex="-1" aria-labelledby="policyModalLabel" aria-hidden="true">
  147. <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-xl">
  148. <div class="modal-content">
  149. <div class="modal-header bg-dark">
  150. <h1 class="modal-title fs-5 text-white" id="policyModalLabel">이용약관</h1>
  151. <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
  152. </div>
  153. <div class="modal-body">
  154. {!! $policy_1 !!}
  155. </div>
  156. <div class="modal-footer justify-content-center">
  157. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">확인</button>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <!-- 개인정보처리방침 -->
  163. <div class="modal fade" id="privacyModal" tabindex="-1" aria-labelledby="privacyModalLabel" aria-hidden="true">
  164. <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-xl">
  165. <div class="modal-content">
  166. <div class="modal-header bg-dark">
  167. <h1 class="modal-title fs-5 text-white" id="privacyModalLabel">개인정보처리방침</h1>
  168. <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
  169. </div>
  170. <div class="modal-body">
  171. {!! $policy_2 !!}
  172. </div>
  173. <div class="modal-footer justify-content-center">
  174. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">확인</button>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </form>
  180. <hr/>
  181. <footer>
  182. &copy; 2023~{{ date('Y') }} {{ config('company_name') }}. All rights reserved.
  183. </footer>
  184. </main>
  185. </div>
  186. @endsection
  187. @push('styles')
  188. <link rel="stylesheet" href="{{ asset('css/auth/register.css') }}"/>
  189. @endpush
  190. @push('scripts')
  191. <script src="{{ asset('js/auth/register.js') }}" defer></script>
  192. @endpush