diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml
index 7b4e660..5c5f854 100644
--- a/.gitea/workflows/build.yaml
+++ b/.gitea/workflows/build.yaml
@@ -3,6 +3,7 @@ on:
push:
branches:
- master
+ - dev
jobs:
build-and-test:
@@ -82,6 +83,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: v${{ env.VERSION }}
name: Release v${{ env.VERSION }}
+
files: |
release-artifacts/admin_dashboard-${{ env.VERSION }}.zip
draft: false
diff --git a/.gitignore b/.gitignore
index dfc19a0..db7e886 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,10 @@
/build
*/build
/src/authtoken.json
+<<<<<<< HEAD
+=======
+
+>>>>>>> dev
# misc
.DS_Store
.env.local
diff --git a/database.sql b/database.sql
index b6f6453..1315470 100644
--- a/database.sql
+++ b/database.sql
@@ -1,10 +1,11 @@
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
+ token VARCHAR(255) NOT NULL,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
perms VARCHAR(255) NOT NULL
);
-- Test user with admin permissions
-INSERT INTO users (username, password_hash, perms)
-VALUES ('admin', 'ecd71870d1963316a97e3ac3408c9835ad8cf0f3c1bc703527c30265534f75ae', 'admin');
+INSERT INTO users (token, username, password_hash, perms)
+VALUES ('be01e88cc202593292d503e4ed9e51e9eb217093662efbb145030ba51b97c22a','admin', 'ecd71870d1963316a97e3ac3408c9835ad8cf0f3c1bc703527c30265534f75ae', 'admin');
diff --git a/generatetoken.js b/generatetoken.js
index 12814b7..59c7a06 100644
--- a/generatetoken.js
+++ b/generatetoken.js
@@ -1,6 +1,6 @@
const fs = require('fs');
-const filePath = 'authtoken.json';
+const filePath = 'src/authtoken.json';
if (!fs.existsSync(filePath)) {
const randomToken = (Math.random().toString(36).substring(2, 10));
diff --git a/public/robots.txt b/public/robots.txt
index e9e57dc..b21f088 100644
--- a/public/robots.txt
+++ b/public/robots.txt
@@ -1,3 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
-Disallow:
+Disallow: /
diff --git a/src/App.js b/src/App.js
index f51a1d5..7378abf 100644
--- a/src/App.js
+++ b/src/App.js
@@ -11,6 +11,7 @@ import metadata from './metadata.json';
import './App.css'
import useToken from './core/useToken';
import Terminal from './Terminal/TerminalPage'
+import DashboardReports from './Dashboard/DashboardReports';
function App() {
@@ -26,8 +27,8 @@ function App() {
} />
} />
} />
- {/* } />
- } /> */}
+ {/* } /> */}
+ } />
} />
} />
} />
diff --git a/src/Dashboard/DashboardReports.js b/src/Dashboard/DashboardReports.js
new file mode 100644
index 0000000..30681f3
--- /dev/null
+++ b/src/Dashboard/DashboardReports.js
@@ -0,0 +1,33 @@
+import React from 'react';
+import {
+ Box,
+ CssBaseline,
+ Toolbar,
+} from '@mui/material';
+import { ThemeProvider } from '@mui/material/styles';
+import theme from '../theme';
+import { SidebarMain } from '../widgets/Sidebar';
+import { AppBarFull } from '../widgets/AppBar';
+import WidgetReport from '../widgets/WidgetReport';
+
+export default function DashboardReports() {
+ return (
+
+
+
+
+
+
+
+ {/* Hi {localStorage.getItem('token')} */}
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/Maintenance/SystemUpdates.js b/src/Maintenance/SystemUpdates.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/Settings/SettingsDatabaseConfig.js b/src/Settings/SettingsDatabaseConfig.js
new file mode 100644
index 0000000..7900c16
--- /dev/null
+++ b/src/Settings/SettingsDatabaseConfig.js
@@ -0,0 +1,28 @@
+import React from "react";
+import { ThemeProvider, Box, Typography } from "@mui/material";
+import { theme } from "../theme";
+
+
+const SettingsDatabaseConfig = () => {
+ return (
+
+
+
+
+
+
+
+
+ Database Configuration
+
+
+
+
+
+ );
+};
+
+export default SettingsDatabaseConfig;
diff --git a/src/core/configEdit.js b/src/core/configEdit.js
index 07f247c..01c39b2 100644
--- a/src/core/configEdit.js
+++ b/src/core/configEdit.js
@@ -65,3 +65,9 @@ export function getDeveloperMode() {
throw error;
});
}
+
+export function getDatabaseConfig() {
+ return getConfig().then(config => config.database);
+}
+
+
diff --git a/src/metadata.json b/src/metadata.json
index cdb01f7..de45e7b 100644
--- a/src/metadata.json
+++ b/src/metadata.json
@@ -1 +1 @@
-{"buildMajor":1,"buildMinor":0,"buildRevision":16,"buildTag":"DEV"}
+{"buildMajor":1,"buildMinor":0,"buildRevision":21,"buildTag":"DEV"}
\ No newline at end of file
diff --git a/src/widgets/AppBar.js b/src/widgets/AppBar.js
index eeed9b3..e8a15a0 100644
--- a/src/widgets/AppBar.js
+++ b/src/widgets/AppBar.js
@@ -9,6 +9,7 @@ import DashboardIcon from '@mui/icons-material/DashboardOutlined';
import SettingsIcon from '@mui/icons-material/SettingsOutlined';
import LogoutIcon from '@mui/icons-material/LogoutOutlined';
import deleteToken from "../core/deleteToken";
+import metadata from "../metadata.json";
const drawerWidth = 240;
@@ -43,7 +44,10 @@ export const AppBarFull = () => {
- Admin Dashboard
+ {['DEV', 'ALPHA', 'BETA'].includes(metadata.buildTag) ?
+ `Admin Dashboard ${metadata.buildTag}` :
+ 'Admin Dashboard'
+ }
{
>
-
+ window.location.href = '/settings'}>
+
+
+
+ window.location.href = '/settings/database'}>
-
+ window.location.href = '/settings/access'}>
-
+ window.location.href = '/settings/update'}>
-
+ window.location.href = '/settings/info'}>
- { window.location.href = '/settings/info'; }}/>
+
{getDeveloperMode() && (
-
+ window.location.href = '/settings/debug'}>
@@ -82,15 +86,15 @@ export const SidebarMain = () => {
-
+ window.location.href = '/dashboard/users'}>
-
+ window.location.href = '/dashboard/reports'}>
-
+ window.location.href = '/dashboard/configuration'}>
diff --git a/src/widgets/WidgetReport.js b/src/widgets/WidgetReport.js
new file mode 100644
index 0000000..606ce24
--- /dev/null
+++ b/src/widgets/WidgetReport.js
@@ -0,0 +1,22 @@
+import React from "react";
+import { Box, CssBaseline, Toolbar } from "@mui/material";
+
+import { ThemeProvider } from "@mui/material/styles";
+import theme from "../theme";
+
+
+export default function WidgetReport() {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file