From 45100ac98d3638467397c8922b0f903d39e32ccd Mon Sep 17 00:00:00 2001 From: Inhji Date: Sat, 8 Apr 2023 09:53:27 +0200 Subject: [PATCH] show channel visibility on note form and channel index, show note count on channel index --- lib/chiya/channels/channel.ex | 8 ++++++++ lib/chiya_web/controllers/channel_controller.ex | 2 +- lib/chiya_web/controllers/channel_html/index.html.heex | 3 ++- lib/chiya_web/controllers/note_controller.ex | 5 ++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/chiya/channels/channel.ex b/lib/chiya/channels/channel.ex index b02bca5..b7147a4 100644 --- a/lib/chiya/channels/channel.ex +++ b/lib/chiya/channels/channel.ex @@ -27,4 +27,12 @@ defmodule Chiya.Channels.Channel do |> validate_required([:name, :content, :visibility, :slug, :layout]) |> validate_exclusion(:slug, ~w(admin user dev)) end + + def icon(%Chiya.Channels.Channel{visibility: vis}) do + case(vis) do + :public -> "🌍" + :private -> "🔒" + :unlisted -> "👁️" + end + end end diff --git a/lib/chiya_web/controllers/channel_controller.ex b/lib/chiya_web/controllers/channel_controller.ex index b32fff1..b531b74 100644 --- a/lib/chiya_web/controllers/channel_controller.ex +++ b/lib/chiya_web/controllers/channel_controller.ex @@ -5,7 +5,7 @@ defmodule ChiyaWeb.ChannelController do alias Chiya.Channels.Channel def index(conn, _params) do - channels = Channels.list_channels() + channels = Channels.list_channels() |> Channels.preload_channel() render(conn, :index, channels: channels) end diff --git a/lib/chiya_web/controllers/channel_html/index.html.heex b/lib/chiya_web/controllers/channel_html/index.html.heex index f30afc6..a044dee 100644 --- a/lib/chiya_web/controllers/channel_html/index.html.heex +++ b/lib/chiya_web/controllers/channel_html/index.html.heex @@ -9,7 +9,8 @@ <.table id="channels" rows={@channels} row_click={&JS.navigate(~p"/admin/channels/#{&1}")}> <:col :let={channel} label="Name"><%= channel.name %> - <:col :let={channel} label="Visibility"><%= channel.visibility %> + <:col :let={channel} label="Visibility"><%= Chiya.Channels.Channel.icon(channel) %> <%= channel.visibility %> + <:col :let={channel} label="Notes"><%= Enum.count(channel.notes) %> <:col :let={channel} label="Slug"><%= channel.slug %> <:action :let={channel}>
diff --git a/lib/chiya_web/controllers/note_controller.ex b/lib/chiya_web/controllers/note_controller.ex index 19b4216..747c887 100644 --- a/lib/chiya_web/controllers/note_controller.ex +++ b/lib/chiya_web/controllers/note_controller.ex @@ -147,5 +147,8 @@ defmodule ChiyaWeb.NoteController do end defp to_channel_options(items \\ nil), - do: Enum.map(items || Chiya.Channels.list_channels(), fn c -> {c.name, c.id} end) + do: + Enum.map(items || Chiya.Channels.list_channels(), fn c -> + {Chiya.Channels.Channel.icon(c) <> " " <> c.name, c.id} + end) end