diff --git a/src/components/Course/components/Ceritficate/Design.svelte b/src/components/Course/components/Ceritficate/Design.svelte index 286f566e..99c2bb3e 100644 --- a/src/components/Course/components/Ceritficate/Design.svelte +++ b/src/components/Course/components/Ceritficate/Design.svelte @@ -22,11 +22,27 @@ ]; let Selectedtheme = themes[0]; + let isSaving = false; - const saveCertificate = () => {}; const onToggle = (e) => { console.log(e); }; + const saveCertificate = () => { + // set isSaving to true + // Validation - make sure description isn't empty + // Upload the brand logo to give you a URL + // Update organisation logo (like in `src/components/Org/Settings/OrgSettings.svelte` line 25-51) + // - Note from the file above both logo and name is updated, in this case we only want to update logo + /** + * Update only course description (like in src/components/Course/components/Settings/index.svelte) + * + * await updateCourse($course.id, undefined, { + description: $course.description, + is_certificate_downloadable: $course.is_certificate_downloadable + }); + * */ + // set isSaving to false + };
@@ -72,17 +88,16 @@ placeholder="a little description about the course" bgColor="bg-gray-100" bind:value={$course.description} - onChange={$course.description} /> onToggle(e)} - class="my-2" + labelText="Allow students download certificate" + bind:toggled={$course.is_certificate_downloadable} + class="my-4" size="sm" > - Date - Date + Student access + Student access @@ -102,7 +117,8 @@ saveCertificate()} + onClick={saveCertificate} + isLoading={isSaving} />
diff --git a/src/components/Course/components/Ceritficate/certificates/Plain.svelte b/src/components/Course/components/Ceritficate/certificates/Plain.svelte index a974dc5f..cf0d73a8 100644 --- a/src/components/Course/components/Ceritficate/certificates/Plain.svelte +++ b/src/components/Course/components/Ceritficate/certificates/Plain.svelte @@ -28,6 +28,7 @@

This is to certify that

+

This is to certify that

+ = writable({ description: '', cost: 0, currency: '', + is_certificate_downloadable: false, metadata: { requirements: '', description: '', diff --git a/src/routes/courses/[id]/certificates.svelte b/src/routes/courses/[id]/certificates.svelte index d85081a8..7617fe12 100644 --- a/src/routes/courses/[id]/certificates.svelte +++ b/src/routes/courses/[id]/certificates.svelte @@ -1,7 +1,7 @@ @@ -11,20 +11,22 @@ import CourseContainer from '../../../components/CourseContainer/index.svelte'; import PageNav from '../../../components/PageNav/index.svelte'; - import PrimaryButton from '../../../components/PrimaryButton/index.svelte'; + // import PrimaryButton from '../../../components/PrimaryButton/index.svelte'; import PageBody from '../../../components/PageBody/index.svelte'; import RoleBasedSecurity from '../../../components/RoleBasedSecurity/index.svelte'; - import { setCourse, course, group } from '../../../components/Course/store'; + import { setCourse, course } from '../../../components/Course/store'; import IssueCertificateModal from '../../../components/Course/components/Ceritficate/IssueCertificateModal.svelte'; // import DeleteConfirmation from '../../../components/Course/components/People/DeleteConfirmation.svelte'; import Design from '../../../components/Course/components/Ceritficate/Design.svelte'; - import Reports from '../../../components/Course/components/Ceritficate/Reports.svelte'; + // import Reports from '../../../components/Course/components/Ceritficate/Reports.svelte'; - import { issueCertificateModal } from '../../../components/Course/components/Ceritficate/store'; - import { Tabs, Tab, TabContent } from 'carbon-components-svelte'; + // import { issueCertificateModal } from '../../../components/Course/components/Ceritficate/store'; + import { Tabs, Tab } from 'carbon-components-svelte'; + import TabContent from 'carbon-components-svelte/src/Tabs/TabContent.svelte'; export let courseId: string = ''; let isStudent = false; + onMount(async () => { if ($course.id) return; const { data } = await fetchCourse(courseId); @@ -33,34 +35,35 @@ + - + + - + - + + - - diff --git a/src/utils/types/index.ts b/src/utils/types/index.ts index d1e10b0c..e613593f 100644 --- a/src/utils/types/index.ts +++ b/src/utils/types/index.ts @@ -96,6 +96,7 @@ export interface Course { currency?: string; group?: Group; organization?: Organization; + is_certificate_downloadable?: boolean; } export interface Groupmember {