Packages

phoenix_kit

1.7.159
1.7.210 1.7.209 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 notifications index.html.heex
Raw

lib/phoenix_kit_web/live/modules/notifications/index.html.heex

<PhoenixKitWeb.Components.LayoutWrapper.app_layout
socket={@socket}
flash={@flash}
phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
page_title={gettext("Notifications")}
page_subtitle={gettext("Per-user in-app notifications driven by the activity log")}
current_path={@url_path}
project_title={@project_title}
current_locale={assigns[:current_locale]}
>
<div class="p-6">
<div class="flex justify-end mb-4">
<button type="button" phx-click="refresh" class="btn btn-sm btn-ghost gap-2">
<.icon name="hero-arrow-path" class="w-4 h-4" /> {gettext("Refresh")}
</button>
</div>
<%!-- Aggregate counts --%>
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-6">
<div class="card bg-base-100 shadow">
<div class="card-body p-4">
<div class="flex items-center gap-2 text-base-content/60 text-sm">
<.icon name="hero-bell" class="w-4 h-4" /> {gettext("Total")}
</div>
<div class="text-3xl font-bold">{@stats.total}</div>
</div>
</div>
<div class="card bg-base-100 shadow">
<div class="card-body p-4">
<div class="flex items-center gap-2 text-base-content/60 text-sm">
<.icon name="hero-envelope" class="w-4 h-4" /> {gettext("Unread")}
</div>
<div class="text-3xl font-bold text-primary">{@stats.unread}</div>
</div>
</div>
<div class="card bg-base-100 shadow">
<div class="card-body p-4">
<div class="flex items-center gap-2 text-base-content/60 text-sm">
<.icon name="hero-x-circle" class="w-4 h-4" /> {gettext("Dismissed")}
</div>
<div class="text-3xl font-bold">{@stats.dismissed}</div>
</div>
</div>
</div>
<%!-- Module info --%>
<div class="card bg-base-100 shadow">
<div class="card-body p-4">
<h3 class="font-semibold text-sm mb-3">{gettext("About")}</h3>
<div class="space-y-2 text-sm">
<div class="flex justify-between">
<span class="text-base-content/60">{gettext("Status")}</span>
<span class="badge badge-success">{gettext("Enabled")}</span>
</div>
<div class="flex justify-between">
<span class="text-base-content/60">{gettext("Retention")}</span>
<span>{gettext("%{days} days", days: @retention_days)}</span>
</div>
</div>
<p class="text-xs text-base-content/60 mt-4">
{gettext(
"Notifications are generated from the activity log (one per target user) and via standalone sends. Each user manages which types they receive in their settings; this page is a read-only overview. Disable the module from the Modules page."
)}
</p>
</div>
</div>
</div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>