Add: maestro_available_date.js

This commit is contained in:
2019-10-30 11:09:50 +09:00
parent d376fda28a
commit 1fd53105a2
11 changed files with 166 additions and 120 deletions
+12
View File
@@ -171,11 +171,23 @@
// console.log("day : " + availableDateArray[2]); // console.log("day : " + availableDateArray[2]);
var endDate = new Date(availableDateArray[0], availableDateArray[1] - 1, availableDateArray[2]); var endDate = new Date(availableDateArray[0], availableDateArray[1] - 1, availableDateArray[2]);
// console.log("endDate : " + endDate); // console.log("endDate : " + endDate);
/*
var newDate = new Date(endDate.setFullYear(endDate.getFullYear() + 1)); var newDate = new Date(endDate.setFullYear(endDate.getFullYear() + 1));
// console.log("newDate : " + newDate); // console.log("newDate : " + newDate);
// var newAvailableDate = newDate.toISOString().substring(0, 10); // var newAvailableDate = newDate.toISOString().substring(0, 10);
var newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2); var newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2);
// console.log("newAvailableDate : " + newAvailableDate); // console.log("newAvailableDate : " + newAvailableDate);
*/
var today = new Date();
var endDay = new Date(endDate);
var diffDay = (endDay.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
var newDate = null;
if(diffDay < 0) // end date is over
newDate = new Date(today.setFullYear(today.getFullYear() + 1));
else
newDate = new Date(endDay.setFullYear(endDay.getFullYear() + 1));
newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2);
console.log("newAvailableDate : " + newAvailableDate);
// console.log(maestroExtensionID); // console.log(maestroExtensionID);
// console.log(maestroID); // console.log(maestroID);
+78
View File
@@ -0,0 +1,78 @@
function MaestroAvailableDate() {
this.today = new Date();
this.endDate = null;
this.endDay = null;
}
MaestroAvailableDate.prototype.setEndDate = function(endDate) {
this.endDate = endDate;
this.endDay = new Date(this.endDate);
}
MaestroAvailableDate.prototype.setEndDateTime = function(endDateTime) {
var endDateArray = endDateTime.split(" ");
this.setEndDate(endDateArray[0]); // "YY-MM_DD"
}
MaestroAvailableDate.prototype.getDiffDay = function() {
var diffDay = (this.endDay.getTime() - this.today.getTime()) / (1000 * 60 * 60 * 24);
return Math.ceil(diffDay);
}
MaestroAvailableDate.prototype.getNewAvailableDate = function(diffDay) {
var newDate = null;
if(diffDay < 0) // end date is over
newDate = new Date(new Date().setFullYear(this.today.getFullYear() + 1));
else
newDate = new Date(new Date().setFullYear(this.endDay.getFullYear() + 1));
var year2Digits = newDate.getFullYear();
var month2Digits = ("0"+(newDate.getMonth()+1)).slice(-2);
var day2Digits = ("0" + newDate.getDate()).slice(-2);
return year2Digits+ "-" + month2Digits + "-" + day2Digits;
}
MaestroAvailableDate.prototype.showMaestroExtensionMessage = function(maestroName) {
var diffDay = this.getDiffDay();
if(diffDay > 30)
return;
$("#maestro_extension").removeClass("d-none");
var message = "";
if(diffDay > 0)
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 얼마 남지 않았습니다.<br/>1년 더 사용을 원하신다면 우측의 [유효기간 연장] 버튼을 눌러주세요.";
else
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>유효기간 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다.";
$("#maestro_extension_message").html(message);
}
MaestroAvailableDate.prototype.showEndDate = function() {
var diffDay = this.getDiffDay();
var newAvailableDate = this.getNewAvailableDate(diffDay);
$("#end_day").html(this.endDate);
if(diffDay < 0) {
$("#maestro_count_down_date").html("유효 기간 : ~ " + this.endDate + " <span id='countdown_day'>(" + Math.abs(diffDay) + "일 경과) </span>");
$("#countdown_day").addClass("bg-danger font-weight-bold text-light");
}
else {
$("#maestro_count_down_date").html("유효 기간 : ~ " + this.endDate + " <span id='countdown_day'>(남은 기간 : " + diffDay + "일)</span>");
if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light");
else if(diffDay < 30)
$("#countdown_day").addClass("text-danger");
else
$("#countdown_day").addClass("text-primary");
}
}
+1
View File
@@ -46,6 +46,7 @@
<script type="text/javascript" src="./../js/lib/maestro_info.js"></script> <script type="text/javascript" src="./../js/lib/maestro_info.js"></script>
<script type="text/javascript" src="./../js/request_server.js"></script> <script type="text/javascript" src="./../js/request_server.js"></script>
<script type="text/javascript" src="./../js/maestro_main.js"></script> <script type="text/javascript" src="./../js/maestro_main.js"></script>
<script type="text/javascript" src="./../js/maestro_availabel_date.js"></script>
<script type="text/javascript" src="./../js/player_list.js"></script> <script type="text/javascript" src="./../js/player_list.js"></script>
<script type="text/javascript" src="./../js/player_list_navigator.js"></script> <script type="text/javascript" src="./../js/player_list_navigator.js"></script>
<script type="text/javascript" src="./../js/player_list_manager.js"></script> <script type="text/javascript" src="./../js/player_list_manager.js"></script>
+1
View File
@@ -38,6 +38,7 @@
<script type="text/javascript" src="./../js/lib/maestro_info.js"></script> <script type="text/javascript" src="./../js/lib/maestro_info.js"></script>
<script type="text/javascript" src="./../js/request_server.js"></script> <script type="text/javascript" src="./../js/request_server.js"></script>
<script type="text/javascript" src="./../js/maestro_main.js"></script> <script type="text/javascript" src="./../js/maestro_main.js"></script>
<script type="text/javascript" src="./../js/maestro_availabel_date.js"></script>
<script type="text/javascript" src="./../js/player_list.js"></script> <script type="text/javascript" src="./../js/player_list.js"></script>
<script type="text/javascript" src="./../js/player_list_navigator.js"></script> <script type="text/javascript" src="./../js/player_list_navigator.js"></script>
<script type="text/javascript" src="./../js/player_list_manager.js"></script> <script type="text/javascript" src="./../js/player_list_manager.js"></script>
+1
View File
@@ -45,6 +45,7 @@
<script type="text/javascript" src="./../js/lib/maestro_info.js"></script> <script type="text/javascript" src="./../js/lib/maestro_info.js"></script>
<script type="text/javascript" src="./../js/request_server.js"></script> <script type="text/javascript" src="./../js/request_server.js"></script>
<script type="text/javascript" src="./../js/maestro_main.js"></script> <script type="text/javascript" src="./../js/maestro_main.js"></script>
<script type="text/javascript" src="./../js/maestro_availabel_date.js"></script>
<script type="text/javascript" src="./../js/player_list.js"></script> <script type="text/javascript" src="./../js/player_list.js"></script>
<script type="text/javascript" src="./../js/player_list_navigator.js"></script> <script type="text/javascript" src="./../js/player_list_navigator.js"></script>
<script type="text/javascript" src="./../js/player_list_manager.js"></script> <script type="text/javascript" src="./../js/player_list_manager.js"></script>
+1
View File
@@ -45,6 +45,7 @@
<script type="text/javascript" src="./../js/lib/maestro_info.js"></script> <script type="text/javascript" src="./../js/lib/maestro_info.js"></script>
<script type="text/javascript" src="./../js/request_server.js"></script> <script type="text/javascript" src="./../js/request_server.js"></script>
<script type="text/javascript" src="./../js/maestro_main.js"></script> <script type="text/javascript" src="./../js/maestro_main.js"></script>
<script type="text/javascript" src="./../js/maestro_availabel_date.js"></script>
<script type="text/javascript" src="./../js/player_list.js"></script> <script type="text/javascript" src="./../js/player_list.js"></script>
<script type="text/javascript" src="./../js/player_list_navigator.js"></script> <script type="text/javascript" src="./../js/player_list_navigator.js"></script>
<script type="text/javascript" src="./../js/player_list_manager.js"></script> <script type="text/javascript" src="./../js/player_list_manager.js"></script>
+24 -33
View File
@@ -1,5 +1,7 @@
<script> <script>
var maestroAvailableDate = new MaestroAvailableDate();
var registeredAccountType = -1; var registeredAccountType = -1;
var availableDate = ""; var availableDate = "";
var newAvailableDate = ""; var newAvailableDate = "";
@@ -14,10 +16,12 @@ function loadMaestroInfo(maestroID) {
"maestro_id=" + maestroID, "maestro_id=" + maestroID,
(function(jsonData) { (function(jsonData) {
// console.log(jsonData);
registeredAccountType = jsonData.accountType; registeredAccountType = jsonData.accountType;
showEndDate(jsonData.availableActivateDateTime); maestroAvailableDate.setEndDateTime(jsonData.availableActivateDateTime);
maestroAvailableDate.showEndDate();
maestroAvailableDate.showMaestroExtensionMessage(jsonData.name);
showPrice(); showPrice();
showMaestroName(jsonData.name); showMaestroName(jsonData.name);
}), }),
@@ -29,30 +33,6 @@ function loadMaestroInfo(maestroID) {
); );
} }
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);
availableDate = endDate;
var newDate = new Date(endDay.setFullYear(endDay.getFullYear() + 1));
// newAvailableDate = newDate.toISOString().substring(0, 10);
newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2);
$("#maestro_count_down_date").html("유효 기간 : ~ " + endDate + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
if(diffDay < 30)
$("#countdown_day").addClass("text-danger");
else if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light");
else if(diffDay < 0)
$("#countdown_day").addClass("bg-secondary text-light");
else
$("#countdown_day").addClass("text-muted");
$("#end_day").html(endDate);
}
function showPrice() { function showPrice() {
$("#price_account").html( $("#price_account").html(
@@ -68,11 +48,11 @@ function showMaestroName(maestroName) {
function extendMaestroAccount() { function extendMaestroAccount() {
// console.log("extend maestro account"); // console.log("extend maestro account");
// console.log("maestroID : " + maestroID); console.log("maestroID : " + maestroID);
// console.log("availableDate : " + availableDate); console.log("availableDate : " + availableDate);
// console.log("newAvailableDate : " + newAvailableDate); console.log("newAvailableDate : " + newAvailableDate);
// console.log("registeredAccountType : " + registeredAccountType); console.log("registeredAccountType : " + registeredAccountType);
// return; return;
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/maestro/request_extension_maestro.php", "./../server/maestro/request_extension_maestro.php",
@@ -101,6 +81,17 @@ function extendMaestroAccount() {
<div class="container py-3"> <div class="container py-3">
<div id="maestro_extension" class="alert alert-danger d-none" role="alert">
<div class="row mx-0">
<div id="maestro_extension_message" class="col-sm my-auto px-0">
message
</div>
<div class="col-sm-offset my-auto">
<a class="btn btn-primary pull-right" role="button" href="./../maestro/extension.html" style="float:right;">유효기간 연장</a>
</div>
</div>
</div>
<div class="row border rounded border-dark py-2 mx-0 mb-3"> <div class="row border rounded border-dark py-2 mx-0 mb-3">
<div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div> <div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div>
@@ -128,8 +119,8 @@ function extendMaestroAccount() {
<div class="px-2 mb-4"> <div class="px-2 mb-4">
<h5 class="card-title">유효 기간을 <span class="text-primary">+1년 연장</span>합니다.</h5> <h5 class="card-title">유효 기간을 <span class="text-primary">+1년 연장</span>합니다.</h5>
<ul> <ul>
<li>만료일(<span id="end_day"></span>) 기준으로 1년이 추가됩니다.</li> <li>만료일 이내 : 유효 기간 만료일(<span id="end_day"></span>) 기준으로 1년이 추가됩니다.</li>
<li>연장 신청한 날짜, 입금한 날짜와는 무관합니다.</li> <li>만료일 경과 : 연장 결재가 이루어진 날을 기준으로 1년이 추가됩니다</li>
</ul> </ul>
<h5 class="card-title">연장 신청 방법</h5> <h5 class="card-title">연장 신청 방법</h5>
+6 -47
View File
@@ -3,6 +3,8 @@
var maestroInfo = new MaestroInfo(); var maestroInfo = new MaestroInfo();
var isMaestroInfoLoaded = false; var isMaestroInfoLoaded = false;
var maestroAvailableDate = new MaestroAvailableDate();
var addPlayerListManager = null; var addPlayerListManager = null;
var searchPlayerListManager = null; var searchPlayerListManager = null;
@@ -30,62 +32,19 @@ $(document).ready(function() {
function isExperienceMaestroAccount() { function isExperienceMaestroAccount() {
var maestroAccountType = maestroInfo.accountType; var maestroAccountType = maestroInfo.accountType;
console.log("maestroAccountType : " + maestroAccountType); // console.log("maestroAccountType : " + maestroAccountType);
if(maestroAccountType == 101) if(maestroAccountType == 101)
return true; return true;
return false; return false;
} }
function getDiffDay(endDay, today) {
var diffDay = (endDay.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
return Math.ceil(diffDay);
}
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 = getDiffDay(endDay, today);
$("#maestro_count_down_date").html("유효기간 : ~ " + endDate + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
if(diffDay < 30)
$("#countdown_day").addClass("text-danger");
else if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light");
else if(diffDay < 0)
$("#countdown_day").addClass("bg-secondary text-light");
else
$("#countdown_day").addClass("text-muted");
}
function showMaestroExtensionMessage(maestroName, date) {
var endDateArray = date.split(" ");
var endDate = endDateArray[0]; // "YY-MM_DD"
var today = new Date();
var endDay = new Date(endDate);
var diffDay = getDiffDay(endDay, today);
if(diffDay > 30)
return;
$("#maestro_extension").removeClass("d-none");
var message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 얼마 남지 않았습니다.<br/>1년 더 사용을 원하신다면 우측의 [유효기간 연장] 버튼을 눌러주세요.";
if(diffDay < 0)
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>유효기간 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다.";
$("#maestro_extension_message").html(message);
}
function onLoadSuccessMaestroInfo() { function onLoadSuccessMaestroInfo() {
showMaestroExtensionMessage(maestroInfo.maestroName, maestroInfo.availableActivateDateTime); maestroAvailableDate.setEndDateTime(maestroInfo.availableActivateDateTime);
maestroAvailableDate.showEndDate();
maestroAvailableDate.showMaestroExtensionMessage(maestroInfo.maestroName);
showEndDate(maestroInfo.availableActivateDateTime);
$("#maestro_info_player_count").val("학생수 : " + maestroInfo.getRegisteredPlayerCount() + " / " + maestroInfo.getMaxPlayerCount()); $("#maestro_info_player_count").val("학생수 : " + maestroInfo.getRegisteredPlayerCount() + " / " + maestroInfo.getMaxPlayerCount());
if(maestroInfo.getRegisteredPlayerCount() === maestroInfo.getMaxPlayerCount()) { if(maestroInfo.getRegisteredPlayerCount() === maestroInfo.getMaxPlayerCount()) {
+18 -20
View File
@@ -1,5 +1,7 @@
<script> <script>
var maestroAvailableDate = new MaestroAvailableDate();
var isChangedIDName = false; var isChangedIDName = false;
var isAvailableIDName = false; var isAvailableIDName = false;
var registeredMaestroIDName = ""; var registeredMaestroIDName = "";
@@ -30,7 +32,11 @@ function loadMaestroInfo(maestroID) {
(function(jsonData) { (function(jsonData) {
// console.log(jsonData); // console.log(jsonData);
showEndDate(jsonData.availableActivateDateTime); // showEndDate(jsonData.availableActivateDateTime);
maestroAvailableDate.setEndDateTime(jsonData.availableActivateDateTime);
maestroAvailableDate.showEndDate();
maestroAvailableDate.showMaestroExtensionMessage(jsonData.name);
showPlayerCount(jsonData.accountType, jsonData.playerCount); showPlayerCount(jsonData.accountType, jsonData.playerCount);
registeredMaestroIDName = jsonData.name; registeredMaestroIDName = jsonData.name;
@@ -49,25 +55,6 @@ function loadMaestroInfo(maestroID) {
); );
} }
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 + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
if(diffDay < 30)
$("#countdown_day").addClass("text-danger");
else if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light");
else if(diffDay < 0)
$("#countdown_day").addClass("bg-secondary text-light");
else
$("#countdown_day").addClass("text-muted");
}
function showPlayerCount(accountType, playerCount) { function showPlayerCount(accountType, playerCount) {
$("#maestro_info_player_count").val("학생수 : " + playerCount + " / " + accountTypePlayerCount(accountType)); $("#maestro_info_player_count").val("학생수 : " + playerCount + " / " + accountTypePlayerCount(accountType));
} }
@@ -237,6 +224,17 @@ function changeMaestroPassword() {
<div class="container py-3"> <div class="container py-3">
<div id="maestro_extension" class="alert alert-danger d-none" role="alert">
<div class="row mx-0">
<div id="maestro_extension_message" class="col-sm my-auto px-0">
message
</div>
<div class="col-sm-offset my-auto">
<a class="btn btn-primary pull-right" role="button" href="./../maestro/extension.html" style="float:right;">유효기간 연장</a>
</div>
</div>
</div>
<div class="row border rounded border-dark py-2 mx-0 mb-3"> <div class="row border rounded border-dark py-2 mx-0 mb-3">
<div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div> <div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div>
+19 -19
View File
@@ -1,5 +1,7 @@
<script> <script>
var maestroAvailableDate = new MaestroAvailableDate();
var registeredAccountType = -1; var registeredAccountType = -1;
@@ -15,7 +17,12 @@ function loadMaestroInfo(maestroID) {
(function(jsonData) { (function(jsonData) {
// console.log(jsonData); // console.log(jsonData);
registeredAccountType = jsonData.accountType; registeredAccountType = jsonData.accountType;
showEndDate(jsonData.availableActivateDateTime);
// showEndDate(jsonData.availableActivateDateTime);
maestroAvailableDate.setEndDateTime(jsonData.availableActivateDateTime);
maestroAvailableDate.showEndDate();
maestroAvailableDate.showMaestroExtensionMessage(jsonData.name);
showPlayerCount(jsonData.accountType, jsonData.playerCount); showPlayerCount(jsonData.accountType, jsonData.playerCount);
updateCards(registeredAccountType); updateCards(registeredAccountType);
}), }),
@@ -27,24 +34,6 @@ function loadMaestroInfo(maestroID) {
); );
} }
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 + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
if(diffDay < 30)
$("#countdown_day").addClass("text-danger");
else if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light");
else if(diffDay < 0)
$("#countdown_day").addClass("bg-secondary text-light");
else
$("#countdown_day").addClass("text-muted");
}
function showPlayerCount(accountType, playerCount) { function showPlayerCount(accountType, playerCount) {
$("#maestro_info_player_count").val("학생수 : " + playerCount + " / " + accountTypePlayerCount(accountType)); $("#maestro_info_player_count").val("학생수 : " + playerCount + " / " + accountTypePlayerCount(accountType));
@@ -174,6 +163,17 @@ function upgradeMaestroInfo(accountType) {
<div class="container py-3"> <div class="container py-3">
<div id="maestro_extension" class="alert alert-danger d-none" role="alert">
<div class="row mx-0">
<div id="maestro_extension_message" class="col-sm my-auto px-0">
message
</div>
<div class="col-sm-offset my-auto">
<a class="btn btn-primary pull-right" role="button" href="./../maestro/extension.html" style="float:right;">유효기간 연장</a>
</div>
</div>
</div>
<div class="row border rounded border-dark py-2 mx-0 mb-3"> <div class="row border rounded border-dark py-2 mx-0 mb-3">
<div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div> <div id="maestro_count_down_date" class="col-sm-6 my-auto text-left"></div>
+5 -1
View File
@@ -15,12 +15,16 @@ $maestro_name = $_POST["maestro_name"];
$new_available_date = $_POST["new_available_date"]; $new_available_date = $_POST["new_available_date"];
$registered_account_type = $_POST["registered_account_type"]; $registered_account_type = $_POST["registered_account_type"];
$maestro_data = get_maestro_data($maestro_id);
set_data("maestro_data", $maestro_data);
send_result_fail("test");
exit;
extension_maestro($maestro_id); extension_maestro($maestro_id);
change_extension_request_status_to_close($maestro_id); change_extension_request_status_to_close($maestro_id);
change_extension_request_status_to_applied($maestro_extension_id); change_extension_request_status_to_applied($maestro_extension_id);
$maestro_data = get_maestro_data($maestro_id);
// $maestro_name, $new_available_date, $maestro_email // $maestro_name, $new_available_date, $maestro_email
sendMailExtensionDone($maestro_data["name"], $new_available_date, $maestro_data["email"]); sendMailExtensionDone($maestro_data["name"], $new_available_date, $maestro_data["email"]);
insertMaestroLog("extension_maestro", $maestro_id, $maestro_name."(".$registered_account_type.")"); insertMaestroLog("extension_maestro", $maestro_id, $maestro_name."(".$registered_account_type.")");