fix: removed delivery parameter from batch feedback

This commit is contained in:
Jannat Patel
2025-01-14 11:29:13 +05:30
parent 2c999e2037
commit 61e41180dd
4 changed files with 35 additions and 48 deletions

View File

@@ -17,23 +17,9 @@
<div class="space-y-8">
<div class="flex items-center justify-between">
<Rating
v-model="feedback.content"
:label="__('Content')"
:readonly="readOnly"
/>
<Rating
v-model="feedback.delivery"
:label="__('Delivery')"
:readonly="readOnly"
/>
<Rating
v-model="feedback.instructors"
:label="__('Instructors')"
:readonly="readOnly"
/>
<Rating
v-model="feedback.value"
:label="__('Value')"
v-for="key in ratingKeys"
v-model="feedback[key]"
:label="__(convertToTitleCase(key))"
:readonly="readOnly"
/>
</div>
@@ -54,21 +40,11 @@
<div class="flex items-center justify-between mb-10">
<Rating
v-model="average.content"
:label="__('Content')"
v-for="key in ratingKeys"
v-model="average[key]"
:label="__(convertToTitleCase(key))"
:readonly="true"
/>
<Rating
v-model="average.delivery"
:label="__('Delivery')"
:readonly="true"
/>
<Rating
v-model="average.instructors"
:label="__('Instructors')"
:readonly="true"
/>
<Rating v-model="average.value" :label="__('Value')" :readonly="true" />
</div>
<div class="text-lg font-semibold mb-5">
@@ -121,9 +97,13 @@
</ListRows>
</ListView>
</div>
<div v-else class="text-sm italic text-center text-gray-700 mt-5">
{{ __('No feedback received yet.') }}
</div>
</template>
<script setup>
import { computed, inject, onMounted, reactive, ref, watch } from 'vue'
import { convertToTitleCase } from '@/utils'
import {
Avatar,
Button,
@@ -139,7 +119,7 @@ import {
} from 'frappe-ui'
const user = inject('$user')
const ratingKeys = ['content', 'delivery', 'instructors', 'value']
const ratingKeys = ['content', 'instructors', 'value']
const readOnly = ref(false)
const average = reactive({})
const feedback = reactive({})
@@ -171,7 +151,6 @@ const feedbackList = createListResource({
},
fields: [
'content',
'delivery',
'instructors',
'value',
'feedback',
@@ -243,22 +222,17 @@ const feedbackColumns = computed(() => {
{
label: 'Content',
key: 'content',
width: '10rem',
},
{
label: 'Delivery',
key: 'delivery',
width: '10rem',
width: '9rem',
},
{
label: 'Instructors',
key: 'instructors',
width: '10rem',
width: '9rem',
},
{
label: 'Value',
key: 'value',
width: '10rem',
width: '9rem',
},
]
})

View File

@@ -96,7 +96,7 @@ import {
} from 'frappe-ui'
import { reactive, watch, defineModel } from 'vue'
import { FileText, X } from 'lucide-vue-next'
import { getFileSize, showToast } from '@/utils'
import { getFileSize, showToast, escapeHTML } from '@/utils'
const reloadProfile = defineModel('reloadProfile')
@@ -131,6 +131,7 @@ const imageResource = createResource({
const updateProfile = createResource({
url: 'frappe.client.set_value',
makeParams(values) {
profile.bio = escapeHTML(profile.bio)
return {
doctype: 'User',
name: props.profile.data.name,

View File

@@ -533,3 +533,21 @@ export const validateFile = (file) => {
return __('Only image file is allowed.')
}
}
export const escapeHTML = (text) => {
if (!text) return ''
let escape_html_mapping = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;',
'`': '&#x60;',
'=': '&#x3D;',
}
return String(text).replace(
/[&<>"'`=]/g,
(char) => escape_html_mapping[char] || char
)
}