Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions web/ts/data-store/admin-lecture-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,11 @@ export class AdminLectureListProvider extends StreamableMapProvider<number, Lect

this.data[courseId] = (await this.getData(courseId)).map((s) => {
if (s.lectureId === lectureId) {
const updatedFiles = [...(s.files ?? []), newFile];
return {
...s,
files: [...s.files, newFile],
files: updatedFiles,
hasAttachments: updatedFiles.some((f) => f.fileType === FileType.attachment),
};
}
return s;
Expand All @@ -146,9 +148,11 @@ export class AdminLectureListProvider extends StreamableMapProvider<number, Lect

this.data[courseId] = (await this.getData(courseId)).map((s) => {
if (s.lectureId === lectureId) {
const updatedFiles = (s.files ?? []).filter((a) => a.id !== attachmentId);
return {
...s,
files: [...s.files.filter((a) => a.id !== attachmentId)],
files: updatedFiles,
hasAttachments: updatedFiles.some((f) => f.fileType === FileType.attachment),
};
}
return s;
Expand Down
33 changes: 21 additions & 12 deletions web/ts/edit-course.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,20 +224,29 @@ export function lectureEditor(lecture: Lecture): AlpineComponent {
},

onAttachmentFileDrop(e) {
if (e.dataTransfer.items) {
const item = e.dataTransfer.items[0];
const { kind } = item;
switch (kind) {
case "file": {
DataStore.adminLectureList.uploadAttachmentFile(
this.lectureData.courseId,
this.lectureData.lectureId,
item.getAsFile(),
);
break;
}
const files = [...(e.dataTransfer?.files ?? [])];

if (files.length > 0) {
for (const file of files) {
DataStore.adminLectureList.uploadAttachmentFile(
this.lectureData.courseId,
this.lectureData.lectureId,
file,
);
}
return;
}

const droppedFile = e.dataTransfer?.items?.[0]?.kind === "file" ? e.dataTransfer.items[0].getAsFile() : null;
if (!droppedFile) {
return;
}

DataStore.adminLectureList.uploadAttachmentFile(
this.lectureData.courseId,
this.lectureData.lectureId,
droppedFile,
);
},

deleteAttachment(id: number) {
Expand Down
Loading