diff --git a/server/src/resolvers/Log.js b/server/src/resolvers/Log.js
new file mode 100644
index 0000000..745321d
--- /dev/null
+++ b/server/src/resolvers/Log.js
@@ -0,0 +1,7 @@
+const Log = {
+ tags: _ => `[${_.tags.join(', ')}]`,
+ data: _ => JSON.stringify(_.data),
+ timestamp: _ => _.timestamp?.toISOString()
+}
+
+export { Log }
diff --git a/server/src/resolvers/Query.js b/server/src/resolvers/Query.js
index 51df672..98e13f6 100755
--- a/server/src/resolvers/Query.js
+++ b/server/src/resolvers/Query.js
@@ -146,16 +146,10 @@ const Query = {
},
async logs() {
- const logs = await prisma.log.findMany({
+ return await prisma.log.findMany({
orderBy: { timestamp: 'desc' },
take: 500
})
-
- return logs.map(log => ({
- ...log,
- tags: `[${log.tags.join(', ')}]`,
- data: JSON.stringify(log.data)
- }))
}
}
diff --git a/server/src/resolvers/index.js b/server/src/resolvers/index.js
index e84437f..bb90c3a 100755
--- a/server/src/resolvers/index.js
+++ b/server/src/resolvers/index.js
@@ -8,6 +8,7 @@ import { Group } from './Group'
import { ResetToken } from './ResetToken'
import { WifiDevice } from './WifiDevice'
import { Stats } from './Stats'
+import { Log } from './Log'
const resolvers = {
Query,
@@ -18,7 +19,8 @@ const resolvers = {
Group,
ResetToken,
WifiDevice,
- Stats
+ Stats,
+ Log
}
export { resolvers }
diff --git a/web/src/mixins/Nav.js b/web/src/mixins/Nav.js
index f8fd7dc..155c17e 100644
--- a/web/src/mixins/Nav.js
+++ b/web/src/mixins/Nav.js
@@ -79,7 +79,14 @@ export default {
},
{
groupTitle: 'Sistema',
+
items: [
+ {
+ title: 'Logs',
+ icon: 'mdi-clipboard-text-search',
+ route: { name: 'logs' },
+ role: 'superAdmin'
+ },
{
title: 'AdministraĆ§Ć£o',
icon: 'mdi-shield-account',
diff --git a/web/src/router/index.js b/web/src/router/index.js
index 112e5cb..35295f7 100755
--- a/web/src/router/index.js
+++ b/web/src/router/index.js
@@ -177,6 +177,16 @@ const routes = [
import(/* webpackChunkName: "wifi-users" */ '../views/WifiUsers.vue')
},
+ {
+ path: '/logs',
+ name: 'logs',
+ meta: {
+ title: 'Logs',
+ superAdmin: true
+ },
+ component: () => import(/* webpackChunkName: "logs" */ '../views/Logs.vue')
+ },
+
{
path: '/system-administration',
name: 'system-administration',
diff --git a/web/src/views/Logs.vue b/web/src/views/Logs.vue
new file mode 100644
index 0000000..0ccf509
--- /dev/null
+++ b/web/src/views/Logs.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+