diff --git a/pagetop/src/base/component/form_element/hidden.rs b/pagetop/src/base/component/form_element/hidden.rs index 88584cdd..2d105bf0 100644 --- a/pagetop/src/base/component/form_element/hidden.rs +++ b/pagetop/src/base/component/form_element/hidden.rs @@ -6,7 +6,7 @@ pub_handle!(COMPONENT_HIDDEN); #[derive(Default)] pub struct Hidden { weight: isize, - name : IdentifierValue, + name : NameValue, value : AttributeValue, } @@ -80,7 +80,7 @@ impl Hidden { // Hidden GETTERS. - pub fn name(&self) -> &IdentifierValue { + pub fn name(&self) -> &NameValue { &self.name } diff --git a/pagetop/src/base/component/form_element/input.rs b/pagetop/src/base/component/form_element/input.rs index 1109ac3b..edbf171a 100644 --- a/pagetop/src/base/component/form_element/input.rs +++ b/pagetop/src/base/component/form_element/input.rs @@ -20,7 +20,7 @@ pub struct Input { renderable : Renderable, classes : Classes, input_type : InputType, - name : IdentifierValue, + name : NameValue, value : AttributeValue, label : AttributeValue, size : Option, @@ -369,7 +369,7 @@ impl Input { &self.input_type } - pub fn name(&self) -> &IdentifierValue { + pub fn name(&self) -> &NameValue { &self.name } diff --git a/pagetop/src/html.rs b/pagetop/src/html.rs index 3551caa2..6792820c 100644 --- a/pagetop/src/html.rs +++ b/pagetop/src/html.rs @@ -8,11 +8,14 @@ pub use assets::Assets; mod favicon; pub use favicon::Favicon; -mod attribute; -pub use attribute::AttributeValue; - mod identifier; pub use identifier::IdentifierValue; +mod name; +pub use name::NameValue; + +mod attribute; +pub use attribute::AttributeValue; + mod classes; pub use classes::{Classes, ClassesOp}; diff --git a/pagetop/src/html/name.rs b/pagetop/src/html/name.rs new file mode 100644 index 00000000..5f8f2195 --- /dev/null +++ b/pagetop/src/html/name.rs @@ -0,0 +1,32 @@ +#[derive(Default)] +pub struct NameValue(String); + +impl NameValue { + pub fn new() -> Self { + NameValue::default() + } + + // NameValue BUILDER. + + pub fn with_value(mut self, value: &str) -> Self { + self.alter_value(value); + self + } + + // NameValue ALTER. + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.0 = value.trim().replace(' ', "_"); + self + } + + // NameValue GETTERS. + + pub fn get(&self) -> Option { + if self.0.is_empty() { + None + } else { + Some(self.0.to_owned()) + } + } +}