From 4fc615a9a40fe7d179b743e91fa81fc032061d77 Mon Sep 17 00:00:00 2001 From: Maharshi Patel Date: Tue, 18 Jun 2024 17:02:25 +0530 Subject: [PATCH] fix: table and refactor updating dynamic data - updated jinja template - updated dynamic data update to account for Image field - refactored formattedValue and updateDynamicData to be dry - fixed drag and drop bug in table control --- .../print_designer/jinja/macros/spantag.html | 4 + .../js/print_designer/PropertiesPanelState.js | 4 + .../base/BaseDynamicTextSpanTag.vue | 74 +-------- .../components/base/BaseTable.vue | 4 +- .../components/layout/AppDynamicTextModal.vue | 42 ++--- .../js/print_designer/store/MainStore.js | 3 +- .../print_designer/store/fetchMetaAndData.js | 59 -------- .../public/js/print_designer/utils.js | 143 +++++++++++++++--- 8 files changed, 157 insertions(+), 176 deletions(-) diff --git a/print_designer/print_designer/page/print_designer/jinja/macros/spantag.html b/print_designer/print_designer/page/print_designer/jinja/macros/spantag.html index 587c202..a96ffe9 100644 --- a/print_designer/print_designer/page/print_designer/jinja/macros/spantag.html +++ b/print_designer/print_designer/page/print_designer/jinja/macros/spantag.html @@ -15,7 +15,11 @@ {%- set value = _(frappe.db.get_value(field.doctype, doc[field.parentField], field.fieldname)) -%} {{ frappe.format(value, {'fieldtype': field.fieldtype, 'options': field.options}) }} {%- elif row -%} + {%- if field.fieldtype == "Image" and row.get(field['options']) -%} + + {%- else -%} {{row.get_formatted(field.fieldname)}} + {%- endif -%} {%- else -%} {{doc.get_formatted(field.fieldname)}} {%- endif -%} diff --git a/print_designer/public/js/print_designer/PropertiesPanelState.js b/print_designer/public/js/print_designer/PropertiesPanelState.js index f631fd7..c9e9b3d 100644 --- a/print_designer/public/js/print_designer/PropertiesPanelState.js +++ b/print_designer/public/js/print_designer/PropertiesPanelState.js @@ -704,6 +704,7 @@ export const createPropertiesPanel = () => { fieldtype: "Int", label: "No", options: undefined, + tableName: currentEL["table"], }; if (value && currentEL) { currentEL["table"] = MainStore.metaFields.find( @@ -755,6 +756,9 @@ export const createPropertiesPanel = () => { dlKeys[index] ], ]; + col.dynamicContent.forEach((dc) => { + dc.tableName = currentEL["table"].fieldname; + }); col.label = col.dynamicContent[0].label || col.dynamicContent[0].fieldname; diff --git a/print_designer/public/js/print_designer/components/base/BaseDynamicTextSpanTag.vue b/print_designer/public/js/print_designer/components/base/BaseDynamicTextSpanTag.vue index 1ce3d5a..5edd3b5 100644 --- a/print_designer/public/js/print_designer/components/base/BaseDynamicTextSpanTag.vue +++ b/print_designer/public/js/print_designer/components/base/BaseDynamicTextSpanTag.vue @@ -62,6 +62,7 @@