Merge pull request #380 from shariquerik/link-filter-in-link

feat: allow link filter to work in Link Field component
This commit is contained in:
Shariq Ansari 2024-09-27 20:56:20 +05:30 committed by GitHub
commit ecfadead22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 27 additions and 8 deletions

View File

@ -685,6 +685,7 @@ def get_fields(doctype: str, allow_all_fieldtypes: bool = False):
"depends_on": field.depends_on, "depends_on": field.depends_on,
"mandatory_depends_on": field.mandatory_depends_on, "mandatory_depends_on": field.mandatory_depends_on,
"read_only_depends_on": field.read_only_depends_on, "read_only_depends_on": field.read_only_depends_on,
"link_filters": field.get("link_filters"),
}) })
return _fields return _fields

View File

@ -69,6 +69,10 @@ const props = defineProps({
type: String, type: String,
required: true, required: true,
}, },
filters: {
type: Array,
default: () => [],
},
modelValue: { modelValue: {
type: String, type: String,
default: '', default: '',
@ -122,6 +126,7 @@ const options = createResource({
params: { params: {
txt: text.value, txt: text.value,
doctype: props.doctype, doctype: props.doctype,
filters: props.filters,
}, },
transform: (data) => { transform: (data) => {
let allData = data.map((option) => { let allData = data.map((option) => {
@ -152,6 +157,7 @@ function reload(val) {
params: { params: {
txt: val, txt: val,
doctype: props.doctype, doctype: props.doctype,
filters: props.filters,
}, },
}) })
options.reload() options.reload()

View File

@ -89,6 +89,7 @@
class="form-control flex-1" class="form-control flex-1"
:value="data[field.name]" :value="data[field.name]"
:doctype="field.options" :doctype="field.options"
:filters="field.filters"
@change="(v) => (data[field.name] = v)" @change="(v) => (data[field.name] = v)"
:placeholder="__(field.placeholder || field.label)" :placeholder="__(field.placeholder || field.label)"
:onCreate="field.create" :onCreate="field.create"
@ -110,6 +111,7 @@
class="form-control" class="form-control"
:value="getUser(data[field.name]).full_name" :value="getUser(data[field.name]).full_name"
:doctype="field.options" :doctype="field.options"
:filters="field.filters"
@change="(v) => (data[field.name] = v)" @change="(v) => (data[field.name] = v)"
:placeholder="__(field.placeholder || field.label)" :placeholder="__(field.placeholder || field.label)"
:hideMe="true" :hideMe="true"

View File

@ -65,6 +65,7 @@
class="form-control" class="form-control"
:value="data[field.name] && getUser(data[field.name]).full_name" :value="data[field.name] && getUser(data[field.name]).full_name"
doctype="User" doctype="User"
:filters="field.filters"
@change="(data) => emit('update', field.name, data)" @change="(data) => emit('update', field.name, data)"
:placeholder="'Select' + ' ' + field.label + '...'" :placeholder="'Select' + ' ' + field.label + '...'"
:hideMe="true" :hideMe="true"
@ -88,6 +89,7 @@
class="form-control select-text" class="form-control select-text"
:value="data[field.name]" :value="data[field.name]"
:doctype="field.doctype" :doctype="field.doctype"
:filters="field.filters"
:placeholder="field.placeholder" :placeholder="field.placeholder"
@change="(data) => emit('update', field.name, data)" @change="(data) => emit('update', field.name, data)"
:onCreate="field.create" :onCreate="field.create"
@ -144,6 +146,7 @@ const _fields = computed(() => {
if (df?.depends_on) evaluate_depends_on(df.depends_on, field) if (df?.depends_on) evaluate_depends_on(df.depends_on, field)
all_fields.push({ all_fields.push({
...field, ...field,
filters: df.link_filters && JSON.parse(df.link_filters),
placeholder: field.placeholder || field.label, placeholder: field.placeholder || field.label,
}) })
}) })

View File

@ -122,6 +122,7 @@ const sections = computed(() => {
} else { } else {
_sections[_sections.length - 1].fields.push({ _sections[_sections.length - 1].fields.push({
...field, ...field,
filters: field.link_filters && JSON.parse(field.link_filters),
display_via_depends_on: evaluate_depends_on_value( display_via_depends_on: evaluate_depends_on_value(
field.depends_on, field.depends_on,
data.doc, data.doc,

View File

@ -376,10 +376,13 @@ const deal = createResource({
params: { name: props.dealId }, params: { name: props.dealId },
cache: ['deal', props.dealId], cache: ['deal', props.dealId],
onSuccess: async (data) => { onSuccess: async (data) => {
organization.update({ if (data.organization) {
params: { doctype: 'CRM Organization', name: data.organization }, organization.update({
}) params: { doctype: 'CRM Organization', name: data.organization },
organization.fetch() })
organization.fetch()
}
let obj = { let obj = {
doc: data, doc: data,
$dialog, $dialog,

View File

@ -309,10 +309,13 @@ const deal = createResource({
params: { name: props.dealId }, params: { name: props.dealId },
cache: ['deal', props.dealId], cache: ['deal', props.dealId],
onSuccess: async (data) => { onSuccess: async (data) => {
organization.update({ if (data.organization) {
params: { doctype: 'CRM Organization', name: data.organization }, organization.update({
}) params: { doctype: 'CRM Organization', name: data.organization },
organization.fetch() })
organization.fetch()
}
let obj = { let obj = {
doc: data, doc: data,
$dialog, $dialog,