fixed uploaded attachment not removed

This commit is contained in:
Asif Takavala
2022-02-15 06:10:04 +00:00
committed by Mohit Panjwani
parent f34dac9d3f
commit 8ba84f68c7
9 changed files with 59 additions and 20 deletions

View File

@ -61,15 +61,15 @@ export const useExpenseStore = (useWindow = false) => {
Object.assign(this.currentExpense, response.data.data)
this.currentExpense.selectedCurrency =
response.data.data.currency
if (response.data.data.attachment_receipt) {
this.currentExpense.attachment_receipt = null
if (response.data.data.attachment_receipt_url) {
if (
utils.isImageFile(
response.data.data.attachment_receipt_meta.mime_type
)
) {
this.currentExpense.receiptFiles = [
{ image: `/expenses/${id}/receipt` },
{ image: `/reports/expenses/${id}/receipt?${response.data.data.attachment_receipt_meta.uuid}` },
]
} else {
this.currentExpense.receiptFiles = [
@ -118,12 +118,13 @@ export const useExpenseStore = (useWindow = false) => {
})
},
updateExpense({ id, data }) {
updateExpense({ id, data, isAttachmentReceiptRemoved }) {
const notificationStore = useNotificationStore()
const formData = utils.toFormData(data)
formData.append('_method', 'PUT')
formData.append('is_attachment_receipt_removed', isAttachmentReceiptRemoved)
return new Promise((resolve) => {
axios.post(`/api/v1/expenses/${id}`, formData).then((response) => {

View File

@ -21,7 +21,7 @@
<template #actions>
<BaseButton
v-if="isEdit && expenseStore.currentExpense.attachment_receipt"
v-if="isEdit && expenseStore.currentExpense.attachment_receipt_url"
:href="receiptDownloadUrl"
tag="a"
variant="primary-outline"
@ -317,6 +317,7 @@ const globalStore = useGlobalStore()
let isSaving = ref(false)
let isFetchingInitialData = ref(false)
const expenseValidationScope = 'newExpense'
const isAttachmentReceiptRemoved = ref(false)
const rules = computed(() => {
return {
@ -381,7 +382,7 @@ const pageTitle = computed(() =>
)
const receiptDownloadUrl = computed(() =>
isEdit.value ? `/expenses/${route.params.id}/download-receipt` : ''
isEdit.value ? `/reports/expenses/${route.params.id}/download-receipt` : ''
)
expenseStore.resetCurrentExpenseData()
@ -395,6 +396,7 @@ function onFileInputChange(fileName, file) {
function onFileInputRemove() {
expenseStore.currentExpense.attachment_receipt = null
isAttachmentReceiptRemoved.value = true
}
function openCategoryModal() {
@ -460,11 +462,14 @@ async function submitForm() {
await expenseStore.updateExpense({
id: route.params.id,
data: formData,
isAttachmentReceiptRemoved: isAttachmentReceiptRemoved.value
})
} else {
await expenseStore.addExpense(formData)
}
isSaving.value = false
expenseStore.currentExpense.attachment_receipt = null
isAttachmentReceiptRemoved.value = false
router.push('/admin/expenses')
} catch (err) {
console.error(err)

View File

@ -118,6 +118,7 @@ const { t } = useI18n()
let isSaving = ref(false)
let avatarFileBlob = ref(null)
let imgFiles = ref([])
const isAdminAvatarRemoved = ref(false)
if (userStore.currentUser.avatar) {
imgFiles.value.push({
@ -170,6 +171,7 @@ function onFileInputChange(fileName, file) {
function onFileInputRemove() {
avatarFileBlob.value = null
isAdminAvatarRemoved.value = true
}
async function updateUserData() {
@ -209,12 +211,17 @@ async function updateUserData() {
if (response.data.data) {
isSaving.value = false
if (avatarFileBlob.value) {
if (avatarFileBlob.value || isAdminAvatarRemoved.value) {
let avatarData = new FormData()
avatarData.append('admin_avatar', avatarFileBlob.value)
if (avatarFileBlob.value) {
avatarData.append('admin_avatar', avatarFileBlob.value)
}
avatarData.append('is_admin_avatar_removed', isAdminAvatarRemoved.value)
await userStore.uploadAvatar(avatarData)
avatarFileBlob.value = null
isAdminAvatarRemoved.value = false
}
userForm.password = ''

View File

@ -180,6 +180,7 @@ utils.mergeSettings(companyForm, {
let previewLogo = ref([])
let logoFileBlob = ref(null)
let logoFileName = ref(null)
const isCompanyLogoRemoved = ref(false)
if (companyForm.logo) {
previewLogo.value.push({
@ -218,6 +219,7 @@ function onFileInputChange(fileName, file, fileCount, fileList) {
function onFileInputRemove() {
logoFileBlob.value = null
isCompanyLogoRemoved.value = true
}
async function updateCompanyData() {
@ -232,18 +234,23 @@ async function updateCompanyData() {
const res = await companyStore.updateCompany(companyForm)
if (res.data.data) {
if (logoFileBlob.value) {
if (logoFileBlob.value || isCompanyLogoRemoved.value) {
let logoData = new FormData()
logoData.append(
'company_logo',
JSON.stringify({
name: logoFileName.value,
data: logoFileBlob.value,
})
)
if (logoFileBlob.value) {
logoData.append(
'company_logo',
JSON.stringify({
name: logoFileName.value,
data: logoFileBlob.value,
})
)
}
logoData.append('is_company_logo_removed', isCompanyLogoRemoved.value)
await companyStore.updateCompanyLogo(logoData)
logoFileBlob.value = null
isCompanyLogoRemoved.value = false
}
isSaving.value = false