Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf2cd20c

Browse files
Dan fix head (#1233)
1 parentc310e19 commitf2cd20c

File tree

10 files changed

+64
-64
lines changed

10 files changed

+64
-64
lines changed

‎pgml-dashboard/src/templates/head.rsrenamed to ‎pgml-dashboard/src/components/layouts/head/mod.rs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1+
use pgml_components::component;
12
use sailfish::TemplateOnce;
23

3-
#[derive(Clone,Default)]
4+
#[derive(TemplateOnce,Default,Clone)]
5+
#[template(path ="layouts/head/template.html")]
46
pubstructHead{
57
pubtitle:String,
68
pubdescription:Option<String>,
79
pubimage:Option<String>,
810
pubpreloads:Vec<String>,
11+
pubcontext:Option<String>,
912
}
1013

1114
implHead{
1215
pubfnnew() ->Head{
1316
Head::default()
1417
}
1518

16-
pubfnadd_preload(&mutself,preload:&str) ->&mutSelf{
19+
pubfnadd_preload(mutself,preload:&str) ->Head{
1720
self.preloads.push(preload.to_owned());
1821
self
1922
}
@@ -36,30 +39,14 @@ impl Head {
3639
pubfnnot_found() ->Head{
3740
Head::new().title("404 - Not Found")
3841
}
39-
}
40-
41-
#[derive(TemplateOnce,Default,Clone)]
42-
#[template(path ="layout/head.html")]
43-
pubstructDefaultHeadTemplate{
44-
pubhead:Head,
45-
}
4642

47-
implDefaultHeadTemplate{
48-
pubfnnew(head:Option<Head>) ->DefaultHeadTemplate{
49-
let head =match head{
50-
Some(head) => head,
51-
None =>Head::new(),
52-
};
53-
54-
DefaultHeadTemplate{ head}
43+
pubfncontext(mutself,context:&Option<String>) ->Head{
44+
self.context = context.to_owned();
45+
self
5546
}
5647
}
5748

58-
implFrom<DefaultHeadTemplate>forString{
59-
fnfrom(layout:DefaultHeadTemplate) ->String{
60-
layout.render_once().unwrap()
61-
}
62-
}
49+
component!(Head);
6350

6451
#[cfg(test)]
6552
mod head_tests{

‎pgml-dashboard/templates/layout/head.htmlrenamed to ‎pgml-dashboard/src/components/layouts/head/template.html

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,41 @@
55
<metaname="viewport"content="width=device-width, initial-scale=1.0">
66
<metaname="turbo-cache-control"content="no-cache">
77
<metaname="author"content="PostgresML">
8-
<title><%=head.title %> – PostgresML</title>
8+
<title><%= title %> – PostgresML</title>
99

10-
<% ifhead.description.is_some() { %>
11-
<metaname="description"content="<%=head.description.clone().unwrap() %>">
12-
<metaproperty="og:description"content="<%=head.description.clone().unwrap() %>">
13-
<metaname="twitter:description"content="<%=head.description.clone().unwrap() %>">
10+
<% if description.is_some() { %>
11+
<metaname="description"content="<%= description.clone().unwrap() %>">
12+
<metaproperty="og:description"content="<%= description.clone().unwrap() %>">
13+
<metaname="twitter:description"content="<%= description.clone().unwrap() %>">
1414
<% } else { %>
1515
<metaname="description"content="Train and deploy models to make online predictions using only SQL, with an open source Postgres extension.">
1616
<metaproperty="og:description"content="Train and deploy models to make online predictions using only SQL, with an open source Postgres extension.">
1717
<metaname="twitter:description"content="Train and deploy models to make online predictions using only SQL, with an open source Postgres extension.">
1818
<% } %>
1919

20-
<% ifhead.image.is_some() { %>
21-
<metaproperty="og:image"content="<%=head.image.clone().unwrap() %>">
22-
<metaname="twitter:image"content="<%=head.image.clone().unwrap() %>">
20+
<% if image.is_some() { %>
21+
<metaproperty="og:image"content="<%= image.clone().unwrap() %>">
22+
<metaname="twitter:image"content="<%= image.clone().unwrap() %>">
2323
<% } else { %>
2424
<metaproperty="og:image"content="https://postgresml.org/dashboard/static/images/owl_gradient.png">
2525
<metaname="twitter:image"content="https://postgresml.org/dashboard/static/images/owl_gradient.png">
2626
<% } %>
2727

2828
<metaproperty="og:site_name"content="PostgresML">
2929
<metaproperty="og:type"content="website">
30-
<metaproperty="og:title"content="<%=head.title %> – PostgresML">
30+
<metaproperty="og:title"content="<%= title %> – PostgresML">
3131
<metaproperty="og:url"content="http://www.postgresML.org">
3232
<metaproperty="og:locale"content="en_US">
3333

3434
<metaname="twitter:site"content="@postgresml">
3535
<metaname="twitter:card"content="summary_large_image">
3636
<metaname="twitter:creator"content="@postgresml">
37-
<metaname="twitter:title"content="<%=head.title %> – PostgresML">
37+
<metaname="twitter:title"content="<%= title %> – PostgresML">
3838

39+
<% if context.is_some() { %>
40+
<%- context.unwrap() %>
41+
<% } else { %>
42+
3943
<scripttype="importmap"data-turbo-track="reload">
4044
{
4145
"imports":{
@@ -45,20 +49,30 @@
4549
}
4650
}
4751
</script>
52+
53+
<linkrel="stylesheet"data-turbo-track="reload"href="<%- config::css_url("style.css") %>">
54+
<scriptasyncsrc="https://data.cloud.hyperparam.ai/script.js"data-website-id="499122fd-f307-4e8d-af4b-88b9f5e9903b"></script>
55+
<scriptdefersrc="https://cdn.plot.ly/plotly-2.11.1.min.js"></script>
56+
<scripttype="module"deferasyncsrc="/dashboard/static/js/libs/sortable-1.12.0.min.js"></script>
57+
<scriptdata-turbo-trace="reload"type="module"src="<%= config::js_url("bundle.js") %>" async defer></script>
58+
59+
<!-- version: <%= config::git_sha() %> -->
60+
<% } %>
61+
62+
<% for link in preloads { %>
63+
<linkrel="preload"fetchpriority="high"as="image"href=<%= link %> type="image/webp">
64+
<% }; %>
4865

4966
<linkrel="icon"href="/dashboard/static/images/owl.ico">
50-
<linkrel="stylesheet"data-turbo-track="reload"href="<%- config::css_url("style.css") %>">
67+
5168
<scriptdefersrc="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
69+
<scriptdefersrc="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"crossorigin="anonymous"></script>
5270
<linkrel="preconnect"href="https://fonts.googleapis.com">
5371
<linkrel="preconnect"href="https://fonts.gstatic.com"crossorigin>
5472
<linkrel="stylesheet"href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=swap">
55-
<scriptdefersrc="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
56-
<scriptdefersrc="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"crossorigin="anonymous"></script>
5773

58-
<scriptasyncsrc="https://data.cloud.hyperparam.ai/script.js"data-website-id="499122fd-f307-4e8d-af4b-88b9f5e9903b"></script>
5974
<scriptasynctype="nomodule"src="https://unpkg.com/es-module-shims@1.6.3/dist/es-module-shims.js"></script>
6075
<scriptdefertype="module"src="/dashboard/static/js/libs/turbo-7.3.0.min.js"></script>
61-
<scriptdefersrc="https://cdn.plot.ly/plotly-2.11.1.min.js"></script>
6276

6377
<!-- Code Mirror -->
6478
<scriptdefertype="module"src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/6.65.7/codemirror.min.js"></script>
@@ -69,10 +83,6 @@
6983
<linkrel="stylesheet"href="/dashboard/static/css/codemirror.css"/>
7084
<linkrel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/6.65.7/addon/hint/show-hint.min.css"integrity="sha512-OmcLQEy8iGiD7PSm85s06dnR7G7C9C0VqahIPAj/KHk5RpOCmnC6R2ob1oK4/uwYhWa9BF1GC6tzxsC8TIx7Jg=="crossorigin="anonymous"referrerpolicy="no-referrer"/>
7185

72-
<scripttype="module"deferasyncsrc="/dashboard/static/js/libs/sortable-1.12.0.min.js"></script>
73-
<scriptdata-turbo-trace="reload"type="module"src="<%= config::js_url("bundle.js") %>" async defer></script>
74-
75-
7686
<% if config::dev_mode() { %>
7787
<!-- dev only - save page position after reload -->
7888
<script>
@@ -86,6 +96,4 @@
8696
};
8797
</script>
8898
<% } %>
89-
90-
<!-- version: <%= config::git_sha() %> -->
9199
</head>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// This file is automatically generated.
2+
// You shouldn't modify it manually.
3+
4+
// src/components/layouts/head
5+
pubmod head;
6+
pubuse head::Head;

‎pgml-dashboard/src/components/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ pub use github_icon::GithubIcon;
3131
// src/components/inputs
3232
pubmod inputs;
3333

34+
// src/components/layouts
35+
pubmod layouts;
36+
3437
// src/components/left_nav_menu
3538
pubmod left_nav_menu;
3639
pubuse left_nav_menu::LeftNavMenu;

‎pgml-dashboard/src/guards.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ impl Cluster {
132132
},
133133
lower_left_nav:StaticNav::default(),
134134
marketing_footer:MarketingFooter::new().render_once().unwrap(),
135+
head_items:None,
135136
},
136137
notifications:None,
137138
}

‎pgml-dashboard/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ pub struct Context {
5656
pubupper_left_nav:StaticNav,
5757
publower_left_nav:StaticNav,
5858
pubmarketing_footer:String,
59+
pubhead_items:Option<String>,
5960
}
6061

6162
#[derive(Debug,Clone,Default)]

‎pgml-dashboard/src/templates/mod.rs

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ use crate::models;
1414
usecrate::utils::tabs;
1515

1616
pubmod docs;
17-
pubmod head;
1817

19-
pubusehead::*;
18+
usecrate::components::layouts::Head;
2019

2120
#[derive(TemplateOnce,Default)]
2221
#[template(path ="content/not_found.html")]
@@ -44,8 +43,15 @@ pub struct Layout {
4443

4544
implLayout{
4645
pubfnnew(title:&str,context:Option<&crate::guards::Cluster>) ->Self{
46+
let head =match context.as_ref(){
47+
Some(context) =>Head::new()
48+
.title(title)
49+
.context(&context.context.head_items),
50+
None =>Head::new().title(title),
51+
};
52+
4753
Layout{
48-
head:Head::new().title(title),
54+
head,
4955
alert_banner:AlertBanner::from_notification(Notification::next_alert(context)),
5056
feature_banner:FeatureBanner::from_notification(Notification::next_feature(context)),
5157
..Default::default()
@@ -112,7 +118,7 @@ impl From<Layout> for String {
112118
pubstructWebAppBase<'a>{
113119
pubcontent:Option<String>,
114120
pubbreadcrumbs:Vec<NavLink<'a>>,
115-
pubhead:String,
121+
pubhead:Head,
116122
pubdropdown_nav:StaticNav,
117123
pubaccount_management_nav:StaticNav,
118124
pubupper_left_nav:StaticNav,
@@ -122,17 +128,10 @@ pub struct WebAppBase<'a> {
122128

123129
impl<'a>WebAppBase<'a>{
124130
pubfnnew(title:&str,context:&crate::Context) ->Self{
131+
let head =Head::new().title(title).context(&context.head_items);
132+
125133
WebAppBase{
126-
head:crate::templates::head::DefaultHeadTemplate::new(Some(
127-
crate::templates::head::Head{
128-
title: title.to_owned(),
129-
description:None,
130-
image:None,
131-
preloads:vec![],
132-
},
133-
))
134-
.render_once()
135-
.unwrap(),
134+
head,
136135
dropdown_nav: context.dropdown_nav.clone(),
137136
account_management_nav: context.account_management_nav.clone(),
138137
upper_left_nav: context.upper_left_nav.clone(),
@@ -141,11 +140,6 @@ impl<'a> WebAppBase<'a> {
141140
}
142141
}
143142

144-
pubfnhead(&mutself,head:String) ->&mutSelf{
145-
self.head = head.to_owned();
146-
self
147-
}
148-
149143
pubfnbreadcrumbs(&mutself,breadcrumbs:Vec<NavLink<'a>>) ->&mutSelf{
150144
self.breadcrumbs = breadcrumbs.to_owned();
151145
self
109 KB
Binary file not shown.

‎pgml-dashboard/templates/layout/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<!DOCTYPE html>
55
<htmllang="en-US">
66

7-
<% include!("head.html"); %>
7+
<%+head %>
88

99
<bodydata-bs-theme="dark"data-theme="docs">
1010
<main>

‎pgml-dashboard/templates/layout/web_app_base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
<!DOCTYPE html>
1818
<htmllang="en-US">
19-
<%- head %>
19+
<%+ head %>
2020
<bodydata-bs-theme="dark"data-theme="product">
2121
<% for component in body_components { %>
2222
<%+ component %>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp