From 53cb37897a26e5654f197c92a381675f50c70ec8 Mon Sep 17 00:00:00 2001 From: Antoine Le Gonidec Date: Sat, 20 Jul 2024 18:36:58 +0200 Subject: [PATCH] Group e-mails by first character in the group creation/edition form --- .../Controllers/CustomersGroupsController.php | 6 +++ .../views/groups/partials/edit_form.blade.php | 51 +++++++++++-------- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/Http/Controllers/CustomersGroupsController.php b/Http/Controllers/CustomersGroupsController.php index 1404512..3f1c8aa 100644 --- a/Http/Controllers/CustomersGroupsController.php +++ b/Http/Controllers/CustomersGroupsController.php @@ -53,6 +53,12 @@ class CustomersGroupsController extends Controller { ->pluck('emails') ->flatten() ->sortBy('email'); + // Group Emails by their first character. + // This is used to display them in collapsible groups. + $emails = $emails->mapToGroups(function ($email) { + $first_character = substr($email->email, $offset = 0, $length = 1); + return [ $first_character => $email ]; + }); return view('mmfcustomersgroups::groups/edit', [ 'mailboxes' => $mailboxes, diff --git a/Resources/views/groups/partials/edit_form.blade.php b/Resources/views/groups/partials/edit_form.blade.php index 76cfd69..08284f0 100644 --- a/Resources/views/groups/partials/edit_form.blade.php +++ b/Resources/views/groups/partials/edit_form.blade.php @@ -84,27 +84,36 @@
- @foreach ( $emails as $email ) -
-
- -
-
+ @foreach ( $emails as $first_character => $emails_group ) +
+ + {{ $first_character }}… + + @foreach ( $emails_group as $email ) +
+
+ +
+
+ @endforeach +
@endforeach
{{-- @include('partials/field_error', ['field'=>'emails.*']) --}}