Merge pull request #36904 from ShrihariMahabal/fix-configure-columns
fix: preserve column width and sticky settings in grid configure dialog
This commit is contained in:
commit
353901b023
1 changed files with 23 additions and 9 deletions
|
|
@ -502,16 +502,29 @@ export default class GridRow {
|
|||
|
||||
d.set_primary_action(__("Add"), () => {
|
||||
let selected_fields = d.get_values().fields;
|
||||
const existing_settings = {};
|
||||
this.selected_columns_for_grid.forEach((col) => {
|
||||
existing_settings[col.fieldname] = col;
|
||||
});
|
||||
|
||||
this.selected_columns_for_grid = [];
|
||||
if (selected_fields) {
|
||||
selected_fields.forEach((selected_column) => {
|
||||
let docfield = frappe.meta.get_docfield(this.grid.doctype, selected_column);
|
||||
this.grid.update_default_colsize(docfield);
|
||||
if (existing_settings[selected_column]) {
|
||||
this.selected_columns_for_grid.push(existing_settings[selected_column]);
|
||||
} else {
|
||||
let docfield = frappe.meta.get_docfield(
|
||||
this.grid.doctype,
|
||||
selected_column
|
||||
);
|
||||
this.grid.update_default_colsize(docfield);
|
||||
|
||||
this.selected_columns_for_grid.push({
|
||||
fieldname: selected_column,
|
||||
columns: docfield.columns || docfield.colsize,
|
||||
});
|
||||
this.selected_columns_for_grid.push({
|
||||
fieldname: selected_column,
|
||||
columns: docfield.columns || docfield.colsize,
|
||||
sticky: docfield.sticky,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.render_selected_columns();
|
||||
|
|
@ -596,14 +609,14 @@ export default class GridRow {
|
|||
<div class='col-3' style='padding-top: 2px; margin-top:-2px;' title='${__("Columns")}'>
|
||||
<input class='form-control column-width my-1 input-xs text-right'
|
||||
style='height: 24px; max-width: 80px; background: var(--bg-color);'
|
||||
value='${docfield.columns || cint(d.columns)}'
|
||||
value='${cint(d.columns) || docfield.columns}'
|
||||
data-fieldname='${docfield.fieldname}' style='background-color: var(--modal-bg); display: inline'>
|
||||
</div>
|
||||
<div class='col-2' title='${__("Sticky")}'>
|
||||
<input type='checkbox' class='form-control sticky-column'
|
||||
style='margin-top: 8px'
|
||||
${docfield.sticky ? "checked" : ""}
|
||||
data-fieldname='${docfield.fieldname}' style='background-color: var(--modal-bg); display: inline'>
|
||||
${d.sticky ? "checked" : ""}
|
||||
data-fieldname='${d.fieldname}' style='background-color: var(--modal-bg); display: inline'>
|
||||
</div>
|
||||
<div class='col-1' style='padding-top: 3px;'>
|
||||
<a class='text-muted remove-field' data-fieldname='${docfield.fieldname}'>
|
||||
|
|
@ -642,6 +655,7 @@ export default class GridRow {
|
|||
this.selected_columns_for_grid.push({
|
||||
fieldname: $(columns[idx]).attr("data-fieldname"),
|
||||
columns: cint($(columns[idx]).find(".column-width").attr("value")),
|
||||
sticky: $(columns[idx]).find(".sticky-column").is(":checked") ? 1 : 0,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue