Packages
phoenix_kit
1.7.71
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/customer_service/web/settings.html.heex
<PhoenixKitWeb.Components.LayoutWrapper.app_layout
flash={@flash}
phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
page_title="Customer Service Settings"
current_path={@url_path}
project_title={@project_title}
>
<div class="container flex flex-col mx-auto px-4 py-6">
<.admin_page_header
back={PhoenixKit.Utils.Routes.path("/admin/settings")}
title="Customer Service Settings"
subtitle="Configure customer service module behavior and features"
/>
<%!-- Main Content --%>
<div class="max-w-4xl mx-auto space-y-8">
<%!-- Stats Overview --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-chart-bar" class="w-6 h-6" /> Statistics
</h2>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div class="stat bg-base-200 rounded-lg p-4">
<div class="stat-title text-xs">Total</div>
<div class="stat-value text-2xl">{@stats.total}</div>
</div>
<div class="stat bg-info/20 rounded-lg p-4">
<div class="stat-title text-xs">Open</div>
<div class="stat-value text-2xl text-info">{@stats.open}</div>
</div>
<div class="stat bg-warning/20 rounded-lg p-4">
<div class="stat-title text-xs">In Progress</div>
<div class="stat-value text-2xl text-warning">{@stats.in_progress}</div>
</div>
<div class="stat bg-success/20 rounded-lg p-4">
<div class="stat-title text-xs">Resolved</div>
<div class="stat-value text-2xl text-success">{@stats.resolved}</div>
</div>
</div>
</div>
</div>
<%!-- Module Settings --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-cog-6-tooth" class="w-6 h-6" /> Module Configuration
</h2>
<%!-- Enable/Disable --%>
<div class="form-control">
<label class="label cursor-pointer justify-start gap-4">
<input
type="checkbox"
class="toggle toggle-primary"
checked={@enabled}
phx-click="toggle_enabled"
/>
<div>
<span class="label-text font-medium">Enable Customer Service Module</span>
<p class="text-sm text-base-content/50">
When disabled, the customer service interface will not be accessible
</p>
</div>
</label>
</div>
<div class="divider"></div>
<%!-- Per Page --%>
<div class="form-control">
<label class="label">
<span class="label-text font-medium">Tickets Per Page</span>
</label>
<select
class="select select-bordered w-full max-w-xs"
phx-change="update_per_page"
name="per_page"
>
<option value="10" selected={@per_page == 10}>10</option>
<option value="20" selected={@per_page == 20}>20</option>
<option value="50" selected={@per_page == 50}>50</option>
<option value="100" selected={@per_page == 100}>100</option>
</select>
</div>
</div>
</div>
<%!-- Feature Toggles --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-sparkles" class="w-6 h-6" /> Features
</h2>
<%!-- Internal Notes --%>
<div class="form-control">
<label class="label cursor-pointer justify-start gap-4">
<input
type="checkbox"
class="toggle toggle-warning"
checked={@internal_notes_enabled}
phx-click="toggle_internal_notes"
/>
<div>
<span class="label-text font-medium">Internal Notes</span>
<p class="text-sm text-base-content/50">
Allow staff-only notes that are hidden from customers
</p>
</div>
</label>
</div>
<div class="divider my-2"></div>
<%!-- Attachments --%>
<div class="form-control">
<label class="label cursor-pointer justify-start gap-4">
<input
type="checkbox"
class="toggle toggle-info"
checked={@attachments_enabled}
phx-click="toggle_attachments"
/>
<div>
<span class="label-text font-medium">Attachments</span>
<p class="text-sm text-base-content/50">
Allow uploading files to tickets and comments
</p>
</div>
</label>
</div>
</div>
</div>
<%!-- Workflow Settings --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-arrow-path" class="w-6 h-6" /> Workflow
</h2>
<%!-- Allow Reopen --%>
<div class="form-control">
<label class="label cursor-pointer justify-start gap-4">
<input
type="checkbox"
class="toggle"
checked={@allow_reopen}
phx-click="toggle_allow_reopen"
/>
<div>
<span class="label-text font-medium">Allow Reopening Tickets</span>
<p class="text-sm text-base-content/50">
Allow resolved or closed tickets to be reopened
</p>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>