339 lines
10 KiB
HTML
339 lines
10 KiB
HTML
<script>
|
|
|
|
let isChangedIDName = false;
|
|
let isAvailableIDName = false;
|
|
let registeredMaestroIDName = "";
|
|
let registeredEmail = "";
|
|
let registeredPassword = "";
|
|
let registeredAccountType = -1;
|
|
|
|
let newMaestroIDName = "";
|
|
let newEmail = "";
|
|
|
|
let newPassword = "";
|
|
let newPasswordVerify = "";
|
|
|
|
|
|
$(document).ready(function() {
|
|
loadMaestroInfo(maestroID);
|
|
|
|
$('#maestro_id').bind('input propertychange', function() {
|
|
onChangeMaestroIDName();
|
|
});
|
|
});
|
|
|
|
function loadMaestroInfo(maestroID) {
|
|
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
|
|
"./../server/maestro/maestro_info.php",
|
|
"maestro_id=" + maestroID,
|
|
|
|
(function(jsonData) {
|
|
// console.log(jsonData);
|
|
|
|
showEndDate(jsonData.availableActivateDateTime);
|
|
showPlayerCount(jsonData.accountType, jsonData.playerCount);
|
|
|
|
registeredMaestroIDName = jsonData.name;
|
|
$("#maestro_id").val(registeredMaestroIDName);
|
|
|
|
registeredEmail = jsonData.email;
|
|
$("#email").val(registeredEmail);
|
|
|
|
registeredAccountType = jsonData.accountType;
|
|
}),
|
|
|
|
(function(errorMessage, errorCode) {
|
|
showErrorMessage(errorMessage, "error");
|
|
})
|
|
|
|
);
|
|
}
|
|
|
|
function showEndDate(date) {
|
|
var endDateArray = date.split(" ");
|
|
var endDate = endDateArray[0]; // "YY-MM_DD"
|
|
|
|
var today = new Date();
|
|
var endDay = new Date(endDate);
|
|
var diffDay = (endDay.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
|
|
|
|
$("#maestro_count_down_date").html("~ " + endDate + "<br/>유효 기간 : " + Math.ceil(diffDay) + "일");
|
|
if(diffDay < 30)
|
|
$("#maestro_count_down_date").addClass("text-danger");
|
|
else if(diffDay < 10)
|
|
$("#maestro_count_down_date").addClass("bg-danger text-light");
|
|
else if(diffDay < 0)
|
|
$("#maestro_count_down_date").addClass("bg-secondary text-light");
|
|
}
|
|
|
|
function showPlayerCount(accountType, playerCount) {
|
|
$("#maestro_info_player_count").val("학생수 : " + playerCount + " / " + accountTypePlayerCount(accountType));
|
|
}
|
|
|
|
function onChangeMaestroIDName() {
|
|
isChangedIDName = true;
|
|
isAvailableIDName = false;
|
|
$("#id_ckeck").prop("disabled", false)
|
|
$("#id_ckeck_help").removeClass("d-none");
|
|
}
|
|
|
|
function checkMaestroIDName() {
|
|
newMaestroIDName = $("#maestro_id").val();
|
|
|
|
if(!accountValidator.isValidMaestroID(newMaestroIDName)) {
|
|
showErrorMessage(accountValidator.messageForInvalidMaestroID(newMaestroIDName), "error");
|
|
$("#maestro_id").focus();
|
|
$("#maestro_id").select();
|
|
return;
|
|
}
|
|
|
|
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
|
|
"./../server/maestro/check_id.php",
|
|
"maestro_name=" + newMaestroIDName,
|
|
|
|
(function(jsonData) {
|
|
isAvailableIDName = true;
|
|
isChangedIDName = false;
|
|
showErrorMessage(newMaestroIDName + " : 새로 등록할 수 있는 마에스트로 아이디입니다.", "success");
|
|
|
|
$("#id_ckeck").prop("disabled", true)
|
|
$("#id_ckeck_help").addClass("d-none");
|
|
}),
|
|
|
|
(function(errorMessage, errorCode) {
|
|
isAvailableIDName = false;
|
|
showErrorMessage(errorMessage, "error");
|
|
// $("#maestro_name").val("");
|
|
$("#maestro_id").focus();
|
|
$("#maestro_id").select();
|
|
})
|
|
|
|
);
|
|
}
|
|
|
|
function changeMaestroInfo() {
|
|
if(registeredAccountType >= 100) {
|
|
showErrorMessage("체험 계정은 정보 수정이 불가능합니다.", "error");
|
|
return;
|
|
}
|
|
|
|
newMaestroIDName = $("#maestro_id").val();
|
|
if(newMaestroIDName.length === 0) {
|
|
showErrorMessage("변경할 아이디를 입력해 주세요.", "error");
|
|
$("#maestro_id").focus();
|
|
return;
|
|
} else if(isChangedIDName && !isAvailableIDName) {
|
|
showErrorMessage("아이디 중복 확인을 해 주세요.", "error");
|
|
$("#id_ckeck").focus();
|
|
return;
|
|
}
|
|
|
|
newEmail = $("#email").val();
|
|
if(newEmail.length === 0) {
|
|
showErrorMessage("이메일을 입력해 주세요.", "error");
|
|
$("#email").focus();
|
|
return;
|
|
}
|
|
|
|
if(registeredMaestroIDName === newMaestroIDName && registeredEmail === newEmail) {
|
|
showErrorMessage("변경된 정보가 없습니다.", "error");
|
|
return;
|
|
}
|
|
|
|
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
|
|
"./../server/maestro/update_maestro_info.php",
|
|
"maestro_id=" + maestroID + "&maestro_name=" + newMaestroIDName + "&email=" + encodeURIComponent(newEmail),
|
|
|
|
(function(jsonData) {
|
|
alert(
|
|
"마에스트로 계정 정보가 변경되었습니다.\n"
|
|
+ "아이디 : " + newMaestroIDName + "\n"
|
|
+ "이메일 : " + newEmail
|
|
);
|
|
location.href="main_menu.html";
|
|
}),
|
|
|
|
(function(errorMessage, errorCode) {
|
|
isAvailableIDName = false;
|
|
showErrorMessage(errorMessage);
|
|
})
|
|
|
|
);
|
|
}
|
|
|
|
function checkPassword() {
|
|
if(registeredAccountType >= 100) {
|
|
showErrorMessage("체험 계정은 암호 수정이 불가능합니다.", "error");
|
|
$('html, body').animate({
|
|
scrollTop: $("#message_box").offset().top + 'px'
|
|
}, 'fast');
|
|
return;
|
|
}
|
|
|
|
registeredPassword = $("#prev_password").val();
|
|
if(registeredPassword.length === 0) {
|
|
showErrorMessage("현재 암호를 입력해 주세요.", "error");
|
|
$("#prev_password").focus();
|
|
return false;
|
|
}
|
|
|
|
newPassword = $("#new_password").val();
|
|
if(newPassword.length === 0) {
|
|
showErrorMessage("새로운 암호를 입력해 주세요.", "error");
|
|
$("#new_password").focus();
|
|
return;
|
|
} else if(!accountValidator.isValidMaestroPW(newPassword)) {
|
|
showErrorMessage(accountValidator.messageForInvalidMaestroPW(newPassword), "error");
|
|
$("#new_password").focus();
|
|
$("#new_password").select();
|
|
return false;
|
|
}
|
|
|
|
newPasswordVerify = $("#new_password_verify").val();
|
|
if(newPassword !== newPasswordVerify) {
|
|
showErrorMessage(
|
|
"[새로운 암호]와 [새로운 암호 확인]의 내용이 일치하지 않습니다.<br/>둘 다 같은 내용으로 다시 한 번 입력해 주세요.",
|
|
"error"
|
|
);
|
|
$("#new_password_verify").focus();
|
|
return false;
|
|
}
|
|
|
|
if(registeredPassword === newPassword) {
|
|
showErrorMessage("[새로운 암호]가 현재 암호와 동일합니다.", "error");
|
|
$("#new_password").focus();
|
|
$("#new_password").select();
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function changeMaestroPassword() {
|
|
if(!checkPassword())
|
|
return;
|
|
|
|
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
|
|
"./../server/maestro/update_maestro_password.php",
|
|
"maestro_id=" + maestroID + "®istered_pw=" + registeredPassword + "&new_pw=" + newPassword,
|
|
|
|
(function(jsonData) {
|
|
alert("패스워드가 변경되었습니다.");
|
|
location.href="main_menu.html";
|
|
}),
|
|
|
|
(function(errorMessage, errorCode) {
|
|
showErrorMessage(errorMessage);
|
|
})
|
|
|
|
);
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="container py-3">
|
|
<div class="row border border-primary rounded py-2 mx-0 mb-2">
|
|
<div id="maestro_info_id" class="col-sm pl-2 my-auto">
|
|
<a class="btn btn-primary" href="javascript:void(0);" onClick="goHome()">< 마에스트로 [홈]</a>
|
|
</div>
|
|
<div id="maestro_count_down_date" class="col-sm-2 px-0 my-auto mx-1 text-center"></div>
|
|
|
|
<div class="col-sm-5 px-0 d-md-flex align-items-center">
|
|
<div class="input-group my-auto">
|
|
<input type="text" id="maestro_info_player_count" class="form-control px-2 mx-0" value="학생수 :">
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary px-2 mr-2" type="button" onClick="location.href='./../maestro/upgrade.html';">업그레이드</a>
|
|
</div>
|
|
</div>
|
|
|
|
<a class="btn btn-primary px-2 mr-2 disabled" href="./../maestro/setup.html">계정 정보 수정</a>
|
|
</div>
|
|
|
|
</div> <!-- row border -->
|
|
|
|
|
|
<div id="message_box">
|
|
</div>
|
|
|
|
<div class="card border-primary">
|
|
<div class="card-header bg-light"><span class="h4">마에스트로 계정 정보 수정</span></div>
|
|
<div class="card-body">
|
|
|
|
<form class="mx-4">
|
|
<div class="form-group row">
|
|
<label for="maestro_id" class="col-sm-2 col-form-label text-primary">* 변경할 아이디</label>
|
|
<div class="col-sm-6">
|
|
<input type="text" class="form-control" id="maestro_id" placeholder="아이디 입력">
|
|
<small class="form-text text-muted">4~20 글자. 영문, 숫자만 사용 가능합니다.</small>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<input type="button" id="id_ckeck" class="btn btn-warning" value="중복 체크" onClick="checkMaestroIDName()" disabled>
|
|
<small id="id_ckeck_help" class="form-text text-danger d-none">[중복 체크] 버튼을 눌러주세요.</small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<label for="email" class="col-sm-2 col-form-label text-primary">* 변경할 이메일</label>
|
|
<div class="col-sm-6">
|
|
<input type="email" class="form-control" id="email" placeholder="name@example.com">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-5 mb-1 text-danger">위 내용으로 마에스트로 계정 정보를 변경합니다.</div>
|
|
<button type="button" class="btn btn-primary btn-block btn-lg" onClick="changeMaestroInfo()">변경</button>
|
|
</form>
|
|
|
|
</div> <!-- card body -->
|
|
|
|
</div> <!-- change maestro info -->
|
|
|
|
|
|
|
|
<div class="card border-primary mt-3">
|
|
<div class="card-header bg-light"><span class="h4">마에스트로 암호 변경</span></div>
|
|
<div class="card-body">
|
|
|
|
<div id="message_box">
|
|
</div>
|
|
|
|
<form class="mx-4">
|
|
<div class="form-group row">
|
|
<label for="prev_password" class="col-sm-2 col-form-label">* 현재 암호</label>
|
|
<div class="col-sm-6">
|
|
<input type="password" class="form-control" id="prev_password" placeholder="Password">
|
|
<small class="form-text text-muted">기존에 사용하던 암호를 입력하세요.</small>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<hr class="mx-3 mb-4"/>
|
|
|
|
<form class="mx-4">
|
|
<div class="form-group row">
|
|
<label for="new_password" class="col-sm-2 col-form-label text-primary">* 새로운 암호</label>
|
|
<div class="col-sm-6">
|
|
<input type="password" class="form-control" id="new_password" placeholder="Password">
|
|
<small class="form-text text-muted">4~16 글자. 영문, 숫자만 사용 가능합니다.</small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<label for="new_password_verify" class="col-sm-2 col-form-label text-primary">* 새로운 암호 확인</label>
|
|
<div class="col-sm-6">
|
|
<input type="password" class="form-control" id="new_password_verify" placeholder="Password">
|
|
<small class="form-text text-muted">위에 입력한 암호를 다시 한 번 정확히 입력하세요.</small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-5 mb-1 text-danger">위 내용으로 마에스트로 암호를 변경합니다.</div>
|
|
<button type="button" class="btn btn-primary btn-block btn-lg" onClick="changeMaestroPassword()">변경</button>
|
|
</form>
|
|
|
|
</div> <!-- card body -->
|
|
|
|
</div> <!-- change password -->
|
|
|
|
</div> <!-- container --> |