@@ -3,13 +3,17 @@ defmodule PlausibleWeb.AdminController do
33
44 alias Plausible.Teams
55
6+ alias PlausibleWeb.Router.Helpers , as: Routes
7+
68 def usage ( conn , params ) do
79 user_id = String . to_integer ( params [ "user_id" ] )
810
911 team =
1012 case Teams . get_by_owner ( user_id ) do
1113 { :ok , team } ->
12- Teams . with_subscription ( team )
14+ team
15+ |> Teams . with_subscription ( )
16+ |> Plausible.Repo . preload ( :owner )
1317
1418 { :error , :no_team } ->
1519 nil
@@ -69,19 +73,26 @@ defmodule PlausibleWeb.AdminController do
6973 end
7074
7175 defp usage_and_limits_html ( team , usage , limits , embed? ) do
72- sites =
76+ sites_row =
7377 if team do
74- Plausible.Repo . preload ( team , :sites ) . sites
75- else
76- [ ]
77- end
78+ sites_count =
79+ team
80+ |> Ecto . assoc ( :sites )
81+ |> Plausible.Repo . aggregate ( :count )
82+
83+ sites_link =
84+ Routes . kaffy_resource_url ( PlausibleWeb.Endpoint , :index , :sites , :site ,
85+ custom_search: team . owner . email
86+ )
7887
79- sites_list =
80- Enum . map_join ( sites , "\n " , fn site ->
8188 """
82- <li><a href="/crm/sites/site/ #{ site . id } ">#{ site . domain } </a></li>
89+ <li>Owner of <a href="#{ sites_link } ">#{ sites_count } site#{ if sites_count != 1 , do: "s" , else: "" } </a></li>
8390 """
84- end )
91+ else
92+ """
93+ <li>Owner of 0 sites</li>
94+ """
95+ end
8596
8697 content = """
8798 <ul>
@@ -90,13 +101,7 @@ defmodule PlausibleWeb.AdminController do
90101 <li>Team members: <b>#{ usage . team_members } </b> / #{ limits . team_members } </li>
91102 <li>Features: #{ features_usage ( usage . features ) } </li>
92103 <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>
104+ #{ sites_row }
100105 </ul>
101106 """
102107
0 commit comments