Skip to content

Commit 46acfb0

Browse files
Dan google tag manager (#1654)
1 parent a6a60f9 commit 46acfb0

File tree

19 files changed

+161
-110
lines changed

19 files changed

+161
-110
lines changed

pgml-dashboard/src/api/deployment/deployment_models.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::{
77
responses::{Error, ResponseOk},
88
};
99

10+
use crate::components::layouts::product::Index as Product;
1011
use crate::templates::{components::NavLink, *};
1112

1213
use crate::models;
@@ -19,7 +20,7 @@ use std::collections::HashMap;
1920
// Returns models page
2021
#[get("/models")]
2122
pub async fn deployment_models(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
22-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
23+
let mut layout = Product::new("Dashboard", &cluster);
2324
layout.breadcrumbs(vec![NavLink::new("Models", &urls::deployment_models()).active()]);
2425

2526
let tabs = vec![tabs::Tab {
@@ -38,7 +39,7 @@ pub async fn model(cluster: &Cluster, model_id: i64, _connected: ConnectedCluste
3839
let model = models::Model::get_by_id(cluster.pool(), model_id).await?;
3940
let project = models::Project::get_by_id(cluster.pool(), model.project_id).await?;
4041

41-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
42+
let mut layout = Product::new("Dashboard", &cluster);
4243
layout.breadcrumbs(vec![
4344
NavLink::new("Models", &urls::deployment_models()),
4445
NavLink::new(&project.name, &urls::deployment_project_by_id(project.id)),

pgml-dashboard/src/api/deployment/notebooks.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use crate::{
1111
responses::{Error, ResponseOk},
1212
};
1313

14+
use crate::components::layouts::product::Index as Product;
1415
use crate::templates::{components::NavLink, *};
1516
use crate::utils::tabs;
1617

@@ -21,7 +22,7 @@ use crate::utils::urls;
2122
// Returns notebook page
2223
#[get("/notebooks")]
2324
pub async fn notebooks(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
24-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
25+
let mut layout = Product::new("Dashboard", &cluster);
2526
layout.breadcrumbs(vec![NavLink::new("Notebooks", &urls::deployment_notebooks()).active()]);
2627

2728
let tabs = vec![tabs::Tab {
@@ -43,7 +44,7 @@ pub async fn notebook(
4344
) -> Result<ResponseOk, Error> {
4445
let notebook = models::Notebook::get_by_id(cluster.pool(), notebook_id).await?;
4546

46-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
47+
let mut layout = Product::new("Dashboard", &cluster);
4748
layout.breadcrumbs(vec![
4849
NavLink::new("Notebooks", &urls::deployment_notebooks()),
4950
NavLink::new(notebook.name.as_str(), &urls::deployment_notebook_by_id(notebook_id)).active(),

pgml-dashboard/src/api/deployment/projects.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::{
77
responses::{Error, ResponseOk},
88
};
99

10+
use crate::components::layouts::product::Index as Product;
1011
use crate::templates::{components::NavLink, *};
1112

1213
use crate::models;
@@ -17,7 +18,7 @@ use crate::utils::urls;
1718
// Returns the deployments projects page.
1819
#[get("/projects")]
1920
pub async fn projects(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
20-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
21+
let mut layout = Product::new("Dashboard", &cluster);
2122
layout.breadcrumbs(vec![NavLink::new("Projects", &urls::deployment_projects()).active()]);
2223

2324
let tabs = vec![tabs::Tab {
@@ -39,7 +40,7 @@ pub async fn project(
3940
) -> Result<ResponseOk, Error> {
4041
let project = models::Project::get_by_id(cluster.pool(), project_id).await?;
4142

42-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
43+
let mut layout = Product::new("Dashboard", &cluster);
4344
layout.breadcrumbs(vec![
4445
NavLink::new("Projects", &urls::deployment_projects()),
4546
NavLink::new(project.name.as_str(), &urls::deployment_project_by_id(project_id)).active(),

pgml-dashboard/src/api/deployment/snapshots.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::{
77
responses::{Error, ResponseOk},
88
};
99

10+
use crate::components::layouts::product::Index as Product;
1011
use crate::templates::{components::NavLink, *};
1112

1213
use crate::models;
@@ -18,7 +19,7 @@ use std::collections::HashMap;
1819
// Returns snapshots page
1920
#[get("/snapshots")]
2021
pub async fn snapshots(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
21-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
22+
let mut layout = Product::new("Dashboard", &cluster);
2223
layout.breadcrumbs(vec![NavLink::new("Snapshots", &urls::deployment_snapshots()).active()]);
2324

2425
let tabs = vec![tabs::Tab {
@@ -40,7 +41,7 @@ pub async fn snapshot(
4041
) -> Result<ResponseOk, Error> {
4142
let snapshot = models::Snapshot::get_by_id(cluster.pool(), snapshot_id).await?;
4243

43-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
44+
let mut layout = Product::new("Dashboard", &cluster);
4445
layout.breadcrumbs(vec![
4546
NavLink::new("Snapshots", &urls::deployment_snapshots()),
4647
NavLink::new(&snapshot.relation_name, &urls::deployment_snapshot_by_id(snapshot.id)).active(),

pgml-dashboard/src/api/deployment/uploader.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use rocket::response::Redirect;
44
use rocket::route::Route;
55
use sailfish::TemplateOnce;
66

7+
use crate::components::layouts::product::Index as Product;
78
use crate::{
89
guards::Cluster,
910
guards::ConnectedCluster,
@@ -20,7 +21,7 @@ use crate::utils::urls;
2021
// Returns the uploader page.
2122
#[get("/uploader")]
2223
pub async fn uploader(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
23-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
24+
let mut layout = Product::new("Dashboard", &cluster);
2425
layout.breadcrumbs(vec![NavLink::new("Upload Data", &urls::deployment_uploader()).active()]);
2526

2627
let tabs = vec![tabs::Tab {

pgml-dashboard/src/components/layouts/docs/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::components::cms::IndexLink;
22
use crate::components::layouts::Head;
33
use crate::guards::Cluster;
44
use crate::models::User;
5-
use pgml_components::component;
5+
use pgml_components::{component, Component};
66
use sailfish::TemplateOnce;
77

88
#[derive(TemplateOnce, Default, Clone)]
@@ -13,23 +13,26 @@ pub struct Docs {
1313
user: Option<User>,
1414
content: Option<String>,
1515
index: Vec<IndexLink>,
16+
body_components: Vec<Component>,
1617
}
1718

1819
impl Docs {
1920
pub fn new(title: &str, context: Option<&Cluster>) -> Docs {
20-
let (head, footer, user) = match context.as_ref() {
21+
let (head, footer, user, body_components) = match context.as_ref() {
2122
Some(context) => (
2223
Head::new().title(&title).context(&context.context.head_items),
2324
Some(context.context.marketing_footer.clone()),
2425
Some(context.context.user.clone()),
26+
context.context.body_components.clone(),
2527
),
26-
None => (Head::new().title(&title), None, None),
28+
None => (Head::new().title(&title), None, None, Vec::new()),
2729
};
2830

2931
Docs {
3032
head,
3133
footer,
3234
user,
35+
body_components,
3336
..Default::default()
3437
}
3538
}

pgml-dashboard/src/components/layouts/docs/template.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
<html lang="en-US">
88
<%+ head %>
99
<body data-bs-theme="dark" data-theme="docs">
10+
<% for component in body_components {%>
11+
<%+ component %>
12+
<% } %>
1013
<div class="border-bottom" data-controller="layouts-docs">
1114
<%+ MarketingNavbar::new(user).style_alt() %>
1215

pgml-dashboard/src/components/layouts/marketing/base/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::components::notifications::marketing::AlertBanner;
33
use crate::guards::Cluster;
44
use crate::models::User;
55
use crate::Notification;
6-
use pgml_components::component;
6+
use pgml_components::{component, Component};
77
use sailfish::TemplateOnce;
88
use std::fmt;
99

@@ -35,19 +35,21 @@ pub struct Base {
3535
pub user: Option<User>,
3636
pub theme: Theme,
3737
pub no_transparent_nav: bool,
38+
pub body_components: Vec<Component>,
3839
}
3940

4041
impl Base {
4142
pub fn new(title: &str, context: Option<&Cluster>) -> Base {
4243
let title = format!("{} - PostgresML", title);
4344

44-
let (head, footer, user) = match context.as_ref() {
45+
let (head, footer, user, body_components) = match context.as_ref() {
4546
Some(context) => (
4647
Head::new().title(&title).context(&context.context.head_items),
4748
Some(context.context.marketing_footer.clone()),
4849
Some(context.context.user.clone()),
50+
context.context.body_components.clone(),
4951
),
50-
None => (Head::new().title(&title), None, None),
52+
None => (Head::new().title(&title), None, None, Vec::new()),
5153
};
5254

5355
Base {
@@ -56,6 +58,7 @@ impl Base {
5658
alert_banner: AlertBanner::from_notification(Notification::next_alert(context)),
5759
user,
5860
no_transparent_nav: false,
61+
body_components,
5962
..Default::default()
6063
}
6164
}

pgml-dashboard/src/components/layouts/marketing/base/template.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
behavior: 'instant'
1414
});
1515
</script>
16+
<!-- global items (scripts, no rendering items) that need to be placed in body. -->
17+
<% for component in body_components {%>
18+
<%+ component %>
19+
<% } %>
1620
<main>
1721
<%+ alert_banner %>
1822

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ pub use head::Head;
1111

1212
// src/components/layouts/marketing
1313
pub mod marketing;
14+
15+
// src/components/layouts/product
16+
pub mod product;

0 commit comments

Comments
 (0)