diff --git a/src/lib/services/connect/services/connect.svelte.ts b/src/lib/services/connect/services/connect.svelte.ts index da1f2b4d4..dbc271bb4 100644 --- a/src/lib/services/connect/services/connect.svelte.ts +++ b/src/lib/services/connect/services/connect.svelte.ts @@ -23,6 +23,9 @@ import { supabaseProfile } from "./supabaseProfile.svelte"; /** Global anonymous mode flag, controlled by environment variable */ let anonMode = false; +/** Global flag to disable analytics in case of database issues*/ +export let analyticsEnabled = false; + if (PUBLIC_ANON_MODE === "TRUE") { anonMode = true; } @@ -98,8 +101,10 @@ export const tutorsConnectService: TutorsConnectService = { */ courseVisit(course: Course) { if (anonMode) return; - updateCourseList(course); - this.profile.logCourseVisit(course); + if (analyticsEnabled) { + updateCourseList(course); + this.profile.logCourseVisit(course); + } presenceService.startPresenceListener(course.courseId); if (course.authLevel! > 0 && !tutorsId.value?.login) { localStorage.loginCourse = course.courseId; @@ -146,7 +151,7 @@ export const tutorsConnectService: TutorsConnectService = { learningEvent(params: Record): void { if (anonMode) return; if (currentCourse.value && currentLo.value && tutorsId.value) { - analyticsService.learningEvent(currentCourse.value, params, currentLo.value, tutorsId.value); + if (analyticsEnabled) analyticsService.learningEvent(currentCourse.value, params, currentLo.value, tutorsId.value); if (tutorsId.value.share === "true" && !currentCourse.value.isPrivate) { presenceService.sendLoEvent(currentCourse.value, currentLo.value, tutorsId.value); } @@ -161,7 +166,7 @@ export const tutorsConnectService: TutorsConnectService = { if (anonMode) return; this.intervalId = setInterval(() => { if (!document.hidden && currentCourse.value && currentLo.value && tutorsId.value) { - analyticsService.updatePageCount(currentCourse.value, currentLo.value, tutorsId.value); + if (analyticsEnabled) analyticsService.updatePageCount(currentCourse.value, currentLo.value, tutorsId.value); } }, 30 * 1000); }, diff --git a/src/lib/ui/navigators/tutors-connect/ConnectedProfile.svelte b/src/lib/ui/navigators/tutors-connect/ConnectedProfile.svelte index 4be21147f..8b4081d64 100644 --- a/src/lib/ui/navigators/tutors-connect/ConnectedProfile.svelte +++ b/src/lib/ui/navigators/tutors-connect/ConnectedProfile.svelte @@ -6,6 +6,7 @@ import OnlineButton from "../buttons/OnlineButton.svelte"; import Icon from "$lib/ui/components/Icon.svelte"; import { currentCourse, tutorsId } from "$lib/runes.svelte"; + import { analyticsEnabled } from "$lib/services/connect/services/connect.svelte"; function logout() { tutorsConnectService.disconnect("/"); @@ -19,7 +20,7 @@ {#snippet menuSelector()}
{#if presenceService.studentsOnline.value.length && tutorsId.value?.share} - + {presenceService.studentsOnline.value.length} {/if} @@ -45,7 +46,9 @@ {/if} {#if tutorsId.value?.share === "true"} - + {#if analyticsEnabled} + + {/if}