From 3b5831f317b7e157dd6a81584a84c2c58abd7a40 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Thu, 19 Apr 2018 07:51:48 +0300 Subject: [PATCH] ShowsView: Do not block while loading ShowChilds. --- hammond-data/src/dbqueries.rs | 28 +++++++++++++++++++ hammond-gtk/resources/gtk/shows_child.ui | 25 ++++++----------- hammond-gtk/src/app.rs | 5 +++- hammond-gtk/src/stacks/show.rs | 35 ++++++++++++------------ hammond-gtk/src/utils.rs | 2 ++ hammond-gtk/src/views/shows.rs | 19 ++++++------- 6 files changed, 67 insertions(+), 47 deletions(-) diff --git a/hammond-data/src/dbqueries.rs b/hammond-data/src/dbqueries.rs index 6d737a8..a5d8e18 100644 --- a/hammond-data/src/dbqueries.rs +++ b/hammond-data/src/dbqueries.rs @@ -377,6 +377,34 @@ pub fn is_episodes_populated() -> Result { .map_err(From::from) } +/// Check `episode` table empty +/// +// FIXME: Return true if `episode` table is populated. +pub fn is_podcasts_populated() -> Result { + use schema::podcast::dsl::*; + + let db = connection(); + let con = db.get()?; + + // FIXME + // select(exists(select(podcast))) + // .get_result(&con) + // .map_err(From::from) + + podcast + .count() + .get_result(&con) + // FIXME: fix the diesel querry + .map(|b: i64| { + if b == 0 { + false + } else { + true + } + }) + .map_err(From::from) +} + pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<(), DataError> { use schema::episode::dsl::*; let db = connection(); diff --git a/hammond-gtk/resources/gtk/shows_child.ui b/hammond-gtk/resources/gtk/shows_child.ui index 1f4113a..1a7d5fd 100644 --- a/hammond-gtk/resources/gtk/shows_child.ui +++ b/hammond-gtk/resources/gtk/shows_child.ui @@ -1,5 +1,5 @@ -