Logs page now has paging (#136)
This commit is contained in:
@@ -13,9 +13,9 @@ namespace gaseous_server.Controllers
|
||||
{
|
||||
[HttpGet]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
public List<Logging.LogItem> Logs()
|
||||
public List<Logging.LogItem> Logs(long? StartIndex, int PageNumber = 1, int PageSize = 100)
|
||||
{
|
||||
return Logging.GetLogs();
|
||||
return Logging.GetLogs(StartIndex, PageNumber, PageSize);
|
||||
}
|
||||
}
|
||||
}
|
@@ -7,18 +7,37 @@
|
||||
|
||||
</table>
|
||||
|
||||
<div style="width: 960px; text-align: center;">
|
||||
<button value="Load More" onclick="loadLogs(lastStartIndex, currentPage);">Load More</button>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function loadLogs() {
|
||||
var lastStartIndex = 0;
|
||||
var currentPage = 1;
|
||||
|
||||
function loadLogs(StartIndex, PageNumber) {
|
||||
var apiQuery = '';
|
||||
|
||||
if (StartIndex && PageNumber) {
|
||||
currentPage += 1;
|
||||
apiQuery = '?StartIndex=' + StartIndex + '&PageNumber=' + PageNumber;
|
||||
} else {
|
||||
currentPage = 1;
|
||||
}
|
||||
|
||||
ajaxCall(
|
||||
'/api/v1/Logs',
|
||||
'/api/v1/Logs' + apiQuery,
|
||||
'GET',
|
||||
function (result) {
|
||||
var newTable = document.getElementById('settings_events_table');
|
||||
if (currentPage == 1) {
|
||||
newTable.innerHTML = '';
|
||||
|
||||
newTable.appendChild(
|
||||
createTableRow(
|
||||
true,
|
||||
[
|
||||
//'Id',
|
||||
['Event Time', 'logs_table_cell_150px'],
|
||||
['Severity', 'logs_table_cell_150px'],
|
||||
'Process',
|
||||
@@ -28,9 +47,13 @@
|
||||
''
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
lastStartIndex = result[i].id;
|
||||
|
||||
var newRow = [
|
||||
//result[i].id,
|
||||
moment(result[i].eventTime).fromNow(),
|
||||
result[i].eventType,
|
||||
result[i].process,
|
||||
|
@@ -111,17 +111,30 @@ namespace gaseous_tools
|
||||
File.AppendAllText(Config.LogFilePath, TraceOutput);
|
||||
}
|
||||
|
||||
static public List<LogItem> GetLogs()
|
||||
static public List<LogItem> GetLogs(long? StartIndex, int PageNumber = 1, int PageSize = 100)
|
||||
{
|
||||
Database db = new gaseous_tools.Database(Database.databaseType.MySql, Config.DatabaseConfiguration.ConnectionString);
|
||||
string sql = "SELECT * FROM ServerLogs ORDER BY Id DESC";
|
||||
DataTable dataTable = db.ExecuteCMD(sql);
|
||||
string sql = "";
|
||||
if (StartIndex == null)
|
||||
{
|
||||
sql = "SELECT * FROM ServerLogs ORDER BY Id DESC LIMIT @PageSize OFFSET @PageNumber;";
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "SELECT * FROM ServerLogs WHERE Id < @StartIndex ORDER BY Id DESC LIMIT @PageSize OFFSET @PageNumber;";
|
||||
}
|
||||
Dictionary<string, object> dbDict = new Dictionary<string, object>();
|
||||
dbDict.Add("StartIndex", StartIndex);
|
||||
dbDict.Add("PageNumber", (PageNumber - 1) * PageSize);
|
||||
dbDict.Add("PageSize", PageSize);
|
||||
DataTable dataTable = db.ExecuteCMD(sql, dbDict);
|
||||
|
||||
List<LogItem> logs = new List<LogItem>();
|
||||
foreach (DataRow row in dataTable.Rows)
|
||||
{
|
||||
LogItem log = new LogItem
|
||||
{
|
||||
Id = (long)row["Id"],
|
||||
EventTime = DateTime.Parse(((DateTime)row["EventTime"]).ToString("yyyy-MM-ddThh:mm:ss") + 'Z'),
|
||||
EventType = (LogType)row["EventType"],
|
||||
Process = (string)row["Process"],
|
||||
@@ -145,6 +158,7 @@ namespace gaseous_tools
|
||||
|
||||
public class LogItem
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public DateTime EventTime { get; set; }
|
||||
public LogType? EventType { get; set; }
|
||||
public string Process { get; set; } = "";
|
||||
|
Reference in New Issue
Block a user