aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-19 01:25:04 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-19 01:25:04 +0100
commit10290e706ac0190c874e8b6117cb2c11b5e6e504 (patch)
tree85e95935cb6eacf58cb3e9f8992d9bc3a22cf558
parentcc31d1b1a35d356dad044f24b3104f74a50277be (diff)
downloadjellything-10290e706ac0190c874e8b6117cb2c11b5e6e504.tar
jellything-10290e706ac0190c874e8b6117cb2c11b5e6e504.tar.bz2
jellything-10290e706ac0190c874e8b6117cb2c11b5e6e504.tar.zst
set page titles
-rw-r--r--server/src/ui/admin/mod.rs2
-rw-r--r--server/src/ui/home.rs114
-rw-r--r--server/src/ui/node.rs6
-rw-r--r--server/src/ui/player.rs9
4 files changed, 76 insertions, 55 deletions
diff --git a/server/src/ui/admin/mod.rs b/server/src/ui/admin/mod.rs
index 555b6bc..57f00db 100644
--- a/server/src/ui/admin/mod.rs
+++ b/server/src/ui/admin/mod.rs
@@ -9,6 +9,7 @@ pub mod import;
use super::error::MyResult;
use crate::{request_info::RequestInfo, ui_responder::UiResponse};
use jellycommon::{jellyobject::ObjectBuffer, *};
+use jellyui::tr;
use rocket::get;
#[get("/admin/dashboard")]
@@ -22,6 +23,7 @@ pub async fn r_admin_dashboard(ri: RequestInfo<'_>) -> MyResult<UiResponse> {
})?;
Ok(ri.respond_ui(ObjectBuffer::new(&mut [
+ (VIEW_TITLE.0, &&*tr(ri.lang, "admin.dashboard.title")),
(VIEW_ADMIN_DASHBOARD.0, &()),
(
VIEW_ADMIN_INFO.0,
diff --git a/server/src/ui/home.rs b/server/src/ui/home.rs
index 1f5ea8d..c25add1 100644
--- a/server/src/ui/home.rs
+++ b/server/src/ui/home.rs
@@ -8,74 +8,80 @@ use super::error::MyResult;
use crate::{request_info::RequestInfo, ui_responder::UiResponse};
use anyhow::Result;
use jellycommon::{
- jellyobject::{Object, ObjectBuffer, Path},
+ jellyobject::{Object, ObjectBuffer, ObjectBufferBuilder, Path},
*,
};
use jellydb::{Filter, MultiBehaviour, Query, Sort, SortOrder, ValueSort};
+use jellyui::tr;
use rocket::get;
#[get("/home")]
pub fn r_home(ri: RequestInfo<'_>) -> MyResult<UiResponse> {
ri.require_user()?;
- let mut page = ObjectBuffer::empty();
+ let mut page = ObjectBufferBuilder::default();
- let latest_video = home_row(
- &ri,
- "home.bin.latest_video",
- Query {
- filter: Filter::All(vec![
- Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()),
- Filter::Match(Path(vec![NO_KIND.0]), KIND_VIDEO.into()),
- ]),
- sort: Sort::Value(ValueSort {
- order: SortOrder::Descending,
- path: Path(vec![NO_RELEASEDATE.0]),
- multi: MultiBehaviour::First,
- offset: None,
- }),
- },
- )?;
- let latest_music = home_row(
- &ri,
- "home.bin.latest_music",
- Query {
- filter: Filter::All(vec![
- Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()),
- Filter::Match(Path(vec![NO_KIND.0]), KIND_MUSIC.into()),
- ]),
- sort: Sort::Value(ValueSort {
- order: SortOrder::Descending,
- path: Path(vec![NO_RELEASEDATE.0]),
- multi: MultiBehaviour::First,
- offset: None,
- }),
- },
- )?;
- let max_rating = home_row(
- &ri,
- "home.bin.max_rating",
- Query {
- filter: Filter::True,
- sort: Sort::Value(ValueSort {
- order: SortOrder::Descending,
- path: Path(vec![NO_RATINGS.0, RTYP_TMDB.0]),
- multi: MultiBehaviour::First,
- offset: None,
- }),
- },
- )?;
+ page.push(VIEW_TITLE, &&*tr(ri.lang, "home"));
- page = page.as_object().insert_multi(
+ page.push(
VIEW_NODE_LIST,
- &[
- latest_video.as_object(),
- latest_music.as_object(),
- max_rating.as_object(),
- ],
+ home_row(
+ &ri,
+ "home.bin.latest_video",
+ Query {
+ filter: Filter::All(vec![
+ Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()),
+ Filter::Match(Path(vec![NO_KIND.0]), KIND_VIDEO.into()),
+ ]),
+ sort: Sort::Value(ValueSort {
+ order: SortOrder::Descending,
+ path: Path(vec![NO_RELEASEDATE.0]),
+ multi: MultiBehaviour::First,
+ offset: None,
+ }),
+ },
+ )?
+ .as_object(),
+ );
+ page.push(
+ VIEW_NODE_LIST,
+ home_row(
+ &ri,
+ "home.bin.latest_music",
+ Query {
+ filter: Filter::All(vec![
+ Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()),
+ Filter::Match(Path(vec![NO_KIND.0]), KIND_MUSIC.into()),
+ ]),
+ sort: Sort::Value(ValueSort {
+ order: SortOrder::Descending,
+ path: Path(vec![NO_RELEASEDATE.0]),
+ multi: MultiBehaviour::First,
+ offset: None,
+ }),
+ },
+ )?
+ .as_object(),
+ );
+ page.push(
+ VIEW_NODE_LIST,
+ home_row(
+ &ri,
+ "home.bin.max_rating",
+ Query {
+ filter: Filter::True,
+ sort: Sort::Value(ValueSort {
+ order: SortOrder::Descending,
+ path: Path(vec![NO_RATINGS.0, RTYP_TMDB.0]),
+ multi: MultiBehaviour::First,
+ offset: None,
+ }),
+ },
+ )?
+ .as_object(),
);
- Ok(ri.respond_ui(page))
+ Ok(ri.respond_ui(page.finish()))
}
fn home_row(ri: &RequestInfo<'_>, title: &str, q: Query) -> Result<ObjectBuffer> {
diff --git a/server/src/ui/node.rs b/server/src/ui/node.rs
index 853a96b..87b8446 100644
--- a/server/src/ui/node.rs
+++ b/server/src/ui/node.rs
@@ -28,7 +28,13 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<UiResponse> {
let nku = nku.as_object();
let mut page = ObjectBufferBuilder::default();
+ let title = nku
+ .get(NKU_NODE)
+ .unwrap_or_default()
+ .get(NO_TITLE)
+ .unwrap_or_default();
+ page.push(VIEW_TITLE, title);
page.push(VIEW_NODE_PAGE, nku);
c_children(&mut page, txn, row, &nku)?;
c_credits(&mut page, txn, &nku)?;
diff --git a/server/src/ui/player.rs b/server/src/ui/player.rs
index 6af1012..a03e455 100644
--- a/server/src/ui/player.rs
+++ b/server/src/ui/player.rs
@@ -6,8 +6,8 @@
use super::error::MyResult;
use crate::{request_info::RequestInfo, ui_responder::UiResponse};
use jellycommon::{
- NKU_NODE, NO_SLUG, VIEW_PLAYER,
jellyobject::{Object, ObjectBuffer, ObjectBufferBuilder, Path},
+ *,
};
use jellydb::{Filter, Query, Sort};
use rocket::get;
@@ -40,6 +40,13 @@ pub fn r_player(ri: RequestInfo<'_>, t: Option<f64>, slug: &str) -> MyResult<UiR
let nku = Object::EMPTY.insert(NKU_NODE, n.as_object());
let mut page = ObjectBufferBuilder::default();
+ let title = nku
+ .as_object()
+ .get(NKU_NODE)
+ .unwrap_or_default()
+ .get(NO_TITLE)
+ .unwrap_or_default();
+ page.push(VIEW_TITLE, title);
page.push(VIEW_PLAYER, nku.as_object());
page_out = page.finish();