[ { name: "basic_info_area", type: "ScrollArea", property: { widget_resizable: true, frame_shape: 'NoFrame' }, pack: { label: self.ttr('Basic Info') }, child: [ { name: 'formlayout', type: 'FormGridLayout', property: { // label_alignment: 'AlignTop | AlignRight', // horizontal_spacing: 10, // vertical_spacing: 10, // margin: 10, columns: 2 }, child: [ { name: "id", type: "LineEdit", title: self.ttr(""), pack: {column_span: 2}, initCallback: function(obj,value,self) { obj.setVisible(false) } }, { name: "username", type: "LineEdit", title: self.ttr("UserName"), validate: function (obj, val, title, moment, self) { if (val.trim() == '') { return [title + self.ttr(" can not be null"), 'Error']; } else if (!val.match(new RegExp('^[A-Za-z0-9_]+$'))) { return [title + self.ttr(" can only contain [A-Za-z0-9]!"), 'Error']; } }, }, { name: "fullname", type: "LineEdit", title: self.ttr("FullName"), validate: function (obj, val, title, moment, self) { if (val.trim() == '') { return [title + self.ttr(" can not be null"), 'Error']; } else if (!val.match(new RegExp('^[A-Za-z0-9_]+$'))) { return [title + self.ttr(" can only contain [A-Za-z0-9]!"), 'Error']; } }, }, { name: "status", type: "ComboBox", title: self.ttr("Status"), property: { item_list: TOPENM.enumList("tpm-machine-maintenance-plan-status").toComboList() }, validate: 'NOTNULL', }, { name: "attr_data.age", type: "LineEdit", title: self.ttr("Age"), validate: function (obj, val, title, moment, self) { if (!val.match(new RegExp('^[0-9_]+$'))) { return [title + self.ttr(" can only contain [0-9]!"), 'Error']; } else if (parseInt(val) >= 100 || parseInt(val) <= 0) { return [title + self.ttr("Are you sure you are a hundred years old?"), 'Error']; } }, }, { name: "attr_data.gender", type: "ComboBox", title: self.ttr("Gender"), property: { item_list: TOPENM.enumList("tpm-machine-maintenance-plan-gender").toComboList() } }, { type: 'VBoxLayout' }, { type: 'Stretch' } ] } ] } ]