diff --git a/resources/js/components/SMSelectImage.vue b/resources/js/components/SMSelectFile.vue similarity index 96% rename from resources/js/components/SMSelectImage.vue rename to resources/js/components/SMSelectFile.vue index e4c2cb3..37819f9 100644 --- a/resources/js/components/SMSelectImage.vue +++ b/resources/js/components/SMSelectFile.vue @@ -14,7 +14,7 @@ @@ -48,6 +48,7 @@ import { toTitleCase } from "../helpers/string"; import { mediaGetThumbnail } from "../helpers/media"; import { openDialog } from "./SMDialog"; import SMDialogMedia from "./dialogs/SMDialogMedia.vue"; +import SMDialogUpload from "./dialogs/SMDialogUpload.vue"; import { Media } from "../helpers/api.types"; import SMLoading from "./SMLoading.vue"; @@ -159,6 +160,11 @@ const props = defineProps({ default: false, required: false, }, + uploadOnly: { + type: Boolean, + default: false, + required: false, + }, }); const slots = useSlots(); @@ -256,10 +262,19 @@ if (form) { } const handleMediaSelect = async () => { - let result = await openDialog(SMDialogMedia, { - allowUpload: props.allowUpload, - accepts: props.accepts, - }); + let result = null; + + if (props.uploadOnly == false) { + result = await openDialog(SMDialogMedia, { + allowUpload: props.allowUpload, + accepts: props.accepts, + }); + } else { + result = await openDialog(SMDialogUpload, { + accepts: props.accepts, + }); + } + if (result) { const mediaResult = result as Media; emits("update:modelValue", mediaResult); diff --git a/resources/js/components/dialogs/SMDialogMedia.vue b/resources/js/components/dialogs/SMDialogMedia.vue index 330961c..6840266 100644 --- a/resources/js/components/dialogs/SMDialogMedia.vue +++ b/resources/js/components/dialogs/SMDialogMedia.vue @@ -601,7 +601,7 @@ const selectedTab = ref("tab-browser"); /** * Max upload size */ -const max_upload_size = ref(" "); +const max_upload_size = ref(""); /** * Is the media loading/busy diff --git a/resources/js/components/dialogs/SMDialogUpload.vue b/resources/js/components/dialogs/SMDialogUpload.vue new file mode 100644 index 0000000..29d420a --- /dev/null +++ b/resources/js/components/dialogs/SMDialogUpload.vue @@ -0,0 +1,347 @@ + + + diff --git a/resources/js/views/dashboard/ArticleEdit.vue b/resources/js/views/dashboard/ArticleEdit.vue index d39464f..614a68c 100644 --- a/resources/js/views/dashboard/ArticleEdit.vue +++ b/resources/js/views/dashboard/ArticleEdit.vue @@ -27,7 +27,7 @@ label="Publish Date" />
-
- @@ -138,7 +138,7 @@ import SMLoading from "../../components/SMLoading.vue"; import SMPageStatus from "../../components/SMPageStatus.vue"; import { userHasPermission } from "../../helpers/utils"; import SMDropdown from "../../components/SMDropdown.vue"; -import SMSelectImage from "../../components/SMSelectImage.vue"; +import SMSelectFile from "../../components/SMSelectFile.vue"; const route = useRoute(); const router = useRouter(); diff --git a/resources/js/views/dashboard/MediaEdit.vue b/resources/js/views/dashboard/MediaEdit.vue index fbb5129..b6e6f71 100644 --- a/resources/js/views/dashboard/MediaEdit.vue +++ b/resources/js/views/dashboard/MediaEdit.vue @@ -14,10 +14,11 @@
- @@ -92,7 +93,7 @@ import SMMastHead from "../../components/SMMastHead.vue"; import SMLoading from "../../components/SMLoading.vue"; import { useToastStore } from "../../store/ToastStore"; import SMPageStatus from "../../components/SMPageStatus.vue"; -import SMSelectImage from "../../components/SMSelectImage.vue"; +import SMSelectFile from "../../components/SMSelectFile.vue"; import { userHasPermission } from "../../helpers/utils"; import SMImageGallery from "../../components/SMImageGallery.vue";