pub struct Form { /* private fields */ }Expand description
What a form asks for and what writes it.
action is the name the write is reached under, which the repository reads
back in ViewLogic::act. args are the values the
form carries rather than asks for: a form built per row knows which row it
belongs to, and says so here rather than making the reader pick the row
again.
Implementations§
Source§impl Form
impl Form
Sourcepub fn new(action: impl Into<String>) -> Self
pub fn new(action: impl Into<String>) -> Self
Examples found in repository?
762 fn loan_form(title: &str) -> Form {
763 Form::new("lend-a-book")
764 .arg("title", title)
765 .field(Field::text("borrower", "Borrower"))
766 .field(Field::number("days", "Days out").default(21))
767 .field(Field::date("from", "Date lent").default(civil_from_days(today())))
768 .field(
769 Field::one_of(
770 "condition",
771 "Condition it left in",
772 ["As new", "Good", "Worn"],
773 )
774 .default("Good"),
775 )
776 }Sourcepub fn arg(self, key: impl Into<String>, value: impl Display) -> Self
pub fn arg(self, key: impl Into<String>, value: impl Display) -> Self
One argument the form carries, which is how a form built per row says which row it belongs to.
It is added to the view’s own arguments on the way to the action, and it is what the action is checked against: a write is refused unless a button on the page offers that action with exactly these arguments. A key the view itself declares as a parameter is refused, since a form that answered one of the page’s own questions would be checked against a different page than the one it is on.
Examples found in repository?
762 fn loan_form(title: &str) -> Form {
763 Form::new("lend-a-book")
764 .arg("title", title)
765 .field(Field::text("borrower", "Borrower"))
766 .field(Field::number("days", "Days out").default(21))
767 .field(Field::date("from", "Date lent").default(civil_from_days(today())))
768 .field(
769 Field::one_of(
770 "condition",
771 "Condition it left in",
772 ["As new", "Good", "Worn"],
773 )
774 .default("Good"),
775 )
776 }Sourcepub fn field(self, field: Field) -> Self
pub fn field(self, field: Field) -> Self
Examples found in repository?
762 fn loan_form(title: &str) -> Form {
763 Form::new("lend-a-book")
764 .arg("title", title)
765 .field(Field::text("borrower", "Borrower"))
766 .field(Field::number("days", "Days out").default(21))
767 .field(Field::date("from", "Date lent").default(civil_from_days(today())))
768 .field(
769 Field::one_of(
770 "condition",
771 "Condition it left in",
772 ["As new", "Good", "Worn"],
773 )
774 .default("Good"),
775 )
776 }