| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- // 회원 정보 수정
- $("#fAccountModify").validate({
- onkeyup: false,
- onclick: false,
- onfocusout: false,
- showErrors: function (errorMap, errorList) {
- if (this.numberOfInvalids() && errorList.length > 0) {
- alert(errorList[0].message);
- $(errorList[0].element).focus();
- }
- },
- rules: {
- name: {required: true, minlength: 2, maxlength: 10, hangul: true},
- email: {required: true, email: true},
- thumb_img: {accept: "image/gif,image/jpeg,image/png"},
- about_me: {maxlength: 500},
- is_open_profile: {number: true}
- },
- messages: {
- name: {
- required: "이름을 입력해 주세요.",
- minlength: "이름은 최소 {0}자 이상 입니다.",
- maxlength: "이름은 최대 {0}자 이하 입력 가능합니다.",
- hangul: "이름을 한글로 입력해주세요."
- },
- email: {
- required: "E-mail을 입력해 주세요.",
- email: "E-mail 형식이 옳지 않습니다."
- },
- thumb_img: {
- accept: "이미지는 jpg, gif, png 형식만 첨부 가능합니다."
- },
- about_me: {
- maxlength: "자기소개는 최대 {0}자 이하 입력 가능합니다."
- },
- is_open_profile: {
- number: "정보 공개 여부 형식이 옳지 않습니다."
- }
- }
- });
- let email =
- {
- timer: null,
- change: function(e) {
- if(!confirm("이메일 소유자 인증 후 변경이 가능합니다.\n이메일 주소를 변경하시겠습니까?")) {
- return false;
- }
- let mail = document.getElementById("email");
- if (!mail.value) {
- mail.focus();
- return alert("이메일을 입력해 주세요.");
- }
- if (!validateEmail(mail.value)) {
- mail.focus();
- return alert("이메일 형식이 옳지 않습니다.");
- }
- $.ajax({
- url: (BASE_URL + "/account/email"),
- type: 'GET',
- data: {email: mail.value},
- dataType: 'json',
- beforeSend: function (xhr) {
- if (!loginCheck()) {
- xhr.abort();
- }
- },
- success: function (res) {
- if (res.success) {
- email.verify(res);
- } else {
- alert(res.message || "처리 중 오류가 발생하였습니다. 관리자에게 문의하십시오.");
- }
- },
- error: function (xhr, status, err) {
- procErrorEvent(xhr, status, err);
- }
- });
- e.target.blur();
- },
- verify: function(res) {
- document.getElementById("btnChangeEmail").setAttribute("hidden", "hidden");
- document.getElementById("email").className = "form-control-plaintext p-0";
- document.getElementById("tableRowspan").setAttribute("rowspan", 6);
- let $emailVerifyView = $("#emailVerifyForm");
- $emailVerifyView.attr("hidden", false);
- $emailVerifyView.find("td").html(res.view);
- },
- cancel: function() {
- document.getElementById("btnChangeEmail").removeAttribute("hidden");
- document.getElementById("email").className = "form-control";
- document.getElementById("tableRowspan").setAttribute("rowspan", 5);
- let $emailVerifyView = $("#emailVerifyForm");
- $emailVerifyView.attr("hidden", true);
- $emailVerifyView.find("td").html("");
- },
- confirm: function(e) {
- let code = document.getElementById("emailVerifyCode");
- if (!code.value) {
- code.focus();
- return alert("인증번호를 입력해 주세요.");
- }
- $.ajax({
- url: (BASE_URL + "/account/email/update"),
- type: 'POST',
- data: {code: code.value},
- dataType: 'json',
- beforeSend: function (xhr) {
- if (!loginCheck()) {
- xhr.abort();
- }
- },
- success: function (res) {
- if (res.success) {
- alert("이메일 주소가 변경되었습니다.");
- email.stopTimer();
- email.cancel();
- } else {
- alert(res.message || "처리 중 오류가 발생하였습니다. 관리자에게 문의하십시오.");
- }
- },
- error: function (xhr, status, err) {
- procErrorEvent(xhr, status, err);
- }
- });
- e.target.blur();
- },
- startTimer: function(setTime) {
- // 타이머 중복 실행 방지로 기존 시작된 타이머를 리셋하여 점점 빨라지는 오류를 방지
- email.stopTimer();
- let countDownDate = moment().add(setTime, 'seconds');
- this.timer = setInterval(function () {
- let diff = countDownDate.diff(moment());
- if (diff <= 0) {
- email.stopTimer();
- email.cancel();
- return false;
- } else {
- $("#emailVerifyExpiresAt").html(moment.utc(diff).format("mm:ss"));
- }
- });
- },
- stopTimer: function() {
- clearInterval(this.timer);
- }
- };
- let thumb = {
- preview: function (e) {
- if (e.target.files.length > 0) {
- let src = URL.createObjectURL(event.target.files[0]);
- document.getElementById("prevThumbImg").src = src;
- document.getElementById("btnCancelThumb").hidden = false;
- }else{
- this.cancel();
- }
- },
- cancel: function() {
- document.getElementById("prevThumbImg").src = (BASE_URL + "/images/default_thumb.gif");
- document.getElementById("btnCancelThumb").hidden = true;
- document.getElementById("thumbImg").value = null
- }
- };
- // 이메일 변경하기
- $(document).on("click", "#btnChangeEmail", email.change);
- // 이메일 인증 확인
- $(document).on("click", "#btnConfirmEmail", email.confirm);
- // 이메일 인증 취소
- $(document).on("click", "#btnCancelEmail", email.cancel);
- // 프로필 이미지 미리보기
- $(document).on("change", "#thumbImg", thumb.preview);
- // 프로필 이미지 취소
- $(document).on("click", "#btnCancelThumb", thumb.cancel);
|