Skip to content

Commit c10aedf

Browse files
chillenbergerlevkk
andauthored
Dan product notifications (#1534)
Co-authored-by: Lev Kokotov <lev.kokotov@gmail.com>
1 parent 571e604 commit c10aedf

File tree

28 files changed

+1066
-194
lines changed

28 files changed

+1066
-194
lines changed

pgml-dashboard/Cargo.lock

Lines changed: 2 additions & 105 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rocket::route::Route;
22
use sailfish::TemplateOnce;
33

44
use crate::{
5+
guards::Cluster,
56
guards::ConnectedCluster,
67
responses::{Error, ResponseOk},
78
};
@@ -17,8 +18,8 @@ use std::collections::HashMap;
1718

1819
// Returns models page
1920
#[get("/models")]
20-
pub async fn deployment_models(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
21-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
21+
pub async fn deployment_models(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
22+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
2223
layout.breadcrumbs(vec![NavLink::new("Models", &urls::deployment_models()).active()]);
2324

2425
let tabs = vec![tabs::Tab {
@@ -28,16 +29,16 @@ pub async fn deployment_models(cluster: ConnectedCluster<'_>) -> Result<Response
2829

2930
let nav_tabs = tabs::Tabs::new(tabs, Some("Models"), Some("Models"))?;
3031

31-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
32+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
3233
}
3334

3435
// Returns models page
3536
#[get("/models/<model_id>")]
36-
pub async fn model(cluster: ConnectedCluster<'_>, model_id: i64) -> Result<ResponseOk, Error> {
37+
pub async fn model(cluster: &Cluster, model_id: i64, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
3738
let model = models::Model::get_by_id(cluster.pool(), model_id).await?;
3839
let project = models::Project::get_by_id(cluster.pool(), model.project_id).await?;
3940

40-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
41+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
4142
layout.breadcrumbs(vec![
4243
NavLink::new("Models", &urls::deployment_models()),
4344
NavLink::new(&project.name, &urls::deployment_project_by_id(project.id)),
@@ -51,7 +52,7 @@ pub async fn model(cluster: ConnectedCluster<'_>, model_id: i64) -> Result<Respo
5152

5253
let nav_tabs = tabs::Tabs::new(tabs, Some("Models"), Some("Models"))?;
5354

54-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
55+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
5556
}
5657

5758
#[get("/models_turboframe")]

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ use crate::utils::urls;
2020

2121
// Returns notebook page
2222
#[get("/notebooks")]
23-
pub async fn notebooks(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
24-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
23+
pub async fn notebooks(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
24+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
2525
layout.breadcrumbs(vec![NavLink::new("Notebooks", &urls::deployment_notebooks()).active()]);
2626

2727
let tabs = vec![tabs::Tab {
@@ -31,15 +31,19 @@ pub async fn notebooks(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Erro
3131

3232
let nav_tabs = tabs::Tabs::new(tabs, Some("Notebooks"), Some("Notebooks"))?;
3333

34-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
34+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
3535
}
3636

3737
// Returns the specified notebook page.
3838
#[get("/notebooks/<notebook_id>")]
39-
pub async fn notebook(cluster: ConnectedCluster<'_>, notebook_id: i64) -> Result<ResponseOk, Error> {
39+
pub async fn notebook(
40+
cluster: &Cluster,
41+
notebook_id: i64,
42+
_connected: ConnectedCluster<'_>,
43+
) -> Result<ResponseOk, Error> {
4044
let notebook = models::Notebook::get_by_id(cluster.pool(), notebook_id).await?;
4145

42-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
46+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
4347
layout.breadcrumbs(vec![
4448
NavLink::new("Notebooks", &urls::deployment_notebooks()),
4549
NavLink::new(notebook.name.as_str(), &urls::deployment_notebook_by_id(notebook_id)).active(),
@@ -52,7 +56,7 @@ pub async fn notebook(cluster: ConnectedCluster<'_>, notebook_id: i64) -> Result
5256

5357
let nav_tabs = tabs::Tabs::new(tabs, Some("Notebooks"), Some("Notebooks"))?;
5458

55-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
59+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
5660
}
5761

5862
// Returns all the notebooks for a deployment in a turbo frame.

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rocket::route::Route;
22
use sailfish::TemplateOnce;
33

44
use crate::{
5+
guards::Cluster,
56
guards::ConnectedCluster,
67
responses::{Error, ResponseOk},
78
};
@@ -15,8 +16,8 @@ use crate::utils::urls;
1516

1617
// Returns the deployments projects page.
1718
#[get("/projects")]
18-
pub async fn projects(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
19-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
19+
pub async fn projects(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
20+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
2021
layout.breadcrumbs(vec![NavLink::new("Projects", &urls::deployment_projects()).active()]);
2122

2223
let tabs = vec![tabs::Tab {
@@ -26,15 +27,19 @@ pub async fn projects(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error
2627

2728
let nav_tabs = tabs::Tabs::new(tabs, Some("Notebooks"), Some("Projects"))?;
2829

29-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
30+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
3031
}
3132

3233
// Return the specified project page.
3334
#[get("/projects/<project_id>")]
34-
pub async fn project(cluster: ConnectedCluster<'_>, project_id: i64) -> Result<ResponseOk, Error> {
35+
pub async fn project(
36+
cluster: &Cluster,
37+
project_id: i64,
38+
_connected: ConnectedCluster<'_>,
39+
) -> Result<ResponseOk, Error> {
3540
let project = models::Project::get_by_id(cluster.pool(), project_id).await?;
3641

37-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
42+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
3843
layout.breadcrumbs(vec![
3944
NavLink::new("Projects", &urls::deployment_projects()),
4045
NavLink::new(project.name.as_str(), &urls::deployment_project_by_id(project_id)).active(),
@@ -47,7 +52,7 @@ pub async fn project(cluster: ConnectedCluster<'_>, project_id: i64) -> Result<R
4752

4853
let nav_tabs = tabs::Tabs::new(tabs, Some("Projects"), Some("Projects"))?;
4954

50-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
55+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
5156
}
5257

5358
// Returns all the deployments for the project in a turbo frame.

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rocket::route::Route;
22
use sailfish::TemplateOnce;
33

44
use crate::{
5+
guards::Cluster,
56
guards::ConnectedCluster,
67
responses::{Error, ResponseOk},
78
};
@@ -16,8 +17,8 @@ use std::collections::HashMap;
1617

1718
// Returns snapshots page
1819
#[get("/snapshots")]
19-
pub async fn snapshots(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
20-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
20+
pub async fn snapshots(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
21+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
2122
layout.breadcrumbs(vec![NavLink::new("Snapshots", &urls::deployment_snapshots()).active()]);
2223

2324
let tabs = vec![tabs::Tab {
@@ -27,15 +28,19 @@ pub async fn snapshots(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Erro
2728

2829
let nav_tabs = tabs::Tabs::new(tabs, Some("Snapshots"), Some("Snapshots"))?;
2930

30-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
31+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
3132
}
3233

3334
// Returns the specific snapshot page
3435
#[get("/snapshots/<snapshot_id>")]
35-
pub async fn snapshot(cluster: ConnectedCluster<'_>, snapshot_id: i64) -> Result<ResponseOk, Error> {
36+
pub async fn snapshot(
37+
cluster: &Cluster,
38+
snapshot_id: i64,
39+
_connected: ConnectedCluster<'_>,
40+
) -> Result<ResponseOk, Error> {
3641
let snapshot = models::Snapshot::get_by_id(cluster.pool(), snapshot_id).await?;
3742

38-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
43+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
3944
layout.breadcrumbs(vec![
4045
NavLink::new("Snapshots", &urls::deployment_snapshots()),
4146
NavLink::new(&snapshot.relation_name, &urls::deployment_snapshot_by_id(snapshot.id)).active(),
@@ -48,7 +53,7 @@ pub async fn snapshot(cluster: ConnectedCluster<'_>, snapshot_id: i64) -> Result
4853

4954
let nav_tabs = tabs::Tabs::new(tabs, Some("Snapshots"), Some("Snapshots"))?;
5055

51-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
56+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
5257
}
5358

5459
// Returns all snapshots for the deployment in a turboframe.

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use rocket::route::Route;
55
use sailfish::TemplateOnce;
66

77
use crate::{
8+
guards::Cluster,
89
guards::ConnectedCluster,
910
responses::{BadRequest, Error, ResponseOk},
1011
};
@@ -18,8 +19,8 @@ use crate::utils::urls;
1819

1920
// Returns the uploader page.
2021
#[get("/uploader")]
21-
pub async fn uploader(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
22-
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster.inner.context);
22+
pub async fn uploader(cluster: &Cluster, _connected: ConnectedCluster<'_>) -> Result<ResponseOk, Error> {
23+
let mut layout = crate::templates::WebAppBase::new("Dashboard", &cluster);
2324
layout.breadcrumbs(vec![NavLink::new("Upload Data", &urls::deployment_uploader()).active()]);
2425

2526
let tabs = vec![tabs::Tab {
@@ -29,7 +30,7 @@ pub async fn uploader(cluster: ConnectedCluster<'_>) -> Result<ResponseOk, Error
2930

3031
let nav_tabs = tabs::Tabs::new(tabs, Some("Upload Data"), Some("Upload Data"))?;
3132

32-
Ok(ResponseOk(layout.render(templates::Dashboard { tabs: nav_tabs })))
33+
Ok(ResponseOk(layout.render(templates::Dashboard::new(nav_tabs))))
3334
}
3435

3536
// Returns uploader module in a turboframe.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ mod default_head_template_test {
134134

135135
#[test]
136136
fn set_head() {
137-
let mut head = Head::new()
137+
let head = Head::new()
138138
.title("test title")
139139
.description("test description")
140140
.image("image/test_image.jpg");

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy