From 231f2cbc14d8652c3601a3e80666ef8c80f2fb8a Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 12 Jun 2024 10:27:33 +0530 Subject: [PATCH 1/5] feat: video player --- frappe-ui | 2 +- frontend/src/components/AudioBlock.vue | 117 +++++++++++++++++++++ frontend/src/components/VideoBlock.vue | 137 +++++++++++++++++++++++++ frontend/src/utils/upload.js | 22 ++-- 4 files changed, 270 insertions(+), 8 deletions(-) create mode 100644 frontend/src/components/AudioBlock.vue create mode 100644 frontend/src/components/VideoBlock.vue diff --git a/frappe-ui b/frappe-ui index 38728b80..aa44431c 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit 38728b80aaf0cf0a74b2f10e778363c9308c3a1e +Subproject commit aa44431c185b1e4563f2ebf6af380c7743d2cd4c diff --git a/frontend/src/components/AudioBlock.vue b/frontend/src/components/AudioBlock.vue new file mode 100644 index 00000000..d8904905 --- /dev/null +++ b/frontend/src/components/AudioBlock.vue @@ -0,0 +1,117 @@ + + + + diff --git a/frontend/src/components/VideoBlock.vue b/frontend/src/components/VideoBlock.vue new file mode 100644 index 00000000..d9d5a36c --- /dev/null +++ b/frontend/src/components/VideoBlock.vue @@ -0,0 +1,137 @@ + + + + diff --git a/frontend/src/utils/upload.js b/frontend/src/utils/upload.js index fbe607d1..939c3999 100644 --- a/frontend/src/utils/upload.js +++ b/frontend/src/utils/upload.js @@ -1,3 +1,7 @@ +import AudioBlock from '@/components/AudioBlock.vue' +import VideoBlock from '@/components/VideoBlock.vue' +import { createApp } from 'vue' + export class Upload { constructor({ data, api, readOnly }) { this.data = data @@ -10,19 +14,23 @@ export class Upload { render() { this.wrapper = document.createElement('div') - this.wrapper.innerHTML = this.renderUpload(this.data) + this.renderUpload(this.data) return this.wrapper } renderUpload(file) { if (this.isVideo(file.file_type)) { - return `` + const app = createApp(VideoBlock, { + file: file.file_url, + }) + app.mount(this.wrapper) + return } else if (this.isAudio(file.file_type)) { - return `` + const app = createApp(AudioBlock, { + file: file.file_url, + }) + app.mount(this.wrapper) + return } else if (file.file_type == 'pdf') { return `