diff --git a/frappe/public/js/frappe/form/controls/data.js b/frappe/public/js/frappe/form/controls/data.js
index 772c8fb804..977789fc1b 100644
--- a/frappe/public/js/frappe/form/controls/data.js
+++ b/frappe/public/js/frappe/form/controls/data.js
@@ -1,14 +1,16 @@
frappe.provide('frappe.phone_call');
frappe.ui.form.ControlData = class ControlData extends frappe.ui.form.ControlInput {
- html_element = "input";
- input_type = "text";
- trigger_change_on_input_event = true;
+ static html_element = "input";
+ static input_type = "text";
+ static trigger_change_on_input_event = true;
make_input() {
if(this.$input) return;
- this.$input = $("<"+ this.html_element +">")
- .attr("type", this.input_type)
+ let { html_element, input_type } = this.constructor;
+
+ this.$input = $("<"+ html_element +">")
+ .attr("type", input_type)
.attr("autocomplete", "off")
.addClass("input-with-feedback form-control")
.prependTo(this.input_area);
@@ -120,7 +122,7 @@ frappe.ui.form.ControlData = class ControlData extends frappe.ui.form.ControlInp
}
};
this.$input.on("change", change_handler);
- if (this.trigger_change_on_input_event) {
+ if (this.constructor.trigger_change_on_input_event) {
// debounce to avoid repeated validations on value change
this.$input.on("input", frappe.utils.debounce(change_handler, 500));
}
diff --git a/frappe/public/js/frappe/form/controls/date.js b/frappe/public/js/frappe/form/controls/date.js
index d589a7da56..1f5f6f5f25 100644
--- a/frappe/public/js/frappe/form/controls/date.js
+++ b/frappe/public/js/frappe/form/controls/date.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlDate = class ControlDate extends frappe.ui.form.ControlData {
- trigger_change_on_input_event = false
+ static trigger_change_on_input_event = false
make_input() {
super.make_input();
this.make_picker();
diff --git a/frappe/public/js/frappe/form/controls/geolocation.js b/frappe/public/js/frappe/form/controls/geolocation.js
index 9c9729946b..080a1cbb48 100644
--- a/frappe/public/js/frappe/form/controls/geolocation.js
+++ b/frappe/public/js/frappe/form/controls/geolocation.js
@@ -1,7 +1,7 @@
frappe.provide('frappe.utils.utils');
frappe.ui.form.ControlGeolocation = class ControlGeolocation extends frappe.ui.form.ControlData {
- horizontal = false
+ static horizontal = false
make_wrapper() {
// Create the elements for map area
diff --git a/frappe/public/js/frappe/form/controls/html_editor.js b/frappe/public/js/frappe/form/controls/html_editor.js
index 75a6774330..7d43112e6a 100644
--- a/frappe/public/js/frappe/form/controls/html_editor.js
+++ b/frappe/public/js/frappe/form/controls/html_editor.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlHTMLEditor = class ControlHTMLEditor extends frappe.ui.form.ControlMarkdownEditor {
- editor_class = 'html';
+ static editor_class = 'html';
set_language() {
this.df.options = 'HTML';
super.set_language();
diff --git a/frappe/public/js/frappe/form/controls/int.js b/frappe/public/js/frappe/form/controls/int.js
index d28282d97e..12652bf86e 100644
--- a/frappe/public/js/frappe/form/controls/int.js
+++ b/frappe/public/js/frappe/form/controls/int.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlInt = class ControlInt extends frappe.ui.form.ControlData {
- trigger_change_on_input_event = false
+ static trigger_change_on_input_event = false
make () {
super.make();
// $(this.label_area).addClass('pull-right');
diff --git a/frappe/public/js/frappe/form/controls/link.js b/frappe/public/js/frappe/form/controls/link.js
index 582d2782fe..43bd7443ab 100644
--- a/frappe/public/js/frappe/form/controls/link.js
+++ b/frappe/public/js/frappe/form/controls/link.js
@@ -9,7 +9,7 @@ import Awesomplete from 'awesomplete';
frappe.ui.form.recent_link_validations = {};
frappe.ui.form.ControlLink = class ControlLink extends frappe.ui.form.ControlData {
- trigger_change_on_input_event = false
+ static trigger_change_on_input_event = false
make_input() {
var me = this;
$(`
diff --git a/frappe/public/js/frappe/form/controls/markdown_editor.js b/frappe/public/js/frappe/form/controls/markdown_editor.js
index 0756c78134..e768dcee08 100644
--- a/frappe/public/js/frappe/form/controls/markdown_editor.js
+++ b/frappe/public/js/frappe/form/controls/markdown_editor.js
@@ -1,10 +1,10 @@
frappe.ui.form.ControlMarkdownEditor = class ControlMarkdownEditor extends frappe.ui.form.ControlCode {
- editor_class = 'markdown'
+ static editor_class = 'markdown'
make_ace_editor() {
super.make_ace_editor();
this.ace_editor_target.wrap(`
`);
- this.markdown_container = this.$input_wrapper.find(`.${this.editor_class}-container`);
+ this.markdown_container = this.$input_wrapper.find(`.${this.constructor.editor_class}-container`);
this.editor.getSession().setUseWrapMode(true);
diff --git a/frappe/public/js/frappe/form/controls/multiselect_list.js b/frappe/public/js/frappe/form/controls/multiselect_list.js
index 716134d3e8..8c79071762 100644
--- a/frappe/public/js/frappe/form/controls/multiselect_list.js
+++ b/frappe/public/js/frappe/form/controls/multiselect_list.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends frappe.ui.form.ControlData {
- trigger_change_on_input_event = false
+ static trigger_change_on_input_event = false
make_input() {
let template = `
diff --git a/frappe/public/js/frappe/form/controls/password.js b/frappe/public/js/frappe/form/controls/password.js
index cc1a254f93..e633af6da4 100644
--- a/frappe/public/js/frappe/form/controls/password.js
+++ b/frappe/public/js/frappe/form/controls/password.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlPassword = class ControlPassword extends frappe.ui.form.ControlData {
- input_type = "password"
+ static input_type = "password"
make() {
super.make();
}
diff --git a/frappe/public/js/frappe/form/controls/select.js b/frappe/public/js/frappe/form/controls/select.js
index 05a64dfc0b..042d86814d 100644
--- a/frappe/public/js/frappe/form/controls/select.js
+++ b/frappe/public/js/frappe/form/controls/select.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.ControlData {
- html_element = 'select';
+ static html_element = 'select';
make_input() {
super.make_input();
diff --git a/frappe/public/js/frappe/form/controls/signature.js b/frappe/public/js/frappe/form/controls/signature.js
index 5d2816b160..bcbdfa0d27 100644
--- a/frappe/public/js/frappe/form/controls/signature.js
+++ b/frappe/public/js/frappe/form/controls/signature.js
@@ -1,8 +1,8 @@
frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.ControlData {
- saving = false
- loading = false
make() {
var me = this;
+ this.saving = false;
+ this.loading = false;
super.make();
this.load_lib().then(() => {
diff --git a/frappe/public/js/frappe/form/controls/text.js b/frappe/public/js/frappe/form/controls/text.js
index d67833e528..3156df6d1c 100644
--- a/frappe/public/js/frappe/form/controls/text.js
+++ b/frappe/public/js/frappe/form/controls/text.js
@@ -1,6 +1,6 @@
frappe.ui.form.ControlText = class ControlText extends frappe.ui.form.ControlData {
- html_element = "textarea"
- horizontal = false
+ static html_element = "textarea"
+ static horizontal = false
make_wrapper() {
super.make_wrapper();
this.$wrapper.find(".like-disabled-input").addClass("for-description");