defmodule PlausibleWeb.Live.Plugins.API.TokenForm do @moduledoc """ Live view for the goal creation form """ use PlausibleWeb, live_view: :no_sentry_context import PlausibleWeb.Live.Components.Form alias Plausible.Plugins.API.{Token, Tokens} def mount( _params, %{ "token_description" => token_description, "domain" => domain, "rendered_by" => pid }, socket ) do socket = socket |> assign_new(:site, fn %{current_user: current_user} -> Plausible.Sites.get_for_user!(current_user, domain, roles: [ :owner, :admin, :editor, :super_admin ] ) end) token = Token.generate() form = to_form(Token.insert_changeset(socket.assigns.site, token)) {:ok, assign(socket, token_description: token_description, token: token, form: form, domain: domain, rendered_by: pid, token_generated: false )} end def render(assigns) do ~H"""
Copy the token and store it in a secure place, as it won't be shown again. You'll need to paste the token in the settings area of the Plausible WordPress plugin.
<.button theme="secondary" phx-click="close-token-modal" class="w-full" > Close modal <% else %> <.form :let={f} for={@form} phx-submit="generate-token"> <.title> Create plugin token for {@domain}Once created, we will display the token so it can be copied.
<.button type="submit" class="w-full"> Create plugin token <% end %>