diff --git a/app/components/CookieConsentBanner.vue b/app/components/CookieConsentBanner.vue index b5eba17..3f3874f 100644 --- a/app/components/CookieConsentBanner.vue +++ b/app/components/CookieConsentBanner.vue @@ -110,7 +110,7 @@ watch( } ); -const restrictedRoute = computed(() => route.path.startsWith('/learn') || route.path.startsWith('/pm')); +const restrictedRoute = computed(() => route.path.startsWith('/classroom') || route.path.startsWith('/pm')); const showManageButton = computed(() => hasConsent.value && !isDialogVisible.value && !restrictedRoute.value); diff --git a/app/pages/learn-introduction.vue b/app/pages/classroom-introduction.vue similarity index 95% rename from app/pages/learn-introduction.vue rename to app/pages/classroom-introduction.vue index 021f578..4ca3bf3 100644 --- a/app/pages/learn-introduction.vue +++ b/app/pages/classroom-introduction.vue @@ -9,12 +9,12 @@
-

Learn orientation

+

Classroom orientation

Guided preflight briefing

- - Enter Learn hub + + Enter Classroom hub @@ -30,12 +30,12 @@ class="inline-flex items-center gap-2 rounded-full border border-cyan-300/40 bg-cyan-400/10 px-4 py-1 text-xs font-semibold uppercase tracking-[0.3em] text-cyan-200/80" >Orientation

- Get comfortable with Learn before you call live AI ATC + Get comfortable with the Classroom before you call live AI ATC

This is your training playground. Live AI controllers for the simulator are still in closed testing, so we - start with Learn to build phraseology, timing and confidence. I will guide you through the flow before you - dive into the hub. + start with the Classroom to build phraseology, timing and confidence. I will guide you through the flow + before you dive into the hub.

@@ -45,8 +45,8 @@

Heads-up

- Learn mirrors the calls you will make later, but today it runs as a standalone trainer. Treat it like a - warm-up before the live network opens. + The Classroom mirrors the calls you will make later, but today it runs as a standalone trainer. Treat it + like a warm-up before the live network opens.

@@ -66,7 +66,7 @@
Pilots reviewing the Learn mission board @@ -75,12 +75,12 @@
Avery, the Learn instructor

Avery

-

Your Learn instructor

+

Your Classroom instructor

@@ -171,8 +171,8 @@ Start guided tour - - Skip to Learn + + Skip to Classroom

@@ -386,8 +386,8 @@ Next stop - - Enter Learn hub + + Enter Classroom hub
@@ -424,7 +424,7 @@ interface StageStop { voiceLine: string } -useHead({ title: 'Learn orientation • OpenSquawk' }) +useHead({ title: 'Classroom orientation • OpenSquawk' }) const stages: StageStop[] = [ { @@ -437,7 +437,7 @@ const stages: StageStop[] = [ ], tip: 'Hover or tap a tile for a quick brief before opening it.', image: '/img/learn/modules/img11.jpeg', - imageAlt: 'Learn mission hub interface with highlighted modules', + imageAlt: 'Classroom mission hub interface with highlighted modules', voiceLine: 'First stop is the mission hub. This is our briefing room before any AI frequency opens. Pick the module you want and you are two clicks from a lesson.' }, @@ -479,7 +479,7 @@ const stages: StageStop[] = [ ], tip: 'Drop the radio level for extra static when you want to stress-test your ears.', image: '/img/learn/modules/img10.jpeg', - imageAlt: 'Audio settings and challenge toggles inside Learn', + imageAlt: 'Audio settings and challenge toggles inside the Classroom', voiceLine: 'Your settings live here. Slide the radio level for more or less static and flip on Audio Challenge when you want the full listen-and-respond workout.' }, @@ -491,7 +491,7 @@ const stages: StageStop[] = [ 'Every lesson ends with accuracy notes, timing feedback and retry suggestions.', 'Use the summary to decide whether to repeat, advance or swap to another module.' ], - tip: 'Bookmark /learn so a quick refresher is always a tab away.', + tip: 'Bookmark /classroom so a quick refresher is always a tab away.', image: '/img/learn/modules/img7.jpeg', imageAlt: 'Pilot reviewing a scorecard summary', voiceLine: @@ -725,9 +725,9 @@ async function speak(text: string, stageId?: string): Promise { text: trimmed, level: radioLevel.value, speed: 1, - moduleId: 'learn-intro', + moduleId: 'classroom-intro', lessonId: stageId || null, - tag: 'learn-orientation' + tag: 'classroom-orientation' } const response: any = await api.post('/api/atc/say', payload) @@ -806,7 +806,7 @@ async function speak(text: string, stageId?: string): Promise { async function handleRadioCheck() { if (speechLoading.value) return - const success = await speak('Learner, this is Avery. If you can hear me loud and clear, give me a thumbs up and we will taxi to the first stop.', 'radio-check') + const success = await speak('Classmate, this is Avery. If you can hear me loud and clear, give me a thumbs up and we will taxi to the first stop.', 'radio-check') if (success) { hasCompletedRadioCheck.value = true } diff --git a/app/pages/learn.vue b/app/pages/classroom.vue similarity index 99% rename from app/pages/learn.vue rename to app/pages/classroom.vue index 63d6edf..de046ca 100644 --- a/app/pages/learn.vue +++ b/app/pages/classroom.vue @@ -1491,7 +1491,7 @@ async function syncRouteFromState(): Promise { await router.replace({query: nextQuery}) lastSyncedQuerySignature = signature } catch (error) { - console.error('Failed to sync learn route state', error) + console.error('Failed to sync classroom route state', error) } finally { isSyncingRoute = false } diff --git a/app/pages/login.vue b/app/pages/login.vue index 7d8b52f..c8a372a 100644 --- a/app/pages/login.vue +++ b/app/pages/login.vue @@ -355,7 +355,7 @@ async function submitLogin() { try { await auth.login({...loginForm}) await auth.fetchUser() - const target = redirectTarget.value || '/learn' + const target = redirectTarget.value || '/classroom' await router.replace(target) } catch (err: any) { const message = err?.data?.statusMessage || err?.message || 'Login failed' @@ -408,7 +408,7 @@ async function submitRegister() { acceptPrivacy: registerForm.acceptPrivacy, }) await auth.fetchUser() - const target = redirectTarget.value || '/learn' + const target = redirectTarget.value || '/classroom' await router.replace(target) } catch (err: any) { const message = err?.data?.statusMessage || err?.message || 'Registration failed' @@ -427,7 +427,7 @@ useHead({ onMounted(() => { if (auth.isAuthenticated) { - const target = redirectTarget.value || '/learn' + const target = redirectTarget.value || '/classroom' router.replace(target) } })