diff --git a/static/create.html b/static/create.html
index 5b770cd5..72e58f57 100644
--- a/static/create.html
+++ b/static/create.html
@@ -5,7 +5,7 @@
diff --git a/static/favicon.ico b/static/favicon.ico
index 86c47f3c..bd41d270 100644
Binary files a/static/favicon.ico and b/static/favicon.ico differ
diff --git a/static/index.html b/static/index.html
index 41196968..1cde7545 100644
--- a/static/index.html
+++ b/static/index.html
@@ -2,30 +2,31 @@
× You are offline
-
bearTracksCRESCENDO
+
bearTracksCRESCENDO
-
\ No newline at end of file
diff --git a/static/login.html b/static/login.html
index 86c12d0e..ee3ccaf4 100644
--- a/static/login.html
+++ b/static/login.html
@@ -1 +1 @@
-
loading web assembly...
\ No newline at end of file
+
Log In - bearTracks loading web assembly...
\ No newline at end of file
diff --git a/static/main.html b/static/main.html
new file mode 100644
index 00000000..ef084c6c
--- /dev/null
+++ b/static/main.html
@@ -0,0 +1,105 @@
+
+
+
+
+
Scout - bearTracks
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/passkey.html b/static/passkey.html
new file mode 100644
index 00000000..5903c312
--- /dev/null
+++ b/static/passkey.html
@@ -0,0 +1 @@
+
Register Passkey - bearTracks loading web assembly...
\ No newline at end of file
diff --git a/static/pointRecords.html b/static/pointRecords.html
index 3b5d7ff1..864fb9c6 100644
--- a/static/pointRecords.html
+++ b/static/pointRecords.html
@@ -5,7 +5,7 @@
Point Records - bearTracks
-
+
diff --git a/static/points.html b/static/points.html
index 8664955d..e9c8fcd5 100644
--- a/static/points.html
+++ b/static/points.html
@@ -5,7 +5,7 @@
Points - bearTracks
-
+
diff --git a/static/public/css/float.css b/static/public/css/float.css
index 993eefbb..1d57ac9a 100644
--- a/static/public/css/float.css
+++ b/static/public/css/float.css
@@ -1,14 +1,14 @@
body {
--fieldsetColor: rgba(0,0,0,0);
- --bodyColor: #121212;
- --textColor: #fff;
- --transparency: rgba(0,0,0,0);
--defaultInputColor: #fff;
- --inputColorSelected: #ffb600;
- --gameFlairColor: #68c3e2;
- --cancelColor: #e90202;
- --returnColor: #ffb600;
- --checkAccent: #68c3e2;
+ --bodyColor: #282828;
+ --textColor: #ebdbb2;
+ --defaultInputColor: #504945;
+ --inputColorSelected: #b8bb26;
+ --gameFlairColor: #83a598;
+ --cancelColor: #cc241d;
+ --returnColor: #d3869b;
+ --checkAccent: #fe8019;
display: flex;
justify-content: center;
align-items: center;
@@ -87,46 +87,22 @@ h1 {
max-width: 100%;
}
select {
- background-color: var(--transparency);
+ background-color: transparent;
border: none;
color: var(--textColor);
border-bottom: 2px solid var(--defaultInputColor);
font-size: 16px;
margin-top: 2vh;
}
-input[type='text'], input[type='email'], input[type='password'] {
+input[type='text'], input[type='email'], input[type='password'], input[type='number'], input[type='tel'] {
border: none;
- background-color: var(--transparency);
+ background-color: transparent;
color: var(--textColor);
border-bottom: 1px solid var(--defaultInputColor);
width: 80%;
}
-input[type='number'] {
- border: none;
- background-color: var(--transparency);
- color: var(--textColor);
- border-bottom: 1px solid var(--defaultInputColor);
- width: 80%;
-}
-input[type='tel'] {
- border: none;
- background-color: var(--transparency);
- color: var(--textColor);
- border-bottom: 1px solid var(--defaultInputColor);
- width: 80%;
-}
-input[type='number']:focus {
- background-color: var(--transparency);
- outline: none;
- border-bottom: 2px solid var(--inputColorSelected);
-}
-input[type='tel']:focus {
- background-color: var(--transparency);
- outline: none;
- border-bottom: 2px solid var(--inputColorSelected);
-}
-input[type='text']:focus, input[type='email']:focus, input[type='password']:focus {
- background-color: var(--transparency);
+input[type='text']:focus, input[type='email']:focus, input[type='password']:focus, input[type='tel']:focus, input[type='number']:focus {
+ background-color: transparent;
outline: none;
border-bottom: 2px solid var(--inputColorSelected);
}
@@ -169,16 +145,17 @@ textarea {
font-size: 16px;
}
textarea {
- border: none;
- border-bottom: 1px solid var(--defaultInputColor);
- background-color: var(--transparency);
+ border: 2px solid var(--defaultInputColor);
+ border-radius: 11px;
+ background-color: transparent;
color: var(--textColor);
+ padding: 0.5rem;
resize: none;
width: 80%;
}
textarea:focus {
outline: none;
- border-bottom: 1px solid var(--inputColorSelected);
+ border-color: var(--inputColorSelected);
}
code {
font-family:'SF Mono', SFMono-Regular, ui-monospace, Menlo, courier new, monospace;
diff --git a/static/public/css/float.min.css b/static/public/css/float.min.css
index fc5696ae..9a302040 100644
--- a/static/public/css/float.min.css
+++ b/static/public/css/float.min.css
@@ -1 +1 @@
-body{--fieldsetColor:rgba(0, 0, 0, 0);--bodyColor:#121212;--textColor:#fff;--transparency:rgba(0, 0, 0, 0);--defaultInputColor:#fff;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--cancelColor:#e90202;--returnColor:#ffb600;--checkAccent:#68c3e2;display:flex;justify-content:center;align-items:center;}@media(prefers-color-scheme: light){body{--bodyColor:#fff;--textColor:#000;--defaultInputColor:#000;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2;}}body.dark-mode{--bodyColor:#121212;--textColor:#fff;--defaultInputColor:#fff;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2;}body.light-mode{--bodyColor:#fff;--textColor:#000;--defaultInputColor:#000;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2;}body.gruvbox{--bodyColor:#282828;--textColor:#ebdbb2;--defaultInputColor:#504945;--inputColorSelected:#b8bb26;--gameFlairColor:#83a598;--cancelColor:#cc241d;--returnColor:#d3869b;--checkAccent:#fe8019;}@font-face{font-family:'raleway-300';src:url('fonts/Raleway-300.ttf') format('truetype');font-display:swap;}@font-face{font-family:'raleway-500';src:url('fonts/Raleway-500.ttf') format('truetype');font-display:swap;}body,html{font-family:'raleway-300',-apple-system,BlinkMacSystemFont,sans-serif;}body{background-color:var(--bodyColor);color:var(--textColor);width:100vw;margin:0;}fieldset{border:0.15rem solid var(--fieldsetColor);border-radius:0.5rem;margin-top:0.25rem;margin-bottom:0.25rem;background-color:var(--fieldsetColor);}h1{text-align:center;font-family:'raleway-500',-apple-system,BlinkMacSystemFont,sans-serif;}.container{justify-content:center;display:flex;width:100vw;max-width:100%;}select{background-color:var(--transparency);border:none;color:var(--textColor);border-bottom:2px solid var(--defaultInputColor);font-size:16px;margin-top:2vh;}input[type='text'],input[type='email'],input[type='password']{border:none;background-color:var(--transparency);color:var(--textColor);border-bottom:1px solid var(--defaultInputColor);width:80%;}input[type='number']{border:none;background-color:var(--transparency);color:var(--textColor);border-bottom:1px solid var(--defaultInputColor);width:80%;}input[type='tel']{border:none;background-color:var(--transparency);color:var(--textColor);border-bottom:1px solid var(--defaultInputColor);width:80%;}input[type='number']:focus{background-color:var(--transparency);outline:none;border-bottom:2px solid var(--inputColorSelected);}input[type='tel']:focus{background-color:var(--transparency);outline:none;border-bottom:2px solid var(--inputColorSelected);}input[type='text']:focus,input[type='email']:focus,input[type='password']:focus{background-color:var(--transparency);outline:none;border-bottom:2px solid var(--inputColorSelected);}select:focus{outline:none;border-bottom:2px solid var(--inputColorSelected);}span{color:var(--textColor);}label{color:var(--textColor);}.gametitle{color:var(--inputColorSelected);font-family:'raleway-500',-apple-system,BlinkMacSystemFont,sans-serif;}.gameflair1{color:var(--gameFlairColor);}.checkbig{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);accent-color:var(---checkAccent) !important;}.smallerInput{width:40% !important;}.lowerSelect{position:relative;top:5px;}input,select,textarea{-webkit-border-radius:0;border-radius:0;font-size:16px;}textarea{border:none;border-bottom:1px solid var(--defaultInputColor);background-color:var(--transparency);color:var(--textColor);resize:none;width:80%;}textarea:focus{outline:none;border-bottom:1px solid var(--inputColorSelected);}code{font-family:'SF Mono',SFMono-Regular,ui-monospace,Menlo,courier new,monospace;}label{font-weight:700;}.uiButton{border-radius:0.5rem;border-style:solid;border-width:0.875rem;margin-top:1rem;}.cancelButton{color:#fff;background-color:var(--cancelColor);border-color:var(--cancelColor);}.returnButton{color:#000;background-color:var(--returnColor);border-color:var(--returnColor);}.actionButton{color:#000;background-color:var(--gameFlairColor);border-color:var(--gameFlairColor);}.actionButton:disabled{background-color:color-mix(in srgb, var(--gameFlairColor) 15%, var(--bodyColor));border-color:color-mix(in srgb, var(--gameFlairColor) 15%, var(--bodyColor));}form{width:95%;}.dummy{display:flex;flex-direction:column;align-items:center;}.w3{font-weight:300;}.bigLink{margin-bottom:5%;}.actLink{all:unset;color:var(--gameFlairColor);}.credInput{min-width:16rem;}.centerText{text-align:center;}.vaMiddle{vertical-align:middle;}
\ No newline at end of file
+body{--fieldsetColor:rgba(0,0,0,0);--defaultInputColor:#fff;--bodyColor:#282828;--textColor:#ebdbb2;--defaultInputColor:#504945;--inputColorSelected:#b8bb26;--gameFlairColor:#83a598;--cancelColor:#cc241d;--returnColor:#d3869b;--checkAccent:#fe8019;display:flex;justify-content:center;align-items:center}@media (prefers-color-scheme: light){body{--bodyColor:#fff;--textColor:#000;--defaultInputColor:#000;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2}}body.dark-mode{--bodyColor:#121212;--textColor:#fff;--defaultInputColor:#fff;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2}body.light-mode{--bodyColor:#fff;--textColor:#000;--defaultInputColor:#000;--inputColorSelected:#ffb600;--gameFlairColor:#68c3e2;--checkAccent:#68c3e2}body.gruvbox{--bodyColor:#282828;--textColor:#ebdbb2;--defaultInputColor:#504945;--inputColorSelected:#b8bb26;--gameFlairColor:#83a598;--cancelColor:#cc241d;--returnColor:#d3869b;--checkAccent:#fe8019}@font-face{font-family:'raleway-300';src:url('fonts/Raleway-300.ttf') format('truetype');font-display:swap}@font-face{font-family:'raleway-500';src:url('fonts/Raleway-500.ttf') format('truetype');font-display:swap}body,html{font-family:'raleway-300', -apple-system, BlinkMacSystemFont, sans-serif}body{background-color:var(--bodyColor);color:var(--textColor);width:100vw;margin:0}fieldset{border:0.15rem solid var(--fieldsetColor);border-radius:0.5rem;margin-top:0.25rem;margin-bottom:0.25rem;background-color:var(--fieldsetColor)}h1{text-align:center;font-family:'raleway-500', -apple-system, BlinkMacSystemFont, sans-serif}.container{justify-content:center;display:flex;width:100vw;max-width:100%}select{background-color:transparent;border:none;color:var(--textColor);border-bottom:2px solid var(--defaultInputColor);font-size:16px;margin-top:2vh}input[type='text'],input[type='email'],input[type='password'],input[type='number'],input[type='tel']{border:none;background-color:transparent;color:var(--textColor);border-bottom:1px solid var(--defaultInputColor);width:80%}input[type='text']:focus,input[type='email']:focus,input[type='password']:focus,input[type='tel']:focus,input[type='number']:focus{background-color:transparent;outline:none;border-bottom:2px solid var(--inputColorSelected)}select:focus{outline:none;border-bottom:2px solid var(--inputColorSelected)}span{color:var(--textColor)}label{color:var(--textColor)}.gametitle{color:var(--inputColorSelected);font-family:'raleway-500', -apple-system, BlinkMacSystemFont, sans-serif}.gameflair1{color:var(--gameFlairColor)}.checkbig{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);accent-color:var(---checkAccent) !important}.smallerInput{width:40% !important}.lowerSelect{position:relative;top:5px}input,select,textarea{-webkit-border-radius:0;border-radius:0;font-size:16px}textarea{border:2px solid var(--defaultInputColor);border-radius:11px;background-color:transparent;color:var(--textColor);padding:0.5rem;resize:none;width:80%}textarea:focus{outline:none;border-color:var(--inputColorSelected)}code{font-family:'SF Mono', SFMono-Regular, ui-monospace, Menlo, courier new, monospace}label{font-weight:700}.uiButton{border-radius:0.5rem;border-style:solid;border-width:0.875rem;margin-top:1rem}.cancelButton{color:#fff;background-color:var(--cancelColor);border-color:var(--cancelColor)}.returnButton{color:#000;background-color:var(--returnColor);border-color:var(--returnColor)}.actionButton{color:#000;background-color:var(--gameFlairColor);border-color:var(--gameFlairColor)}.actionButton:disabled{background-color:color-mix(in srgb, var(--gameFlairColor) 15%, var(--bodyColor));border-color:color-mix(in srgb, var(--gameFlairColor) 15%, var(--bodyColor))}form{width:95%}.dummy{display:flex;flex-direction:column;align-items:center}.w3{font-weight:300}.bigLink{margin-bottom:5%}.actLink{all:unset;color:var(--gameFlairColor)}.credInput{min-width:16rem}.centerText{text-align:center}.vaMiddle{vertical-align:middle}
\ No newline at end of file
diff --git a/static/public/css/main_form.css b/static/public/css/main_form.css
new file mode 100644
index 00000000..0ae87815
--- /dev/null
+++ b/static/public/css/main_form.css
@@ -0,0 +1,71 @@
+.VStack {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+}
+.HStack {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-around;
+}
+.continue_button, .time_button, .cycle_button {
+ background-color: rgba(0, 0, 0, 0.3);
+ border: none;
+ border-radius: 0.25rem;
+ padding: 0 0.75rem 0 0.75rem;
+}
+.continue_button:active, .time_button:active, .cycle_button:active {
+ background-color: rgba(0, 0, 0, 0.45);
+}
+.continue_button, .time_button {
+ color: #0a84ff;
+ min-width: 20vw;
+ max-width: 25vw;
+}
+.continue_button {
+ align-self: center;
+ min-width: 15vw;
+ max-width: 70vw;
+}
+.cycle_button {
+ align-self: center;
+ color: #32d74b;
+ min-width: 50vw;
+}
+.counter {
+ color: #fff;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+}
+.ios-switch i {
+ position: relative;
+ display: inline-block;
+ margin-right: .5rem;
+ width: 46px;
+ height: 26px;
+ background-color: #000;
+ border-radius: 23px;
+ vertical-align: text-bottom;
+}
+.ios-switch i::before {
+ content: "";
+ position: absolute;
+ left: 0;
+ width: 42px;
+ height: 22px;
+ background-color: #000;
+ border-radius: 11px;
+}
+.ios-switch i::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ width: 22px;
+ height: 22px;
+ background-color: #fff;
+ border-radius: 11px;
+ transform: translate3d(2px, 2px, 0);
+}
+.ios-switch input { display: none; }
+.ios-switch input:checked + i { background-color: #32d74b; }
+.ios-switch input:checked + i::before { transform: translate3d(18px, 2px, 0) scale3d(0, 0, 0); }
+.ios-switch input:checked + i::after { transform: translate3d(22px, 2px, 0); }
\ No newline at end of file
diff --git a/static/public/css/main_form.min.css b/static/public/css/main_form.min.css
new file mode 100644
index 00000000..c224d66a
--- /dev/null
+++ b/static/public/css/main_form.min.css
@@ -0,0 +1 @@
+.VStack{display:flex;flex-direction:column;justify-content:space-around}.HStack{display:flex;flex-direction:row;justify-content:space-around}.continue_button,.cycle_button,.time_button{background-color:rgba(0, 0, 0, 0.3);border:none;border-radius:0.25rem;padding:0 0.75rem}.continue_button:active,.cycle_button:active,.time_button:active{background-color:rgba(0, 0, 0, 0.45)}.continue_button,.time_button{color:#0a84ff;min-width:20vw;max-width:25vw}.continue_button{align-self:center;min-width:15vw;max-width:70vw}.cycle_button{align-self:center;color:#32d74b;min-width:50vw}.counter{color:#fff;font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif}.ios-switch i{position:relative;display:inline-block;margin-right:0.5rem;width:46px;height:26px;background-color:#000;border-radius:23px;vertical-align:text-bottom}.ios-switch i::before{content:"";position:absolute;left:0;width:42px;height:22px;background-color:#000;border-radius:11px}.ios-switch i::after{content:"";position:absolute;left:0;width:22px;height:22px;background-color:#fff;border-radius:11px;transform:translate3d(2px, 2px, 0)}.ios-switch input{display:none}.ios-switch input:checked + i{background-color:#32d74b}.ios-switch input:checked + i::before{transform:translate3d(18px, 2px, 0) scale3d(0, 0, 0)}.ios-switch input:checked + i::after{transform:translate3d(22px, 2px, 0)}
\ No newline at end of file
diff --git a/static/public/js/form/form.js b/static/public/js/form/form.js
index fced84fc..f7cce572 100644
--- a/static/public/js/form/form.js
+++ b/static/public/js/form/form.js
@@ -10,16 +10,16 @@ function themeHandle() {
document.body.classList.replace("dark-mode", "light-mode");
document.getElementById("themeMeta").content = "#ffffff";
break;
- case "gruvbox":
- document.body.classList.replace("dark-mode", "gruvbox");
- document.getElementById("themeMeta").content = "#282828";
- break;
case "dark":
- case undefined:
- default:
document.body.classList.replace("light-mode", "dark-mode");
document.getElementById("themeMeta").content = "#121212";
break;
+ case "gruvbox":
+ case undefined:
+ default:
+ document.body.classList.replace("dark-mode", "gruvbox");
+ document.getElementById("themeMeta").content = "#282828";
+ break;
}
}
const waitMs = (ms) => new Promise((res) => setTimeout(res, ms));
diff --git a/static/public/js/form/form.min.js b/static/public/js/form/form.min.js
index f167e3e3..7feb73b5 100644
--- a/static/public/js/form/form.min.js
+++ b/static/public/js/form/form.min.js
@@ -1 +1 @@
-"use strict";window.getThemeCookie=()=>{var e=RegExp("4c454a5b1bedf6a1=[^;]+").exec(document.cookie);return decodeURIComponent(e?e.toString().replace(/^[^=]+./,""):"")},window.themeHandle=()=>{let e=getThemeCookie();switch(e){case"light":document.body.classList.replace("dark-mode","light-mode"),document.getElementById("themeMeta").content="#ffffff";break;case"gruvbox":document.body.classList.replace("dark-mode","gruvbox"),document.getElementById("themeMeta").content="#282828";break;default:document.body.classList.replace("light-mode","dark-mode"),document.getElementById("themeMeta").content="#121212"}},window.waitMs=e=>new Promise(t=>setTimeout(t,e));
\ No newline at end of file
+"use strict";function getThemeCookie(){var e=RegExp("4c454a5b1bedf6a1=[^;]+").exec(document.cookie);return decodeURIComponent(e?e.toString().replace(/^[^=]+./,""):"")}function themeHandle(){let e=getThemeCookie();switch(e){case"light":document.body.classList.replace("dark-mode","light-mode"),document.getElementById("themeMeta").content="#ffffff";break;case"dark":document.body.classList.replace("light-mode","dark-mode"),document.getElementById("themeMeta").content="#121212";break;default:document.body.classList.replace("dark-mode","gruvbox"),document.getElementById("themeMeta").content="#282828"}}const waitMs=e=>new Promise(t=>setTimeout(t,e));
\ No newline at end of file
diff --git a/static/public/js/form/form.ts b/static/public/js/form/form.ts
index ac61848f..f9381a3f 100644
--- a/static/public/js/form/form.ts
+++ b/static/public/js/form/form.ts
@@ -12,14 +12,14 @@ function themeHandle() {
document.body.classList.replace("dark-mode", "light-mode");
(document.getElementById("themeMeta") as HTMLMetaElement).content = "#ffffff";
break;
- case "gruvbox":
- document.body.classList.replace("dark-mode", "gruvbox");
- (document.getElementById("themeMeta") as HTMLMetaElement).content = "#282828";
- break;
- case "dark": case undefined: default:
+ case "dark":
document.body.classList.replace("light-mode", "dark-mode");
(document.getElementById("themeMeta") as HTMLMetaElement).content = "#121212";
break;
+ case "gruvbox": case undefined: default:
+ document.body.classList.replace("dark-mode", "gruvbox");
+ (document.getElementById("themeMeta") as HTMLMetaElement).content = "#282828";
+ break;
}
}
diff --git a/static/public/js/homepage/homepage.js b/static/public/js/homepage/homepage.js
deleted file mode 100644
index 65771da3..00000000
--- a/static/public/js/homepage/homepage.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const getCookie = (name) => {
- var cookieString = RegExp(name + "=[^;]+").exec(document.cookie);
- return decodeURIComponent(!!cookieString ? cookieString.toString().replace(/^[^=]+./, "") : "");
-};
-if (getCookie("lead") === "true") {
- var url = document.getElementById("additionalUrl");
- url.style.display = "unset";
-}
-else if (Number(getCookie("childTeamLead")) !== 0) {
- var url = document.getElementById("additionalUrl2");
- url.style.display = "unset";
-}
diff --git a/static/public/js/homepage/homepage.min.js b/static/public/js/homepage/homepage.min.js
deleted file mode 100644
index 4f86d384..00000000
--- a/static/public/js/homepage/homepage.min.js
+++ /dev/null
@@ -1 +0,0 @@
-const getCookie=e=>{var t=RegExp(e+"=[^;]+").exec(document.cookie);return decodeURIComponent(t?t.toString().replace(/^[^=]+./,""):"")};if("true"===getCookie("lead")){var e=document.getElementById("additionalUrl");e.style.display="unset"}else if(0!==Number(getCookie("childTeamLead"))){var e=document.getElementById("additionalUrl2");e.style.display="unset"}
\ No newline at end of file
diff --git a/static/public/js/homepage/homepage.ts b/static/public/js/homepage/homepage.ts
deleted file mode 100644
index 280b4e09..00000000
--- a/static/public/js/homepage/homepage.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-const getCookie = (name: string): string => {
- var cookieString = RegExp(name + "=[^;]+").exec(document.cookie);
- return decodeURIComponent(!!cookieString ? cookieString.toString().replace(/^[^=]+./, "") : "");
-}
-
-if (getCookie("lead") === "true") {
- var url: HTMLElement = (document.getElementById("additionalUrl") as HTMLElement);
- url.style.display = "unset";
-} else if (Number(getCookie("childTeamLead")) !== 0) {
- var url: HTMLElement = (document.getElementById("additionalUrl2") as HTMLElement);
- url.style.display = "unset";
-}
\ No newline at end of file
diff --git a/static/public/js/main/main.js b/static/public/js/main/main.js
new file mode 100644
index 00000000..6a9ce170
--- /dev/null
+++ b/static/public/js/main/main.js
@@ -0,0 +1,77 @@
+import { _get } from "../_modules/get/get.min.js";
+// get events
+const API_META = "/api/v1/data";
+const API_MATCHES = ["/api/v1/events/matches/", /* season */ "/", /* event */ "/qual/true"];
+const API_WHOAMI = "/api/v1/whoami";
+var match_schedule;
+function init() {
+ load_events();
+ try {
+ load_matches(document.getElementById("event_code").value);
+ match_num_entry(document.getElementById("match_num_input").value);
+ }
+ catch { }
+ document.getElementById("event_code").addEventListener("change", () => {
+ load_matches(document.getElementById("event_code").value);
+ });
+ document.getElementById("match_num_input").addEventListener("change", () => {
+ match_num_entry(document.getElementById("match_num_input").value);
+ });
+ let adv_buttons = document.getElementsByClassName("continue_button");
+ for (var i = 0; i < 3; i++) {
+ adv_buttons[i].addEventListener("click", () => {
+ advance_screen(i + 1);
+ });
+ }
+}
+function load_events() {
+ _get(API_META, null).then((result) => {
+ result.events.forEach(event_code => {
+ document.getElementById("event_code").insertAdjacentHTML("beforeend", `
${event_code} `);
+ });
+ }).catch((error) => {
+ alert(`failed to load valid event codes. ${error}`);
+ });
+}
+function load_matches(event) {
+ _get(API_MATCHES[0] + "2023" + API_MATCHES[1] + event + API_MATCHES[2], null).then((result) => {
+ if (result.Schedule.length != 0) {
+ match_schedule = result.Schedule;
+ }
+ else {
+ alert("match schedule is not yet posted");
+ match_schedule = [];
+ }
+ }).catch((error) => {
+ alert(`failed to load matches. ${error}`);
+ match_schedule = [];
+ });
+}
+function set_option(element, value) {
+ element.innerText = value;
+ element.value = value;
+}
+function match_num_entry(entry) {
+ let entry_num = Number(entry);
+ if (entry_num > match_schedule.length || entry_num < 1) {
+ document.getElementById("bad_match_num").innerText = `invalid. must be between 1 and ${match_schedule.length}`;
+ document.getElementById("bad_match_num").style.display = "unset";
+ }
+ else {
+ document.getElementById("bad_match_num").style.display = "none";
+ let select_elements = document.getElementsByClassName("teamNumOption");
+ set_option(select_elements[3], match_schedule[entry_num - 1].teams[0].teamNumber);
+ set_option(select_elements[4], match_schedule[entry_num - 1].teams[1].teamNumber);
+ set_option(select_elements[5], match_schedule[entry_num - 1].teams[2].teamNumber);
+ set_option(select_elements[0], match_schedule[entry_num - 1].teams[3].teamNumber);
+ set_option(select_elements[1], match_schedule[entry_num - 1].teams[4].teamNumber);
+ set_option(select_elements[2], match_schedule[entry_num - 1].teams[5].teamNumber);
+ }
+}
+function advance_screen(screen) {
+ let panes = document.getElementsByClassName("main_pane");
+ for (var i = 0; i < 4; i++) {
+ panes[i].style.display = screen === i ? "unset" : "none";
+ }
+}
+document.body.onload = init;
diff --git a/static/public/js/main/main.ts b/static/public/js/main/main.ts
new file mode 100644
index 00000000..6f70e6f6
--- /dev/null
+++ b/static/public/js/main/main.ts
@@ -0,0 +1,85 @@
+import { _get } from "../_modules/get/get.min.js";
+
+// get events
+const API_META = "/api/v1/data";
+const API_MATCHES = ["/api/v1/events/matches/", /* season */ "/", /* event */ "/qual/true"];
+const API_WHOAMI = "/api/v1/whoami";
+
+var match_schedule;
+
+function init() {
+ load_events();
+ try {
+ load_matches((document.getElementById("event_code") as HTMLSelectElement).value);
+ match_num_entry((document.getElementById("match_num_input") as HTMLSelectElement).value);
+ } catch {}
+
+ (document.getElementById("event_code") as HTMLSelectElement).addEventListener("change", () => {
+ load_matches((document.getElementById("event_code") as HTMLSelectElement).value);
+ });
+ (document.getElementById("match_num_input") as HTMLSelectElement).addEventListener("change", () => {
+ match_num_entry((document.getElementById("match_num_input") as HTMLSelectElement).value)
+ });
+
+ let adv_buttons = document.getElementsByClassName("continue_button") as HTMLCollectionOf
;
+ for (var i = 0; i < 3; i++) {
+ adv_buttons[i].addEventListener("click", () => {
+ advance_screen(i + 1);
+ });
+ }
+}
+
+function load_events() {
+ _get(API_META, null).then((result) => {
+ result.events.forEach(event_code => {
+ (document.getElementById("event_code") as HTMLSelectElement).insertAdjacentHTML("beforeend", `${event_code} `);
+ });
+ }).catch((error) => {
+ alert(`failed to load valid event codes. ${error}`);
+ });
+}
+
+function load_matches(event: String) {
+ _get(API_MATCHES[0] + "2023" + API_MATCHES[1] + event + API_MATCHES[2], null).then((result) => {
+ if (result.Schedule.length != 0) {
+ match_schedule = result.Schedule;
+ } else {
+ alert("match schedule is not yet posted")
+ match_schedule = [];
+ }
+ }).catch((error) => {
+ alert(`failed to load matches. ${error}`)
+ match_schedule = [];
+ })
+}
+
+function set_option(element: HTMLOptionElement, value: string) {
+ element.innerText = value;
+ element.value = value;
+}
+
+function match_num_entry(entry: String) {
+ let entry_num = Number(entry);
+ if (entry_num > match_schedule.length || entry_num < 1) {
+ (document.getElementById("bad_match_num") as HTMLSpanElement).innerText = `invalid. must be between 1 and ${match_schedule.length}`;
+ (document.getElementById("bad_match_num") as HTMLSpanElement).style.display = "unset";
+ } else {
+ (document.getElementById("bad_match_num") as HTMLSpanElement).style.display = "none";
+ let select_elements: HTMLCollectionOf = document.getElementsByClassName("teamNumOption") as HTMLCollectionOf;
+ set_option(select_elements[3], match_schedule[entry_num - 1].teams[0].teamNumber);
+ set_option(select_elements[4], match_schedule[entry_num - 1].teams[1].teamNumber);
+ set_option(select_elements[5], match_schedule[entry_num - 1].teams[2].teamNumber);
+ set_option(select_elements[0], match_schedule[entry_num - 1].teams[3].teamNumber);
+ set_option(select_elements[1], match_schedule[entry_num - 1].teams[4].teamNumber);
+ set_option(select_elements[2], match_schedule[entry_num - 1].teams[5].teamNumber);
+ }
+}
+
+function advance_screen(screen: Number) {
+ let panes = document.getElementsByClassName("main_pane") as HTMLCollectionOf;
+ for (var i = 0; i < 4; i++) {
+ panes[i].style.display = screen === i ? "unset" : "none";
+ }
+}
+
+document.body.onload = init
\ No newline at end of file
diff --git a/static/scouts.html b/static/scouts.html
index 5e026a50..2b411cfb 100644
--- a/static/scouts.html
+++ b/static/scouts.html
@@ -5,7 +5,7 @@
Scouts - bearTracks
-
+
diff --git a/static/settings.html b/static/settings.html
index 4ce20f19..1f26120c 100644
--- a/static/settings.html
+++ b/static/settings.html
@@ -5,7 +5,7 @@
Settings - bearTracks
-
+
diff --git a/static/spin.html b/static/spin.html
index ab56eb54..1c2f80ac 100644
--- a/static/spin.html
+++ b/static/spin.html
@@ -5,13 +5,13 @@
Spinner - bearTracks
-
+
-
+
diff --git a/static/tos.html b/static/tos.html
new file mode 100644
index 00000000..1cd5ad06
--- /dev/null
+++ b/static/tos.html
@@ -0,0 +1 @@
+
Terms of Service I. Definitions "Developer" refers to the developer of the Services, as well as the host of the Services.
"Services" include applications, platforms, and related functionalities maintained by the Developer.
"You" refers to the person that has accepted to be bound by these Terms.
"User Content" refers content, data, or other information submitted by the User within the Services.
"User Data" refers to identifiable data about a user.
"Nuts" refer to the points used by the Service.
II. REQUIREMENTS FOR USE OF THE SERVICE a. Age Users must be at least 13 years old or adhere to regional age requisites to register an Account.
b. Changes to these Terms The Developer reserves the right to change these Terms, with or without notice, for any reason.
c. Termination of Services The Developer reserves the right to terminate Services for any reason, without prior notice or liability.
III. USE OF THE SERVICE a. User Data In order to register, certian User Data provided by the user will be retained by the Developer. Your User Data is never shared with 3rd parties.
b. User Data Deletion If You would like your User Data removed, You must email the Developer and allow up to 4 weeks for processing. User Content will not be removed.
c. User Content By submitting User Content, You transfer all rights over the User Content to the Developer, and agree that submitted User Content was original work created by You.
d. User Content Intent User Content must be submitted with the intent to contribute valuable data to the Developer's database. Submitting User Content for personal gain may result in Service termination.
e. Nuts Nuts have no monetary value, and cannot be purchased, sold, or transferred. Nuts may be removed at the Developer's discretion.
IV. LIMITATION OF LIABILITY In no event will the Developer be liable to anyone for any indirect, punitive, special, exemplary, incidental, consequential damages, in any way connected with these terms or the Service.
\ No newline at end of file