diff --git a/src/components/Course/components/Lesson/Exercise/EditMode.svelte b/src/components/Course/components/Lesson/Exercise/EditMode.svelte
index 5707dd4c..8ea75b62 100644
--- a/src/components/Course/components/Lesson/Exercise/EditMode.svelte
+++ b/src/components/Course/components/Lesson/Exercise/EditMode.svelte
@@ -36,7 +36,8 @@
QUESTION_TYPES,
} from '../../../../Question/constants';
import { filterOutDeleted } from './functions';
- import Date from '../../../../Form/Date.svelte';
+ import { deleteExercise } from '../../../../../utils/services/courses';
+ import { lesson } from '../store/lessons';
// import EditContent from "../../../../EditContent/index.svelte";
// import readme from "../../readme.js";
@@ -45,10 +46,14 @@
const initialQuestionsLength = $questionnaire.questions.length;
export let editDescription = false;
+ export let exerciseId;
+ export let goBack = () => {};
let errors = {};
let questionIdToDelete = null;
let questions = [];
+ let shouldDelete = false;
+ let isDeleting = false;
function shouldScrollToLast(questionId, questions) {
const currentQuestionsLength = questions.length;
@@ -88,6 +93,22 @@
return errors[question.id] ? errors[question.id][errorKey] : null;
}
+ async function handleDelete() {
+ console.log('delete');
+ isDeleting = true;
+ await deleteExercise(questions, exerciseId);
+
+ lesson.update((_lesson) => ({
+ ..._lesson,
+ exercises: _lesson.exercises.filter(
+ (exercise) => exercise.id !== exerciseId
+ ),
+ }));
+
+ shouldDelete = false;
+ goBack();
+ }
+
$: errors = $questionnaireValidation;
$: questions = filterOutDeleted($questionnaire.questions);
@@ -105,32 +126,62 @@
width="w-2/4"
modalHeading="Update description"
>
-
-
- ($questionnaire.is_title_dirty = true)}
- />
- {
- $questionnaire.due_by = e.target.value;
- $questionnaire.is_due_by_dirty = true;
- }}
- />
- ($questionnaire.is_description_dirty = true)}
- />
-
-
+ {#if shouldDelete}
+
+ {:else}
+
+
+ ($questionnaire.is_title_dirty = true)}
+ />
+ {
+ $questionnaire.due_by = e.target.value;
+ $questionnaire.is_due_by_dirty = true;
+ }}
+ />
+ ($questionnaire.is_description_dirty = true)}
+ />
+
+
+
(shouldDelete = true)}
+ />
+
+
+ {/if}
diff --git a/src/components/Course/components/Lesson/Exercise/ViewMode.svelte b/src/components/Course/components/Lesson/Exercise/ViewMode.svelte
index 8924d9d7..b553cd94 100644
--- a/src/components/Course/components/Lesson/Exercise/ViewMode.svelte
+++ b/src/components/Course/components/Lesson/Exercise/ViewMode.svelte
@@ -230,13 +230,12 @@
Graded
{:else}
Pending
@@ -245,7 +244,7 @@
{#if STATUS.GRADED === $questionnaireMetaData.status}
{$questionnaireMetaData.finalTotalGrade}/{$questionnaireMetaData.totalPossibleGrade}
diff --git a/src/components/Course/components/Lesson/Exercise/index.svelte b/src/components/Course/components/Lesson/Exercise/index.svelte
index cbe1762b..0da6c757 100644
--- a/src/components/Course/components/Lesson/Exercise/index.svelte
+++ b/src/components/Course/components/Lesson/Exercise/index.svelte
@@ -25,6 +25,7 @@
export let exerciseId;
export let refetchExercise = () => {};
+ export let goBack = () => {};
let mode = MODES.view;
let preview = false;
@@ -135,7 +136,7 @@
{#if mode === MODES.edit && !preview}
-
+
{:else}
{/if}
diff --git a/src/components/Course/components/Lesson/Exercises/index.svelte b/src/components/Course/components/Lesson/Exercises/index.svelte
index 325dffc7..725022c5 100644
--- a/src/components/Course/components/Lesson/Exercises/index.svelte
+++ b/src/components/Course/components/Lesson/Exercises/index.svelte
@@ -1,4 +1,5 @@
{#if exerciseId}
- getExercise(exerciseId)} />
+ getExercise(exerciseId)}
+ />
{:else}