Skip to content

CLI-generated form doesn't respect required property of the model #100

@e2jk

Description

@e2jk

Extract of a model called "object":

    props: {
        id: 'any',
        abbreviation: ['string', true, ''],
        description: ['string', false, ''],

Extract of the form generated by $ ampersand gen form client/models/object.js:

module.exports = FormView.extend({
    fields: function () {
        return [
            new InputView({
                label: "Abbreviation",
                name: "abbreviation",
                value: this.model.abbreviation || "",
                required: false,
                placeholder: "Abbreviation",
                parent: this
            }),
            new InputView({
                label: "Description",
                name: "description",
                value: this.model.description || "",
                required: false,
                placeholder: "Description",
                parent: this
            }),

Both InputView have required: false, while the first one should have been required: true.

The input template is located at lib/templates/input.js and contains the following:

 required: {{{ required }}},

Meaning that the value "false" is not hardcoded. Investigating further, the value of the required variable seems to be determined in lib/gen-types/form.js:

 required: !!definition.required,

That's about as far as I get with my current understanding of Ampersand.js. Does anyone have an idea what's going wrong in this case?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions