PR with too many features #58

Merged
BobdaFett merged 56 commits from feat/admin-page into main 2026-02-10 14:31:49 +00:00
3 changed files with 103 additions and 93 deletions
Showing only changes of commit fdc5374f17 - Show all commits

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ use leptos::prelude::*;
#[component] #[component]
pub fn Loading() -> impl IntoView { pub fn Loading() -> impl IntoView {
view! { view! {
<div class="size-20 mx-auto"> <div class="size-20 mx-auto mt-20">
<img src="/loading.gif" /> <img src="/loading.gif" />
</div> </div>
} }
+52 -47
View File
@@ -1,5 +1,5 @@
use leptos::prelude::*; use leptos::prelude::*;
use crate::components::{OutlinedTextField, TextFieldType, ValidatedForm}; use crate::components::{Loading, OutlinedTextField, TextFieldType, ValidatedForm};
use crate::pages::student::form_setup::use_student_form; use crate::pages::student::form_setup::use_student_form;
#[component] #[component]
@@ -7,51 +7,56 @@ pub fn StudentAcademicsPage() -> impl IntoView {
let controller = use_student_form("academics"); let controller = use_student_form("academics");
view! { view! {
<div class="flex flex-1" /> <Show
<div class="flex flex-col flex-2 mt-6"> when=move || controller.data_resource.get().is_some()
<ValidatedForm title="Academic Information" on_submit=controller.submit_action> fallback=Loading
<OutlinedTextField >
label="Unweighted GPA:" <div class="flex flex-1" />
data_map=controller.data_map <div class="flex flex-col flex-2 mt-6">
data_member="unweighted_gpa" <ValidatedForm title="Academic Information" on_submit=controller.submit_action>
placeholder="4.0" <OutlinedTextField
required=true label="Unweighted GPA:"
input_type=TextFieldType::Number data_map=controller.data_map
/> data_member="unweighted_gpa"
<OutlinedTextField placeholder="4.0"
label="Weighted GPA:" required=true
data_map=controller.data_map input_type=TextFieldType::Number
data_member="weighted_gpa" />
placeholder="4.5" <OutlinedTextField
required=true label="Weighted GPA:"
input_type=TextFieldType::Number data_map=controller.data_map
/> data_member="weighted_gpa"
<OutlinedTextField placeholder="4.5"
label="Highest SAT Score:" required=true
data_map=controller.data_map input_type=TextFieldType::Number
data_member="sat_score" />
placeholder="1600" <OutlinedTextField
required=false label="Highest SAT Score:"
input_type=TextFieldType::Number data_map=controller.data_map
/> data_member="sat_score"
<OutlinedTextField placeholder="1600"
label="Highest ACT Score:" required=false
data_map=controller.data_map input_type=TextFieldType::Number
data_member="act_score" />
placeholder="36" <OutlinedTextField
required=false label="Highest ACT Score:"
input_type=TextFieldType::Number data_map=controller.data_map
/> data_member="act_score"
<OutlinedTextField placeholder="36"
label="Academic Honors:" required=false
data_map=controller.data_map input_type=TextFieldType::Number
data_member="academic_honors" />
placeholder="TBD" <OutlinedTextField
required=false label="Academic Honors:"
input_type=TextFieldType::Text data_map=controller.data_map
/> data_member="academic_honors"
</ValidatedForm> placeholder="TBD"
</div> required=false
<div class="flex flex-1" /> input_type=TextFieldType::Text
/>
</ValidatedForm>
</div>
<div class="flex flex-1" />
</Show>
} }
} }
+50 -45
View File
@@ -1,5 +1,5 @@
use leptos::prelude::*; use leptos::prelude::*;
use crate::components::{MultiEntry, ValidatedForm}; use crate::components::{Loading, MultiEntry, ValidatedForm};
use crate::input; use crate::input;
use crate::pages::student::form_setup::use_student_form; use crate::pages::student::form_setup::use_student_form;
@@ -8,50 +8,55 @@ pub fn StudentAthleticsPage() -> impl IntoView {
let controller = use_student_form("athletics"); let controller = use_student_form("athletics");
view! { view! {
<div class="flex flex-1" /> <Show
<div class="flex flex-col flex-2 mt-6"> when=move || controller.data_resource.get().is_some()
<ValidatedForm title="Athletics Information" on_submit=controller.submit_action> fallback=Loading
<MultiEntry >
label="Athletics Activities:" <div class="flex flex-1" />
description="Leave blank if not applicable." <div class="flex flex-col flex-2 mt-6">
data_map=controller.data_map <ValidatedForm title="Athletics Information" on_submit=controller.submit_action>
data_member="athletic_participation" <MultiEntry
schema=vec![ label="Athletics Activities:"
input!( description="Leave blank if not applicable."
Select, "sport_name", "Sport Name:", true, [ data_map=controller.data_map
"Football", data_member="athletic_participation"
"Soccer", schema=vec![
"Cheerleading", input!(
"Field Hockey", Select, "sport_name", "Sport Name:", true, [
"Swimming", "Football",
"Golf", "Soccer",
"Basketball", "Cheerleading",
"Track", "Field Hockey",
"Gymnastics", "Swimming",
"Ice Hockey", "Golf",
"Ski", "Basketball",
"Wrestling", "Track",
"Lacrosse", "Gymnastics",
"Softball", "Ice Hockey",
"Tennis", "Ski",
"Baseball" "Wrestling",
"Lacrosse",
"Softball",
"Tennis",
"Baseball"
]
),
input!(
Checkbox, "grades", "Grades Participated:", true, [
"9th",
"10th",
"11th",
"12th"
]
),
input!(
Text, "achievements", "Special Achievements:", false, "Example 1, Example 2, etc..."
),
] ]
), />
input!( </ValidatedForm>
Checkbox, "grades", "Grades Participated:", true, [ </div>
"9th", <div class="flex flex-1" />
"10th", </Show>
"11th",
"12th"
]
),
input!(
Text, "achievements", "Special Achievements:", false, "Example 1, Example 2, etc..."
),
]
/>
</ValidatedForm>
</div>
<div class="flex flex-1" />
} }
} }