diff --git a/code/Cargo.lock b/code/Cargo.lock index 9386d40..30a2902 100644 --- a/code/Cargo.lock +++ b/code/Cargo.lock @@ -743,7 +743,7 @@ version = "0.1.0" dependencies = [ "anyhow", "chrono", - "dotenv", + "dotenvy", "eframe", "egui", "egui_dock", @@ -986,12 +986,6 @@ dependencies = [ "litrs", ] -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - [[package]] name = "dotenvy" version = "0.15.7" diff --git a/code/Cargo.toml b/code/Cargo.toml index 723a902..1acdfbb 100644 --- a/code/Cargo.toml +++ b/code/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] anyhow = "1.0.102" chrono = { version = "0.4.44", features = ["serde"] } -dotenv = "0.15.0" +dotenvy = "0.15.7" eframe = "0.34.2" egui = "0.34.2" egui_dock = "0.19.1" diff --git a/code/src/app.rs b/code/src/app.rs index 69869a5..dc975aa 100644 --- a/code/src/app.rs +++ b/code/src/app.rs @@ -16,7 +16,9 @@ enum TabTypes{ Recipe, Product, Order, - Settings + Settings, + WorkerList, + WorkerPosition, } struct Tab{ tab_type: TabTypes, @@ -84,6 +86,7 @@ struct MainTabViewer { equipment: std::vec::Vec, db_oper: DBOperator, worker_tabs: WorkerTabViewer, + worker_tree: egui_dock::DockState, } impl Default for MainTabViewer{ @@ -95,7 +98,17 @@ impl Default for MainTabViewer{ workers: Arc::new(RwLock::new(Option::Some(rt.block_on(async{db_oper.get_workers().await.unwrap()})))), equipment: vec![models::Equipment::default()], db_oper, - worker_tabs: WorkerTabViewer{} + worker_tabs: WorkerTabViewer{}, + worker_tree: egui_dock::DockState::new(vec![ + Tab{ + title:"ГойдаЗов".to_owned(), + tab_type:TabTypes::WorkerList, + }, + Tab{ + title:"Еееееее".to_owned(), + tab_type:TabTypes::WorkerPosition, + } + ]), } } } @@ -190,7 +203,9 @@ impl MainTabViewer{ }) } fn show_salary(&mut self, ui: &mut egui::Ui){ - self.worker_tabs. + DockArea::new(&mut self.worker_tree) + .style(Style::from_egui(ui.style().as_ref())) + .show_inside(ui, &mut WorkerTabViewer::default()); } fn show_material(&mut self, ui: &mut egui::Ui){ ui.label("Сырьё короче да"); @@ -234,9 +249,11 @@ impl egui_dock::TabViewer for MainTabViewer{ } } +#[derive(Default)] struct WorkerTabViewer{ } + impl egui_dock::TabViewer for WorkerTabViewer{ type Tab = Tab; fn title(&mut self, tab: &mut Self::Tab) -> egui::WidgetText { diff --git a/code/src/database.rs b/code/src/database.rs index 8ab785d..b58a56e 100644 --- a/code/src/database.rs +++ b/code/src/database.rs @@ -2,7 +2,8 @@ use sqlx::mysql::MySqlPoolOptions; use sqlx::mysql::MySqlPool; -use dotenv::dotenv; +use dotenvy::dotenv_override; +use std::env; // use crate::schema::equipment::dsl::*; // use crate::schema::worker::dsl::*; use crate::models::*; @@ -12,8 +13,8 @@ pub struct DBOperator{ } impl DBOperator{ pub fn new() -> Self{ - dotenv().ok(); - let db_url = dotenv::var("DATABASE_URL").expect("DATABASE_URL установи!"); + dotenv_override().ok(); + let db_url = env::var("DATABASE_URL").expect("DATABASE_URL установи!"); Self{connection_string:db_url} } @@ -46,8 +47,8 @@ impl DBOperator{ pub async fn estabilish_connection() -> Result<(), sqlx::Error>{ - dotenv().ok(); - let db_url = dotenv::var("DATABASE_URL").expect("DATABASE_URL установи!"); + dotenv_override().ok(); + let db_url = env::var("DATABASE_URL").expect("DATABASE_URL установи!"); let pool = MySqlPoolOptions::new() .max_connections(5) .connect(&db_url).await?; diff --git a/code/src/main.rs b/code/src/main.rs index 58cb86c..592c136 100644 --- a/code/src/main.rs +++ b/code/src/main.rs @@ -10,7 +10,7 @@ mod database; // mod schema; fn main() { - database::estabilish_connection(); + dotenvy::dotenv().ok(); database::estabilish_connection(); let native_opts = eframe::NativeOptions { viewport: egui::ViewportBuilder::default() .with_inner_size([400.0,300.0])