From f7c4288aeebb40e8f9ccb54aba9accaa1ec95526 Mon Sep 17 00:00:00 2001 From: Tom Finke Date: Tue, 3 Jan 2023 10:22:28 +0000 Subject: [PATCH 1/2] fix: Child Table in Dialog: sortable #19468 --- frappe/public/js/frappe/form/grid.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 3d81744f59..052f197dc1 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -407,7 +407,7 @@ export default class Grid { this.toggle_checkboxes(this.display_status !== "Read"); // sortable - if (this.frm && this.is_sortable() && !this.sortable_setup_done) { + if (this.is_sortable() && !this.sortable_setup_done) { this.make_sortable($rows); this.sortable_setup_done = true; } @@ -553,17 +553,17 @@ export default class Grid { let idx = $(event.item).closest(".grid-row").attr("data-idx") - 1; let doc = this.data[idx % this.grid_pagination.page_length]; this.renumber_based_on_dom(); - this.frm.script_manager.trigger( + this.frm && this.frm.script_manager.trigger( this.df.fieldname + "_move", this.df.options, doc.name ); this.refresh(); - this.frm.dirty(); + this.frm && this.frm.dirty(); }, }); - $(this.frm.wrapper).trigger("grid-make-sortable", [this.frm]); + this.frm && $(this.frm.wrapper).trigger("grid-make-sortable", [this.frm]); } get_data(filter_field) { @@ -825,11 +825,11 @@ export default class Grid { let $item = $(item); let index = (this.grid_pagination.page_index - 1) * this.grid_pagination.page_length + i; - let d = locals[this.doctype][$item.attr("data-name")]; + let d = this.grid_rows_by_docname[$item.attr("data-name")].doc; d.idx = index + 1; $item.attr("data-idx", d.idx); - this.frm.doc[this.df.fieldname][index] = d; + if(this.frm) this.frm.doc[this.df.fieldname][index] = d; this.data[index] = d; this.grid_rows[index] = this.grid_rows_by_docname[d.name]; }); From 5705da52df16f2e0804ad65d24dc9ae6cbf04360 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 5 Jan 2023 13:36:45 +0530 Subject: [PATCH 2/2] chore: linter fix --- frappe/public/js/frappe/form/grid.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 052f197dc1..e80a07f8ac 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -553,11 +553,12 @@ export default class Grid { let idx = $(event.item).closest(".grid-row").attr("data-idx") - 1; let doc = this.data[idx % this.grid_pagination.page_length]; this.renumber_based_on_dom(); - this.frm && this.frm.script_manager.trigger( - this.df.fieldname + "_move", - this.df.options, - doc.name - ); + this.frm && + this.frm.script_manager.trigger( + this.df.fieldname + "_move", + this.df.options, + doc.name + ); this.refresh(); this.frm && this.frm.dirty(); }, @@ -829,7 +830,7 @@ export default class Grid { d.idx = index + 1; $item.attr("data-idx", d.idx); - if(this.frm) this.frm.doc[this.df.fieldname][index] = d; + if (this.frm) this.frm.doc[this.df.fieldname][index] = d; this.data[index] = d; this.grid_rows[index] = this.grid_rows_by_docname[d.name]; });