detail.ui.js 3.82 KB
[
    {
        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'
                    }
                ]
            }
        ]
    }
]