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)