akaunting/app/Http/Controllers/Settings/EmailTemplates.php
2022-06-01 10:15:55 +03:00

85 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Settings;
use App\Abstracts\Http\Controller;
use App\Http\Requests\Setting\EmailTemplate as Request;
use App\Jobs\Setting\UpdateEmailTemplate;
use App\Models\Setting\EmailTemplate;
use App\Traits\Modules;
use Illuminate\Support\Str;
class EmailTemplates extends Controller
{
use Modules;
/**
* Display a listing of the resource.
*
* @return Response
*/
public function edit()
{
$templates = [];
EmailTemplate::all()->reject(function($template) {
if (Str::startsWith($template->class, 'App')) {
return false;
}
$class = explode('\\', $template->class);
return $this->moduleIsDisabled(Str::kebab($class[1]));
})->each(function ($template) use (&$templates) {
$templates[$template->group][$template->id] = $template;
});
ksort($templates);
return view('settings.email-templates.edit', compact('templates'));
}
/**
* Update the specified resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function update(Request $request)
{
$template = EmailTemplate::find($request->id);
$response = $this->ajaxDispatch(new UpdateEmailTemplate($template, $request));
if ($response['success']) {
$response['redirect'] = url()->previous();;
$message = trans('messages.success.updated', ['type' => trans($template->name)]);
flash($message)->success();
} else {
$response['redirect'] = url()->previous();;
$message = $response['message'];
flash($message)->error()->important();
}
return response()->json($response);
}
public function get()
{
$template = EmailTemplate::find(request()->id);
$template->tags = trans('settings.email.templates.tags', ['tag_list'=> implode(', ', app($template->class)->getTags())]);
return response()->json([
'errors' => false,
'success' => true,
'data' => $template,
]);
}
}