From f6c4c3e5086a64fc5b4478b5509220a86df372b6 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Thu, 4 Dec 2025 22:24:12 -0500 Subject: [PATCH 01/37] Added documentation page --- ui/src/components/Navigation/Navbar.vue | 2 +- ui/src/components/application/ApplicationForm.vue | 2 +- ui/src/pages/Documentation.vue | 11 +++++++++++ ui/src/router/index.js | 2 ++ 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 ui/src/pages/Documentation.vue diff --git a/ui/src/components/Navigation/Navbar.vue b/ui/src/components/Navigation/Navbar.vue index 72c5bd4..de62765 100644 --- a/ui/src/components/Navigation/Navbar.vue +++ b/ui/src/components/Navigation/Navbar.vue @@ -61,7 +61,7 @@ function blurAfter() { - Documents + Documents diff --git a/ui/src/components/application/ApplicationForm.vue b/ui/src/components/application/ApplicationForm.vue index 6ab7da9..02b84b4 100644 --- a/ui/src/components/application/ApplicationForm.vue +++ b/ui/src/components/application/ApplicationForm.vue @@ -82,7 +82,7 @@ onMounted(() => { - + diff --git a/ui/src/pages/Documentation.vue b/ui/src/pages/Documentation.vue new file mode 100644 index 0000000..51832d6 --- /dev/null +++ b/ui/src/pages/Documentation.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 29cc862..4e0a7db 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -18,6 +18,8 @@ const router = createRouter({ { path: '/calendar', component: () => import('@/pages/Calendar.vue'), meta: { requiresAuth: true, memberOnly: true }, }, { path: '/calendar/event/:id', component: () => import('@/pages/Calendar.vue'), meta: { requiresAuth: true, memberOnly: true }, }, + + { path: '/documents', component: () => import('@/pages/Documentation.vue'), meta: { requiresAuth: true, memberOnly: true }, }, { path: '/trainingReport', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } }, { path: '/trainingReport/new', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } }, From 6a55846f19bc4097f1fcb2e90408bb157aea2aef Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Mon, 8 Dec 2025 15:21:14 -0500 Subject: [PATCH 02/37] improved error message readability --- .../application/ApplicationForm.vue | 76 +++++++++++++------ ui/src/pages/Application.vue | 2 +- 2 files changed, 53 insertions(+), 25 deletions(-) diff --git a/ui/src/components/application/ApplicationForm.vue b/ui/src/components/application/ApplicationForm.vue index 6ab7da9..68fb35d 100644 --- a/ui/src/components/application/ApplicationForm.vue +++ b/ui/src/components/application/ApplicationForm.vue @@ -20,18 +20,18 @@ import { ApplicationData } from '@/api/application'; const formSchema = toTypedSchema(z.object({ dob: z.string().refine(v => v, { message: "A date of birth is required." }), - name: z.string(), + name: z.string().nonempty(), playtime: z.coerce.number({ invalid_type_error: "Must be a number", }).min(0, "Cannot be less than 0"), - hobbies: z.string(), + hobbies: z.string().nonempty(), military: z.boolean(), - communities: z.string(), - joinReason: z.string(), - milsimAttraction: z.string(), - referral: z.string(), - steamProfile: z.string(), - timezone: z.string(), + communities: z.string().nonempty(), + joinReason: z.string().nonempty(), + milsimAttraction: z.string().nonempty(), + referral: z.string().nonempty(), + steamProfile: z.string().nonempty(), + timezone: z.string().nonempty(), canAttendSaturday: z.boolean(), - interests: z.string(), + interests: z.string().nonempty(), aknowledgeRules: z.literal(true, { errorMap: () => ({ message: "Required" }) }), @@ -82,7 +82,9 @@ onMounted(() => { - +
+ +
@@ -94,7 +96,9 @@ onMounted(() => { - +
+ +
@@ -105,7 +109,9 @@ onMounted(() => { - +
+ +
@@ -117,7 +123,9 @@ onMounted(() => { +
+ +
+ + + + +
+ +
+ \ No newline at end of file From dd472a5283a3739a7263597d077a192041e912d5 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Thu, 11 Dec 2025 11:00:02 -0500 Subject: [PATCH 15/37] updated datepicker dependency --- ui/src/components/loa/loaForm.vue | 19 +- ui/src/components/ui/calendar/Calendar.vue | 164 ++++++++++++++++-- .../components/ui/calendar/CalendarCell.vue | 2 +- .../ui/calendar/CalendarCellTrigger.vue | 2 +- .../components/ui/calendar/CalendarGrid.vue | 2 +- .../ui/calendar/CalendarGridBody.vue | 2 +- .../ui/calendar/CalendarGridHead.vue | 2 +- .../ui/calendar/CalendarGridRow.vue | 2 +- .../ui/calendar/CalendarHeadCell.vue | 4 +- .../components/ui/calendar/CalendarHeader.vue | 7 +- .../ui/calendar/CalendarHeading.vue | 2 +- .../ui/calendar/CalendarNextButton.vue | 3 +- .../ui/calendar/CalendarPrevButton.vue | 3 +- .../ui/native-select/NativeSelect.vue | 51 ++++++ .../ui/native-select/NativeSelectOptGroup.vue | 19 ++ .../ui/native-select/NativeSelectOption.vue | 19 ++ ui/src/components/ui/native-select/index.js | 3 + 17 files changed, 275 insertions(+), 31 deletions(-) create mode 100644 ui/src/components/ui/native-select/NativeSelect.vue create mode 100644 ui/src/components/ui/native-select/NativeSelectOptGroup.vue create mode 100644 ui/src/components/ui/native-select/NativeSelectOption.vue create mode 100644 ui/src/components/ui/native-select/index.js diff --git a/ui/src/components/loa/loaForm.vue b/ui/src/components/loa/loaForm.vue index ec8cfd7..f49407d 100644 --- a/ui/src/components/loa/loaForm.vue +++ b/ui/src/components/loa/loaForm.vue @@ -10,8 +10,9 @@ import { fromDate, getLocalTimeZone, parseDate, + today, } from "@internationalized/date" -import type { DateRange } from "reka-ui" +import type { DateRange, DateValue } from "reka-ui" import type { Ref } from "vue" import Popover from "@/components/ui/popover/Popover.vue"; import PopoverTrigger from "@/components/ui/popover/PopoverTrigger.vue"; @@ -84,6 +85,11 @@ onMounted(async () => { console.log(currentMember.value); resetForm({ values: { member_id: currentMember.value?.member_id } }); }); +import type { LayoutTypes } from '@/components/ui/calendar' + +const defaultPlaceholder = today(getLocalTimeZone()) +const date = ref(today(getLocalTimeZone())) as Ref +const layout = ref('month-and-year') @@ -175,7 +181,7 @@ onMounted(async () => { @@ -204,7 +210,8 @@ onMounted(async () => { + :default-placeholder="defaultPlaceholder" layout="month-and-year"> +
@@ -233,5 +240,11 @@ onMounted(async () => {
+ +
+ +
+ \ No newline at end of file diff --git a/ui/src/components/ui/calendar/Calendar.vue b/ui/src/components/ui/calendar/Calendar.vue index e3f69e2..3d421ec 100644 --- a/ui/src/components/ui/calendar/Calendar.vue +++ b/ui/src/components/ui/calendar/Calendar.vue @@ -1,7 +1,14 @@ \ No newline at end of file From 8cdbb99d6f81287486fdaeb4b2559954e186746e Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Thu, 11 Dec 2025 11:25:09 -0500 Subject: [PATCH 17/37] implemented constraints on datepickers --- ui/src/components/loa/loaForm.vue | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/ui/src/components/loa/loaForm.vue b/ui/src/components/loa/loaForm.vue index 8186f0d..cc7f050 100644 --- a/ui/src/components/loa/loaForm.vue +++ b/ui/src/components/loa/loaForm.vue @@ -1,7 +1,7 @@