Packages
phoenix_kit
1.7.205
1.7.208
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
Files
Jump to
Current section
Files
lib/phoenix_kit_web/live/settings/send_profiles.html.heex
<PhoenixKitWeb.Components.LayoutWrapper.app_layout
flash={@flash}
phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
page_title={@page_title}
page_subtitle={@page_subtitle}
page_section={@page_section}
page_section_path={@page_section_path}
current_path={@current_path}
project_title={@project_title}
>
<div class="container flex-col mx-auto px-4 py-6">
<%!-- Send Profiles table --%>
<div :if={@send_profiles != []}>
<.table_default
id="send-profiles-table"
toggleable
items={@send_profiles}
card_fields={&send_profile_card_fields/1}
>
<:toolbar_title>
<span class="text-sm text-base-content/60">
{ngettext("%{count} profile", "%{count} profiles", length(@send_profiles),
count: length(@send_profiles)
)}
</span>
</:toolbar_title>
<:toolbar_actions>
<.pk_link
navigate="/admin/settings/email-sending/profiles/new"
class="btn btn-primary btn-sm"
>
<.icon name="hero-plus" class="w-4 h-4" /> {gettext("New send profile")}
</.pk_link>
</:toolbar_actions>
<:card_header :let={send_profile}>
<div class="flex items-center gap-2 flex-wrap">
<span class="font-medium">{send_profile.name}</span>
<span :if={send_profile.is_default} class="badge badge-info badge-xs">
{gettext("Default Newsletter Profile")}
</span>
</div>
</:card_header>
<.table_default_header>
<.table_default_row>
<.table_default_header_cell>{gettext("Name")}</.table_default_header_cell>
<.table_default_header_cell>{gettext("Provider")}</.table_default_header_cell>
<.table_default_header_cell>{gettext("From")}</.table_default_header_cell>
<.table_default_header_cell>{gettext("Rate")}</.table_default_header_cell>
<.table_default_header_cell>{gettext("Status")}</.table_default_header_cell>
<.table_default_header_cell>{gettext("Actions")}</.table_default_header_cell>
</.table_default_row>
</.table_default_header>
<.table_default_body>
<.table_default_row :for={send_profile <- @send_profiles}>
<.table_default_cell>
<div class="font-medium">{send_profile.name}</div>
<span :if={send_profile.is_default} class="badge badge-xs badge-info mt-0.5">
{gettext("Default Newsletter Profile")}
</span>
</.table_default_cell>
<.table_default_cell>
<span class="badge badge-sm badge-ghost">{send_profile.provider_kind}</span>
</.table_default_cell>
<.table_default_cell class="text-xs">
<%= if send_profile.from_email do %>
{send_profile.from_name || send_profile.from_email}
<% else %>
<span class="text-base-content/40">-</span>
<% end %>
</.table_default_cell>
<.table_default_cell class="text-xs text-base-content/70">
<%= if send_profile.rate_per_hour do %>
{gettext("%{count}/hr", count: send_profile.rate_per_hour)}
<% else %>
<span class="text-base-content/40">-</span>
<% end %>
</.table_default_cell>
<.table_default_cell>
<.enabled_badge enabled={send_profile.enabled} />
</.table_default_cell>
<.table_default_cell>
<.table_row_menu
id={"send-profile-menu-#{send_profile.uuid}"}
mode="dropdown"
label={gettext("Actions")}
>
<.table_row_menu_button
:if={!send_profile.is_default}
phx-click="make_default"
phx-value-uuid={send_profile.uuid}
icon="hero-star"
label={gettext("Make default")}
/>
<.table_row_menu_link
navigate={
Routes.path(
"/admin/settings/email-sending/profiles/#{send_profile.uuid}/edit"
)
}
icon="hero-pencil"
label={gettext("Edit")}
/>
<.table_row_menu_divider />
<.table_row_menu_button
phx-click="delete_send_profile"
phx-value-uuid={send_profile.uuid}
icon="hero-trash"
label={gettext("Delete")}
variant="error"
data-confirm={gettext("This send profile will be permanently deleted.")}
/>
</.table_row_menu>
</.table_default_cell>
</.table_default_row>
</.table_default_body>
<:card_actions :let={send_profile}>
<.table_row_menu
id={"send-profile-card-menu-#{send_profile.uuid}"}
mode="dropdown"
label={gettext("Actions")}
>
<.table_row_menu_button
:if={!send_profile.is_default}
phx-click="make_default"
phx-value-uuid={send_profile.uuid}
icon="hero-star"
label={gettext("Make default")}
/>
<.table_row_menu_link
navigate={
Routes.path("/admin/settings/email-sending/profiles/#{send_profile.uuid}/edit")
}
icon="hero-pencil"
label={gettext("Edit")}
/>
<.table_row_menu_divider />
<.table_row_menu_button
phx-click="delete_send_profile"
phx-value-uuid={send_profile.uuid}
icon="hero-trash"
label={gettext("Delete")}
variant="error"
data-confirm={gettext("This send profile will be permanently deleted.")}
/>
</.table_row_menu>
</:card_actions>
</.table_default>
</div>
<%!-- Empty state --%>
<.empty_state
:if={@send_profiles == []}
variant="featured"
icon="hero-paper-airplane"
title={gettext("No send profiles yet")}
description={gettext("Create a send profile to choose how outbound email is delivered.")}
>
<.pk_link
navigate="/admin/settings/email-sending/profiles/new"
class="btn btn-primary btn-lg"
>
<.icon name="hero-plus" class="w-5 h-5 mr-2" /> {gettext("Create first send profile")}
</.pk_link>
</.empty_state>
</div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>