diff --git a/src/lib/components/Course/components/Settings/index.svelte b/src/lib/components/Course/components/Settings/index.svelte index e7ca01f7..e667f820 100644 --- a/src/lib/components/Course/components/Settings/index.svelte +++ b/src/lib/components/Course/components/Settings/index.svelte @@ -142,11 +142,20 @@ } isSaving = true; try { - const { course_title, course_description, image, tabs, grading, lesson_download } = $settings; + const { + course_title, + course_description, + image, + tabs, + grading, + lesson_download, + is_published + } = $settings; await updateCourse($course.id, avatar, { title: course_title, description: course_description, logo: image, + is_published, metadata: { ...(isObject($course.metadata) ? $course.metadata : {}), lessonTabsOrder: tabs, @@ -158,6 +167,7 @@ $course.title = course_title; $course.description = course_description; $course.logo = image; + $course.is_published = is_published; $course.metadata = { ...(isObject($course.metadata) ? $course.metadata : {}), lessonTabsOrder: tabs, @@ -173,6 +183,7 @@ }; function setDefault(course) { + console.log('course.is_published', course.is_published); if (course && Object.keys(course).length) { $settings = { course_title: course.title, @@ -180,7 +191,8 @@ image: course.logo, tabs: course.metadata.lessonTabsOrder || $settings.tabs, grading: course.metadata.grading, - lesson_download: course.metadata.lessonDownload + lesson_download: course.metadata.lessonDownload, + is_published: course.is_published }; } } @@ -305,6 +317,21 @@ /> + + + + + Publish Course + This determines if your course displays on your landing page + + + + Unpublished + Published + + + + Delete course diff --git a/src/lib/components/Course/components/Settings/store.js b/src/lib/components/Course/components/Settings/store.js index 30ed1880..704c8a58 100644 --- a/src/lib/components/Course/components/Settings/store.js +++ b/src/lib/components/Course/components/Settings/store.js @@ -10,5 +10,6 @@ export const settings = writable({ { id: 2, name: 'Slide' }, { id: 3, name: 'Video' } ], - lesson_download: false + lesson_download: false, + is_published: false }); diff --git a/src/lib/components/Course/store.ts b/src/lib/components/Course/store.ts index bac17ea2..db4fe260 100644 --- a/src/lib/components/Course/store.ts +++ b/src/lib/components/Course/store.ts @@ -1,7 +1,6 @@ import { writable } from 'svelte/store'; import type { Writable } from 'svelte/store'; import { lessons } from './components/Lesson/store/lessons'; -//@ts-ignore import { ROLE } from '$lib/utils/constants/roles'; import type { Course } from '$lib/utils/types'; @@ -14,6 +13,9 @@ export const course: Writable = writable({ status: 'ACTIVE', is_certificate_downloadable: false, certificate_theme: 'professional', + is_published: false, + created_at: new Date().toDateString(), + updated_at: new Date().toDateString(), metadata: { requirements: '', description: '', diff --git a/src/lib/components/Courses/api.js b/src/lib/components/Courses/api.js index 7107fff8..93e927d5 100644 --- a/src/lib/components/Courses/api.js +++ b/src/lib/components/Courses/api.js @@ -6,7 +6,8 @@ export async function fetchCourses(profileId, orgId) { // Gets courses for a particular organisation where the current logged in user is a groupmember const { data: allCourses } = await supabase .rpc('get_courses', { - org_id_arg: orgId + org_id_arg: orgId, + profile_id_arg: profileId }) .eq('profile_id', profileId); diff --git a/src/lib/components/Courses/components/Card/index.svelte b/src/lib/components/Courses/components/Card/index.svelte index 2263f3e6..592aadde 100644 --- a/src/lib/components/Courses/components/Card/index.svelte +++ b/src/lib/components/Courses/components/Card/index.svelte @@ -1,50 +1,25 @@ - {/if} ; - lessonTabsOrder: Array; - grading: boolean; - lessonDownload: boolean; + lessonTabsOrder?: Array; + grading?: boolean; + lessonDownload?: boolean; } // Generated from https://supabase-schema.vercel.app/ @@ -106,6 +106,9 @@ export interface Course { is_certificate_downloadable?: boolean; certificate_theme?: string; status: string; + is_published?: boolean; + progress_rate?: number; + total_lessons?: number; } export interface Groupmember { diff --git a/src/routes/lms/+page.svelte b/src/routes/lms/+page.svelte index cd9583c4..ccba2ca9 100644 --- a/src/routes/lms/+page.svelte +++ b/src/routes/lms/+page.svelte @@ -7,7 +7,6 @@ progressPercentage } from '$lib/components/LMS/components/store'; import PrimaryButton from '$lib/components/PrimaryButton/index.svelte'; - import Box from '$lib/components/Box/index.svelte'; import { VARIANTS } from '$lib/components/PrimaryButton/constants'; import { goto } from '$app/navigation'; diff --git a/src/routes/lms/mylearning/+page.svelte b/src/routes/lms/mylearning/+page.svelte index dd3dd65f..35ec4614 100644 --- a/src/routes/lms/mylearning/+page.svelte +++ b/src/routes/lms/mylearning/+page.svelte @@ -1,34 +1,49 @@ - @@ -40,12 +55,9 @@ - + - - -
This determines if your course displays on your landing page