use super::*; use crate::view::organizational::*; #[derive(Clone, Debug, PartialEq)] pub struct Organizational { pub org: String, pub logo: Option, pub title: String, pub role: String, pub member: String, pub related: String, } impl VCardPropertyInputObject for Organizational { fn new() -> Self { Self { org: String::new(), logo: None, title: String::new(), role: String::new(), member: String::new(), related: String::new(), } } fn get_input_fields( &self, link: &yew::html::Scope, ) -> std::vec::Vec { let typ = String::from("text"); vec![ VCardPropertyInputField::Text { label: "Organisation".to_string(), id: Some("org".to_string()), placeholder: None, oninput: link.callback(|e: InputData| Msg::UpdateOrg(e.value)), value: self.org.clone(), typ: typ.clone(), }, VCardPropertyInputField::File { // TODO: Add Upload for logo label: "Logo".to_string(), name: "logo".to_string(), callback: link.callback(|file: Option| Msg::UpdateLogo(file)), value: self.logo.clone(), }, VCardPropertyInputField::Text { label: "Title".to_string(), id: Some("title".to_string()), placeholder: None, oninput: link.callback(|e: InputData| Msg::UpdateTitle(e.value)), value: self.title.clone(), typ: typ.clone(), }, VCardPropertyInputField::Text { label: "Role".to_string(), id: Some("role".to_string()), placeholder: None, oninput: link.callback(|e: InputData| Msg::UpdateRole(e.value)), value: self.role.clone(), typ: typ.clone(), }, VCardPropertyInputField::Text { label: "Member".to_string(), id: Some("member".to_string()), placeholder: None, oninput: link.callback(|e: InputData| Msg::UpdateMember(e.value)), value: self.member.clone(), typ: typ.clone(), }, VCardPropertyInputField::Text { label: "Related".to_string(), id: Some("related".to_string()), placeholder: None, oninput: link.callback(|e: InputData| Msg::UpdateRelated(e.value)), value: self.related.clone(), typ: typ, }, ] } fn is_empty(&self) -> bool { self.org.is_empty() && self.logo.is_none() && self.title.is_empty() && self.role.is_empty() && self.member.is_empty() && self.related.is_empty() } }