Packages

phoenix_kit

1.4.7
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
phoenix_kit lib phoenix_kit_web live modules publishing settings.ex
Raw

lib/phoenix_kit_web/live/modules/publishing/settings.ex

defmodule PhoenixKitWeb.Live.Modules.Publishing.Settings do
@moduledoc """
Admin configuration for publishing content types.
"""
use PhoenixKitWeb, :live_view
use Gettext, backend: PhoenixKitWeb.Gettext
alias PhoenixKitWeb.Live.Modules.Publishing
alias PhoenixKit.Settings
alias PhoenixKit.Utils.Routes
def mount(params, _session, socket) do
locale = params["locale"] || socket.assigns[:current_locale] || "en"
Gettext.put_locale(PhoenixKitWeb.Gettext, locale)
Process.put(:phoenix_kit_current_locale, locale)
socket =
socket
|> assign(:current_locale, locale)
|> assign(:project_title, Settings.get_setting("project_title", "PhoenixKit"))
|> assign(:page_title, gettext("Manage Types"))
|> assign(:current_path, Routes.path("/admin/settings/publishing", locale: locale))
|> assign(:module_enabled, Publishing.enabled?())
|> assign(:types, Publishing.list_types())
|> assign(:new_type, "")
{:ok, socket}
end
def handle_params(_params, _uri, socket), do: {:noreply, socket}
def handle_event("update_new_type", %{"new_type" => value} = _params, socket) do
{:noreply, assign(socket, :new_type, value)}
end
def handle_event("update_new_type", %{"value" => value}, socket) do
{:noreply, assign(socket, :new_type, value)}
end
def handle_event("add_type", _params, socket) do
case Publishing.add_type(socket.assigns.new_type) do
{:ok, _type} ->
{:noreply,
socket
|> assign(:types, Publishing.list_types())
|> assign(:new_type, "")
|> put_flash(:info, gettext("Publishing type added"))}
{:error, :already_exists} ->
{:noreply, put_flash(socket, :error, gettext("That publishing type already exists"))}
{:error, :invalid_name} ->
{:noreply, put_flash(socket, :error, gettext("Please enter a valid type name"))}
{:error, _reason} ->
{:noreply, put_flash(socket, :error, gettext("Failed to add publishing type"))}
end
end
def handle_event("remove_type", %{"slug" => slug}, socket) do
case Publishing.remove_type(slug) do
{:ok, _} ->
{:noreply,
socket
|> assign(:types, Publishing.list_types())
|> put_flash(:info, gettext("Publishing type removed"))}
{:error, _reason} ->
{:noreply, put_flash(socket, :error, gettext("Failed to remove publishing type"))}
end
end
end