diff --git a/0PLAN.org b/0PLAN.org index befe26b..d985997 100644 --- a/0PLAN.org +++ b/0PLAN.org @@ -4,10 +4,10 @@ ** 0.2 -- [ ] use localStorage to store user +- [-] use localStorage to store user - [ ] add barcode scanner to get the user - - [ ] allow editing - - [ ] add UserSelect component + - [X] allow editing + - [X] add UserSelect component - [X] integrate script for starting build qemu system - [X] add org file to the repository after cleanup diff --git a/backend/brminv.scm b/backend/brminv.scm index 808bf70..48c5c28 100644 --- a/backend/brminv.scm +++ b/backend/brminv.scm @@ -47,6 +47,7 @@ (define -db-user- (make-parameter #f)) (define -db-name- (make-parameter #f)) (define -db-pass- (make-parameter #f)) +(define -db-enabled- (make-parameter #t)) (command-line print-help @@ -82,6 +83,8 @@ (-db-user- dbuser)) (-dp (dbpass) "Database password" (-db-pass- dbpass)) + (-dd () "Disable database" + (-db-enabled- #f)) ) (define ssl? (and (-certificate-) (-key-) #t)) @@ -120,7 +123,8 @@ (print "current user id: " (current-user-id)) (print "current effective user id: " (current-effective-user-id)) -(bar-db-init! (-db-name-) (-db-host-) (-db-user-) (-db-pass-)) +(when (-db-enabled-) + (bar-db-init! (-db-name-) (-db-host-) (-db-user-) (-db-pass-))) (define (handle-api-calls) (define plst (cdr (uri-path (request-uri (current-request))))) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index ce437fb..2ae663c 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,8 +1,12 @@ -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import BarcodeScannerComponent from 'react-qr-barcode-scanner'; -import { Container, Row, Col } from 'react-bootstrap'; +import Container from 'react-bootstrap/Container'; +import Row from 'react-bootstrap/Row'; +import Col from 'react-bootstrap/Col'; import Table from 'react-bootstrap/Table'; import Alert from 'react-bootstrap/Alert'; +import Form from 'react-bootstrap/Form'; +import Button from 'react-bootstrap/Button'; import './App.css'; import 'bootstrap/dist/css/bootstrap.min.css'; @@ -10,15 +14,15 @@ import 'bootstrap/dist/css/bootstrap.min.css'; function App() { // Ensure we have persistent (informal) user information const [user, setUser] = useState(""); - useEffect(() => { - localStorage.setItem('user', user); - }, [user]); useEffect(() => { const user = localStorage.getItem('user'); if (user) { setUser(user); } }, []); + useEffect(() => { + localStorage.setItem('user', user); + }, [user]); // If no user, must be scanned/set otherwise return ( @@ -26,17 +30,52 @@ function App() { {user === "" ? : - } + } ); } function NoUserView({setUser}) { - return

No user!

; + const [preUser, setPreUser] = useState(""); + return ( + <> + + + + User: + setPreUser(v.target.value)} /> + Which user is using this App? + + + + + + Scanner + + + + + + + + + ); } -function UserView({user}) { - return

User={user}

; +function UserView({user, setUser}) { + return ( + + + {user} + + + + + + + ); } function BarItemScanner() { @@ -69,7 +108,7 @@ function BarItemScanner() { }; return ( - + <> {statusMsg} - + ); }