diff --git a/frappe/public/js/frappe/form/controls/signature.js b/frappe/public/js/frappe/form/controls/signature.js
index b0b2a370ee..167695ac10 100644
--- a/frappe/public/js/frappe/form/controls/signature.js
+++ b/frappe/public/js/frappe/form/controls/signature.js
@@ -5,19 +5,26 @@ frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.
this.loading = false;
super.make();
- this.load_lib().then(() => {
- // make jSignature field
- this.body = $('
').appendTo(me.wrapper);
+ if (this.df.label) {
+ $(this.wrapper).find("label").text(__(this.df.label));
+ }
- if (this.body.is(":visible")) {
- this.make_pad();
- } else {
- $(document).on("frappe.ui.Dialog:shown", () => {
- this.make_pad();
- });
- }
+ frappe.require("/assets/frappe/js/lib/jSignature.min.js").then(() => {
+ // make jSignature field
+ me.body = $('').prependTo(me.$input_wrapper);
+
+ new ResizeObserver(() => me.make_pad()).observe(me.body[0]);
});
+
+ this.img_wrapper = $(`
+
+ ${frappe.utils.icon("restriction", "md")}
+
`).prependTo(this.$input_wrapper);
+ this.img = $("
")
+ .appendTo(this.img_wrapper)
+ .toggle(false);
}
+
make_pad() {
let width = this.body.width();
if (width > 0 && !this.$pad) {
@@ -25,9 +32,10 @@ frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.
.jSignature({
height: 200,
color: "var(--text-color)",
- width: this.body.width(),
+ decorColor: "black",
+ width,
lineWidth: 2,
- "background-color": "var(--control-bg)",
+ backgroundColor: "var(--control-bg)",
})
.on("change", this.on_save_sign.bind(this));
this.load_pad();
@@ -43,15 +51,8 @@ frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.
this.on_reset_sign();
return false;
});
+ this.refresh_input();
}
-
- this.img_wrapper = $(`
-
- ${frappe.utils.icon("restriction", "md")}
-
`).appendTo(this.wrapper);
- this.img = $("
")
- .appendTo(this.img_wrapper)
- .toggle(false);
}
refresh_input() {
// signature dom is not ready
@@ -131,11 +132,4 @@ frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.
this.set_my_value(base64_img);
this.set_image(this.get_value());
}
-
- load_lib() {
- if (!this.load_lib_promise) {
- this.load_lib_promise = frappe.require("/assets/frappe/js/lib/jSignature.min.js");
- }
- return this.load_lib_promise;
- }
};
diff --git a/frappe/public/scss/common/controls.scss b/frappe/public/scss/common/controls.scss
index 9685c66ed9..0f42f6af9d 100644
--- a/frappe/public/scss/common/controls.scss
+++ b/frappe/public/scss/common/controls.scss
@@ -423,12 +423,11 @@ textarea.form-control {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
position: relative;
- margin-top: -10px;
}
.signature-display {
- margin: 7px 0px;
background: var(--control-bg);
+ border-radius: var(--border-radius);
.attach-missing-image,
.attach-image-display {
cursor: pointer;