Added sitebuilder model + Alert implementation
This commit is contained in:
parent
04fc9067eb
commit
b93ac94280
|
@ -1,3 +1,4 @@
|
||||||
extern crate config;
|
extern crate config;
|
||||||
|
|
||||||
pub mod settings;
|
pub mod settings;
|
||||||
|
pub mod sitebuilder;
|
|
@ -0,0 +1,30 @@
|
||||||
|
use crate::helper::sitebuilder::model::{Alert, AlertType, SidebarEntry};
|
||||||
|
|
||||||
|
trait ToHtml {
|
||||||
|
fn into_html(&self) -> String;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToHtml for AlertType {
|
||||||
|
fn into_html(&self) -> String {
|
||||||
|
match self {
|
||||||
|
AlertType::Danger => "alert-danger".to_string(),
|
||||||
|
AlertType::Primary => "alert-primary".to_string(),
|
||||||
|
AlertType::Secondary => "alert-secondary".to_string(),
|
||||||
|
AlertType::Success => "alert-success".to_string(),
|
||||||
|
AlertType::Warning => "alert-warning".to_string(),
|
||||||
|
AlertType::Info => "alert-info".to_string(),
|
||||||
|
AlertType::Light => "alert-light".to_string(),
|
||||||
|
AlertType::Dark => "alert-dark".to_string(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToHtml for Alert {
|
||||||
|
fn into_html(&self) -> String {
|
||||||
|
format!(
|
||||||
|
"<div class=\"alert {}\" role=\"alert\">{}</div>",
|
||||||
|
self.alert_type.into_html(),
|
||||||
|
self.message
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
pub mod model;
|
||||||
|
pub mod view;
|
||||||
|
pub mod controller;
|
|
@ -0,0 +1,54 @@
|
||||||
|
pub struct Builder {
|
||||||
|
sidebar: Sidebar,
|
||||||
|
navigation: Navigation,
|
||||||
|
content_panel: ContentPanel,
|
||||||
|
site_title: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct SidebarEntry {
|
||||||
|
active: bool,
|
||||||
|
title: String,
|
||||||
|
icon: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Sidebar {
|
||||||
|
entries: Vec<SidebarEntry>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Navigation {
|
||||||
|
entries: Vec<NavigationEntry>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct NavigationEntry {
|
||||||
|
active: bool,
|
||||||
|
title: String,
|
||||||
|
link: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct ContentPanel {
|
||||||
|
sections: Vec<Section>,
|
||||||
|
alerts: Vec<Alert>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Section {
|
||||||
|
title: String,
|
||||||
|
content: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum AlertType {
|
||||||
|
//According to bootstrap alert types
|
||||||
|
Primary,
|
||||||
|
Secondary,
|
||||||
|
Success,
|
||||||
|
Danger,
|
||||||
|
Warning,
|
||||||
|
Info,
|
||||||
|
Light,
|
||||||
|
Dark,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Alert {
|
||||||
|
pub alert_type: AlertType,
|
||||||
|
//dismissible: bool,
|
||||||
|
pub message: String,
|
||||||
|
}
|
Loading…
Reference in New Issue