From 0ecc7c73c7ae0c356882c38d389762354c199e85 Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Mon, 13 Feb 2023 22:52:39 +0100 Subject: [PATCH] enhance components, add mailtemplate, add traits for translations, for stats --- app/Mail/Acheminement.php | 58 ++++ app/Mail/Bienvenue.php | 58 ++++ app/Mail/ConfirmationCommande.php | 58 ++++ app/Mail/Preparation.php | 58 ++++ app/Models/Core/Mail/MailTemplate.php | 2 - app/Repositories/Core/Mailer.php | 32 -- app/Traits/HasTranslations.php | 26 ++ app/Traits/StatHelpers.php | 13 + composer.json | 1 - resources/lang/fr/Core.php | 213 +++++++++++++ .../Core/Mail/MailTemplate/index.blade.php | 7 +- .../Core/Mail/MailTemplate/modal.blade.php | 43 +-- .../Shelves/partials/category_add.blade.php | 6 +- .../components/form/datepicker.blade.php | 25 +- .../components/form/daterangepicker.blade.php | 11 + .../views/components/form/editor.blade.php | 20 +- .../form/inputs/input-translate.blade.php | 8 +- .../form/inputs/input-with-error.blade.php | 51 ++++ .../form/inputs/input-with-icon.blade.php | 9 +- .../components/form/inputs/number.blade.php | 27 +- .../components/form/inputs/percent.blade.php | 8 +- .../components/form/inputs/phone.blade.php | 2 +- .../components/form/inputs/search.blade.php | 8 + .../components/form/inputs/url.blade.php | 4 +- .../views/components/form/select.blade.php | 41 ++- .../select-multiple-duallist.blade.php | 17 +- .../selects/select-tree-duallist.blade.php | 1 + .../form/selects/select-tree.blade.php | 14 +- .../views/components/form/textarea.blade.php | 18 +- .../load/form/upload/fileinput.blade.php | 22 +- resources/views/load/layout/chevron.blade.php | 23 +- resources/views/load/layout/modal.blade.php | 284 ++++++++++++------ 32 files changed, 891 insertions(+), 277 deletions(-) create mode 100644 app/Mail/Acheminement.php create mode 100644 app/Mail/Bienvenue.php create mode 100644 app/Mail/ConfirmationCommande.php create mode 100644 app/Mail/Preparation.php delete mode 100644 app/Repositories/Core/Mailer.php create mode 100644 app/Traits/HasTranslations.php create mode 100644 app/Traits/StatHelpers.php create mode 100644 resources/lang/fr/Core.php create mode 100644 resources/views/components/form/daterangepicker.blade.php create mode 100644 resources/views/components/form/inputs/input-with-error.blade.php create mode 100644 resources/views/components/form/inputs/search.blade.php create mode 100644 resources/views/components/form/selects/select-tree-duallist.blade.php diff --git a/app/Mail/Acheminement.php b/app/Mail/Acheminement.php new file mode 100644 index 00000000..8a61deb3 --- /dev/null +++ b/app/Mail/Acheminement.php @@ -0,0 +1,58 @@ +user = $user; + $this->male = $user->gender == 1; + $this->subject = $subject; + $this->from[] = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + $this->reply_to = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + } + + public static function getDataByUser($user_id) + { + $user = self::getUser($user_id); + + return $user ? [ + 'user' => $user->toArray(), + 'male' => $user->gender == 1, + ] : false; + } + + public static function getUser($id) + { + return Customers::get($id); + } + + public function build() + { + $data = ['user' => $this->user]; + $template = $this->getTemplate(); + return $this->view($template, $data); + } + +} diff --git a/app/Mail/Bienvenue.php b/app/Mail/Bienvenue.php new file mode 100644 index 00000000..79a83eeb --- /dev/null +++ b/app/Mail/Bienvenue.php @@ -0,0 +1,58 @@ +user = $user; + $this->male = $user->gender == 1; + $this->subject = $subject; + $this->from[] = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + $this->reply_to = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + } + + public static function getDataByUser($user_id) + { + $user = self::getUser($user_id); + + return $user ? [ + 'user' => $user->toArray(), + 'male' => $user->gender == 1, + ] : false; + } + + public static function getUser($id) + { + return Customers::get($id); + } + + public function build() + { + $data = ['user' => $this->user]; + $template = $this->getTemplate(); + return $this->view($template, $data); + } + +} diff --git a/app/Mail/ConfirmationCommande.php b/app/Mail/ConfirmationCommande.php new file mode 100644 index 00000000..0a85b3f3 --- /dev/null +++ b/app/Mail/ConfirmationCommande.php @@ -0,0 +1,58 @@ +user = $user; + $this->male = $user->gender == 1; + $this->subject = $subject; + $this->from[] = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + $this->reply_to = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + } + + public static function getDataByUser($user_id) + { + $user = self::getUser($user_id); + + return $user ? [ + 'user' => $user->toArray(), + 'male' => $user->gender == 1, + ] : false; + } + + public static function getUser($id) + { + return Customers::get($id); + } + + public function build() + { + $data = ['user' => $this->user]; + $template = $this->getTemplate(); + return $this->view($template, $data); + } + +} diff --git a/app/Mail/Preparation.php b/app/Mail/Preparation.php new file mode 100644 index 00000000..f1a5a1e6 --- /dev/null +++ b/app/Mail/Preparation.php @@ -0,0 +1,58 @@ +user = $user; + $this->male = $user->gender == 1; + $this->subject = $subject; + $this->from[] = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + $this->reply_to = ['address' => 'boutique@jardinenvie.com','name' => 'Boutique JardinEnVie']; + } + + public static function getDataByUser($user_id) + { + $user = self::getUser($user_id); + + return $user ? [ + 'user' => $user->toArray(), + 'male' => $user->gender == 1, + ] : false; + } + + public static function getUser($id) + { + return Customers::get($id); + } + + public function build() + { + $data = ['user' => $this->user]; + $template = $this->getTemplate(); + return $this->view($template, $data); + } + +} diff --git a/app/Models/Core/Mail/MailTemplate.php b/app/Models/Core/Mail/MailTemplate.php index 502abf15..f0d8c3ae 100644 --- a/app/Models/Core/Mail/MailTemplate.php +++ b/app/Models/Core/Mail/MailTemplate.php @@ -11,8 +11,6 @@ class MailTemplate extends parentMailTemplate { use HasTranslations, RevisionableTrait, Userstamps; - protected $connection = 'central'; - public $translatable = ['subject', 'html_template', 'text_template']; protected $revisionCreationsEnabled = false; diff --git a/app/Repositories/Core/Mailer.php b/app/Repositories/Core/Mailer.php deleted file mode 100644 index 6a31ef7c..00000000 --- a/app/Repositories/Core/Mailer.php +++ /dev/null @@ -1,32 +0,0 @@ -sortBy('name') : collect([]); - foreach ($mailables as $mailable) - { - $templates[] = $mailable['name']; - } - - */ - $templates = ['EventInscription','EventSaveTheDate','MatinalesBadge','MatinalesThanks','MatinalesReplays']; - return $templates; - } - - public static function getTemplate($template_id) - { - $templates = self::getTemplates(); - return $templates[$template_id]; - } -} diff --git a/app/Traits/HasTranslations.php b/app/Traits/HasTranslations.php new file mode 100644 index 00000000..e167d353 --- /dev/null +++ b/app/Traits/HasTranslations.php @@ -0,0 +1,26 @@ +getTranslatableAttributes() as $field) { + $attributes[$field] = $this->getTranslation($field, \App::getLocale()); + $attributes[$field.'_translations'] = $this->getTranslations($field); + } + + return $attributes; + } +} diff --git a/app/Traits/StatHelpers.php b/app/Traits/StatHelpers.php new file mode 100644 index 00000000..fd387a37 --- /dev/null +++ b/app/Traits/StatHelpers.php @@ -0,0 +1,13 @@ +start(now())->end(now()->subSecond())->groupByDay()->get(); + + return $item ? $item[0]->value : 0; + } +} diff --git a/composer.json b/composer.json index e30ca2e7..4a1389c1 100644 --- a/composer.json +++ b/composer.json @@ -112,7 +112,6 @@ "facade/ignition": "^2.9", "fakerphp/faker": "^1.13", "fossbarrow/laravel-phpcs": "dev-main", - "imanghafoori/laravel-microscope": "1.0.278", "kevincobain2000/laravel-erd": "^1.3", "mockery/mockery": "^1.4.2", "nunomaduro/collision": "^5.4", diff --git a/resources/lang/fr/Core.php b/resources/lang/fr/Core.php new file mode 100644 index 00000000..79132735 --- /dev/null +++ b/resources/lang/fr/Core.php @@ -0,0 +1,213 @@ + 'Sauver', + 'cancel' => 'Annuler', + 'dashboard' => 'Tableau de bord', + 'edit_profile' => 'Editer votre profil', + 'change_password' => 'Modifier votre mot de passe', + 'old_password' => 'Ancien mot de passe', + 'expired_password' => 'Votre mot de passe est expiré. Vous devez changer votre mot de passe.', + 'add' => 'Ajouter', + 'search' => 'Chercher', + 'reset' => 'Réinitialiser', + 'close' => 'Fermer', + 'apply' => 'Appliquer', + 'forward_to' => 'Faire suivre', + 'answer' => 'Répondre', + 'new' => 'Nouveau', + 'lang' => 'Langue', + 'name' => 'Nom', + 'gender' => 'Genre', + 'position' => 'Poste', + 'department' => 'Département', + 'office' => 'Bureau', + 'lastname' => 'Nom', + 'firstname' => 'Prénom', + 'phone' => 'Téléphone', + 'phone_central' => 'Téléphone principal', + 'phone_pro' => 'Téléphone professionnel', + 'fax' => 'Fax', + 'email' => 'Email', + 'mobile' => 'Mobile', + 'country' => 'Pays', + 'list' => 'Liste', + 'active' => 'Actif', + 'inactive' => 'Inactif', + 'title' => 'Titre', + 'website' => 'Adresse web', + 'color' => 'Couleur', + 'select' => 'Sélectionner', + 'selected' => 'Sélectionné(s)', + 'non_selected' => 'Non sélectionné(s)', + 'moved' => 'Déplacé(s)', + 'move_all' => 'Tout déplacer', + 'empty_list' => 'Liste vide', + 'show_all' => 'Tout voir', + 'showing_all' => 'Voir tout : ', + 'filtered' => 'Filtré(s) : ', + 'from' => 'sur', + 'remove_all' => 'Tout enlever', + 'remove_selected' => 'Enlever la sélection', + 'select_all' => 'Tout sélectionner', + 'yes' => 'Oui', + 'no' => 'Non', + 'selction' => 'sélection', + 'mr' => 'M.', + 'mrs' => 'Mme', + 'zipcode' => 'Code postal', + 'company' => 'Entreprise', + 'address' => 'Adresse', + 'street' => 'Rue', + 'state' => 'Région', + 'postal_address' => 'Adresse postale', + 'city' => 'Ville', + 'person_in_charge' => 'Responsable', + 'administrative_codes' => 'Renseignements administratifs', + 'category' => 'Catégorie', + 'choose_a_file' => 'Choisissez un fichier', + 'select_a_value' => 'Selectionnez une valeur', + 'members_area' => 'Espace réservé', + 'login' => 'Identifiant', + 'password' => 'Mot de passe', + 'login_to_your_account' => 'Se connecter à votre compte', + 'password_reset' => 'Réinitialisation du mot de passe', + 'sign_in' => 'Connexion', + 'updated_at' => 'Mis à jour le', + 'settings' => 'Paramètres', + 'selection' => 'sélection', + 'street_complement' => 'Complément d\'adresse', + 'submit' => 'Envoyer', + 'confirm_new_password' => 'Confirmez le nouveau mot de passe', + 'comments' => [ + 'title' => 'Commentaires', + 'name' => 'Commentaire', + 'description' => 'Gérer les commentaires', + 'add' => 'Ajouter un commentaire', + 'show' => 'Voir un commentaire', + 'edit' => 'Editer un commentaire', + 'del' => 'Effacer un commentaire', + 'list' => 'Liste des commentaires', + 'successadd' => 'Le commentaire a été correctement ajouté', + 'successmod' => 'Le commentaire a été correctement modifiée', + 'successdel' => 'Le commentaire a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du commentaire ?', + 'count' => 'Nb de commentaires', + ], + 'at' => 'à', + 'the' => 'Le', + 'has_been_modified_by' => 'a été modifié(e) par', + 'have_modified' => 'a modifié ', + 'the_field' => 'Le champ', + 'created_at' => 'Créé le', + 'filters' => 'Filtres', + 'declare_bug' => 'Déclarer un bug', + 'volume' => 'Volume', + 'users' => [ + 'title' => 'Utilisateurs', + 'name' => 'utilisateur', + 'description' => 'Gérer les utilisateurs', + 'add' => 'Ajouter un utilisateur', + 'edit' => 'Editer un utilisateur', + 'del' => 'Effacer un utilisateur', + 'list' => 'Liste des utilisateurs', + 'successadd' => 'L\'utilisateur a été correctement ajouté', + 'successmod' => 'L\'utilisateur a été correctement modifié', + 'successdel' => 'L\'utilisateur a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression de l\'utilisateur ?', + ], + 'roles' => [ + 'title' => 'Roles', + 'name' => 'Role', + 'description' => 'Gérer les roles', + 'add' => 'Ajouter un role', + 'show' => 'Voir un role', + 'edit' => 'Editer un role', + 'del' => 'Effacer un role', + 'list' => 'Liste des roles', + 'successadd' => 'Le role a été correctement ajouté', + 'successmod' => 'Le role a été correctement modifiée', + 'successdel' => 'Le role a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du role ?', + 'count' => 'Nb de roles', + ], + 'permissions' => [ + 'title' => 'Permissions', + 'name' => 'Permission', + 'description' => 'Gérer les permissions', + 'add' => 'Ajouter une permission', + 'edit' => 'Editer une permission', + 'del' => 'Effacer une permission', + 'list' => 'Liste des permissions', + 'successadd' => 'La permission a été correctement ajoutée', + 'successmod' => 'La permission a été correctement modifiée', + 'successdel' => 'La permission a été correctement effacée', + 'confirmdelete' => 'Confirmez-vous la suppression de la permission ?', + ], + 'bugs' => [ + 'title' => 'Bugs', + 'name' => 'Bug', + 'description' => 'Gérer les bugs', + 'add' => 'Ajouter un bug', + 'edit' => 'Editer un bug', + 'del' => 'Effacer un bug', + 'list' => 'Liste des bugs', + 'successadd' => 'Le bug a été correctement ajouté', + 'successmod' => 'Le bug a été correctement modifié', + 'successdel' => 'Le bug a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du bug ?', + 'count' => 'Nb de bugs', + ], + 'mail_templates' => [ + 'title' => 'Templates de mails', + 'name' => 'Template de mails', + 'description' => 'Gérer les templates de mails', + 'add' => 'Ajouter un template', + 'edit' => 'Editer un template', + 'del' => 'Effacer un template', + 'list' => 'Liste des templates de mail', + 'successadd' => 'Le template a été correctement ajouté', + 'successmod' => 'Le template a été correctement modifié', + 'successdel' => 'Le template a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du template ?', + 'count' => 'Nb de templates', + ], + 'mailables' => 'Fonctions de mail', + 'variables' => 'Variables', + 'change_to' => 'Changer vers', + 'deleted_at' => 'Effacé le', + 'created_by' => 'Créé par', + 'updated_by' => 'Mis à jour par', + 'deleted_by' => 'Effacé par', + 'expire_at' => 'Expire le', + 'last_login' => 'Dernière connexion', + 'status' => 'Statut', + 'type' => 'Type', + 'private' => 'Privé', + 'public' => 'Publique', + 'slug' => 'Variable', + 'priority' => 'Priorité', + 'due_date' => 'Due date', + 'subject' => 'Sujet', + 'duration' => 'Durée', + 'preview' => 'Prévisualiser', + 'date' => 'Date', + 'application_modules' => [ + 'title' => 'Modules applications', + 'name' => 'Module application', + 'count' => 'Nb de modules', + 'description' => 'Gérer les modules', + 'add' => 'Ajouter un module', + 'edit' => 'Editer un module', + 'del' => 'Effacer un module', + 'list' => 'Liste des modules', + 'successadd' => 'Le module a été correctement ajouté', + 'successmod' => 'Le module a été correctement modifié', + 'successdel' => 'Le module a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du module ?', + ], + 'person' => 'Personne', + 'processing' => 'En cours', + 'all' => 'Tous', + 'impersonate' => 'Se faire passer pour', +]; diff --git a/resources/views/Admin/Core/Mail/MailTemplate/index.blade.php b/resources/views/Admin/Core/Mail/MailTemplate/index.blade.php index 6081fd49..a21394c5 100644 --- a/resources/views/Admin/Core/Mail/MailTemplate/index.blade.php +++ b/resources/views/Admin/Core/Mail/MailTemplate/index.blade.php @@ -1,12 +1,10 @@ @extends('layout.index', [ 'title' => __('Core.mail_templates.title'), 'subtitle' => __('Core.mail_templates.list'), - 'breadcrumb' => [ - ] + 'breadcrumb' => [] ]) @section('content') - @include('components.datatable', [ 'route' => route('Admin.Core.Mail.MailTemplate.index'), @@ -23,13 +21,14 @@ @component('components.layout.modal-filters', ['title' => 'Filters', 'id' => 'modal-mail_templates-filters']) @include('admin.Core.Mail.MailTemplate.partials.filters', ['model' => 'mail_templates']) @endcomponent - @endsection @include('load.form.datepicker') @include('load.form.select2') @include('load.form.editor') +@include('load.form.toggle') @include('load.form.upload.fileinput') +@include('load.layout.modal') @push('js') - @endpush @endif diff --git a/resources/views/components/form/inputs/input-translate.blade.php b/resources/views/components/form/inputs/input-translate.blade.php index b3687880..e892bfc6 100644 --- a/resources/views/components/form/inputs/input-translate.blade.php +++ b/resources/views/components/form/inputs/input-translate.blade.php @@ -1,13 +1,13 @@ +@include('components.form.label') +
- - @include('components.form.input') - + @include('components.form.input', ['label' => false])