All checks were successful
Deploy preview (main_kin) / deploy (push) Successful in 13s
125 lines
3.6 KiB
PHP
125 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\MailTemplate;
|
|
|
|
class MailTemplateController extends Controller
|
|
{
|
|
/**
|
|
* 一覧表示
|
|
*/
|
|
public function list(Request $request)
|
|
{
|
|
if ($request->input('action') === 'reset') {
|
|
return redirect()->route('mail_templates');
|
|
}
|
|
|
|
$sort = $request->input('sort', 'mail_template_id');
|
|
$sort_type = $request->input('sort_type', 'desc');
|
|
|
|
$query = MailTemplate::query();
|
|
|
|
// 絞り込み
|
|
if ($request->filled('mail_template_id')) {
|
|
$query->where('mail_template_id', $request->mail_template_id);
|
|
}
|
|
if ($request->filled('pg_id')) {
|
|
$query->where('pg_id', $request->pg_id);
|
|
}
|
|
if ($request->has('mgr_cc_flag') && $request->mgr_cc_flag !== '') {
|
|
$query->where('mgr_cc_flag', $request->mgr_cc_flag);
|
|
}
|
|
if ($request->has('use_flag') && $request->use_flag !== '') {
|
|
$query->where('use_flag', $request->use_flag);
|
|
}
|
|
if ($request->filled('subject')) {
|
|
$query->where('subject', 'LIKE', "%{$request->subject}%");
|
|
}
|
|
|
|
$templates = $query->orderBy($sort, $sort_type)->paginate(20);
|
|
|
|
return view('admin.mail_templates.list', compact(
|
|
'templates', 'sort', 'sort_type'
|
|
));
|
|
}
|
|
|
|
/**
|
|
* 新規登録
|
|
*/
|
|
public function add(Request $request)
|
|
{
|
|
if ($request->isMethod('post')) {
|
|
$data = $this->validateTemplate($request);
|
|
MailTemplate::create($data);
|
|
|
|
return redirect()->route('mail_templates')
|
|
->with('success', 'テンプレートを登録しました');
|
|
}
|
|
|
|
$mailTemplate = new MailTemplate();
|
|
return view('admin.mail_templates.add', compact('mailTemplate'));
|
|
}
|
|
|
|
/**
|
|
* 編集
|
|
*/
|
|
public function edit($id, Request $request)
|
|
{
|
|
$mailTemplate = MailTemplate::findOrFail($id);
|
|
|
|
if ($request->isMethod('post')) {
|
|
$data = $this->validateTemplate($request);
|
|
$mailTemplate->update($data);
|
|
|
|
return redirect()->route('mail_templates')
|
|
->with('success', 'テンプレートを更新しました');
|
|
}
|
|
|
|
return view('admin.mail_templates.edit', compact('mailTemplate'));
|
|
}
|
|
|
|
/**
|
|
* 詳細表示
|
|
*/
|
|
public function info($id)
|
|
{
|
|
$mailTemplate = MailTemplate::findOrFail($id);
|
|
|
|
return view('admin.mail_templates.info', compact('mailTemplate'));
|
|
}
|
|
|
|
/**
|
|
* 削除
|
|
*/
|
|
public function delete(Request $request)
|
|
{
|
|
$id = $request->input('id');
|
|
if ($id) {
|
|
MailTemplate::destroy($id);
|
|
return redirect()->route('mail_templates')->with('success', 'テンプレートを削除しました');
|
|
}
|
|
return redirect()->route('mail_templates')->with('error', '削除対象が指定されていません');
|
|
}
|
|
|
|
/**
|
|
* バリデーション共通化
|
|
*/
|
|
private function validateTemplate(Request $request)
|
|
{
|
|
return $request->validate([
|
|
'pg_id' => 'nullable|integer',
|
|
'internal_id' => 'nullable|integer',
|
|
'mgr_cc_flag' => 'nullable|boolean',
|
|
'bcc_adrs' => 'nullable|string|max:255',
|
|
'use_flag' => 'nullable|boolean',
|
|
'memo' => 'nullable|string|max:255',
|
|
'subject' => 'required|string|max:255',
|
|
'text' => 'required|string',
|
|
'operator_id' => 'nullable|integer',
|
|
]);
|
|
}
|
|
}
|