From bfb8ccb628895657fa982d059e2f107157080cf8 Mon Sep 17 00:00:00 2001 From: git-avc Date: Tue, 13 Jan 2026 23:01:16 +0100 Subject: [PATCH] feat: let's control alignment --- frappe/core/doctype/docfield/docfield.json | 8 ++++++++ frappe/public/js/frappe/form/controls/base_input.js | 8 +++++++- frappe/public/js/frappe/form/controls/data.js | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/docfield/docfield.json b/frappe/core/doctype/docfield/docfield.json index b2c1b0d262..b089fce2c2 100644 --- a/frappe/core/doctype/docfield/docfield.json +++ b/frappe/core/doctype/docfield/docfield.json @@ -72,6 +72,7 @@ "mandatory_depends_on", "read_only_depends_on", "display", + "alignment", "print_width", "width", "max_height", @@ -475,6 +476,13 @@ "max_height": "3rem", "options": "JS" }, + { + "depends_on": "eval:in_list([\"Data\", \"Int\", \"Float\"], doc.fieldtype)", + "fieldname": "alignment", + "fieldtype": "Select", + "label": "Alignment", + "options": "\nLeft\nCenter\nRight" + }, { "fieldname": "column_break_38", "fieldtype": "Column Break" diff --git a/frappe/public/js/frappe/form/controls/base_input.js b/frappe/public/js/frappe/form/controls/base_input.js index beab7e96bd..bf8d2b0e32 100644 --- a/frappe/public/js/frappe/form/controls/base_input.js +++ b/frappe/public/js/frappe/form/controls/base_input.js @@ -165,7 +165,13 @@ frappe.ui.form.ControlInput = class ControlInput extends frappe.ui.form.Control let doc = this.doc || (this.frm && this.frm.doc); let display_value = frappe.format(value, this.df, { no_icon: true, inline: true }, doc); // This is used to display formatted output AND showing values in read only fields - this.disp_area && $(this.disp_area).html(display_value); + if (this.disp_area) { + $(this.disp_area).html(display_value); + // Apply alignment for Data, Int, Float fields + if (this.df.alignment && ["Data", "Int", "Float"].includes(this.df.fieldtype)) { + $(this.disp_area).css("text-align", this.df.alignment.toLowerCase()); + } + } } set_label(label) { if (label) this.df.label = label; diff --git a/frappe/public/js/frappe/form/controls/data.js b/frappe/public/js/frappe/form/controls/data.js index 6b3a501eb8..78b22777cc 100644 --- a/frappe/public/js/frappe/form/controls/data.js +++ b/frappe/public/js/frappe/form/controls/data.js @@ -251,6 +251,10 @@ frappe.ui.form.ControlData = class ControlData extends frappe.ui.form.ControlInp if (this.df.input_class) { this.$input.addClass(this.df.input_class); } + // Apply alignment if specified + if (this.df.alignment) { + this.$input.css("text-align", this.df.alignment.toLowerCase()); + } } set_input(value) { this.last_value = this.value;