????

Your IP : 216.73.216.168


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/
Upload File :
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>