pub struct CustomField<F = ()>(/* private fields */);Expand description
A field an app’s Control renders: Field::custom and Field::toggle, or a record
form’s toggle (F is the form).
Implementations§
Source§impl<F> CustomField<F>
impl<F> CustomField<F>
pub fn label(self, label: impl Into<String>) -> Self
pub fn name(&self) -> &str
Sourcepub fn visible_when(
self,
watched: &impl Watched<F>,
values: impl IntoIterator<Item = impl Into<String>>,
) -> Self
pub fn visible_when( self, watched: &impl Watched<F>, values: impl IntoIterator<Item = impl Into<String>>, ) -> Self
Shows the field only while watched posts one of values: an option’s value, or
true for a checked toggle. A hidden field posts nothing, so an edit keeps its
stored value and a create takes its blank answer; a field with no blank answer
cannot be conditional.
let kind = Field::choice(Customer::fields().kind()).options(["person", "company"]);
let vat = Field::text(Customer::fields().vat_number()).visible_when(&kind, ["company"]);
Schema::new((kind, vat));Source§impl<F> CustomField<F>
impl<F> CustomField<F>
Sourcepub fn custom(self, control: impl Control + 'static) -> CustomField<F>
pub fn custom(self, control: impl Control + 'static) -> CustomField<F>
Renders the field with an app’s Control instead, as Field::custom does:
how a record form’s control takes a custom input. The field keeps its key and
label; the replaced control’s own modifiers, such as email, unique or
options, are dropped with it.
Source§impl<F> CustomField<F>
impl<F> CustomField<F>
Sourcepub fn choice(self) -> ChoiceField<F>
pub fn choice(self) -> ChoiceField<F>
Renders the field as a choice instead, as Field::choice does, ready for
options or relationship.
Unlike #[form(relationship = ..)], it leaves the record form’s derived table and
detail page as they are. The replaced control’s own modifiers are dropped with it.