diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index f89d46220b..63710c959f 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -480,6 +480,8 @@ frappe.ui.form.Grid = Class.extend({ }, setup_visible_columns: function() { + if (this.visible_columns) return; + var total_colsize = 1, fields = this.editable_fields || this.docfields; diff --git a/frappe/public/js/legacy/form.js b/frappe/public/js/legacy/form.js index 081bb8fec6..d593667412 100644 --- a/frappe/public/js/legacy/form.js +++ b/frappe/public/js/legacy/form.js @@ -197,7 +197,7 @@ _f.Frm.prototype.watch_model_updates = function() { if(doc.name===me.docname) { if ((value==='' || value===null) && !doc[value]) { // both the incoming and outgoing values are falsy - // the texteditor, summernote, changes nulls to empty strings on render, + // the texteditor, summernote, changes nulls to empty strings on render, // so ignore those changes } else { me.dirty(); @@ -385,6 +385,8 @@ _f.Frm.prototype.refresh = function(docname) { frappe.utils.scroll_to(0); this.hide_print(); } + // reset visible columns, since column headings can change in different docs + this.grids.forEach(grid_obj => grid_obj.grid.visible_columns = null); frappe.ui.form.close_grid_form(); this.docname = docname; }