????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/auth.eta |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="csrf-token" content="<%= it.csrfToken %>"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>Login</title> <meta content='width=device-width, initial-scale=1.0, shrink-to-fit=no' name='viewport' /> <link rel="icon" href="/img/icon.ico" type="image/x-icon" /> <!-- Fonts and icons --> <script src="/js/plugin/webfont/webfontloader.js"></script> <script> WebFont.load({ google: { "families": ["Open+Sans:300,400,600,700"], urls: ['/css/google.fonts.css'] }, custom: { "families": ["Flaticon", "Font Awesome 5 Solid", "Font Awesome 5 Regular", "Font Awesome 5 Brands"], urls: ['/css/fonts.min.css'] }, active: function () { sessionStorage.fonts = true; } }); </script> <!-- CSS Files --> <link rel="stylesheet" href="/css/bootstrap.min.css"> <link rel="stylesheet" href="/css/azzara.min.css"> <link rel="stylesheet" href="/css/plugin/datepicker/bootstrap-datepicker3.standalone.min.css"> <link rel="stylesheet" href="/css/plugin/sweetalert2/sweetalert2.min.css"> </head> <body class="login"> <div class="wrapper wrapper-login"> <div class="container container-login animated fadeIn"> <a href="/" class="btn btn-block btn-primary mb-3"> <span class="btn-label"><i class="fas fa-home"></i></span> Trở về trang chủ </a> <h3 class="text-center">Đăng nhập hệ thống</h3> <form class="login-form" id="form-login" method="post" action="/auth/login"> <div class="form-group form-floating-label"> <input id="username" name="username" type="text" class="form-control input-border-bottom" title="Tên đăng nhập không được để trống" required> <label class="placeholder" for="username">Tên đăng nhập</label> <span class="err-span"></span> </div> <div class="form-group form-floating-label"> <input id="password" name="password" type="password" class="form-control input-border-bottom" title="Mật khẩu không được để trống" required> <label for="password" class="placeholder">Mật khẩu</label> <div class="show-password"> <i class="flaticon-interface"></i> </div> <span class="err-span"></span> </div> <div class="row form-sub m-0"> <div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" name="rememberme" id="rememberme"> <label class="custom-control-label" for="rememberme">Ghi nhớ đăng nhập</label> </div> <a href="/auth/forgotPassword" class="link float-right">Quên mật khẩu?</a> </div> <div class="form-action mb-3"> <input type="hidden" name="_csrf" value="<%= it.csrfToken %>"> <button type="submit" class="btn btn-primary btn-rounded">Đăng nhập</button> </div> <div class="login-account"> <span class="msg">Chưa có tài khoản ?</span> <a href="#" id="show-signup" class="link">Đăng ký ngay</a> </div> </form> </div> <div class="container container-signup animated fadeIn"> <a href="/" class="btn btn-block btn-primary mb-3"> <span class="btn-label"><i class="fas fa-home"></i></span> Trở về trang chủ </a> <h3 class="text-center">Đăng ký tài khoản</h3> <span class="text-muted font-italic text-center">* Số điện thoại cần để truy cập tài khoản</span> <form id="form-signup" method="post" action="/auth/signup" class="login-form"> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="username-signup">Tên đăng nhập</label> <div class="col-sm-8"> <input id="username-signup" name="username" type="text" class="form-control input-full" title="Tên đăng nhập không được để trống" required> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="fullname">Tên hiển thị</label> <div class="col-sm-8"> <input id="fullname" name="fullname" type="text" class="form-control input-full" title="Họ tên không được để trống" required> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="phone">Số điện thoại</label> <div class="col-sm-8"> <input id="phone" name="phone" type="text" class="form-control input-full" required> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="pass-signup">Mật khẩu</label> <div class="col-sm-8"> <input id="pass-signup" name="password" type="password" class="form-control input-full" required> <div class="show-password"><i class="flaticon-interface"></i></div> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="conf-password">Nhập lại mật khẩu</label> <div class="col-sm-8"> <input id="conf-password" name="confpassword" type="password" class="form-control input-full" title="Mật khẩu xác nhận không trùng" required> <div class="show-password"> <i class="flaticon-interface"></i> </div> <span class="err-span"></span> </div> </div> <div class="form-check form-inline"> <label class="placeholder col-sm-4" for="fullname">Giới tính</label> <div class="col-sm-8"> <label class="custom-control custom-radio custom-control-inline"><input class="custom-control-input" name="gender" type="radio" value="true" checked> <span class="custom-control-label">Nam</span> </label> <label class="custom-control custom-radio custom-control-inline"><input class="custom-control-input" name="gender" type="radio" value="false"> <span class="custom-control-label">Nữ</span> </label> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="idnumber">Số CMND, hộ chiếu</label> <div class="col-sm-8"> <input id="idnumber" name="idnumber" type="text" class="form-control input-full" title="Họ tên không được để trống" required> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="email">Email</label> <div class="col-sm-8"> <input id="email" name="email" type="email" class="form-control input-full"> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="birthday">Ngày sinh</label> <div class="col-sm-8"> <input id="birthday" name="birthday" type="text" class="form-control input-full"> <span class="err-span"></span> </div> </div> <div class="form-group form-inline"> <label class="placeholder col-sm-4" for="address">Địa chỉ</label> <div class="col-sm-8"> <input id="address" name="address" type="text" class="form-control input-full"> </div> </div> <div class="form-action"> <input type="hidden" name="_csrf" value="<%= it.csrfToken %>"> <button type="button" id="show-signin" class="btn btn-secondary btn-rounded mr-3">Đăng nhập</button> <button type="submit" class="btn btn-primary btn-rounded">Đăng ký</button> </div> </form> </div> </div> <script src="/js/core/jquery-3.4.1.min.js"></script> <script src="/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script> <script src="/js/core/popper.min.js"></script> <script src="/js/core/bootstrap.min.js"></script> <script src="/js/plugin/moment/moment-with-locales.js"></script> <script src="/js/plugin/datepicker/bootstrap-datepicker.min.js"></script> <script src="/js/plugin/datepicker/bootstrap-datepicker.vi.min.js"></script> <script src="/js/plugin/sweetalert2/sweetalert2.all.min.js"></script> <script src="/js/plugin/jquery.inputmask/jquery.inputmask.min.js"></script> <script src="/js/plugin/jquery.validate/jquery.validate.min.js"></script> <script src="/js/plugin/jquery.validate/additional-methods.min.js"></script> <script src="/js/ready.min.js"></script> <% if (it.message) { %> <script type="text/javascript"> Swal.fire('', '<%= it.message %>', 'error'); </script> <% } %> <script type="text/javascript"> $(function () { moment.locale("vi"); $("#birthday").datepicker({ autoclose: true, language: "vi", format: "dd/mm/yyyy", defaultViewDate: '-16y' }); $("#birthday").inputmask('datetime', { inputFormat: "dd/mm/yyyy" }); $('#phone').inputmask('(099) 999.9999', { 'autoUnmask': true}) $("#form-login").validate({ validClass: "success", highlight: function (element) { $(element).closest(".form-group").removeClass("has-primary").addClass("has-error"); }, unhighlight: function (element) { $(element).closest(".form-group").removeClass("has-error").addClass("has-primary"); }, errorPlacement: function (error, element) { error.appendTo(element.closest('.form-group').find('.err-span')); } }); $("#form-signup").validate({ validClass: "success", rules: { confpassword: { equalTo: "#pass-signup" }, idnumber: { pattern: /^([A-Z]?[0-9]){7,12}$/ } }, messages: { idnumber: { required: "Số thẻ căn cước, CMND không được để trống", pattern: "Từ 7 đến 12 ký tự số, chỉ cho phép ký tự đầu tiên là chữ cái viết hoa" }, password: { required: "Vui lòng thêm mật khẩu truy cập!" }, phone: { required: "Cần nhập số điện thoại để đăng nhập" } }, highlight: function (element) { $(element).closest(".form-group").removeClass("has-primary").addClass("has-error"); }, unhighlight: function (element) { $(element).closest(".form-group").removeClass("has-error").addClass("has-primary"); }, errorPlacement: function (error, element) { error.appendTo(element.closest('.form-group').find('.err-span')); }, submitHandler: function (domForm) { $.ajax({ url: '/auth/check', method: 'POST', data: { login: $('#username-signup').val() }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (data, text, jqXHR) { if (data['exists']) Swal.fire('', 'Tên đăng nhập đã tồn tại', 'error'); else { $.ajax({ url: "/auth/signup", method: "POST", data: $(domForm).serialize(), success: function (result, textStatus, jqXHR) { Swal.fire('Thông báo', jqXHR.responseText, 'success') .then(result => location.replace('/auth')) }, error: function (jqXHR, textStatus, err) { Swal.fire('', jqXHR.responseText, 'error') } }); } } }) } }); }) </script> </body> </html>