diff --git a/package-lock.json b/package-lock.json index 29824a7a..b753c433 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,8 @@ "node-sass": "^6.0.0", "polka": "next", "sapper-environment": "^1.0.1", - "sirv": "^1.0.0" + "sirv": "^1.0.0", + "svelte-easy-crop": "^1.0.4" }, "devDependencies": { "@babel/core": "^7.0.0", @@ -5754,6 +5755,14 @@ "integrity": "sha512-DuSfie7xukV3AXlA9vFnIkit97LYNSDpKFmUBgL0RansnBrFvJoFpnsnuUW2ULfsYR1NpqZGmHAsgKQUeBf6Lg==", "dev": true }, + "node_modules/svelte-easy-crop": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/svelte-easy-crop/-/svelte-easy-crop-1.0.4.tgz", + "integrity": "sha512-YWbayjPenBYx1b8Usbh70jXXSy/e2ggY7fYBnemefyXhnrccS6Ke4h2uBB07uGDZdwxQNZvS5ruoXwxxZQVo0g==", + "engines": { + "node": "14" + } + }, "node_modules/svelte-loading-spinners": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/svelte-loading-spinners/-/svelte-loading-spinners-0.1.7.tgz", @@ -10987,6 +10996,11 @@ "integrity": "sha512-DuSfie7xukV3AXlA9vFnIkit97LYNSDpKFmUBgL0RansnBrFvJoFpnsnuUW2ULfsYR1NpqZGmHAsgKQUeBf6Lg==", "dev": true }, + "svelte-easy-crop": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/svelte-easy-crop/-/svelte-easy-crop-1.0.4.tgz", + "integrity": "sha512-YWbayjPenBYx1b8Usbh70jXXSy/e2ggY7fYBnemefyXhnrccS6Ke4h2uBB07uGDZdwxQNZvS5ruoXwxxZQVo0g==" + }, "svelte-loading-spinners": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/svelte-loading-spinners/-/svelte-loading-spinners-0.1.7.tgz", diff --git a/package.json b/package.json index 99562b8a..050b0889 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "node-sass": "^6.0.0", "polka": "next", "sapper-environment": "^1.0.1", - "sirv": "^1.0.0" + "sirv": "^1.0.0", + "svelte-easy-crop": "^1.0.4" }, "devDependencies": { "@babel/core": "^7.0.0", @@ -59,4 +60,4 @@ "tslib": "^2.3.1", "typescript": "^4.1.3" } -} \ No newline at end of file +} diff --git a/src/components/Course/components/Lesson/Exercises/index.svelte b/src/components/Course/components/Lesson/Exercises/index.svelte index c765696c..6105f7d0 100644 --- a/src/components/Course/components/Lesson/Exercises/index.svelte +++ b/src/components/Course/components/Lesson/Exercises/index.svelte @@ -1,5 +1,7 @@ + + ($deleteMemberModal.open = false)} + bind:open={$deleteMemberModal.open} + width="w-96" + modalHeading="Delete" +> +
+

+ Are you sure you want to delete {email}? +

+ +
+ ($deleteMemberModal.open = false)} + /> + +
+
+
diff --git a/src/components/Course/components/People/InviationModal.svelte b/src/components/Course/components/People/InviationModal.svelte index aca32549..11f8a403 100644 --- a/src/components/Course/components/People/InviationModal.svelte +++ b/src/components/Course/components/People/InviationModal.svelte @@ -45,7 +45,6 @@ } addGroupMember(membersStack).then(async (membersAdded) => { - console.log(`membersAdded`, membersAdded); const group = await fetchGroup($course.group.id); setCourseData( diff --git a/src/components/Course/components/People/store.js b/src/components/Course/components/People/store.js index 679df0ad..e12577ad 100644 --- a/src/components/Course/components/People/store.js +++ b/src/components/Course/components/People/store.js @@ -1,5 +1,9 @@ import { writable } from 'svelte/store'; +export const deleteMemberModal = writable({ + open: false, +}); + export const invitationModal = writable({ open: false, tutors: '', diff --git a/src/components/Course/store.js b/src/components/Course/store.js index 577063a1..c49a6ef9 100644 --- a/src/components/Course/store.js +++ b/src/components/Course/store.js @@ -24,6 +24,7 @@ export const group = writable({ id: null, tutors: [], students: [], + people: [], }); export async function setCourseData(data, setLesson = true) { diff --git a/src/components/Courses/components/Card/index.svelte b/src/components/Courses/components/Card/index.svelte new file mode 100644 index 00000000..98db67ac --- /dev/null +++ b/src/components/Courses/components/Card/index.svelte @@ -0,0 +1,50 @@ + + + + Course Logo +
+

+ {title} +

+
+ {description} +
+
+
+ + diff --git a/src/components/Courses/index.svelte b/src/components/Courses/index.svelte index 18b55f06..9962c941 100644 --- a/src/components/Courses/index.svelte +++ b/src/components/Courses/index.svelte @@ -1,55 +1,20 @@ -
+
{#each $courses as courseData} -
-

- {courseData.title} - -

-

{courseData.description}

- -
+ + {:else} + +

No Course Assigned

+
{/each}
- - diff --git a/src/routes/courses.svelte b/src/routes/courses.svelte index 6cee4ec6..77735c11 100644 --- a/src/routes/courses.svelte +++ b/src/routes/courses.svelte @@ -134,15 +134,15 @@ Courses -
- +
+ ($createCourseModal.open = false)} @@ -198,13 +198,13 @@ -
+ diff --git a/src/routes/courses/[id]/people.svelte b/src/routes/courses/[id]/people.svelte index 09b02598..a57504fd 100644 --- a/src/routes/courses/[id]/people.svelte +++ b/src/routes/courses/[id]/people.svelte @@ -1,5 +1,8 @@ + @@ -57,14 +87,15 @@ > No -

Name

-

Email

-

Role

+

Name

+

Email

+

Role

+

{#each people as person, index}
{index + 1} @@ -90,6 +121,19 @@ {/if}

{ROLE_LABEL[person.role_id]}

+ +
+ {#if person.profile && person.profile.id !== $profile.id} + { + member = person; + $deleteMemberModal.open = true; + }} + > + + + {/if} +
{/each} diff --git a/src/utils/services/courses/index.js b/src/utils/services/courses/index.js index fa4d2167..aa9da8a1 100644 --- a/src/utils/services/courses/index.js +++ b/src/utils/services/courses/index.js @@ -122,6 +122,10 @@ export function addGroupMember(member) { }); } +export function deleteGroupMember(groupMemberId) { + return supabase.from('groupmember').delete().match({ id: groupMemberId }); +} + export function fetchLesson(lessonId) { return supabase .from('lesson')