add SPA config UI, wire media/rss adapters, event-driven layout push
- React SPA: dashboard, data sources CRUD, widgets CRUD, layout builder, presets. TanStack Router + Query, shadcn/ui, Vite proxy to :3000 - wire media + rss adapters into polling loop, remove xtb source type - media adapter: read username/password from headers, proper subsonic auth - event handler: subscribe to LayoutChanged, push screen update to clients - fix clippy warnings across workspace (Default impls, collapsible ifs, redundant closures, is_none_or, unused imports)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
pub mod error;
|
||||
mod serialization;
|
||||
mod repository;
|
||||
mod serialization;
|
||||
|
||||
use sqlx::SqlitePool;
|
||||
|
||||
@@ -27,8 +27,10 @@ impl SqliteConfigStore {
|
||||
data_source_id INTEGER NOT NULL,
|
||||
mappings TEXT NOT NULL,
|
||||
max_data_size INTEGER NOT NULL
|
||||
)"
|
||||
).execute(&self.pool).await?;
|
||||
)",
|
||||
)
|
||||
.execute(&self.pool)
|
||||
.await?;
|
||||
|
||||
sqlx::query(
|
||||
"CREATE TABLE IF NOT EXISTS data_sources (
|
||||
@@ -37,23 +39,29 @@ impl SqliteConfigStore {
|
||||
source_type TEXT NOT NULL,
|
||||
poll_interval_secs INTEGER NOT NULL,
|
||||
config TEXT NOT NULL
|
||||
)"
|
||||
).execute(&self.pool).await?;
|
||||
)",
|
||||
)
|
||||
.execute(&self.pool)
|
||||
.await?;
|
||||
|
||||
sqlx::query(
|
||||
"CREATE TABLE IF NOT EXISTS layout (
|
||||
id INTEGER PRIMARY KEY CHECK (id = 1),
|
||||
data TEXT NOT NULL
|
||||
)"
|
||||
).execute(&self.pool).await?;
|
||||
)",
|
||||
)
|
||||
.execute(&self.pool)
|
||||
.await?;
|
||||
|
||||
sqlx::query(
|
||||
"CREATE TABLE IF NOT EXISTS presets (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
layout_data TEXT NOT NULL
|
||||
)"
|
||||
).execute(&self.pool).await?;
|
||||
)",
|
||||
)
|
||||
.execute(&self.pool)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user