From 001c0cb1a0a6c9987fba4b076ace83bb8e1eea3f Mon Sep 17 00:00:00 2001 From: Aquaticholic Date: Sat, 29 Jan 2022 14:05:28 +0000 Subject: [PATCH] updated inputpage --- .prettierrc.json | 6 + .vscode/settings.json | 3 + couchdb/data/_dbs.couch | Bin 12487 -> 32973 bytes .../testdata.1643440069.couch | Bin 0 -> 192711 bytes .../testdata.1643440069.couch | Bin 0 -> 61645 bytes webserver/src/App.jsx | 36 ++-- webserver/src/DbContext.jsx | 12 +- .../DashboardPage/ProcessedDataContext.jsx | 85 ++++++++++ webserver/src/Pages/InputPage.css | 13 ++ webserver/src/Pages/InputPage.jsx | 156 +++++++++++++----- webserver/src/components/InputNumberField.jsx | 25 +-- 11 files changed, 263 insertions(+), 73 deletions(-) create mode 100644 .prettierrc.json create mode 100644 .vscode/settings.json create mode 100644 couchdb/data/shards/00000000-7fffffff/testdata.1643440069.couch create mode 100644 couchdb/data/shards/80000000-ffffffff/testdata.1643440069.couch create mode 100644 webserver/src/Pages/DashboardPage/ProcessedDataContext.jsx create mode 100644 webserver/src/Pages/InputPage.css diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..19862d1 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "prettier.printWidth": 400, + "prettier.semi": false, + "prettier.singleQuote": true + } + \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b492849 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "prettier.configPath": "${workspaceFolder}/.prettierrc.json" +} \ No newline at end of file diff --git a/couchdb/data/_dbs.couch b/couchdb/data/_dbs.couch index caa21eab090970ecdd3bb34af5842cee4c677ffd..b1727a5eff05ce93eaaec0a82f850380e2b6684d 100644 GIT binary patch literal 32973 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 ZZ(VZFc;>D9FFfy!XEUk)_l%1E|9{@^2)h6P literal 0 HcmV?d00001 diff --git a/couchdb/data/shards/80000000-ffffffff/testdata.1643440069.couch b/couchdb/data/shards/80000000-ffffffff/testdata.1643440069.couch new file mode 100644 index 0000000000000000000000000000000000000000..0ed11eca57727a3401fc80b70a77a9d8abebb08f GIT binary patch literal 61645 zcmeI*4{RIN9S89D{HO7yNtdKa(?UZ7O`u^tb3UKXcG_f3LKB)aQJbbEDMRMjcjvQx zj$L1zlB&vJ5o4kos>Yu|C#}Fx6~+eB1YMyUt6-u?{LeO4rb!UkR)#jMqa9kssP^t` znly2`w4|jZKPz(L(TK>i+-kd4S#YepR$#o^#7}kDqvRNG*~OBLxGhOe8r)90U<0A!~0$JNtbQ zA?pWm`jnNT;t7R3A}{eoR%E}+!?^^-r-&iR<>7-aPNN%P)gqz7-b8OglGpSm)P&wg zP?R9^S%|^ifHif<*wmt0jHk_u%kiL`(p7B!K2ug|PbD;2w-@88%6S1I#Us7ZD078v z9>ELl=MjRchQSCo5C8!X009sH0T2KI5C8!X0D(C#VC4V%hPRC#9C~16bLY>GKK1u| ze){lv#u@&GPEh$$~Eh?BmM+PoN{h4$+N5{zh(zKE;`w#%AU;YH=O%g|E2FO?35 zHMwGWeIqIek>0+FWu}gjUWEX_0s^pvnERh8MGXrGsc%g!G2wiqaMNy@@`0^x;H8s#t^;FpH4h zd^0ZOs*IyHiX$j$+@GGzk;a3^8Y!5B@?!k~qsEf0xfok5<~g2cIi7WSx;Va;6Ke&J z)5i;2RU5$ssTTUD#C679yihD4SheC>t?0?^AC4Y*!dtSja^>iWM{1X=cC%Phxrbn< z7ZpV5jXrm3svXm(v7L42XYP23h^$zg?q2DR;RXUA00JNY0w4eaAOHd&00JN|wSbZT z4?dVU+H%nQ!tjR&*zE;>@wq4Gev`STDnS$e`0P~zhsEz_mSpP$6_=IT zT|TeKGZnO6AWo3vP{;2E_9`!I4dtH-JdxQvz@a#j@Txl-~kNzC%5?DmoKCRlsQo3t8PK(+RLseq~IFEy$ z`UMO>0Ra#I0T2KI5C8!X009sHfoTeu`G4(k{gZd@yzJiN?^&*S-SLa|$@$-s&HsE2 z&Hv_u3Hjf$k7g~)3G$qo|M{bIqhDQ&{6EcM!e$@<0w4eaAOHd&00JNY0w4eaATXx| zApg(lKR*l}1V8`;KmY_l00ck)1V8`;KwypteEIV~?!k}Pa!gC7Gt7;}=F0+FB1E+7 zng;wG$&Ss9+t#%P+Jk;?#J8!dC0ti$&OOy^(i5q^#wh=U*bIikwZ-F(mXYy_a#yT%%HssS(wWz9U9U50=m2ncODzu z>1M;O26}5+FSqVk-*aPQxTifC?uy?K-Vy5GFu?g+rBHPJ4qv!`y&h|9+7udS?dT2! z0=__-(C&$Kt?h1WZ%p^ZZ;fniZ3#u%gdR1}<7+i07}lQSs?Zn*^ce~-hO5kUG=|wY}J45HK@Kdv+CdYc6QZ2X1Zz5zy+C}fyJkn z{ENnt|LU>6fo0y$*87WPx!MNSPiz}l95%ZKw$io!#ybBRbDe+5#C84x6CJDWzSh)KFhDy3BoEVe46!P|@xR!T?FcaSz%R*;0F0N3 z*{o{ggu$1c`@m=YyBZ7-1V8`;KmY_l00ck)1VA8{fSLbWmMxi&HEr)}j!*YI<|?^r za{jkw*Z-$z8$e<{n6Uoe`VLK2wpHY$8TwNv=|-6^FIxUDJ-Fr;;lNYA{qCKf(aX0U zeJq>*E%@2bng73h7Yh)^=lwIU3xM7D*VY_y-!=>5KI3hrodd-#j;j^u6%Kf(*KgDa zY{jwC6-FVT*(es|JCChDkPP4T&bkMWJa^vsmK>U2o05-*@(F~wvax(xoZ3eJC+YG=)djVYCIf9V;;}PVb z?FGIyf^2QU#t~GS=^0Rcw0;CVFrDTHw5hB3~d>{Y;f=+VY>j(D-bgH4o8mspS?!?G@1d2LM_Ii1t_sQZX{!3m00ck)1V8`;Kwu6FnE4-F(c-Q9=uh|5Cu;Y9 ze|V{5=JWp>nf&j%;OGDCF#rGmtp2~W^Z#@LeCD)2!dt#Fz6fx7?my)EIsASGLk9s6 z009sH0T2KI5C8!Xm|DQh|JT3k*m>kfa_7+}pLu)lOS_KGeExqolmD3uoB#g@GdALM literal 0 HcmV?d00001 diff --git a/webserver/src/App.jsx b/webserver/src/App.jsx index cd1626d..8cb6c87 100644 --- a/webserver/src/App.jsx +++ b/webserver/src/App.jsx @@ -19,33 +19,41 @@ import InputPage from "./Pages/InputPage"; import { createMuiTheme, ThemeProvider } from '@material-ui/core' import { Formik, Field, Form } from 'formik'; import { TextField, Button, Grid, FormRow, Checkbox, Radio, FormControlLabel, FormControl, FormLabel, RadioGroup, IconButton, InputAdornment } from "@material-ui/core"; -import { AddCircleOutline, RemoveCircleOutline} from "@material-ui/icons"; +import { AddCircleOutline, RemoveCircleOutline } from "@material-ui/icons"; function App() { const darkTheme = createMuiTheme({ - + // Theme settings palette: { type: "dark", }, + typography: { + fontSize: 18 + } }); + const styles = { + bigbution: { + + } + } return (
- - - - - } /> - } /> - } /> - } /> - } /> - - - + + + + + } /> + } /> + } /> + } /> + } /> + + +
); diff --git a/webserver/src/DbContext.jsx b/webserver/src/DbContext.jsx index 0442222..94eda13 100644 --- a/webserver/src/DbContext.jsx +++ b/webserver/src/DbContext.jsx @@ -16,7 +16,7 @@ export function DbProvider({ children }) { const [localdb, setLocaldb] = useState(new PouchDB("testdata")); //used in development server const [remotedb, setRemotedb] = useState( - new PouchDB(window.location.hostname + ":5984/testdata", { + new PouchDB("http://" + window.location.hostname + ":5984/testdata", { skip_setup: true, auth: { username: "scouting", @@ -40,10 +40,12 @@ export function DbProvider({ children }) { live: true, retry: true, }) - .on("change", function (change) {}) - .on("paused", function (info) {}) - .on("active", function (info) {}) - .on("error", function (err) {}); + .on("change", function (change) { }) + .on("paused", function (info) { }) + .on("active", function (info) { }) + .on("error", function (err) { + console.error(err); + }); return ( diff --git a/webserver/src/Pages/DashboardPage/ProcessedDataContext.jsx b/webserver/src/Pages/DashboardPage/ProcessedDataContext.jsx new file mode 100644 index 0000000..2de95aa --- /dev/null +++ b/webserver/src/Pages/DashboardPage/ProcessedDataContext.jsx @@ -0,0 +1,85 @@ +import React, { useContext, useState } from "react"; +import { useLocalDb } from "../../DbContext"; + +const ProcessedDataContext = React.createContext(); +export function useProcessedData() { + return useContext(processedDataContext); +} + +export function ProcessedDataProvider({ children }) { + const [processedData, setProcessedData] = useState( + { + teamData: null, + matchData: null, + updateData: function () { + const localdb = useLocalDb(); + // let processed_data = {}; + localdb + .allDocs({ + include_docs: true, + }) + .then((result) => { + console.log(result); + result.rows.forEach((dbentry) => { + let doc = dbentry.doc; + console.log(doc); + //if there's no processed data on a team yet, create a default data entry + if (typeof teamData[doc.team_name] === "undefined") { + teamData[doc.team_name] = { + team_name: doc.team_name, + alliance: doc.alliance, + games_played: 0, + climbs_none: 0, + climbs_low: 0, + climbs_mid: 0, + climbs_high: 0, + climbs_transverse: 0, + points: 0, + point_average: 0, + num_disables: 0, + disables_average: 0, + num_flips: 0, + flips_average: 0, + fouls: 0, + fouls_average: 0, + fouls_tech: 0, + fouls_tech_average: 0, + }; + } + + let thisTeamData = teamData[doc.team_name]; + console.log(thisTeamData); + let new_team_data = { + ...team_data, + games_played: team_data.games_played + 1, + num_climbs: team_data.num_climbs + (doc.climb == true ? 1 : 0), + num_disables: team_data.num_disables + (doc.disabled == true ? 1 : 0), + num_flips: team_data.num_flips + (doc.flipped_over == true ? 1 : 0), + fouls: team_data.fouls + parseInt(doc.fouls), + fouls_tech: team_data.fouls_tech + parseInt(doc.fouls_tech), + inner_port: team_data.inner_port + parseInt(doc.inner_port), + outer_port: team_data.outer_port + parseInt(doc.outer_port), + lower_port: team_data.lower_port + parseInt(doc.lower_port), + }; + console.log(new_team_data); + }); + }) + .catch((err) => { + console.log("Error Fetching Docs from Database!"); + console.log(err); + }); + let datasets = [ + { + data: [], + }, + ]; + } + } + ); + //https://react-charts.js.org/examples/column + return ( + + {children} + + ); +}; \ No newline at end of file diff --git a/webserver/src/Pages/InputPage.css b/webserver/src/Pages/InputPage.css new file mode 100644 index 0000000..e687414 --- /dev/null +++ b/webserver/src/Pages/InputPage.css @@ -0,0 +1,13 @@ +.maxwidth { + display: block; + /* margin-left: auto; + margin-right: auto; */ + width: 100%; + text-align: center; + margin: auto; + max-width: fit-content; + /* max-width: 100% */ +} +.smallfeild { + max-width: 25%; +} \ No newline at end of file diff --git a/webserver/src/Pages/InputPage.jsx b/webserver/src/Pages/InputPage.jsx index aedf4fa..1051fa8 100644 --- a/webserver/src/Pages/InputPage.jsx +++ b/webserver/src/Pages/InputPage.jsx @@ -1,5 +1,6 @@ import React from "react"; import { useLocalDb } from "../DbContext"; +import "./InputPage.css" // import { Button, Intent, Spinner } from "@blueprintjs/core"; import FormRenderer from "@data-driven-forms/react-form-renderer/form-renderer"; import componentTypes from "@data-driven-forms/react-form-renderer/component-types"; @@ -27,7 +28,8 @@ const InputPage = () => { const localdb = useLocalDb(); console.log(localdb); return ( -
+
+
{ lower_hub: "0", climb_level: "", alliance: "", - notes_good: "", - notes_struggle: "", - notes_cant: "", + defence: "" }} onSubmit={(values, { setSubmitting, resetForm }) => { setTimeout(() => { @@ -61,17 +61,17 @@ const InputPage = () => { .then((result) => { alert("Input Saved Successfully!"); console.log(result); + console.log(localdb); }) .catch((err) => { console.log("Failed To Save Input!"); alert(err); }); // alert(JSON.stringify(values, null, 2)); - resetForm(); + // resetForm(); //Hah tobad setSubmitting(false); }, 400); - }} - > + }}> {({ values, setValues, @@ -82,14 +82,14 @@ const InputPage = () => { handleSubmit, isSubmitting, }) => ( -
+ + + spacing={3}> {" "} { type="radio" name="alliance" value="red" + style={{ fontSize: 50 }} /> } label="Red" + /> { -
+
+ spacing={3}> + spacing={3}> { direction="column" justify="flex-start" alignItems="center" - spacing={3} - > + spacing={3}> {" "} - {" "} + {" "} {" "} @@ -189,15 +188,14 @@ const InputPage = () => { {" "} -
+
+ spacing={3}> Climbing @@ -261,44 +259,117 @@ const InputPage = () => { -
+
+ spacing={3}> - - {" "} - {" "} - - {" "} - {" "} + + + {" "} + {" "} + + {" "} + {" "} + - - {" "} - {" "} - - {" "} + + + {" "} + {" "} + + {" "} + + + {/* {" "} */} + {" "} - - {/* {" "} */} - {" "} -
+
+ spacing={3}> + + + Defense + + + } + label="N/A" + /> + + } + label="Poor" + /> + + } + label="Good" + /> + + } + label="Exceptional" + /> + + + + + +
+ + {" "} { direction="row" justify="center" alignItems="flex-start" - spacing={3} - > + spacing={3}>