Fix: player password 2~6 digits

This commit is contained in:
2018-10-16 20:38:11 +09:00
parent e6c9dd95f1
commit ede509e250
4 changed files with 77 additions and 19 deletions
+5 -5
View File
@@ -3,7 +3,7 @@ function AccountValidator() {
this.patternMaestroPW = /^[A-Za-z0-9]{4,16}$/; this.patternMaestroPW = /^[A-Za-z0-9]{4,16}$/;
this.patternPlayerID = /^[A-Za-z0-9가-힣-_]{1,8}$/; this.patternPlayerID = /^[A-Za-z0-9가-힣-_]{1,8}$/;
this.patternPlayerPW = /^[0-9]{4,6}$/; this.patternPlayerPW = /^[0-9]{2,6}$/;
} }
// maestro // maestro
@@ -73,11 +73,11 @@ AccountValidator.prototype.isValidPlayerPW = function(textPW) {
AccountValidator.prototype.messageForInvalidPlayerPW = function(textPW) { AccountValidator.prototype.messageForInvalidPlayerPW = function(textPW) {
if(textPW.length < Number(AccountValidator.PLAYER_PW_LENGTH_MINIMUM)) if(textPW.length < Number(AccountValidator.PLAYER_PW_LENGTH_MINIMUM))
return "학생 입장 번호는 " + AccountValidator.PLAYER_PW_LENGTH_MINIMUM + "글자 이상의 숫자로 입력해 주세요."; return "학생 입장 번호는 " + AccountValidator.PLAYER_PW_LENGTH_MINIMUM + "글자 이상의 숫자로 입력해 주세요.";
else if(textPW.length > Number(AccountValidator.PLAYER_PW_LENGTH_MAXIMUM)) else if(textPW.length > Number(AccountValidator.PLAYER_PW_LENGTH_MAXIMUM))
return "학생 입장 번호는 " + AccountValidator.PLAYER_PW_LENGTH_MAXIMUM + "글자 이하의 숫자로 입력해 주세요."; return "학생 입장 번호는 " + AccountValidator.PLAYER_PW_LENGTH_MAXIMUM + "글자 이하의 숫자로 입력해 주세요.";
else else
return "학생 입장 번호는 4~6자리 숫자로 입력해 주세요."; return "학생 입장 번호는 2~6자리 숫자로 입력해 주세요.";
} }
@@ -91,5 +91,5 @@ AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM = 16;
AccountValidator.PLAYER_ID_LENGTH_MINIMUM = 1; AccountValidator.PLAYER_ID_LENGTH_MINIMUM = 1;
AccountValidator.PLAYER_ID_LENGTH_MAXIMUM = 8; AccountValidator.PLAYER_ID_LENGTH_MAXIMUM = 8;
AccountValidator.PLAYER_PW_LENGTH_MINIMUM = 4; AccountValidator.PLAYER_PW_LENGTH_MINIMUM = 2;
AccountValidator.PLAYER_PW_LENGTH_MAXIMUM = 6; AccountValidator.PLAYER_PW_LENGTH_MAXIMUM = 6;
+59 -12
View File
@@ -11,7 +11,6 @@
PlayerListNavigator.prototype.updateNavigator = function(activePageNo, lastPageNo) { PlayerListNavigator.prototype.updateNavigator = function(activePageNo, lastPageNo) {
this.activePageNo = activePageNo; this.activePageNo = activePageNo;
this.lastPageNo = lastPageNo; this.lastPageNo = lastPageNo;
// this.lastPageNo = Math.ceil( (playerCount + 1) / 10 );
$(this.pagination).empty(); $(this.pagination).empty();
this.makePagination(); this.makePagination();
@@ -41,10 +40,19 @@ PlayerListNavigator.prototype.makePagination = function() {
$(this.pagination).append(paginationLeftArrows); $(this.pagination).append(paginationLeftArrows);
// numbers // numbers
for(var pageNo = 1; pageNo < this.lastPageNo + 1; pageNo++) { var pageGroupNo = this.getPageGroupNo(this.activePageNo);
$(this.pagination).append( var startNo = pageGroupNo * 10 + 1;
'<li class="page-item"><a class="page-link" href="javascript:void(0);" aria-label="' + pageNo + '">' + pageNo + '</a></li>' var endNo = (pageGroupNo + 1) * 10 > this.lastPageNo ? this.lastPageNo : (pageGroupNo + 1) * 10;
); for(var pageNo = startNo; pageNo < endNo + 1; pageNo++) {
var pageContent = "";
if(pageNo == this.activePageNo) {
pageContent = '<li class="page-item disabled"><a class="page-link" href="javascript:void(0);" aria-label="'
+ pageNo + '">' + pageNo + '</a></li>';
} else {
pageContent = '<li class="page-item"><a class="page-link" href="javascript:void(0);" aria-label="'
+ pageNo + '">' + pageNo + '</a></li>';
}
$(this.pagination).append(pageContent);
} }
// right arrows // right arrows
@@ -68,6 +76,18 @@ PlayerListNavigator.prototype.makePagination = function() {
$(this.pagination).append(paginationRightArrows); $(this.pagination).append(paginationRightArrows);
} }
PlayerListNavigator.prototype.getPageGroupNo = function(index) {
var pageGroupNo = Math.floor( (index - 1) / 10 );
var lastPageGroupNo = Math.floor( (this.lastPageNo - 1) / 10 );
if(pageGroupNo < 0)
return 0;
else if(pageGroupNo > lastPageGroupNo)
return lastPageGroupNo;
else
return pageGroupNo;
}
PlayerListNavigator.prototype.applyClickEvent = function() { PlayerListNavigator.prototype.applyClickEvent = function() {
var self = this; var self = this;
@@ -81,7 +101,8 @@ PlayerListNavigator.prototype.applyClickEvent = function() {
for(var pageNo = 1; pageNo < this.lastPageNo + 1; pageNo++) { for(var pageNo = 1; pageNo < this.lastPageNo + 1; pageNo++) {
$("[aria-label='" + pageNo + "']").click(function() { $("[aria-label='" + pageNo + "']").click(function() {
self.onClickPageNo(pageNo); var selectedPageNo = $(this).attr("aria-label");
self.onClickPageNo(selectedPageNo);
}); });
} }
@@ -130,20 +151,18 @@ PlayerListNavigator.prototype.disableNavButtons = function() {
} }
PlayerListNavigator.prototype.onClickPageNo = function(pageNo) { PlayerListNavigator.prototype.onClickPageNo = function(pageNo) {
console.log(pageNo); // console.log(pageNo);
switch(pageNo) { switch(pageNo) {
case "first": case "first":
this.activePageNo = 1; this.activePageNo = 1;
break; break;
case "previous": case "previous":
if(this.activePageNo > 1) this.activePageNo = this.getPrevGroupPage();
this.activePageNo -= 1;
break; break;
case "next": case "next":
if(this.activePageNo < this.lastPageNo) this.activePageNo = this.getNextGroupPage();
this.activePageNo += 1;
break; break;
case "last": case "last":
@@ -154,6 +173,34 @@ PlayerListNavigator.prototype.onClickPageNo = function(pageNo) {
this.activePageNo = pageNo; this.activePageNo = pageNo;
} }
console.log(this.activePageNo); // console.log(this.activePageNo);
this.playerListManager.onClickPageNo(this.activePageNo); this.playerListManager.onClickPageNo(this.activePageNo);
}
PlayerListNavigator.prototype.getPrevGroupPage = function() {
var savedPageNo = this.activePageNo;
var savedPageGroupNo = this.getPageGroupNo(savedPageNo);
var pageNo = this.activePageNo - 10;
var pageGroupNo = this.getPageGroupNo(pageNo);
if(pageGroupNo < savedPageGroupNo) {
var prevGroupLastPageNo = (pageGroupNo + 1) * 10;
return prevGroupLastPageNo;
}
return pageGroupNo * 10 + 1;
}
PlayerListNavigator.prototype.getNextGroupPage = function() {
var savedPageNo = this.activePageNo;
var savedPageGroupNo = this.getPageGroupNo(savedPageNo);
var pageNo = this.activePageNo + 10;
var pageGroupNo = this.getPageGroupNo(pageNo);
if(pageGroupNo > savedPageGroupNo) {
var prevGroupLastPageNo = pageGroupNo * 10 + 1;
return prevGroupLastPageNo;
}
return this.lastPageNo;
} }
@@ -99,7 +99,7 @@ function onErrorPlayerPW(message) {
<label for="entercode" class="col-sm-3 col-form-label">입장 번호</label> <label for="entercode" class="col-sm-3 col-form-label">입장 번호</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="text" class="form-control col-sm-9" id="entercode" placeholder="입장 번호 입력"> <input type="text" class="form-control col-sm-9" id="entercode" placeholder="입장 번호 입력">
<small class="form-text text-muted">4~6자리의 숫자</small> <small class="form-text text-muted">2~6자리의 숫자</small>
<button type="button" class="col-sm-7 btn btn-primary btn-lg mt-3" onClick="addPlayer()">추가</button> <button type="button" class="col-sm-7 btn btn-primary btn-lg mt-3" onClick="addPlayer()">추가</button>
</div> </div>
</div> </div>
+12 -1
View File
@@ -8,6 +8,17 @@ $maestroName = $_POST["maestro_name"];
$name = $_POST["name"]; $name = $_POST["name"];
$enterCode = $_POST["enter_code"]; $enterCode = $_POST["enter_code"];
if($enterCode === "" || strlen($enterCode) < 2) {
set_error_message("입장번호는 2개 이상의 숫자로 입력해야 합니다.");
send_result_fail();
exit;
}
if(strlen($enterCode) > 6) {
set_error_message("입장번호는 6개 이gk의 숫자로 입력해야 합니다.");
send_result_fail();
exit;
}
$maestroInfo = get_maestro_id($maestroName); $maestroInfo = get_maestro_id($maestroName);
if($maestroInfo === NULL) { if($maestroInfo === NULL) {
@@ -21,7 +32,7 @@ $maestroAccountType = $maestroInfo["accountType"];
$playerInfo = get_login_data($maestroID, $name, $enterCode); $playerInfo = get_login_data($maestroID, $name, $enterCode);
if($playerInfo === NULL) { if($playerInfo === NULL) {
set_error_message("입력한 이름/입장번호와 일치하는 계정이 없습니다"); set_error_message("입력한 이름 / 입장번호와 일치하는 계정이 없습니다");
send_result_fail(); send_result_fail();
exit; exit;
} }