diff --git a/lib/pinchflat_web/controllers/pages/page_controller.ex b/lib/pinchflat_web/controllers/pages/page_controller.ex index 3f9ccf8..50d1a46 100644 --- a/lib/pinchflat_web/controllers/pages/page_controller.ex +++ b/lib/pinchflat_web/controllers/pages/page_controller.ex @@ -8,38 +8,34 @@ defmodule PinchflatWeb.Pages.PageController do alias Pinchflat.Profiles.MediaProfile def home(conn, params) do - force_onboarding = params["onboarding"] - media_profiles_exist = Repo.exists?(MediaProfile) - sources_exist = Repo.exists?(Source) + done_onboarding = params["onboarding"] == "0" + force_onboarding = params["onboarding"] == "1" - if !force_onboarding && media_profiles_exist && sources_exist do - render_home_page(conn) + if done_onboarding, do: Settings.set!(:onboarding, false) + + if force_onboarding || Settings.get!(:onboarding) do + render_onboarding_page(conn) else - render_onboarding_page(conn, media_profiles_exist, sources_exist) + render_home_page(conn) end end defp render_home_page(conn) do - Settings.set!(:onboarding, false) - media_profile_count = Repo.aggregate(MediaProfile, :count, :id) - source_count = Repo.aggregate(Source, :count, :id) - media_item_count = Repo.aggregate(MediaItem, :count, :id) - conn |> render(:home, - media_profile_count: media_profile_count, - source_count: source_count, - media_item_count: media_item_count + media_profile_count: Repo.aggregate(MediaProfile, :count, :id), + source_count: Repo.aggregate(Source, :count, :id), + media_item_count: Repo.aggregate(MediaItem, :count, :id) ) end - defp render_onboarding_page(conn, media_profiles_exist, sources_exist) do + defp render_onboarding_page(conn) do Settings.set!(:onboarding, true) conn |> render(:onboarding_checklist, - media_profiles_exist: media_profiles_exist, - sources_exist: sources_exist, + media_profiles_exist: Repo.exists?(MediaProfile), + sources_exist: Repo.exists?(Source), layout: {Layouts, :onboarding} ) end diff --git a/lib/pinchflat_web/controllers/pages/page_html/onboarding_checklist.html.heex b/lib/pinchflat_web/controllers/pages/page_html/onboarding_checklist.html.heex index e336ce5..d4682be 100644 --- a/lib/pinchflat_web/controllers/pages/page_html/onboarding_checklist.html.heex +++ b/lib/pinchflat_web/controllers/pages/page_html/onboarding_checklist.html.heex @@ -39,7 +39,7 @@
Feel free to add more Media Profiles or Sources in the meantime!