From 836e88707125e22d561e59dad15fa6a1bf791289 Mon Sep 17 00:00:00 2001 From: daniboygg Date: Mon, 22 Apr 2024 12:34:52 +0200 Subject: [PATCH 1/4] Documents: Remove vuex from audio recorder component --- .../documents/DocumentAudioRecorder.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/assets/vue/components/documents/DocumentAudioRecorder.vue b/assets/vue/components/documents/DocumentAudioRecorder.vue index ad1aa848a9..a12a9e62b7 100644 --- a/assets/vue/components/documents/DocumentAudioRecorder.vue +++ b/assets/vue/components/documents/DocumentAudioRecorder.vue @@ -31,17 +31,16 @@ From 092161858a27ea71d0a9ec2f2fe1a7bd16a4b0ba Mon Sep 17 00:00:00 2001 From: daniboygg Date: Thu, 25 Apr 2024 09:21:49 +0200 Subject: [PATCH 2/4] Documents: remove vuex from create file * Set warning about using api.js --- .../components/documents/FormNewDocument.vue | 2 +- .../vue/components/documents/TemplateList.vue | 5 +- assets/vue/services/api.js | 11 ++++ assets/vue/services/documents.js | 21 +++++++- assets/vue/views/documents/CreateFile.vue | 54 ++++++++++--------- 5 files changed, 64 insertions(+), 29 deletions(-) diff --git a/assets/vue/components/documents/FormNewDocument.vue b/assets/vue/components/documents/FormNewDocument.vue index 99d6058d69..5f6981c5ef 100644 --- a/assets/vue/components/documents/FormNewDocument.vue +++ b/assets/vue/components/documents/FormNewDocument.vue @@ -3,7 +3,7 @@ diff --git a/assets/vue/components/documents/TemplateList.vue b/assets/vue/components/documents/TemplateList.vue index e55523e560..b1323edc6a 100644 --- a/assets/vue/components/documents/TemplateList.vue +++ b/assets/vue/components/documents/TemplateList.vue @@ -15,7 +15,10 @@ export default { name: 'TemplateList', props: { - templates: [] + templates: { + type: Array, + required: true, + } }, methods: { selectTemplate(content) { diff --git a/assets/vue/services/api.js b/assets/vue/services/api.js index af8421d397..2fd9ffeece 100644 --- a/assets/vue/services/api.js +++ b/assets/vue/services/api.js @@ -1,5 +1,8 @@ import fetch from '../utils/fetch'; +// As stated here https://github.com/chamilo/chamilo-lms/pull/5386#discussion_r1578471409 +// this service should not be used and instead the assets/bue/config/api.js should be used instead +// take a look at assets/bue/services/socialService.js to have an example export default function makeService(endpoint, extensions = {}) { const baseService = { find(id, params) { @@ -63,6 +66,14 @@ export default function makeService(endpoint, extensions = {}) { method: 'PUT', body: JSON.stringify(payload) }); + }, + handleError(error, errorsRef, violationsRef) { + if (error instanceof SubmissionError) { + violationsRef.value = error.errors + errorsRef.value = error.errors._error + return + } + errorsRef.value = error.message } }; diff --git a/assets/vue/services/documents.js b/assets/vue/services/documents.js index 4bce188a24..0a04df88c9 100644 --- a/assets/vue/services/documents.js +++ b/assets/vue/services/documents.js @@ -1,3 +1,20 @@ -import makeService from './api'; +import makeService from "./api" +import baseService from "./baseService" -export default makeService('documents'); +// we should refactor this to use methods in export default using baseService +// see assets/vue/services/api.js for reference +const oldService = makeService("documents") + +export default { + ...oldService, + + /** + * Retrieves all document templates for a given course. + * + * @param {string} courseId - The ID of the course. + * @returns {Promise} + */ + getTemplates: async (courseId) => { + return baseService.get(`/template/all-templates/${courseId}`) + }, +} diff --git a/assets/vue/views/documents/CreateFile.vue b/assets/vue/views/documents/CreateFile.vue index b5da0b5510..f0ab8ba4f6 100644 --- a/assets/vue/views/documents/CreateFile.vue +++ b/assets/vue/views/documents/CreateFile.vue @@ -15,7 +15,7 @@
diff --git a/assets/vue/components/basecomponents/BaseButton.vue b/assets/vue/components/basecomponents/BaseButton.vue index 61570b5a07..3217f1eb61 100644 --- a/assets/vue/components/basecomponents/BaseButton.vue +++ b/assets/vue/components/basecomponents/BaseButton.vue @@ -13,6 +13,7 @@ :text="onlyIcon" :title="onlyIcon ? label : undefined" :type="isSubmit ? 'submit' : 'button'" + :loading="isLoading" @click="$emit('click', $event)" /> @@ -62,6 +63,10 @@ const props = defineProps({ required: false, default: false, }, + isLoading: { + type: Boolean, + default: false, + } }) defineEmits(["click"]) From 31783531f913c9335747a17bce06f3bcea3aa5f1 Mon Sep 17 00:00:00 2001 From: daniboygg Date: Thu, 25 Apr 2024 09:33:06 +0200 Subject: [PATCH 4/4] Minor: format files --- .../components/basecomponents/BaseButton.vue | 2 +- .../documents/DocumentAudioRecorder.vue | 87 ++++++++++------- .../components/documents/FormNewDocument.vue | 93 +++++++++---------- .../vue/components/documents/TemplateList.vue | 11 ++- 4 files changed, 105 insertions(+), 88 deletions(-) diff --git a/assets/vue/components/basecomponents/BaseButton.vue b/assets/vue/components/basecomponents/BaseButton.vue index 3217f1eb61..cff8ea1ae1 100644 --- a/assets/vue/components/basecomponents/BaseButton.vue +++ b/assets/vue/components/basecomponents/BaseButton.vue @@ -66,7 +66,7 @@ const props = defineProps({ isLoading: { type: Boolean, default: false, - } + }, }) defineEmits(["click"]) diff --git a/assets/vue/components/documents/DocumentAudioRecorder.vue b/assets/vue/components/documents/DocumentAudioRecorder.vue index a12a9e62b7..ada8b41ea1 100644 --- a/assets/vue/components/documents/DocumentAudioRecorder.vue +++ b/assets/vue/components/documents/DocumentAudioRecorder.vue @@ -9,7 +9,11 @@ class="max-w-full self-center mb-4 w-60" /> -
@@ -33,10 +30,10 @@ diff --git a/assets/vue/components/documents/TemplateList.vue b/assets/vue/components/documents/TemplateList.vue index b1323edc6a..4bd4259f6b 100644 --- a/assets/vue/components/documents/TemplateList.vue +++ b/assets/vue/components/documents/TemplateList.vue @@ -4,7 +4,8 @@ v-for="template in templates" :key="template.id" class="template-item" - @click="selectTemplate(template.content)"> + @click="selectTemplate(template.content)" + >
{{ template.title }}
@@ -13,17 +14,17 @@