Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
204 lines
6.8 KiB
C++
204 lines
6.8 KiB
C++
// TAdminUseLogDlg.cpp : 구현 파일입니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "AdminToolClient.h"
|
|
#include "TAdminUseLogDlg.h"
|
|
#include "WindowMgr.h"
|
|
#include "TAdminManagementDlg.h"
|
|
#include "PacketManager.h"
|
|
#include "GlobalFunctions.h"
|
|
|
|
|
|
|
|
// CTAdminUseLogDlg 대화 상자입니다.
|
|
|
|
IMPLEMENT_DYNAMIC(CTAdminUseLogDlg, CDialog)
|
|
CTAdminUseLogDlg::CTAdminUseLogDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CTAdminUseLogDlg::IDD, pParent)
|
|
, m_strTAdminUseLogReason(_T(""))
|
|
, m_strTAdminDetailUseLogBeforeEdit(_T(""))
|
|
, m_strTAdminDetailUseLogAfterEdit(_T(""))
|
|
, m_strAccount(_T(""))
|
|
, m_strTAdminName(_T(""))
|
|
, m_strTAdminLV(_T(""))
|
|
, m_strTAdminRegIP(_T(""))
|
|
, m_strTAdminRegDate(_T(""))
|
|
{
|
|
}
|
|
|
|
CTAdminUseLogDlg::~CTAdminUseLogDlg()
|
|
{
|
|
}
|
|
|
|
void CTAdminUseLogDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
|
|
DDX_Control(pDX, IDC_TADMINUSELOGLIST, m_ctrlTAdminUseLogList);
|
|
DDX_Control(pDX, IDC_TADMINDETAILUSELOGLIST, m_ctrlTAdminDetailUseLogList);
|
|
|
|
DDX_Text(pDX, IDC_TADMIN_ACCOUNT_NAME, m_strAccount);
|
|
DDX_Text(pDX, IDC_TADMIN_NAME, m_strTAdminName);
|
|
DDX_Text(pDX, IDC_TADMIN_LV, m_strTAdminLV);
|
|
DDX_Text(pDX, IDC_TADMIN_REG_IP, m_strTAdminRegIP);
|
|
DDX_Text(pDX, IDC_TADMIN_REG_DATE, m_strTAdminRegDate);
|
|
DDX_Text(pDX, IDC_TADMINUSELOGREASON, m_strTAdminUseLogReason);
|
|
DDX_Text(pDX, IDC_TADMINDETAILUSELOGBEFOREEDIT, m_strTAdminDetailUseLogBeforeEdit);
|
|
DDX_Text(pDX, IDC_TADMINDETAILUSELOGAFTEREDIT, m_strTAdminDetailUseLogAfterEdit);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CTAdminUseLogDlg, CDialog)
|
|
ON_WM_CTLCOLOR()
|
|
ON_WM_DESTROY()
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDC_TADMINUSELOGLIST, OnLvnItemchangedTadminuseloglist)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDC_TADMINDETAILUSELOGLIST, OnLvnItemchangedTadmindetailuseloglist)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CTAdminUseLogDlg 메시지 처리기입니다.
|
|
|
|
BOOL CTAdminUseLogDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
INSERT_WINDOW(IDD_TADMINUSELOGDLG, this);
|
|
|
|
m_ctrlTAdminUseLogList.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
|
m_ctrlTAdminUseLogList.SetBkColor( COLORREF RGB( 255, 254, 217) );
|
|
m_ctrlTAdminUseLogList.SetTextBkColor( COLORREF RGB( 255, 254, 217) );
|
|
|
|
m_ctrlTAdminDetailUseLogList.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
|
m_ctrlTAdminDetailUseLogList.SetBkColor( COLORREF RGB( 255, 254, 217) );
|
|
m_ctrlTAdminDetailUseLogList.SetTextBkColor( COLORREF RGB( 255, 254, 217) );
|
|
|
|
m_ctrlTAdminUseLogList.InsertColumn(0, GetLocalString("LOG_NUM"), LVCFMT_LEFT, 80);
|
|
m_ctrlTAdminUseLogList.InsertColumn(1, GetLocalString("LOGIN_TIME"), LVCFMT_LEFT, 160);
|
|
m_ctrlTAdminUseLogList.InsertColumn(2, GetLocalString("LOGOUT_TIME"), LVCFMT_LEFT, 160);
|
|
m_ctrlTAdminUseLogList.InsertColumn(3, GetLocalString("ADMIN_IP"), LVCFMT_LEFT, 120);
|
|
|
|
m_ctrlTAdminDetailUseLogList.InsertColumn(0, GetLocalString("DETAIL_LOG_NUM"), LVCFMT_LEFT, 100);
|
|
m_ctrlTAdminDetailUseLogList.InsertColumn(1, GetLocalString("EDIT_TIME"), LVCFMT_LEFT, 140);
|
|
m_ctrlTAdminDetailUseLogList.InsertColumn(2, GetLocalString("EDIT_TYPE"), LVCFMT_LEFT, 70);
|
|
|
|
RequestLogList(); // 선택계정의 로그리스트를 서버에 요청한다
|
|
|
|
FillSelectAdminInfo(); // 선택 된 계정의 정보를 표시
|
|
|
|
SetWindowText(GetLocalString("IDD_TADMINUSELOGDLG"));
|
|
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_01, "IDC_TADMINUSELOG_01");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_02, "IDC_TADMINUSELOG_02");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_03, "IDC_TADMINUSELOG_03");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_04, "IDC_TADMINUSELOG_04");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_05, "IDC_TADMINUSELOG_05");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_06, "IDC_TADMINUSELOG_06");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_07, "IDC_TADMINUSELOG_07");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_08, "IDC_TADMINUSELOG_08");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_09, "IDC_TADMINUSELOG_09");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_10, "IDC_TADMINUSELOG_10");
|
|
SetUIString(this->m_hWnd, IDC_TADMINUSELOGREASONEDIT, "IDC_TADMINUSELOGREASONEDIT");
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CTAdminUseLogDlg::OnDestroy()
|
|
{
|
|
ERASE_WINDOW( IDD_TADMINUSELOGDLG );
|
|
|
|
CDialog::OnDestroy();
|
|
}
|
|
|
|
CDialog* CTAdminUseLogDlg::GetAdminMgrDlg( )
|
|
{
|
|
return static_cast< CDialog* >( GetParent( ) );
|
|
}
|
|
|
|
CListCtrl* CTAdminUseLogDlg::GetAdminMgrList( )
|
|
{
|
|
return static_cast< CListCtrl* >( GetAdminMgrDlg()->GetDlgItem( IDC_TADMINLIST ) );
|
|
}
|
|
|
|
void CTAdminUseLogDlg::FillSelectAdminInfo()
|
|
{
|
|
CListCtrl* lpToolAdminList = GetAdminMgrList();
|
|
|
|
int nIndex = lpToolAdminList->GetNextItem( -1, LVIS_SELECTED );
|
|
TCHAR szTemp[20];
|
|
|
|
// 툴 운영자 리스트에서 선택된 정보 얻어오기
|
|
lpToolAdminList->GetItemText( nIndex, 0, szTemp, sizeof(szTemp) );
|
|
m_strAccount = szTemp; // 운영 계정
|
|
lpToolAdminList->GetItemText( nIndex, 1, szTemp, sizeof(szTemp) );
|
|
m_strTAdminName = szTemp; // 운영자 이름
|
|
lpToolAdminList->GetItemText( nIndex, 2, szTemp, sizeof(szTemp) );
|
|
m_strTAdminLV = szTemp; // 운영자 레벨
|
|
lpToolAdminList->GetItemText( nIndex, 3, szTemp, sizeof(szTemp) );
|
|
m_strTAdminRegIP = szTemp; // 등록 IP
|
|
lpToolAdminList->GetItemText( nIndex, 4, szTemp, sizeof(szTemp) );
|
|
m_strTAdminRegDate = szTemp; // 등록일
|
|
|
|
UpdateData( FALSE );
|
|
}
|
|
|
|
void CTAdminUseLogDlg::RequestLogList( )
|
|
{
|
|
TCHAR szAccount[ 20 ];
|
|
CDialog* AdminMgrDlg = static_cast< CDialog* >( GetParent( ) );
|
|
CListCtrl* RegAdminz = static_cast< CListCtrl* >( AdminMgrDlg->GetDlgItem( IDC_TADMINLIST ) );
|
|
int Index = RegAdminz->GetNextItem( -1, LVIS_SELECTED );
|
|
|
|
RegAdminz->GetItemText( Index, 0, szAccount, sizeof( szAccount ) ); // 선택한 관리자의 계정을 가져온다.
|
|
|
|
CPacketMgr::GetInstance()->SendLogList( szAccount );
|
|
}
|
|
|
|
CListCtrl* CTAdminUseLogDlg::GetLogList( )
|
|
{
|
|
return static_cast< CListCtrl* >( GetDlgItem( IDC_TADMINUSELOGLIST ) );
|
|
}
|
|
|
|
// CTAdminUseLogDlg 이벤트 처리입니다.
|
|
|
|
// 사용 내역 리스트 아이템 선택
|
|
void CTAdminUseLogDlg::OnLvnItemchangedTadminuseloglist(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
|
|
|
UpdateData();
|
|
|
|
int Index = m_ctrlTAdminUseLogList.GetNextItem( -1, LVIS_SELECTED );
|
|
int LogID;
|
|
TCHAR szTmp[ 50 ];
|
|
|
|
if( Index != -1 )
|
|
{
|
|
m_ctrlTAdminUseLogList.GetItemText( Index, 0, szTmp, sizeof( szTmp ) );
|
|
LogID = _ttoi( szTmp );
|
|
|
|
// 상세로그 리퀘스트....
|
|
CPacketMgr::GetInstance()->SendDetailLog( LogID );
|
|
m_ctrlTAdminDetailUseLogList.DeleteAllItems( );
|
|
}
|
|
*pResult = 0;
|
|
}
|
|
|
|
// 상세 사용 내역 리스트 아이템 선택
|
|
void CTAdminUseLogDlg::OnLvnItemchangedTadmindetailuseloglist(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
|
|
|
int Index = m_ctrlTAdminDetailUseLogList.GetNextItem( -1, LVIS_SELECTED );
|
|
int DetailLogID;
|
|
TCHAR szTmp[ 50 ];
|
|
|
|
if( Index != -1 )
|
|
{
|
|
m_ctrlTAdminDetailUseLogList.GetItemText( Index, 0, szTmp, sizeof( szTmp ) );
|
|
DetailLogID = _ttoi( szTmp );
|
|
|
|
CPacketMgr::GetInstance()->SendBeforeAfter( DetailLogID );
|
|
}
|
|
|
|
*pResult = 0;
|
|
} |