mirror of
https://github.com/plausible/analytics.git
synced 2024-12-18 14:51:57 +03:00
e71de6dc1f
* Invite existing user to a site * Add invitation flow for non-existing users * Accept and reject invitations * Use invitation flow for existing users * Locking mechanism for sites * Authorization for site settings * Show usage based on site ownership * Add ability to remove members from a site * Do not show settings link to viewer roles * Ability to remove invitations * Remove `Plausible.Sites.count_for/1` * Fix tests * Do not show the trial banner after the trial * Correct trial emails * Transfer ownership * Send invitation email to existing user * Add invitation email flows * Add plug for role-based authorization * Rename AuthorizeStatsPlug -> AuthorizeSiteAccess * Add email flow for ownership transfer * Fix URLs in emails * Fix small copy issues * Make 'People' its own section in site settings * Notify user via email if their access has been removed * Check site lock status when invitation is accepted * Check lock status when user subscribes * Make sure only admins and owners can create shared links * Changelog * Add LockSites to daily cron * Clean invitations after 48 hours * Add notices about expiry * Add invitation expired page * Add doc link
27 lines
1.5 KiB
Elixir
27 lines
1.5 KiB
Elixir
<%= render_layout "app.html", assigns do %>
|
|
<div class="container pt-6">
|
|
<%= link("← Back to stats", to: "/#{URI.encode_www_form(@site.domain)}", class: "text-sm text-indigo-600 font-bold") %>
|
|
<div class="pb-5 border-b border-gray-200 dark:border-gray-500">
|
|
<h2 class="text-2xl font-bold leading-7 text-gray-900 dark:text-gray-100 sm:text-3xl sm:leading-9 sm:truncate">
|
|
Settings for <%= @site.domain %>
|
|
</h2>
|
|
</div>
|
|
<div class="lg:grid lg:grid-cols-12 lg:gap-x-5 lg:mt-4">
|
|
<div class="py-4 g:py-0 lg:col-span-3">
|
|
<%= form_for @conn, "/sites/#{URI.encode_www_form(@site.domain)}/monthly-report/recipients", [class: "lg:hidden"], fn f -> %>
|
|
<%= select f, :tab, settings_tabs(@conn), class: "dark:bg-gray-800 mt-1 block w-full pl-3 pr-10 py-2 text-base border-gray-300 dark:border-gray-500 outline-none focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md dark:text-gray-100", onchange: "location.href = location.href.replace(/[^\/\/]*$/, event.target.value)", selected: List.last(@conn.path_info) %>
|
|
<% end %>
|
|
<div class="hidden lg:block">
|
|
<%= for [key: key, value: val] <- settings_tabs(@conn) do %>
|
|
<%= render("_settings_tab.html", this_tab: val, text: key, site: @site, conn: @conn) %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="space-y-6 lg:col-span-9 lg:mt-4">
|
|
<%= @inner_content %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% end %>
|