🚧 Working on 0.1.0 version
This commit is contained in:
parent
9f62955acb
commit
41cedf2541
28 changed files with 3473 additions and 535 deletions
|
|
@ -1,12 +1,12 @@
|
|||
use crate::base::component::add_base_assets;
|
||||
use crate::concat_string;
|
||||
use crate::core::component::AnyOp;
|
||||
use crate::core::theme::all::{theme_by_short_name, THEME_DEFAULT};
|
||||
use crate::core::theme::all::{theme_by_short_name, DEFAULT_THEME};
|
||||
use crate::core::theme::{ComponentsInRegions, ThemeRef};
|
||||
use crate::global::TypeInfo;
|
||||
use crate::html::{html, Markup};
|
||||
use crate::html::{Assets, Favicon, JavaScript, StyleSheet};
|
||||
use crate::locale::{LanguageIdentifier, LANGID_DEFAULT};
|
||||
use crate::locale::{LanguageIdentifier, DEFAULT_LANGID};
|
||||
use crate::service::HttpRequest;
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
|
@ -68,8 +68,8 @@ impl Context {
|
|||
pub(crate) fn new(request: HttpRequest) -> Self {
|
||||
Context {
|
||||
request,
|
||||
langid : &LANGID_DEFAULT,
|
||||
theme : *THEME_DEFAULT,
|
||||
langid : &DEFAULT_LANGID,
|
||||
theme : *DEFAULT_THEME,
|
||||
layout : "default",
|
||||
favicon : None,
|
||||
stylesheet: Assets::<StyleSheet>::new(),
|
||||
|
|
@ -86,7 +86,7 @@ impl Context {
|
|||
self.langid = langid;
|
||||
}
|
||||
AssetsOp::Theme(theme_name) => {
|
||||
self.theme = theme_by_short_name(theme_name).unwrap_or(*THEME_DEFAULT);
|
||||
self.theme = theme_by_short_name(theme_name).unwrap_or(*DEFAULT_THEME);
|
||||
}
|
||||
AssetsOp::Layout(layout) => {
|
||||
self.layout = layout;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use crate::{global, service, static_files, static_files_service, trace};
|
|||
|
||||
use std::sync::{LazyLock, RwLock};
|
||||
|
||||
static_files!(base);
|
||||
static_files!(assets);
|
||||
|
||||
// PACKAGES ****************************************************************************************
|
||||
|
||||
|
|
@ -21,14 +21,12 @@ pub fn register_packages(root_package: Option<PackageRef>) {
|
|||
// Initialize a list for packages to be enabled.
|
||||
let mut enabled_list: Vec<PackageRef> = Vec::new();
|
||||
|
||||
// Add default theme to the enabled list.
|
||||
add_to_enabled(&mut enabled_list, &crate::base::theme::Basic);
|
||||
|
||||
// Add default welcome page package to the enabled list.
|
||||
add_to_enabled(&mut enabled_list, &crate::base::package::Welcome);
|
||||
|
||||
// Add default theme packages to the enabled list.
|
||||
add_to_enabled(&mut enabled_list, &crate::base::theme::Basic);
|
||||
add_to_enabled(&mut enabled_list, &crate::base::theme::Chassis);
|
||||
add_to_enabled(&mut enabled_list, &crate::base::theme::Inception);
|
||||
|
||||
// If a root package is provided, add it to the enabled list.
|
||||
if let Some(package) = root_package {
|
||||
add_to_enabled(&mut enabled_list, package);
|
||||
|
|
@ -130,12 +128,12 @@ pub fn init_packages() {
|
|||
// CONFIGURE SERVICES ******************************************************************************
|
||||
|
||||
pub fn configure_services(scfg: &mut service::web::ServiceConfig) {
|
||||
static_files_service!(
|
||||
scfg,
|
||||
base => "/base",
|
||||
[&global::SETTINGS.dev.pagetop_project_dir, "static/base"]
|
||||
);
|
||||
for m in ENABLED_PACKAGES.read().unwrap().iter() {
|
||||
m.configure_service(scfg);
|
||||
}
|
||||
static_files_service!(
|
||||
scfg,
|
||||
assets => "/",
|
||||
[&global::SETTINGS.dev.pagetop_project_dir, "static/assets"]
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ pub static THEMES: LazyLock<RwLock<Vec<ThemeRef>>> = LazyLock::new(|| RwLock::ne
|
|||
|
||||
// DEFAULT THEME ***********************************************************************************
|
||||
|
||||
pub static THEME_DEFAULT: LazyLock<ThemeRef> =
|
||||
pub static DEFAULT_THEME: LazyLock<ThemeRef> =
|
||||
LazyLock::new(|| match theme_by_short_name(&global::SETTINGS.app.theme) {
|
||||
Some(theme) => theme,
|
||||
None => &crate::base::theme::Inception,
|
||||
None => &crate::base::theme::Basic,
|
||||
});
|
||||
|
||||
// THEME BY NAME ***********************************************************************************
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use crate::base::component::*;
|
||||
use crate::core::component::{AssetsOp, ComponentBase, ComponentTrait};
|
||||
use crate::core::component::{ComponentBase, ComponentTrait};
|
||||
use crate::core::package::PackageTrait;
|
||||
use crate::html::{html, Favicon, PrepareMarkup};
|
||||
use crate::html::{html, PrepareMarkup};
|
||||
use crate::locale::L10n;
|
||||
use crate::response::page::Page;
|
||||
use crate::{concat_string, global};
|
||||
|
|
@ -69,11 +69,8 @@ pub trait ThemeTrait: PackageTrait + Send + Sync {
|
|||
})
|
||||
}
|
||||
|
||||
fn after_prepare_body(&self, page: &mut Page) {
|
||||
page.set_assets(AssetsOp::SetFaviconIfNone(
|
||||
Favicon::new().with_icon("/base/favicon.ico"),
|
||||
));
|
||||
}
|
||||
#[allow(unused_variables)]
|
||||
fn after_prepare_body(&self, page: &mut Page) {}
|
||||
|
||||
fn prepare_head(&self, page: &mut Page) -> PrepareMarkup {
|
||||
let viewport = "width=device-width, initial-scale=1, shrink-to-fit=no";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue