diff --git a/config/runtime.exs b/config/runtime.exs index fd1eee218..88b70b978 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -606,6 +606,7 @@ if config_env() in [:dev, :staging, :prod, :test] do ecto_repo: Plausible.Repo, router: PlausibleWeb.Router, admin_title: "Plausible Admin", + extensions: [Plausible.CrmExtensions], resources: [ auth: [ resources: [ diff --git a/lib/plausible/auth/user_admin.ex b/lib/plausible/auth/user_admin.ex index dd9bf98fb..8301d18a1 100644 --- a/lib/plausible/auth/user_admin.ex +++ b/lib/plausible/auth/user_admin.ex @@ -36,7 +36,6 @@ defmodule Plausible.Auth.UserAdmin do trial_expiry_date: %{name: "Trial expiry", value: &format_date(&1.trial_expiry_date)}, subscription_plan: %{value: &subscription_plan/1}, subscription_status: %{value: &subscription_status/1}, - usage: %{value: &usage_link/1}, grace_period: %{value: &grace_period_status/1}, accept_traffic_until: %{ name: "Accept traffic until", @@ -110,12 +109,7 @@ defmodule Plausible.Auth.UserAdmin do quota = PlausibleWeb.AuthView.subscription_quota(user.subscription) interval = PlausibleWeb.AuthView.subscription_interval(user.subscription) - manage_url = - Plausible.Billing.PaddleApi.vendors_domain() <> - "/subscriptions/customers/manage/" <> - user.subscription.paddle_subscription_id - - {:safe, ~s(#{quota} \(#{interval}\))} + {:safe, ~s(#{quota} \(#{interval}\))} else "--" end @@ -124,7 +118,13 @@ defmodule Plausible.Auth.UserAdmin do defp subscription_status(user) do cond do user.subscription -> - PlausibleWeb.AuthView.present_subscription_status(user.subscription.status) + status_str = PlausibleWeb.AuthView.present_subscription_status(user.subscription.status) + + if user.subscription.paddle_subscription_id do + {:safe, ~s(#{status_str})} + else + status_str + end Plausible.Users.on_trial?(user) -> "On trial" @@ -134,13 +134,9 @@ defmodule Plausible.Auth.UserAdmin do end end - on_ee do - defp usage_link(user) do - path = PlausibleWeb.Router.Helpers.admin_path(PlausibleWeb.Endpoint, :usage, user.id) - {:safe, ~s(Usage)} - end - else - defp usage_link(_), do: nil + defp manage_url(%{paddle_subscription_id: paddle_id} = _subscription) do + Plausible.Billing.PaddleApi.vendors_domain() <> + "/subscriptions/customers/manage/" <> paddle_id end defp format_date(nil), do: "--" diff --git a/lib/plausible/crm_extensions.ex b/lib/plausible/crm_extensions.ex new file mode 100644 index 000000000..3f1988876 --- /dev/null +++ b/lib/plausible/crm_extensions.ex @@ -0,0 +1,32 @@ +defmodule Plausible.CrmExtensions do + @moduledoc """ + Extensions for Kaffy CRM + """ + + use Plausible + + on_ee do + def javascripts(%{assigns: %{context: "auth", resource: "user", entry: %{} = user}}) do + [ + Phoenix.HTML.raw(""" + + """) + ] + end + end + + def javascripts(_) do + [] + end +end diff --git a/lib/plausible_web/controllers/admin_controller.ex b/lib/plausible_web/controllers/admin_controller.ex index a10fd7bf2..865417f8c 100644 --- a/lib/plausible_web/controllers/admin_controller.ex +++ b/lib/plausible_web/controllers/admin_controller.ex @@ -17,39 +17,47 @@ defmodule PlausibleWeb.AdminController do team_members: Quota.Limits.team_member_limit(user) } - html_response = usage_and_limits_html(user, usage, limits) + html_response = usage_and_limits_html(user, usage, limits, params["embed"] == "true") conn |> put_resp_content_type("text/html") |> send_resp(200, html_response) end - defp usage_and_limits_html(user, usage, limits) do - """ - - - -
- - -