///
class TextField extends Backbone.View {
field: any;
basename: any;
value: string;
constructor(basename, field, value: string) {
super();
this.field = field;
this.basename = basename;
this.value = value;
}
createField() {
this.$el.addClass(["af-field", `af-field-${this.field.type}`]);
if (this.field.label) {
let label = jQuery("").html(this.field.label);
this.$el.append(label);
}
let inputDiv = jQuery("").addClass("af-field-input");
let input = jQuery("")
.attr("type", this.field.type || "text")
.attr("name", `${this.basename}[${this.field.name}]`)
.val(this.value)
.addClass(["widefat", `af-input-${this.field.name}`]);
if (this.field.type === "checkbox" || this.field.type === "radio") {
(this.field.default || this.value == "1") && input.attr("checked", "checked");
input.val(1);
} else {
if (!this.value || this.value === "") {
input.val(this.field.default || "");
}
}
inputDiv.append(input);
if (this.field.help) {
let small = jQuery("").html(this.field.help);
inputDiv.append(small);
}
this.$el.append(inputDiv);
}
render() {
this.createField();
return this;
}
}
export default TextField;