add: metadata tetratto_owner_id
This commit is contained in:
parent
be9189a474
commit
8fd5103479
5 changed files with 28 additions and 14 deletions
|
@ -6,7 +6,7 @@
|
||||||
(div
|
(div
|
||||||
("class" "card container")
|
("class" "card container")
|
||||||
(h1 (text "{{ entry.slug }}"))
|
(h1 (text "{{ entry.slug }}"))
|
||||||
(p (text "Custom slug reclaims are handled through ") (b (text "{{ tetratto }}")) (text ". You'll need to have an account there to submit a claim request."))
|
(p (text "Custom slug reclaims are handled through ") (b (text "{{ config.service_hosts.tetratto }}")) (text ". You'll need to have an account there to submit a claim request."))
|
||||||
(p (text "Please note that you are unlikely to receive a response unless your claim is accepted. Please do not submit additional requests for the same slug."))
|
(p (text "Please note that you are unlikely to receive a response unless your claim is accepted. Please do not submit additional requests for the same slug."))
|
||||||
|
|
||||||
(text "{% if metadata.tetratto_owner_username -%}")
|
(text "{% if metadata.tetratto_owner_username -%}")
|
||||||
|
@ -24,13 +24,13 @@
|
||||||
(text "{% if metadata.tetratto_owner_username -%}")
|
(text "{% if metadata.tetratto_owner_username -%}")
|
||||||
; contact owner button
|
; contact owner button
|
||||||
(a
|
(a
|
||||||
("href" "{{ tetratto }}/mail/compose?receivers={{ tetratto_owner_username }}&subject=Reclaim%20for%20%22{{ entry.slug }}%22")
|
("href" "{{ config.service_hosts.tetratto }}/mail/compose?receivers={{ tetratto_owner_username }}&subject=Reclaim%20for%20%22{{ entry.slug }}%22")
|
||||||
("class" "button surface no_fill")
|
("class" "button surface no_fill")
|
||||||
(text "{{ icon \"external-link\" }} Contact owner"))
|
(text "{{ icon \"external-link\" }} Contact owner"))
|
||||||
(text "{%- endif %}")
|
(text "{%- endif %}")
|
||||||
|
|
||||||
(a
|
(a
|
||||||
("href" "{{ tetratto }}/mail/compose?receivers={{ tetratto_handler_account_username }}&subject=Reclaim%20for%20%22{{ entry.slug }}%22")
|
("href" "{{ config.service_hosts.tetratto }}/mail/compose?receivers={{ tetratto_handler_account_username }}&subject=Reclaim%20for%20%22{{ entry.slug }}%22")
|
||||||
("class" "button surface no_fill")
|
("class" "button surface no_fill")
|
||||||
(text "{{ icon \"external-link\" }} Submit request"))
|
(text "{{ icon \"external-link\" }} Submit request"))
|
||||||
(text "{% else %}")
|
(text "{% else %}")
|
||||||
|
|
|
@ -46,10 +46,12 @@
|
||||||
(text "Owner:")
|
(text "Owner:")
|
||||||
(a
|
(a
|
||||||
("class" "flex items_center gap_2")
|
("class" "flex items_center gap_2")
|
||||||
("href" "{{ tetratto }}/@{{ metadata.tetratto_owner_username }}")
|
("href" "{{ config.service_hosts.tetratto }}/@{{ metadata.tetratto_owner_username }}")
|
||||||
|
(text "{% if metadata.tetratto_owner_id -%}")
|
||||||
(img
|
(img
|
||||||
("class" "avatar")
|
("class" "avatar")
|
||||||
("src" "{{ tetratto }}/api/v1/auth/user/{{ metadata.tetratto_owner_username }}/avatar?selector_type=username"))
|
("src" "{{ config.service_hosts.buckets }}/avatars/{{ metadata.tetratto_owner_id }}"))
|
||||||
|
(text "{%- endif %}")
|
||||||
(text "{{ metadata.tetratto_owner_username }}")))
|
(text "{{ metadata.tetratto_owner_username }}")))
|
||||||
(text "{%- endif %}")
|
(text "{%- endif %}")
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,12 @@ use pathbufd::PathBufD;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use tetratto_shared::hash::random_id;
|
use tetratto_shared::hash::random_id;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||||
|
pub struct ServiceHostsConfig {
|
||||||
|
pub tetratto: String,
|
||||||
|
pub buckets: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
/// The name of the site. Shown in the UI.
|
/// The name of the site. Shown in the UI.
|
||||||
|
@ -11,9 +17,6 @@ pub struct Config {
|
||||||
/// The (CSS) theme color of the site. Shown in the UI.
|
/// The (CSS) theme color of the site. Shown in the UI.
|
||||||
#[serde(default = "default_theme_color")]
|
#[serde(default = "default_theme_color")]
|
||||||
pub theme_color: String,
|
pub theme_color: String,
|
||||||
/// The URL of the Tetratto host associated with this instance.
|
|
||||||
#[serde(default = "default_tetratto")]
|
|
||||||
pub tetratto: String,
|
|
||||||
/// The slug of the instance's information page.
|
/// The slug of the instance's information page.
|
||||||
///
|
///
|
||||||
/// Should be the pathname WITHOUT the leading slash.
|
/// Should be the pathname WITHOUT the leading slash.
|
||||||
|
@ -29,6 +32,9 @@ pub struct Config {
|
||||||
/// Real IP header (for reverse proxy).
|
/// Real IP header (for reverse proxy).
|
||||||
#[serde(default = "default_real_ip_header")]
|
#[serde(default = "default_real_ip_header")]
|
||||||
pub real_ip_header: String,
|
pub real_ip_header: String,
|
||||||
|
/// The host URL of required services.
|
||||||
|
#[serde(default = "default_service_hosts")]
|
||||||
|
pub service_hosts: ServiceHostsConfig,
|
||||||
/// The master password which is allowed to do anything without password checks.
|
/// The master password which is allowed to do anything without password checks.
|
||||||
pub master_pass: String,
|
pub master_pass: String,
|
||||||
}
|
}
|
||||||
|
@ -41,10 +47,6 @@ fn default_theme_color() -> String {
|
||||||
"#a3b3ff".to_string()
|
"#a3b3ff".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_tetratto() -> String {
|
|
||||||
"https://tetratto.com".to_string()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_what_page_slug() -> String {
|
fn default_what_page_slug() -> String {
|
||||||
"what".to_string()
|
"what".to_string()
|
||||||
}
|
}
|
||||||
|
@ -61,6 +63,13 @@ fn default_real_ip_header() -> String {
|
||||||
"CF-Connecting-IP".to_string()
|
"CF-Connecting-IP".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_service_hosts() -> ServiceHostsConfig {
|
||||||
|
ServiceHostsConfig {
|
||||||
|
tetratto: "https://tetratto.com".to_string(),
|
||||||
|
buckets: "https://assetdelivery.tetratto.com".to_string(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Configuration for Config {
|
impl Configuration for Config {
|
||||||
fn db_config(&self) -> DatabaseConfig {
|
fn db_config(&self) -> DatabaseConfig {
|
||||||
self.database.to_owned()
|
self.database.to_owned()
|
||||||
|
@ -72,11 +81,11 @@ impl Default for Config {
|
||||||
Self {
|
Self {
|
||||||
name: default_name(),
|
name: default_name(),
|
||||||
theme_color: default_theme_color(),
|
theme_color: default_theme_color(),
|
||||||
tetratto: default_tetratto(),
|
|
||||||
what_page_slug: default_what_page_slug(),
|
what_page_slug: default_what_page_slug(),
|
||||||
tetratto_handler_account_username: default_tetratto_handler_account_username(),
|
tetratto_handler_account_username: default_tetratto_handler_account_username(),
|
||||||
database: default_database(),
|
database: default_database(),
|
||||||
real_ip_header: default_real_ip_header(),
|
real_ip_header: default_real_ip_header(),
|
||||||
|
service_hosts: default_service_hosts(),
|
||||||
master_pass: random_id(),
|
master_pass: random_id(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -444,6 +444,9 @@ pub struct EntryMetadata {
|
||||||
#[serde(default, alias = "TETRATTO_OWNER_USERNAME")]
|
#[serde(default, alias = "TETRATTO_OWNER_USERNAME")]
|
||||||
#[validate(max_length = 32)]
|
#[validate(max_length = 32)]
|
||||||
pub tetratto_owner_username: String,
|
pub tetratto_owner_username: String,
|
||||||
|
/// The ID of the owner of this entry on the Tetratto instance.
|
||||||
|
#[serde(default, alias = "TETRATTO_OWNER_ID")]
|
||||||
|
pub tetratto_owner_id: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! metadata_css {
|
macro_rules! metadata_css {
|
||||||
|
|
|
@ -42,7 +42,7 @@ fn default_context(config: &Config, build_code: &str) -> Context {
|
||||||
let mut ctx = Context::new();
|
let mut ctx = Context::new();
|
||||||
ctx.insert("name", &config.name);
|
ctx.insert("name", &config.name);
|
||||||
ctx.insert("theme_color", &config.theme_color);
|
ctx.insert("theme_color", &config.theme_color);
|
||||||
ctx.insert("tetratto", &config.tetratto);
|
ctx.insert("config", &config);
|
||||||
ctx.insert("what_page_slug", &config.what_page_slug);
|
ctx.insert("what_page_slug", &config.what_page_slug);
|
||||||
ctx.insert(
|
ctx.insert(
|
||||||
"tetratto_handler_account_username",
|
"tetratto_handler_account_username",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue