mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
feat: analytics UI
This commit is contained in:
1 parent
daa3f11b2e
commit
c843a03fc8
9 files changed
+200
-65
No files matched your search
@@ -9,7 +9,7 @@ th {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
border: 2px solid black;
|
||||
border: 2px solid #dcdcdd;
|
||||
}
|
||||
|
||||
th,
|
||||
@@ -17,3 +17,117 @@ td {
|
||||
width: 1px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: #000000;
|
||||
color: #333;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.title h1 {
|
||||
color: #00ff00;
|
||||
text-align: center;
|
||||
font-size: 50px;
|
||||
margin-top: 50px;
|
||||
font-family:
|
||||
ui-monospace,
|
||||
SFMono-Regular,
|
||||
Menlo,
|
||||
Monaco,
|
||||
Consolas,
|
||||
Liberation Mono,
|
||||
Courier New,
|
||||
monospace;
|
||||
}
|
||||
|
||||
.title img {
|
||||
width: 135px;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 30px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.heading {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
color: #dcdcdd;
|
||||
|
||||
background-color: #24262e;
|
||||
}
|
||||
|
||||
.data-table td {
|
||||
padding: 10px;
|
||||
text-align: left;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.data-table a {
|
||||
color: #00dd00;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.data-table th {
|
||||
color: #dcdcdd;
|
||||
padding: 10px;
|
||||
border: 1px solid #dcdcdd;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.container {
|
||||
background-color: #24262e;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.sort {
|
||||
display: flex;
|
||||
margin-bottom: 25px;
|
||||
gap: 15px;
|
||||
}
|
||||
|
||||
.sort a {
|
||||
background-color: #24262e;
|
||||
height: 50px;
|
||||
padding: 0 5 0 5;
|
||||
border-radius: 10px;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.sort .btn h3 {
|
||||
margin: 15 3 0 3;
|
||||
font-weight: 600;
|
||||
color: #dcdcdd;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
@@ -1,11 +1,15 @@
|
||||
<h1>Commands</h1>
|
||||
<h1 class='heading'>Commands</h1>
|
||||
<div>
|
||||
<h2>Error commands</h2>
|
||||
<div class='pagination'>
|
||||
<a href='/commands?order=asc'>Ascending</a>
|
||||
<a href='/commands?order=desc'>Descending</a>
|
||||
<h2 class='heading'>Error commands</h2>
|
||||
<div class='sort'>
|
||||
<a href='/commands?order=asc'><div class='btn'>
|
||||
<h3>Ascending</h3>
|
||||
</div></a>
|
||||
<a href='/commands?order=desc'><div class='btn'>
|
||||
<h3>Descending</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>User</th>
|
||||
@@ -25,7 +29,9 @@
|
||||
</tr>
|
||||
{{/each}}
|
||||
</table>
|
||||
<div class='pagination'>
|
||||
<a href='/commands?nextKey={{nextKey}}&order={{order}}'>Next</a>
|
||||
<div class='pagination sort'>
|
||||
<a href='/commands?nextKey={{nextKey}}&order={{order}}'><div class='btn'>
|
||||
<h3>Next</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,22 +1,27 @@
|
||||
<h1>Welcome to {{title}}</h1>
|
||||
<div>
|
||||
<h2>Overview</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Registered Users</th>
|
||||
<td>{{userCount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Total Started Quests</th>
|
||||
<td>{{totalQuests}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Completed Quests</th>
|
||||
<td>{{totalCompleted}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Completed Rate</th>
|
||||
<td>{{completedRate}}%</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<body>
|
||||
<div class='title'>
|
||||
<img src='icon_totem.svg' class='styled-image' />
|
||||
<h1>Welcome to {{title}}</h1>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<h2 class='heading'>Overview</h2>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Registered Users</th>
|
||||
<td>{{userCount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Total Started Quests</th>
|
||||
<td>{{totalQuests}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Completed Quests</th>
|
||||
<td>{{totalCompleted}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Completed Rate</th>
|
||||
<td>{{completedRate}}%</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
@@ -4,14 +4,12 @@
|
||||
<link rel='stylesheet' href='/css/style.css' />
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href='/'>Home</a></li>
|
||||
<li><a href='/users'>Users</a></li>
|
||||
<li><a href='/quests'>Quests</a></li>
|
||||
<li><a href='/commands'>Commands</a></li>
|
||||
<li><a href='/sessions'>Sessions</a></li>
|
||||
</ul>
|
||||
<nav class='nav'>
|
||||
<div><a href='/'>Home</a></div>
|
||||
<div><a href='/users'>Users</a></div>
|
||||
<div><a href='/quests'>Quests</a></div>
|
||||
<div><a href='/commands'>Commands</a></div>
|
||||
<div><a href='/sessions'>Sessions</a></div>
|
||||
</nav>
|
||||
{{{body}}}
|
||||
</body>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h1>Quests</h1>
|
||||
<h1 class='heading'>Quests</h1>
|
||||
<div>
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Started</th>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<h1>{{title}}</h1>
|
||||
<div>
|
||||
{{#with session}}
|
||||
<table>
|
||||
{{#with session}}<h1 class='heading'>Session {{_id}}</h1>
|
||||
<div>
|
||||
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Quest</th>
|
||||
<td>{{quest}}</td>
|
||||
@@ -32,9 +32,9 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Commands</h2>
|
||||
<h2 class='heading'>Commands</h2>
|
||||
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Stage</th>
|
||||
<th>PWD</th>
|
||||
@@ -54,5 +54,5 @@
|
||||
</tr>
|
||||
{{/each}}
|
||||
</table>
|
||||
{{/with}}
|
||||
</div>
|
||||
|
||||
</div>{{/with}}
|
||||
@@ -1,10 +1,14 @@
|
||||
<h1>Sessions</h1>
|
||||
<div class='pagination'>
|
||||
<a href='/sessions?order=asc'>Ascending</a>
|
||||
<a href='/sessions?order=desc'>Descending</a>
|
||||
<h1 class='heading'>Sessions</h1>
|
||||
<div class='sort'>
|
||||
<a href='/sessions?order=asc'><div class='btn'>
|
||||
<h3>Ascending</h3>
|
||||
</div></a>
|
||||
<a href='/sessions?order=desc'><div class='btn'>
|
||||
<h3>Descending</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>User</th>
|
||||
<th>Quest</th>
|
||||
@@ -29,6 +33,8 @@
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
<div class='pagination'>
|
||||
<a href='/sessions?nextKey={{nextKey}}&order={{order}}'>Next</a>
|
||||
<div class='pagination sort'>
|
||||
<a href='/sessions?nextKey={{nextKey}}&order={{order}}'><div class='btn'>
|
||||
<h3>Next</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
@@ -1,10 +1,14 @@
|
||||
<h1>Users List</h1>
|
||||
<div class='pagination'>
|
||||
<a href='/users?order=asc'>Ascending</a>
|
||||
<a href='/users?order=desc'>Descending</a>
|
||||
<h1 class='heading'>Users List</h1>
|
||||
<div class='sort'>
|
||||
<a href='/users?order=asc'><div class='btn'>
|
||||
<h3>Ascending</h3>
|
||||
</div></a>
|
||||
<a href='/users?order=desc'><div class='btn'>
|
||||
<h3>Descending</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Username</th>
|
||||
<th>Last Activity</th>
|
||||
@@ -25,6 +29,8 @@
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
<div class='pagination'>
|
||||
<a href='/users?nextKey={{nextKey}}&order={{order}}'>Next</a>
|
||||
<div class='pagination sort'>
|
||||
<a href='/users?nextKey={{nextKey}}&order={{order}}'><div class='btn'>
|
||||
<h3>Next</h3>
|
||||
</div></a>
|
||||
</div>
|
||||
@@ -1,6 +1,6 @@
|
||||
<h1>{{user}}'s Sessions History</h1>
|
||||
<h1 class='heading'>{{user}}'s Sessions History</h1>
|
||||
<div>
|
||||
<table>
|
||||
<table class='data-table'>
|
||||
<tr>
|
||||
<th>Quest</th>
|
||||
<th>Status</th>
|
||||
|
||||
Reference in new issue
Block a user