simplify variables names for templates, refactor to be multi-model
This commit is contained in:
@@ -56,9 +56,9 @@ class MailTemplateController extends Controller
|
|||||||
return view('Admin.Core.Mail.MailTemplate.partials.vars', $data);
|
return view('Admin.Core.Mail.MailTemplate.partials.vars', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function preview($template_id, $user_id)
|
public function preview($template_id, $model_id)
|
||||||
{
|
{
|
||||||
return MailTemplates::preview($template_id, $user_id);
|
return MailTemplates::preview($template_id, $model_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function modalPreview($template_id)
|
public function modalPreview($template_id)
|
||||||
|
|||||||
@@ -3,15 +3,14 @@
|
|||||||
namespace App\Mail;
|
namespace App\Mail;
|
||||||
|
|
||||||
use App\Models\Core\Mail\MailTemplate;
|
use App\Models\Core\Mail\MailTemplate;
|
||||||
|
use App\Repositories\Shop\Traits\MailCustomers;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Mail\Mailables\Address;
|
|
||||||
use Illuminate\Mail\Mailables\Envelope;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Spatie\MailTemplates\TemplateMailable;
|
use Spatie\MailTemplates\TemplateMailable;
|
||||||
|
|
||||||
class Acheminement extends TemplateMailable
|
class Acheminement extends TemplateMailable
|
||||||
{
|
{
|
||||||
use Queueable, SerializesModels;
|
use MailCustomers, Queueable, SerializesModels;
|
||||||
|
|
||||||
protected static $templateModelClass = MailTemplate::class;
|
protected static $templateModelClass = MailTemplate::class;
|
||||||
|
|
||||||
@@ -29,12 +28,4 @@ class Acheminement extends TemplateMailable
|
|||||||
$this->male = $user->gender == 1;
|
$this->male = $user->gender == 1;
|
||||||
$this->subject = $subject;
|
$this->subject = $subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function envelope()
|
|
||||||
{
|
|
||||||
return new Envelope(
|
|
||||||
from: new Address('boutique@jardinenvie.com', 'Boutique Jardin\'Envie'),
|
|
||||||
subject: $this->subject,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,38 +3,33 @@
|
|||||||
namespace App\Mail;
|
namespace App\Mail;
|
||||||
|
|
||||||
use App\Models\Core\Mail\MailTemplate;
|
use App\Models\Core\Mail\MailTemplate;
|
||||||
|
use App\Repositories\Shop\Traits\MailCustomers;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Mail\Mailables\Address;
|
|
||||||
use Illuminate\Mail\Mailables\Envelope;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Spatie\MailTemplates\TemplateMailable;
|
use Spatie\MailTemplates\TemplateMailable;
|
||||||
|
|
||||||
class Bienvenue extends TemplateMailable
|
class Bienvenue extends TemplateMailable
|
||||||
{
|
{
|
||||||
use Queueable, SerializesModels;
|
use MailCustomers, Queueable, SerializesModels;
|
||||||
|
|
||||||
protected static $templateModelClass = MailTemplate::class;
|
protected static $templateModelClass = MailTemplate::class;
|
||||||
|
|
||||||
public $user;
|
public $email;
|
||||||
|
|
||||||
public $male;
|
public $nom;
|
||||||
|
|
||||||
|
public $prenom;
|
||||||
|
|
||||||
|
public $societe;
|
||||||
|
|
||||||
public $subject;
|
public $subject;
|
||||||
|
|
||||||
public $url;
|
|
||||||
|
|
||||||
public function __construct($user, $subject = '')
|
public function __construct($user, $subject = '')
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->prenom = $user->first_name;
|
||||||
$this->male = $user->gender == 1;
|
$this->nom = $user->last_name;
|
||||||
|
$this->societe = $user->society;
|
||||||
|
$this->email = $user->email;
|
||||||
$this->subject = $subject;
|
$this->subject = $subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function envelope()
|
|
||||||
{
|
|
||||||
return new Envelope(
|
|
||||||
from: new Address('boutique@jardinenvie.com', 'Jardin\'en\'Vie'),
|
|
||||||
subject: $this->subject,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,14 @@
|
|||||||
namespace App\Mail;
|
namespace App\Mail;
|
||||||
|
|
||||||
use App\Models\Core\Mail\MailTemplate;
|
use App\Models\Core\Mail\MailTemplate;
|
||||||
|
use App\Repositories\Shop\Traits\MailCustomers;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Mail\Mailables\Address;
|
|
||||||
use Illuminate\Mail\Mailables\Envelope;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Spatie\MailTemplates\TemplateMailable;
|
use Spatie\MailTemplates\TemplateMailable;
|
||||||
|
|
||||||
class ConfirmationCommande extends TemplateMailable
|
class ConfirmationCommande extends TemplateMailable
|
||||||
{
|
{
|
||||||
use Queueable, SerializesModels;
|
use MailCustomers, Queueable, SerializesModels;
|
||||||
|
|
||||||
protected static $templateModelClass = MailTemplate::class;
|
protected static $templateModelClass = MailTemplate::class;
|
||||||
|
|
||||||
@@ -21,20 +20,10 @@ class ConfirmationCommande extends TemplateMailable
|
|||||||
|
|
||||||
public $subject;
|
public $subject;
|
||||||
|
|
||||||
public $url;
|
|
||||||
|
|
||||||
public function __construct($user, $subject = '')
|
public function __construct($user, $subject = '')
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->male = $user->gender == 1;
|
$this->male = $user->gender == 1;
|
||||||
$this->subject = $subject;
|
$this->subject = $subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function envelope()
|
|
||||||
{
|
|
||||||
return new Envelope(
|
|
||||||
from: new Address('boutique@jardinenvie.com', 'Boutique Jardin\'Envie'),
|
|
||||||
subject: $this->subject,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,38 +3,33 @@
|
|||||||
namespace App\Mail;
|
namespace App\Mail;
|
||||||
|
|
||||||
use App\Models\Core\Mail\MailTemplate;
|
use App\Models\Core\Mail\MailTemplate;
|
||||||
|
use App\Repositories\Shop\Traits\MailCustomers;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Mail\Mailables\Address;
|
|
||||||
use Illuminate\Mail\Mailables\Envelope;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Spatie\MailTemplates\TemplateMailable;
|
use Spatie\MailTemplates\TemplateMailable;
|
||||||
|
|
||||||
class Preparation extends TemplateMailable
|
class Preparation extends TemplateMailable
|
||||||
{
|
{
|
||||||
use Queueable, SerializesModels;
|
use MailCustomers, Queueable, SerializesModels;
|
||||||
|
|
||||||
protected static $templateModelClass = MailTemplate::class;
|
protected static $templateModelClass = MailTemplate::class;
|
||||||
|
|
||||||
public $user;
|
public $email;
|
||||||
|
|
||||||
public $male;
|
public $nom;
|
||||||
|
|
||||||
|
public $prenom;
|
||||||
|
|
||||||
|
public $societe;
|
||||||
|
|
||||||
public $subject;
|
public $subject;
|
||||||
|
|
||||||
public $url;
|
|
||||||
|
|
||||||
public function __construct($user, $subject = '')
|
public function __construct($user, $subject = '')
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->prenom = $user->first_name;
|
||||||
$this->male = $user->gender == 1;
|
$this->nom = $user->last_name;
|
||||||
|
$this->societe = $user->society;
|
||||||
|
$this->email = $user->email;
|
||||||
$this->subject = $subject;
|
$this->subject = $subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function envelope()
|
|
||||||
{
|
|
||||||
return new Envelope(
|
|
||||||
from: new Address('boutique@jardinenvie.com', 'Boutique Jardin\'Envie'),
|
|
||||||
subject: $this->subject,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,16 +38,17 @@ class MailTemplates
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'users' => $mailable::getUsers(),
|
'list' => $mailable::getContext(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function preview($id, $user_id)
|
public static function preview($id, $model_id)
|
||||||
{
|
{
|
||||||
$template = self::get($id);
|
$template = self::get($id);
|
||||||
$mailable = $template->mailable;
|
$mailable = $template->mailable;
|
||||||
$data = $mailable::getDataByUser($user_id);
|
$data = $mailable::getData($model_id);
|
||||||
$html_template = $template->toArray()['html_template_translations'][$data['lang']] ?? false;
|
|
||||||
|
$html_template = $template->toArray()['html_template_translations'][$data['lang'] ?? 'fr'] ?? false;
|
||||||
if ($html_template) {
|
if ($html_template) {
|
||||||
$m = new Mustache_Engine();
|
$m = new Mustache_Engine();
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,11 @@ class Customers
|
|||||||
return Customer::count();
|
return Customer::count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getOptions()
|
||||||
|
{
|
||||||
|
return Customer::pluck('last_name', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
public static function editProfile($id = false)
|
public static function editProfile($id = false)
|
||||||
{
|
{
|
||||||
$id = $id ? $id : self::getId();
|
$id = $id ? $id : self::getId();
|
||||||
|
|||||||
41
app/Repositories/Shop/Traits/MailCustomers.php
Normal file
41
app/Repositories/Shop/Traits/MailCustomers.php
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Repositories\Shop\Traits;
|
||||||
|
|
||||||
|
use App\Repositories\Shop\Customers;
|
||||||
|
use App\Repositories\Core\DateTime;
|
||||||
|
use Illuminate\Mail\Mailables\Address;
|
||||||
|
use Illuminate\Mail\Mailables\Envelope;
|
||||||
|
|
||||||
|
trait MailCustomers
|
||||||
|
{
|
||||||
|
public static function getContext()
|
||||||
|
{
|
||||||
|
return Customers::getOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getData($id)
|
||||||
|
{
|
||||||
|
$user = self::getUser($id);
|
||||||
|
|
||||||
|
return $user ? [
|
||||||
|
'prenom' => $user->first_name,
|
||||||
|
'nom' => $user->last_name,
|
||||||
|
'societe' => $user->society,
|
||||||
|
'email' => $user->email,
|
||||||
|
] : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getUser($id)
|
||||||
|
{
|
||||||
|
return Customers::get($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function envelope()
|
||||||
|
{
|
||||||
|
return new Envelope(
|
||||||
|
from: new Address('boutique@jardinenvie.com', 'Jardin\'en\'Vie'),
|
||||||
|
subject: $this->subject,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,9 +5,9 @@
|
|||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@include('components.form.select', [
|
@include('components.form.select', [
|
||||||
'id_name' => 'user_id',
|
'id_name' => 'model_id',
|
||||||
'name' => 'user_id',
|
'name' => 'model_id',
|
||||||
'list' => $users,
|
'list' => $list,
|
||||||
'class' => 'select2',
|
'class' => 'select2',
|
||||||
'with_empty' => '',
|
'with_empty' => '',
|
||||||
'label' => __('Core.users.name'),
|
'label' => __('Core.users.name'),
|
||||||
@@ -23,13 +23,10 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
initSelect2();
|
initSelect2();
|
||||||
$('#user_id').change(function() {
|
$('#model_id').change(function() {
|
||||||
console.log('ici');
|
var model_id = $(this).find(":selected").val();
|
||||||
var user_id = $(this).find(":selected").val();
|
|
||||||
var template_id = $('#template_id').val();
|
var template_id = $('#template_id').val();
|
||||||
console.log(user_id);
|
var url = "{{ route('Admin.Core.Mail.MailTemplate.preview') }}/" + template_id + '/' + model_id;
|
||||||
console.log(template_id);
|
|
||||||
var url = "{{ route('Admin.Core.Mail.MailTemplate.preview') }}/" + template_id + '/' + user_id;
|
|
||||||
$.get(url, function(data) {
|
$.get(url, function(data) {
|
||||||
$('#previewTemplate').html(data);
|
$('#previewTemplate').html(data);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
{{ Form::label('', __('Description')) }}
|
{{ Form::label('', __('Description')) }}
|
||||||
<textarea name="description" class="form-control">{{ $delivery['description'] }}</textarea>
|
<textarea name="description" class="form-control">{{ $delivery['description'] ?? '' }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ Route::prefix('MailTemplate')->name('MailTemplate.')->group(function () {
|
|||||||
Route::post('storeAjax', 'MailTemplateController@storeAjax')->name('storeAjax');
|
Route::post('storeAjax', 'MailTemplateController@storeAjax')->name('storeAjax');
|
||||||
Route::any('', 'MailTemplateController@index')->name('index');
|
Route::any('', 'MailTemplateController@index')->name('index');
|
||||||
Route::get('getVars/{mailable?}', 'MailTemplateController@getVarsByMailable')->name('getVarsByMailable');
|
Route::get('getVars/{mailable?}', 'MailTemplateController@getVarsByMailable')->name('getVarsByMailable');
|
||||||
Route::get('preview/{template_id?}/{user_id?}', 'MailTemplateController@preview')->name('preview');
|
Route::get('preview/{template_id?}/{model_id?}', 'MailTemplateController@preview')->name('preview');
|
||||||
Route::get('modalPreview/{template_id?}', 'MailTemplateController@modalPreview')->name('modalPreview');
|
Route::get('modalPreview/{template_id?}', 'MailTemplateController@modalPreview')->name('modalPreview');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user