Skip to content

Commit 2848ce8

Browse files
authored
Only show sites count in user CRM instead of full list of sites (#4911)
* Only show sites count in user CRM instead of full list of sites * Make it play nice with CE
1 parent e82ae65 commit 2848ce8

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed

lib/plausible_web/controllers/admin_controller.ex

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule PlausibleWeb.AdminController do
22
use PlausibleWeb, :controller
3+
use Plausible
34

45
alias Plausible.Teams
56

@@ -9,7 +10,9 @@ defmodule PlausibleWeb.AdminController do
910
team =
1011
case Teams.get_by_owner(user_id) do
1112
{:ok, team} ->
12-
Teams.with_subscription(team)
13+
team
14+
|> Teams.with_subscription()
15+
|> Plausible.Repo.preload(:owner)
1316

1417
{:error, :no_team} ->
1518
nil
@@ -69,34 +72,14 @@ defmodule PlausibleWeb.AdminController do
6972
end
7073

7174
defp usage_and_limits_html(team, usage, limits, embed?) do
72-
sites =
73-
if team do
74-
Plausible.Repo.preload(team, :sites).sites
75-
else
76-
[]
77-
end
78-
79-
sites_list =
80-
Enum.map_join(sites, "\n", fn site ->
81-
"""
82-
<li><a href="/crm/sites/site/#{site.id}">#{site.domain}</a></li>
83-
"""
84-
end)
85-
8675
content = """
8776
<ul>
8877
<li>Team: <b>#{team && team.name}</b></li>
8978
<li>Sites: <b>#{usage.sites}</b> / #{limits.sites}</li>
9079
<li>Team members: <b>#{usage.team_members}</b> / #{limits.team_members}</li>
9180
<li>Features: #{features_usage(usage.features)}</li>
9281
<li>Monthly pageviews: #{monthly_pageviews_usage(usage.monthly_pageviews, limits.monthly_pageviews)}</li>
93-
<li>
94-
Owned sites:
95-
96-
<ul>
97-
#{sites_list}
98-
</ul>
99-
</li>
82+
#{sites_count_row(team)}
10083
</ul>
10184
"""
10285

@@ -126,6 +109,32 @@ defmodule PlausibleWeb.AdminController do
126109
end
127110
end
128111

112+
on_ee do
113+
alias PlausibleWeb.Router.Helpers, as: Routes
114+
115+
defp sites_count_row(%Plausible.Teams.Team{} = team) do
116+
sites_count =
117+
team
118+
|> Ecto.assoc(:sites)
119+
|> Plausible.Repo.aggregate(:count)
120+
121+
sites_link =
122+
Routes.kaffy_resource_url(PlausibleWeb.Endpoint, :index, :sites, :site,
123+
custom_search: team.owner.email
124+
)
125+
126+
"""
127+
<li>Owner of <a href="#{sites_link}">#{sites_count} site#{if sites_count != 1, do: "s", else: ""}</a></li>
128+
"""
129+
end
130+
end
131+
132+
defp sites_count_row(_) do
133+
"""
134+
<li>Owner of 0 sites</li>
135+
"""
136+
end
137+
129138
defp features_usage(features_module_list) do
130139
list_items =
131140
features_module_list

0 commit comments

Comments
 (0)