hide system events by default on activity page
All checks were successful
deploy / deploy (push) Successful in 1h1m58s

Adds a toggle to show/hide internal system events (syncs, job failures,
abandoned cart creation) on the activity feed. Hidden by default so shop
owners only see actionable items. Toggle is ephemeral — resets on page load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-02 08:32:06 +00:00
parent 820714a04f
commit bf06ee051a
3 changed files with 62 additions and 8 deletions

View File

@@ -15,6 +15,7 @@ defmodule BerrypodWeb.Admin.Activity do
socket
|> assign(:page_title, "Activity")
|> assign(:attention_count, ActivityLog.count_needing_attention())
|> assign(:show_system, false)
{:ok, socket}
end
@@ -31,7 +32,8 @@ defmodule BerrypodWeb.Admin.Activity do
page: page_num,
tab: tab,
category: category,
search: search
search: search,
hide_system: !socket.assigns.show_system
)
socket =
@@ -85,6 +87,11 @@ defmodule BerrypodWeb.Admin.Activity do
{:noreply, push_patch(socket, to: ~p"/admin/activity?#{params}")}
end
def handle_event("toggle_system", _params, socket) do
socket = assign(socket, :show_system, !socket.assigns.show_system)
{:noreply, refetch_and_reassign(socket)}
end
def handle_event("resolve", %{"id" => id}, socket) do
ActivityLog.resolve(id)
{:noreply, refetch_and_reassign(socket)}
@@ -171,6 +178,14 @@ defmodule BerrypodWeb.Admin.Activity do
<.category_chip category="syncs" active={@category} label="Syncs" />
<.category_chip category="emails" active={@category} label="Emails" />
<.category_chip category="carts" active={@category} label="Carts" />
<label class="admin-toggle-label admin-text-secondary">
<input
type="checkbox"
class="admin-toggle admin-toggle-sm"
checked={@show_system}
phx-click="toggle_system"
/> System events
</label>
</div>
<.form
for={%{}}
@@ -380,7 +395,10 @@ defmodule BerrypodWeb.Admin.Activity do
_ -> true
end
tab_match and category_match
system_match =
if assigns.show_system, do: true, else: !ActivityLog.system_event_type?(entry.event_type)
tab_match and category_match and system_match
end
defp build_params(opts) do
@@ -397,7 +415,8 @@ defmodule BerrypodWeb.Admin.Activity do
page: assigns.pagination.page,
tab: assigns.tab,
category: assigns.category,
search: assigns.search
search: assigns.search,
hide_system: !assigns.show_system
)
end