fix: use fieldname & fieldtype instead of name & type in quick filters

This commit is contained in:
Shariq Ansari 2025-01-18 13:02:20 +05:30
parent 26a20e048c
commit 8ba1949d3f
5 changed files with 32 additions and 22 deletions

View File

@ -189,8 +189,8 @@ def get_quick_filters(doctype: str):
quick_filters.append(
{
"label": _(field.label),
"name": field.fieldname,
"type": field.fieldtype,
"fieldname": field.fieldname,
"fieldtype": field.fieldtype,
"options": options,
}
)

View File

@ -142,6 +142,8 @@
{
"fieldname": "telephony_medium",
"fieldtype": "Select",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Telephony Medium",
"options": "\nManual\nTwilio\nExotel"
},
@ -152,7 +154,7 @@
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2025-01-11 16:27:56.992950",
"modified": "2025-01-17 21:46:01.558377",
"modified_by": "Administrator",
"module": "FCRM",
"name": "CRM Call Log",

View File

@ -1,13 +1,13 @@
<template>
<FormControl
v-if="filter.type == 'Check'"
v-if="filter.fieldtype == 'Check'"
:label="filter.label"
type="checkbox"
v-model="filter.value"
@change.stop="updateFilter(filter, $event.target.checked)"
/>
<FormControl
v-else-if="filter.type === 'Select'"
v-else-if="filter.fieldtype === 'Select'"
class="form-control cursor-pointer [&_select]:cursor-pointer"
type="select"
v-model="filter.value"
@ -16,16 +16,16 @@
@change.stop="updateFilter(filter, $event.target.value)"
/>
<Link
v-else-if="filter.type === 'Link'"
v-else-if="filter.fieldtype === 'Link'"
:value="filter.value"
:doctype="filter.options"
:placeholder="filter.label"
@change="(data) => updateFilter(filter, data)"
/>
<component
v-else-if="['Date', 'Datetime'].includes(filter.type)"
v-else-if="['Date', 'Datetime'].includes(filter.fieldtype)"
class="border-none"
:is="filter.type === 'Date' ? DatePicker : DateTimePicker"
:is="filter.fieldtype === 'Date' ? DatePicker : DateTimePicker"
:value="filter.value"
@change="(v) => updateFilter(filter, v)"
:placeholder="filter.label"

View File

@ -65,7 +65,7 @@
>
<div
v-for="filter in quickFilterList"
:key="filter.name"
:key="filter.fieldname"
class="m-1 min-w-36"
>
<QuickFilterField
@ -595,13 +595,13 @@ const quickFilterList = computed(() => {
}
filters.forEach((filter) => {
filter['value'] = filter.type == 'Check' ? false : ''
if (list.value.params?.filters[filter.name]) {
let value = list.value.params.filters[filter.name]
filter['value'] = filter.fieldtype == 'Check' ? false : ''
if (list.value.params?.filters[filter.fieldname]) {
let value = list.value.params.filters[filter.fieldname]
if (Array.isArray(value)) {
if (
(['Check', 'Select', 'Link', 'Date', 'Datetime'].includes(
filter.type,
filter.fieldtype,
) &&
value[0]?.toLowerCase() == 'like') ||
value[0]?.toLowerCase() != 'like'
@ -626,9 +626,11 @@ const quickFilters = createResource({
function applyQuickFilter(filter, value) {
let filters = { ...list.value.params.filters }
let field = filter.name
let field = filter.fieldname
if (value) {
if (['Check', 'Select', 'Link', 'Date', 'Datetime'].includes(filter.type)) {
if (
['Check', 'Select', 'Link', 'Date', 'Datetime'].includes(filter.fieldtype)
) {
filters[field] = value
} else {
filters[field] = ['LIKE', `%${value}%`]

View File

@ -14,22 +14,28 @@
>
<div class="w-full">
<button
class="flex h-7 w-full items-center justify-between gap-2 rounded bg-surface-gray-2 px-2 py-1 transition-colors hover:bg-surface-gray-3 border border-transparent focus:border-outline-gray-4 focus:outline-none focus:ring-2 focus:ring-outline-gray-3"
class="relative flex h-7 w-full items-center justify-between gap-2 rounded bg-surface-gray-2 px-2 py-1 transition-colors hover:bg-surface-gray-3 border border-transparent focus:border-outline-gray-4 focus:outline-none focus:ring-2 focus:ring-outline-gray-3"
:class="inputClasses"
@click="() => togglePopover()"
>
<div class="flex text-base leading-5 items-center truncate">
<div
v-if="selectedValue"
class="flex text-base leading-5 items-center truncate"
>
<slot name="prefix" />
<span v-if="selectedValue" class="truncate">
<span class="truncate">
{{ displayValue(selectedValue) }}
</span>
<span v-else class="text-ink-gray-4 truncate">
{{ placeholder || '' }}
</span>
</div>
<div
v-else
class="absolute text-ink-gray-4 text-left truncate w-full pr-7"
>
{{ placeholder || '' }}
</div>
<FeatherIcon
name="chevron-down"
class="h-4 w-4 text-ink-gray-5"
class="absolute h-4 w-4 text-ink-gray-5 right-2"
aria-hidden="true"
/>
</button>