mirror of
https://github.com/plausible/analytics.git
synced 2024-11-29 05:57:19 +03:00
e3af1a317d
* Migration: add installation meta * Update site schema with installation meta * Remove VERIFICATION_ENABLED env var * Add context API to create/remove special goals * Add context api to update installation meta * Remove verification enabled check * Update new progress flow definitions * Update generic components * Remove internal /status API * Implement installation live view * Update traffic change notifier link * Update verification, no more modal * Update routes * Remove focus.html - will unify everything under app layout * Fix broken link * Update templates with focus_box mostly * Update controller tests * Update controllers and stop using the focus layout * copy changes * Update verification.ex * Remove dead template * Update settings_general.html.heex * Update copy in tests * Update installation.ex * Remove dangling dot * Fix link * Update installation.ex * Update installation.ex * Better tooltips? * Simpler labels * Revert "Simpler labels" This reverts commit 797560ef82f2067458b03b884be5aecc8fdc72bc. * Add copy to clipboard link and fix snippet's dark mode * Offer installation detection skip only if ws connected * Put COPY link at the bottom with background * Make tooltips link to docs * Fix cherry-pick gone wrong * Hide tooltips on mobile screens * WIP: 404 tracking wizard * Revert "WIP: 404 tracking wizard" This reverts commita9c9c79bbd
. * Update lib/plausible_web/live/components/verification.ex Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * Update lib/plausible_web/live/installation.ex Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * Use current_user from socket.assigns * Update lib/plausible_web/live/installation.ex Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * Use current_user from socket.assigns * Use conn.private to steer verification tests * Drop non-sticky tooltip in favour of component parametrization Co-authored-by: Artur Pata <artur.pata@gmail.com> * Reapply "WIP: 404 tracking wizard" This reverts commit3ba81671d7
. * Fix installation tests including 404 tracking * Fixup the tooltip component * Format * Update installation.ex * Put flash whenever installation option changes * Use last known installation type on domain change * Extract user flow definition to provide compile-time checks * See if this helps running CE migrations successfully * Use `styled_link` on registration/login views * Don't crash when there's no conn.private carried over * Format * Push "Determining installation type" message a bit lower * Use links and footer lists uniformly This commit introduces a `<.focus_list/>` component for rendering focus box footer links with colored discs. It also equips generic link components with the ability of sending non-GET requests along with CSRF token, so we can apply uniform styling and stop using legacy Phoenix link tags. cc @zoldar @apata * ws 👾 * Render more descriptive flashes on script config change --------- Co-authored-by: Marko Saric <34340819+metmarkosaric@users.noreply.github.com> Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> Co-authored-by: Artur Pata <artur.pata@gmail.com>
65 lines
1.4 KiB
Elixir
65 lines
1.4 KiB
Elixir
defmodule PlausibleWeb.Flows do
|
|
@moduledoc """
|
|
Static compile-time definitions for user progress flows.
|
|
See `PlausibleWeb.Components.FlowProgress` for rendering capabilities.
|
|
"""
|
|
|
|
@flows %{
|
|
review: [
|
|
"Install Plausible",
|
|
"Verify installation"
|
|
],
|
|
domain_change: [
|
|
"Set up new domain",
|
|
"Install Plausible",
|
|
"Verify installation"
|
|
],
|
|
register: [
|
|
"Register",
|
|
"Activate account",
|
|
"Add site info",
|
|
"Install Plausible",
|
|
"Verify installation"
|
|
],
|
|
invitation: [
|
|
"Register",
|
|
"Activate account"
|
|
],
|
|
provisioning: [
|
|
"Add site info",
|
|
"Install Plausible",
|
|
"Verify installation"
|
|
]
|
|
}
|
|
|
|
@valid_values @flows
|
|
|> Enum.flat_map(fn {_, steps} -> steps end)
|
|
|> Enum.uniq()
|
|
|
|
@valid_keys @flows
|
|
|> Map.keys()
|
|
|> Enum.map(&to_string/1)
|
|
|
|
@spec steps(binary() | atom()) :: list(binary())
|
|
def steps(flow) when flow in @valid_keys do
|
|
steps(String.to_existing_atom(flow))
|
|
end
|
|
|
|
def steps(flow) when is_atom(flow) do
|
|
Map.get(@flows, flow, [])
|
|
end
|
|
|
|
def steps(_), do: []
|
|
|
|
@spec valid_values() :: list(binary())
|
|
def valid_values(), do: @valid_values
|
|
|
|
@spec valid_values() :: list(binary())
|
|
def valid_keys(), do: @valid_keys
|
|
|
|
for {flow, _} <- @flows do
|
|
@spec unquote(flow)() :: binary()
|
|
def unquote(flow)(), do: unquote(to_string(flow))
|
|
end
|
|
end
|