add upload progress

This commit is contained in:
2023-04-26 18:52:23 +10:00
parent 77b8f60cb1
commit b7e964174a

View File

@@ -4,6 +4,7 @@
:title="pageHeading" :title="pageHeading"
:back-link="{ name: 'dashboard-media-list' }" :back-link="{ name: 'dashboard-media-list' }"
back-title="Back to Media" /> back-title="Back to Media" />
<SMLoading v-if="progressText" overlay :text="progressText" />
<SMContainer class="flex-grow-1"> <SMContainer class="flex-grow-1">
<SMLoading v-if="pageLoading" large /> <SMLoading v-if="pageLoading" large />
<SMForm <SMForm
@@ -115,6 +116,7 @@ const router = useRouter();
const pageError = ref(200); const pageError = ref(200);
const pageLoading = ref(true); const pageLoading = ref(true);
const pageHeading = route.params.id ? "Edit Media" : "Upload Media"; const pageHeading = route.params.id ? "Edit Media" : "Upload Media";
const progressText = ref("");
const form = reactive( const form = reactive(
Form({ Form({
@@ -158,9 +160,7 @@ const handleLoad = async () => {
fileData.size = data.medium.size; fileData.size = data.medium.size;
fileData.storage = data.medium.storage; fileData.storage = data.medium.storage;
fileData.status = fileData.status =
data.medium.status == "" data.medium.status == "" ? "OK" : data.medium.status;
? "OK"
: toTitleCase(data.medium.status);
fileData.dimensions = data.medium.dimensions; fileData.dimensions = data.medium.dimensions;
@@ -203,6 +203,10 @@ const handleSubmit = async () => {
headers: { headers: {
"Content-Type": "multipart/form-data", "Content-Type": "multipart/form-data",
}, },
progress: (progressEvent) =>
(progressText.value = `Uploading File: ${Math.floor(
(progressEvent.loaded / progressEvent.total) * 100
)}%`),
}); });
} else { } else {
await api.post({ await api.post({
@@ -211,10 +215,10 @@ const handleSubmit = async () => {
headers: { headers: {
"Content-Type": "multipart/form-data", "Content-Type": "multipart/form-data",
}, },
// progress: (progressEvent) => progress: (progressEvent) =>
// (formLoadingMessage.value = `Uploading Files ${Math.floor( (progressText.value = `Uploading File: ${Math.floor(
// (progressEvent.loaded / progressEvent.total) * 100 (progressEvent.loaded / progressEvent.total) * 100
// )}%`), )}%`),
}); });
} }
@@ -228,12 +232,14 @@ const handleSubmit = async () => {
router.push({ name: "dashboard-media-list" }); router.push({ name: "dashboard-media-list" });
} catch (error) { } catch (error) {
console.log(error);
useToastStore().addToast({ useToastStore().addToast({
title: "Server error", title: "Server error",
content: "An error occurred saving the media.", content: "An error occurred saving the media.",
type: "danger", type: "danger",
}); });
} finally { } finally {
progressText.value = "";
form.loading(false); form.loading(false);
} }
}; };