Packages
phoenix_kit
1.7.149
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/modules/referrals/web/list.ex
defmodule PhoenixKit.Modules.Referrals.Web.List do
@moduledoc """
User referral codes management LiveView for PhoenixKit admin panel.
Displays and manages referral codes associated with users.
"""
use PhoenixKitWeb, :live_view
alias PhoenixKit.Modules.Referrals
alias PhoenixKit.Settings
def mount(_params, _session, socket) do
# Get project title from settings
project_title = Settings.get_project_title()
# Load referral codes and stats
codes = Referrals.list_codes()
system_stats = Referrals.get_system_stats()
config = Referrals.get_config()
socket =
socket
|> assign(:page_title, "Referral Codes")
|> assign(:project_title, project_title)
|> assign(:codes, codes)
|> assign(:system_stats, system_stats)
|> assign(:config, config)
{:ok, socket}
end
def handle_params(_params, uri, socket) do
{:noreply, assign(socket, :url_path, URI.parse(uri).path)}
end
def handle_event("delete_code", %{"uuid" => uuid}, socket) do
code = Referrals.get_code!(uuid)
case Referrals.delete_code(code) do
{:ok, _code} ->
socket =
socket
|> put_flash(:info, "Referral code deleted successfully")
|> assign(:codes, Referrals.list_codes())
|> assign(:system_stats, Referrals.get_system_stats())
{:noreply, socket}
{:error, _changeset} ->
socket = put_flash(socket, :error, "Failed to delete referral code")
{:noreply, socket}
end
end
def handle_event("toggle_code_status", %{"uuid" => uuid}, socket) do
code = Referrals.get_code!(uuid)
new_status = !code.status
case Referrals.update_code(code, %{status: new_status}) do
{:ok, _code} ->
status_text = if new_status, do: "activated", else: "deactivated"
socket =
socket
|> put_flash(:info, "Referral code #{status_text}")
|> assign(:codes, Referrals.list_codes())
|> assign(:system_stats, Referrals.get_system_stats())
{:noreply, socket}
{:error, _changeset} ->
socket = put_flash(socket, :error, "Failed to update referral code status")
{:noreply, socket}
end
end
end