diff --git a/src/base/module/admin/locales/en-US/admin.ftl b/src/base/module/admin/locales/en-US/admin.ftl index 7f37e03b..88da2fe6 100644 --- a/src/base/module/admin/locales/en-US/admin.ftl +++ b/src/base/module/admin/locales/en-US/admin.ftl @@ -1,2 +1,2 @@ -module_name = Admin module -module_desc = Administration module. +module_fullname = Admin module +module_description = Administration module. diff --git a/src/base/module/admin/locales/es-ES/admin.ftl b/src/base/module/admin/locales/es-ES/admin.ftl index d9211301..c9105a6a 100644 --- a/src/base/module/admin/locales/es-ES/admin.ftl +++ b/src/base/module/admin/locales/es-ES/admin.ftl @@ -1,2 +1,2 @@ -module_name = Admin module -module_desc = Módulo de administración. +module_fullname = Admin module +module_description = Módulo de administración. diff --git a/src/base/module/admin/mod.rs b/src/base/module/admin/mod.rs index 7550c381..5991d4f0 100644 --- a/src/base/module/admin/mod.rs +++ b/src/base/module/admin/mod.rs @@ -7,16 +7,16 @@ mod summary; pub struct AdminModule; impl Module for AdminModule { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "admin" } - fn name(&self) -> String { - l("module_name") + fn fullname(&self) -> String { + l("module_fullname") } fn description(&self) -> String { - l("module_desc") + l("module_description") } fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { diff --git a/src/base/module/homepage/locales/en-US/homepage.ftl b/src/base/module/homepage/locales/en-US/homepage.ftl index ec401e64..39a5e426 100644 --- a/src/base/module/homepage/locales/en-US/homepage.ftl +++ b/src/base/module/homepage/locales/en-US/homepage.ftl @@ -1,5 +1,5 @@ -module_name = Default homepage -module_desc = Displays a default homepage when none is configured. +module_fullname = Default homepage +module_description = Displays a default homepage when none is configured. page_title = Hello world! diff --git a/src/base/module/homepage/locales/es-ES/homepage.ftl b/src/base/module/homepage/locales/es-ES/homepage.ftl index dee1df47..f1d85b2e 100644 --- a/src/base/module/homepage/locales/es-ES/homepage.ftl +++ b/src/base/module/homepage/locales/es-ES/homepage.ftl @@ -1,5 +1,5 @@ -module_name = Página de inicio predeterminada -module_desc = Muestra una página de inicio predeterminada cuando no hay ninguna configurada. +module_fullname = Página de inicio predeterminada +module_description = Muestra una página de inicio predeterminada cuando no hay ninguna configurada. page_title = ¡Hola mundo! diff --git a/src/base/module/homepage/mod.rs b/src/base/module/homepage/mod.rs index a8ed27b7..386b6716 100644 --- a/src/base/module/homepage/mod.rs +++ b/src/base/module/homepage/mod.rs @@ -5,16 +5,16 @@ localize!("en-US", "src/base/module/homepage/locales"); pub struct HomepageModule; impl Module for HomepageModule { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "homepage" } - fn name(&self) -> String { - l("module_name") + fn fullname(&self) -> String { + l("module_fullname") } fn description(&self) -> String { - l("module_desc") + l("module_description") } fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { diff --git a/src/base/module/user/locales/en-US/homepage.ftl b/src/base/module/user/locales/en-US/homepage.ftl index e6ad0e91..0493672e 100644 --- a/src/base/module/user/locales/en-US/homepage.ftl +++ b/src/base/module/user/locales/en-US/homepage.ftl @@ -1,5 +1,5 @@ -module_name = User -module_desc = Manages the user registration and login system. +module_fullname = User +module_description = Manages the user registration and login system. username = User name password = Password diff --git a/src/base/module/user/locales/es-ES/homepage.ftl b/src/base/module/user/locales/es-ES/homepage.ftl index 68f1c889..ae9a70e0 100644 --- a/src/base/module/user/locales/es-ES/homepage.ftl +++ b/src/base/module/user/locales/es-ES/homepage.ftl @@ -1,5 +1,5 @@ -module_name = Usuario -module_desc = Gestion el registro de usuarios y el sistema de accesos. +module_fullname = Usuario +module_description = Gestion el registro de usuarios y el sistema de accesos. username = Nombre de usuario password = Contraseña diff --git a/src/base/module/user/mod.rs b/src/base/module/user/mod.rs index 98ff27fa..bbb3ee93 100644 --- a/src/base/module/user/mod.rs +++ b/src/base/module/user/mod.rs @@ -5,16 +5,16 @@ localize!("en-US", "src/base/module/user/locales"); pub struct UserModule; impl Module for UserModule { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "user" } - fn name(&self) -> String { - l("module_name") + fn fullname(&self) -> String { + l("module_fullname") } fn description(&self) -> String { - l("module_desc") + l("module_description") } fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { diff --git a/src/base/theme/aliner/mod.rs b/src/base/theme/aliner/mod.rs index 6df2fb93..d27e2f91 100644 --- a/src/base/theme/aliner/mod.rs +++ b/src/base/theme/aliner/mod.rs @@ -5,11 +5,11 @@ include!(concat!(env!("OUT_DIR"), "/aliner.rs")); pub struct AlinerTheme; impl Theme for AlinerTheme { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "aliner" } - fn name(&self) -> String { + fn fullname(&self) -> String { "Aliner".to_string() } diff --git a/src/base/theme/bootsier/mod.rs b/src/base/theme/bootsier/mod.rs index 58975335..97b7fa46 100644 --- a/src/base/theme/bootsier/mod.rs +++ b/src/base/theme/bootsier/mod.rs @@ -7,11 +7,11 @@ localize!("en-US", "src/base/theme/bootsier/locales"); pub struct BootsierTheme; impl Theme for BootsierTheme { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "bootsier" } - fn name(&self) -> String { + fn fullname(&self) -> String { "Bootsier".to_string() } diff --git a/src/base/theme/minimal/mod.rs b/src/base/theme/minimal/mod.rs index 970181b7..17611468 100644 --- a/src/base/theme/minimal/mod.rs +++ b/src/base/theme/minimal/mod.rs @@ -3,11 +3,11 @@ use crate::prelude::*; pub struct MinimalTheme; impl Theme for MinimalTheme { - fn id(&self) -> &'static str { + fn name(&self) -> &'static str { "minimal" } - fn name(&self) -> String { + fn fullname(&self) -> String { "Minimal".to_string() } } diff --git a/src/core/module/api.rs b/src/core/module/api.rs index 68488b84..83be71c3 100644 --- a/src/core/module/api.rs +++ b/src/core/module/api.rs @@ -1,10 +1,10 @@ -use crate::core::server; +use crate::core::{all, server}; /// Los módulos deben implementar este *trait*. pub trait Module: Send + Sync { - fn id(&self) -> &'static str; + fn name(&self) -> &'static str; - fn name(&self) -> String; + fn fullname(&self) -> String; fn description(&self) -> String { "".to_string() @@ -14,3 +14,15 @@ pub trait Module: Send + Sync { fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { } } + +pub fn register_module(m: &'static (dyn Module + 'static)) { + all::MODULES.write().unwrap().push(m); +} + +pub fn find_module(name: &str) -> Option<&'static (dyn Module + 'static)> { + let modules = all::MODULES.write().unwrap(); + match modules.iter().find(|t| t.name() == name) { + Some(module) => Some(*module), + _ => None, + } +} diff --git a/src/core/module/mod.rs b/src/core/module/mod.rs index c480df38..08686bcd 100644 --- a/src/core/module/mod.rs +++ b/src/core/module/mod.rs @@ -1,16 +1,2 @@ -use crate::core::all::MODULES; - mod api; -pub use api::Module; - -pub fn register_module(m: &'static (dyn Module + 'static)) { - MODULES.write().unwrap().push(m); -} - -pub fn find_module(id: &str) -> Option<&'static (dyn Module + 'static)> { - let modules = MODULES.write().unwrap(); - match modules.iter().find(|t| t.id() == id) { - Some(module) => Some(*module), - _ => None, - } -} +pub use api::{Module, find_module, register_module};