fix: cache user settings
This commit is contained in:
parent
625b8cc4fe
commit
07f1f4887f
@ -4,7 +4,10 @@
|
|||||||
{{ __(label) }}
|
{{ __(label) }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded border border-outline-gray-modals">
|
<div
|
||||||
|
v-if="fields?.length"
|
||||||
|
class="rounded border border-outline-gray-modals"
|
||||||
|
>
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div
|
<div
|
||||||
class="grid-header flex items-center rounded-t-[7px] bg-surface-gray-2 text-ink-gray-5 truncate"
|
class="grid-header flex items-center rounded-t-[7px] bg-surface-gray-2 text-ink-gray-5 truncate"
|
||||||
@ -28,9 +31,8 @@
|
|||||||
:style="{ gridTemplateColumns: gridTemplateColumns }"
|
:style="{ gridTemplateColumns: gridTemplateColumns }"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="fields?.length"
|
|
||||||
class="border-r border-outline-gray-2 p-2 truncate"
|
|
||||||
v-for="field in fields"
|
v-for="field in fields"
|
||||||
|
class="border-r border-outline-gray-2 p-2 truncate"
|
||||||
:key="field.name"
|
:key="field.name"
|
||||||
:title="field.label"
|
:title="field.label"
|
||||||
>
|
>
|
||||||
@ -73,7 +75,6 @@
|
|||||||
:style="{ gridTemplateColumns: gridTemplateColumns }"
|
:style="{ gridTemplateColumns: gridTemplateColumns }"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="fields?.length"
|
|
||||||
class="border-r border-outline-gray-modals h-full"
|
class="border-r border-outline-gray-modals h-full"
|
||||||
v-for="field in fields"
|
v-for="field in fields"
|
||||||
:key="field.name"
|
:key="field.name"
|
||||||
@ -242,7 +243,7 @@ const showGridFieldsEditorModal = ref(false)
|
|||||||
const showGridRowFieldsModal = ref(false)
|
const showGridRowFieldsModal = ref(false)
|
||||||
|
|
||||||
const fields = computed(() => {
|
const fields = computed(() => {
|
||||||
let gridSettings = getGridSettings()
|
let gridSettings = getGridSettings(props.parentDoctype)
|
||||||
let gridFields = getFields()
|
let gridFields = getFields()
|
||||||
if (gridSettings.length) {
|
if (gridSettings.length) {
|
||||||
let d = gridSettings.map((gs) =>
|
let d = gridSettings.map((gs) =>
|
||||||
@ -266,7 +267,7 @@ function getFieldObj(field) {
|
|||||||
const gridTemplateColumns = computed(() => {
|
const gridTemplateColumns = computed(() => {
|
||||||
if (!fields.value?.length) return '1fr'
|
if (!fields.value?.length) return '1fr'
|
||||||
// for the checkbox & sr no. columns
|
// for the checkbox & sr no. columns
|
||||||
let gridSettings = getGridSettings()
|
let gridSettings = getGridSettings(props.parentDoctype)
|
||||||
if (gridSettings.length) {
|
if (gridSettings.length) {
|
||||||
return gridSettings.map((gs) => `minmax(0, ${gs.columns || 2}fr)`).join(' ')
|
return gridSettings.map((gs) => `minmax(0, ${gs.columns || 2}fr)`).join(' ')
|
||||||
}
|
}
|
||||||
|
|||||||
@ -123,7 +123,7 @@ const dirty = computed(() => {
|
|||||||
|
|
||||||
const oldFields = computed(() => {
|
const oldFields = computed(() => {
|
||||||
let _fields = getFields()
|
let _fields = getFields()
|
||||||
let gridSettings = getGridSettings()
|
let gridSettings = getGridSettings(props.parentDoctype)
|
||||||
|
|
||||||
if (gridSettings.length) {
|
if (gridSettings.length) {
|
||||||
return gridSettings.map((field) => {
|
return gridSettings.map((field) => {
|
||||||
@ -161,7 +161,7 @@ function removeField(field) {
|
|||||||
function update() {
|
function update() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
|
|
||||||
let updateFields = fields.value.map((field, idx) => {
|
let updateFields = fields.value.map((field) => {
|
||||||
return {
|
return {
|
||||||
fieldname: field.fieldname,
|
fieldname: field.fieldname,
|
||||||
columns: field.columns,
|
columns: field.columns,
|
||||||
@ -176,7 +176,7 @@ function update() {
|
|||||||
saveUserSettings(props.parentDoctype, 'GridView', updateFields, () => {
|
saveUserSettings(props.parentDoctype, 'GridView', updateFields, () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
show.value = false
|
show.value = false
|
||||||
userSettings.value['GridView'][props.doctype] = updateFields
|
userSettings[props.parentDoctype]['GridView'][props.doctype] = updateFields
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { formatCurrency, formatNumber } from '@/utils/numberFormat.js'
|
|||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
|
|
||||||
const doctypeMeta = reactive({})
|
const doctypeMeta = reactive({})
|
||||||
const userSettings = ref({})
|
const userSettings = reactive({})
|
||||||
|
|
||||||
export function getMeta(doctype) {
|
export function getMeta(doctype) {
|
||||||
const meta = createResource({
|
const meta = createResource({
|
||||||
@ -20,7 +20,7 @@ export function getMeta(doctype) {
|
|||||||
doctypeMeta[dtMeta.name] = dtMeta
|
doctypeMeta[dtMeta.name] = dtMeta
|
||||||
}
|
}
|
||||||
|
|
||||||
userSettings.value = JSON.parse(res.user_settings)
|
userSettings[doctype] = JSON.parse(res.user_settings)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -55,10 +55,10 @@ export function getMeta(doctype) {
|
|||||||
return formatCurrency(doc[fieldname], '', currency, precision)
|
return formatCurrency(doc[fieldname], '', currency, precision)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGridSettings(dt = null) {
|
function getGridSettings(parentDoctype, dt = null) {
|
||||||
dt = dt || doctype
|
dt = dt || doctype
|
||||||
if (!userSettings.value['GridView']?.[doctype]) return {}
|
if (!userSettings[parentDoctype]['GridView']?.[doctype]) return {}
|
||||||
return userSettings.value['GridView'][doctype]
|
return userSettings[parentDoctype]['GridView'][doctype]
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFields(dt = null) {
|
function getFields(dt = null) {
|
||||||
@ -77,7 +77,7 @@ export function getMeta(doctype) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function saveUserSettings(parentDoctype, key, value, callback) {
|
function saveUserSettings(parentDoctype, key, value, callback) {
|
||||||
let oldUserSettings = userSettings.value
|
let oldUserSettings = userSettings[parentDoctype]
|
||||||
let newUserSettings = JSON.parse(JSON.stringify(oldUserSettings))
|
let newUserSettings = JSON.parse(JSON.stringify(oldUserSettings))
|
||||||
|
|
||||||
newUserSettings[key][doctype] = value
|
newUserSettings[key][doctype] = value
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user