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