mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-11-10 05:59:44 -05:00
flexible config for sample_file_dir
This commit is contained in:
@@ -415,12 +415,12 @@ fn edit_camera_dialog(db: &Arc<db::Database>, siv: &mut Cursive, item: &Option<i
|
||||
.min_height(3),
|
||||
);
|
||||
|
||||
let dirs: Vec<_> = ::std::iter::once(("<none>".to_owned(), None))
|
||||
let dirs: Vec<_> = ::std::iter::once(("<none>".into(), None))
|
||||
.chain(
|
||||
db.lock()
|
||||
.sample_file_dirs_by_id()
|
||||
.iter()
|
||||
.map(|(&id, d)| (d.path.as_str().to_owned(), Some(id))),
|
||||
.map(|(&id, d)| (d.path.to_owned(), Some(id))),
|
||||
)
|
||||
.collect();
|
||||
for &type_ in &db::ALL_STREAM_TYPES {
|
||||
@@ -449,7 +449,7 @@ fn edit_camera_dialog(db: &Arc<db::Database>, siv: &mut Cursive, item: &Option<i
|
||||
.child(
|
||||
"sample file dir",
|
||||
views::SelectView::<Option<i32>>::new()
|
||||
.with_all(dirs.iter().cloned())
|
||||
.with_all(dirs.iter().map(|(p, id)| (p.display().to_string(), *id)))
|
||||
.popup()
|
||||
.with_name(format!("{}_sample_file_dir", type_.as_str())),
|
||||
)
|
||||
|
||||
@@ -11,6 +11,7 @@ use failure::Error;
|
||||
use log::{debug, trace};
|
||||
use std::cell::RefCell;
|
||||
use std::collections::BTreeMap;
|
||||
use std::path::Path;
|
||||
use std::rc::Rc;
|
||||
use std::sync::Arc;
|
||||
|
||||
@@ -206,7 +207,7 @@ pub fn top_dialog(db: &Arc<db::Database>, siv: &mut Cursive) {
|
||||
db.lock()
|
||||
.sample_file_dirs_by_id()
|
||||
.iter()
|
||||
.map(|(&id, d)| (d.path.to_string(), Some(id))),
|
||||
.map(|(&id, d)| (d.path.display().to_string(), Some(id))),
|
||||
)
|
||||
.full_width(),
|
||||
)
|
||||
@@ -224,7 +225,7 @@ fn add_dir_dialog(db: &Arc<db::Database>, siv: &mut Cursive) {
|
||||
views::EditView::new()
|
||||
.on_submit({
|
||||
let db = db.clone();
|
||||
move |siv, path| add_dir(&db, siv, path)
|
||||
move |siv, path| add_dir(&db, siv, path.as_ref())
|
||||
})
|
||||
.with_name("path")
|
||||
.fixed_width(60),
|
||||
@@ -237,7 +238,7 @@ fn add_dir_dialog(db: &Arc<db::Database>, siv: &mut Cursive) {
|
||||
.find_name::<views::EditView>("path")
|
||||
.unwrap()
|
||||
.get_content();
|
||||
add_dir(&db, siv, &path)
|
||||
add_dir(&db, siv, path.as_ref().as_ref())
|
||||
}
|
||||
})
|
||||
.button("Cancel", |siv| {
|
||||
@@ -247,10 +248,10 @@ fn add_dir_dialog(db: &Arc<db::Database>, siv: &mut Cursive) {
|
||||
);
|
||||
}
|
||||
|
||||
fn add_dir(db: &Arc<db::Database>, siv: &mut Cursive, path: &str) {
|
||||
fn add_dir(db: &Arc<db::Database>, siv: &mut Cursive, path: &Path) {
|
||||
if let Err(e) = db.lock().add_sample_file_dir(path.to_owned()) {
|
||||
siv.add_layer(
|
||||
views::Dialog::text(format!("Unable to add path {}: {}", path, e))
|
||||
views::Dialog::text(format!("Unable to add path {}: {}", path.display(), e))
|
||||
.dismiss_button("Back")
|
||||
.title("Error"),
|
||||
);
|
||||
@@ -426,6 +427,6 @@ fn edit_dir_dialog(db: &Arc<db::Database>, siv: &mut Cursive, dir_id: i32) {
|
||||
.child(views::DummyView)
|
||||
.child(buttons),
|
||||
)
|
||||
.title(format!("Edit retention for {}", path)),
|
||||
.title(format!("Edit retention for {}", path.display())),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ async fn inner(args: Args, shutdown_rx: base::shutdown::Receiver) -> Result<i32,
|
||||
if let Some(id) = stream.sample_file_dir_id {
|
||||
dirs.entry(id).or_insert_with(|| {
|
||||
let d = l.sample_file_dirs_by_id().get(&id).unwrap();
|
||||
info!("Starting syncer for path {}", d.path);
|
||||
info!("Starting syncer for path {}", d.path.display());
|
||||
d.get().unwrap()
|
||||
});
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user