var userFrame = '\ \ <%userID%>\ <%userName%>\ <%emailFunc(email)%>
(<%authType%>)\ <%userGradeText%>

<%shortDate(blockUntil)%>

\ <%nickname%>\ \ <%slotGeneralList%>\ <%shortDate(joinDate)%>\ <%shortDate(loginDate)%>\ <%shortDate(deleteAfter)%>\ \
\ \ \ \ \ \
\ \ '; function convUserGrade(grade){ var userGradeMap = { 0:'차단', 1:'일반', 4:'특별', 5:'부운영자', 6:'운영자' }; if(grade in userGradeMap){ return userGradeMap[grade]; } return grade; } function fillAllowJoinLogin(result){ $('#radios_allow_join .active').removeClass('active'); $('#radios_allow_login .active').removeClass('active'); if(result.allowJoin){ $('#allow_join_y').parent().addClass('active'); } else{ $('#allow_join_n').parent().addClass('active'); } if(result.allowLogin){ $('#allow_login_y').parent().addClass('active'); } else{ $('#allow_login_n').parent().addClass('active'); } } function fillUserList(result){ var $user_list = $('#user_list'); $user_list.empty(); var slotGeneralList = $.map(result.servers, function(value){ return ''.format(value) }).join('
'); var emailFunc = function(text){ return String(text).replace('@','@
'); } var brFunc = function(text){ return String(text).split(' ').join('
'); }; var shortDateFunc = function(date){ if(!date){ return '-'; } return brFunc(date.substr(2)); } $.each(result.users, function(idx, user){ user.br = brFunc; user.shortDate = shortDateFunc; user.emailFunc = emailFunc; if(!user.email){ user.email = '-'; } user.slotGeneralList = slotGeneralList; user.userGradeText = convUserGrade(user.userGrade); $user_list.append( TemplateEngine(userFrame, user) ) }); //TODO: slotGeneralList에 값을 채워야함. ajax로 받아올 필요 있음 } function changeSystem(action, param=null){ var text = '{0}{1}을 진행합니다.'.format(action, param?(', '+param):''); if(!confirm(text)){ return; } $.ajax({ type:'post', url:'j_set_userlist.php', dataType:'json', data:{ 'action':action, 'param':param } }).then(function(result){ if(result.result){ if(result.affected !== undefined){ alert('{0}건이 처리되었습니다.'.format(result.affected)); refreshAll(); } else{ alert('완료되었습니다.'); } } else{ alert(result.reason); } }); } function changeUserStatus(action, userID, param=null){ if(userID instanceof Element){ userID = parseInt($(userID).parents('tr').data('id')); } if(!$.isNumeric(userID)){ alert('userID가 올바르게 지정되지 않았습니다!'); return; } userID = parseInt(userID); if(action == 'set_userlevel'){ if(!$.isNumeric(param)){ param = prompt('원하는 등급을 입력해주세요.(1:일반, 4:특별, 5:부운영자, 6:운영자)', '1'); } param = parseInt(param); if(param < 1 || param > 6){ alert('올바르지 않습니다.'); return; } } if(action == 'block'){ if(!$.isNumeric(param)){ param = prompt('블록 기간을 입력해주세요. <= 0은 반영구(50년)입니다.', '7'); } param = parseInt(param); } var userName = $('#userinfo_'+userID).data('username'); var text = '{0}에 대해서 {1}{2}을 진행합니다.'.format(userName, action, param?(', '+param):''); if(!confirm(text)){ return; } $.ajax({ type:'post', url:'j_set_userlist.php', dataType:'json', data:{ 'action':action, 'user_id':userID, 'param':param } }).then(function(result){ if(result.result){ if(result.detail !== undefined){ alert('완료되었습니다. : {0}'.format(result.detail)); refreshAll(); } else{ alert('완료되었습니다.'); refreshAll(); } } else{ alert(result.reason); } }); } function refreshAll(){ $.ajax({ type:'post', url:'j_get_userlist.php', dataType:'json' }).then(function(result){ if(!result.result){ alert(reuslt.reason); return; } fillAllowJoinLogin(result); fillUserList(result); }); } $(function(){ refreshAll(); $('input[name=allow_join], input[name=allow_login]').on('change', function(){ var $this = $(this); changeSystem($this.attr('name'), $this.val()); }) });