-
+ @foreach ($errors->all() as $error)
+
- {{ $error }} + @endforeach +
diff --git a/app/Http/Controllers/Admin/TermsController.php b/app/Http/Controllers/Admin/TermsController.php index 6d20d39..8ff99b3 100644 --- a/app/Http/Controllers/Admin/TermsController.php +++ b/app/Http/Controllers/Admin/TermsController.php @@ -43,12 +43,14 @@ class TermsController extends Controller { if ($request->isMethod('post')) { $validated = $request->validate([ + 'city_id' => 'required|integer', 'terms_revision' => 'required|string|max:255', 'terms_text' => 'required|string', 'start_date' => 'nullable|date', 'use_flag' => 'required|in:0,1', 'memo' => 'nullable|string|max:255', - 'city_id' => 'nullable|integer', + 'terms_created_at' => 'nullable|date', + 'operator_id' => 'nullable|integer', ]); @@ -62,7 +64,6 @@ class TermsController extends Controller } - // 編集画面・更新処理 public function edit(Request $request, $id) { $term = Term::findOrFail($id); @@ -70,24 +71,27 @@ class TermsController extends Controller if ($request->isMethod('post')) { $validated = $request->validate([ - 'terms_revision' => 'required|string|max:255', - 'terms_text' => 'required|string', - 'start_date' => 'nullable|date', - 'use_flag' => 'required|in:0,1', - 'memo' => 'nullable|string|max:255', - 'city_id' => 'nullable|integer', - 'operator_id' => 'nullable|integer', + 'city_id' => 'required|integer', + 'terms_revision' => 'required|string|max:255', + 'terms_text' => 'required|string', + 'start_date' => 'nullable|date', + 'use_flag' => 'required|in:0,1', + 'memo' => 'nullable|string|max:255', + 'terms_created_at'=> 'nullable|date', + 'operator_id' => 'nullable|integer', ]); $term->update($validated); return redirect()->route('terms')->with('success', '利用規約が更新されました'); + } - return view('admin.terms.edit', compact('term', 'cities')); } + + // 詳細表示 public function info($id) { @@ -95,17 +99,24 @@ class TermsController extends Controller return view('admin.terms.info', compact('term')); } - // 削除処理(複数) + // 削除処理(単一・複数対応) public function delete(Request $request) { - $ids = $request->input('id', []); // 修正点:'pk' → 'id' + $request->validate([ + 'pk' => 'required', + 'pk.*' => 'integer', // 配列なら中身は整数 + ]); - if (!empty($ids)) { - Term::destroy($ids); - return redirect()->route('terms')->with('success', '削除しました'); + $arr_pk = $request->input('pk'); + $ids = is_array($arr_pk) ? $arr_pk : [$arr_pk]; + + $deleted = Term::destroy($ids); + + if ($deleted > 0) { + return redirect()->route('terms')->with('success', __('削除成功しました。')); + } else { + return redirect()->route('terms')->with('error', __('削除に失敗しました。')); } - - return redirect()->route('terms')->with('error', '削除対象が見つかりません'); } // CSVインポート(仮) diff --git a/app/Models/Term.php b/app/Models/Term.php index ba3037e..1e82489 100644 --- a/app/Models/Term.php +++ b/app/Models/Term.php @@ -34,4 +34,11 @@ class Term extends Model { return self::all(); } + public static function deleteByPk($ids) + { + if (!is_array($ids)) { + $ids = [$ids]; + } + return self::whereIn('terms_id', $ids)->delete(); + } } diff --git a/resources/js/app.js b/resources/js/app.js index bb22939..0822146 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -29,6 +29,7 @@ $('#checkbox_all').on('ifChecked ifUnchecked', function (event) { }); $('#delete').on('click', function () { + $.confirm({ title: '確認ダイアログ。', content: '!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。\n' + @@ -159,4 +160,43 @@ $('.register').on('click', function (e) { } } }); -}); \ No newline at end of file +}); + +// 編集画面専用 登録ボタン +$('#register_edit').on('click', function (e) { + e.preventDefault(); + $.confirm({ + title: '確認ダイアログ', + content: '登録してよろしいですか?', + buttons: { + ok: { + text: "はい", + btnClass: 'btn-primary', + action: function () { + $("#form_edit").submit(); // 更新処理 + } + }, + いいえ: function () {} + } + }); +}); + +// 編集画面専用 削除ボタン +$('#delete_edit').on('click', function (e) { + e.preventDefault(); + $.confirm({ + title: '確認ダイアログ', + content: 'このレコードを削除してよろしいですか?', + buttons: { + ok: { + text: "はい", + btnClass: 'btn-primary', + action: function () { + $("#form_delete").submit(); // 削除処理 + } + }, + いいえ: function () {} + } + }); +}); + diff --git a/resources/lang/ja/validation.php b/resources/lang/ja/validation.php index 65e5f21..efbef22 100644 --- a/resources/lang/ja/validation.php +++ b/resources/lang/ja/validation.php @@ -378,6 +378,15 @@ return [ 'regular_class_6' => '定期種別6', 'regular_class_12' => '定期種別12', 'memo' => '備考', +// SWA-88 + 'city_id' => '市区ID', + 'terms_revision' => 'リビジョン', + 'terms_effective_date' => '契約内容有効日', + 'terms_type' => '契約内容種別', + 'terms_text' => '契約内容', + 'use_flag' => '契約内容フラグ', + 'terms_created_at' => '契約内容作成日', + 'terms_updated_at' => '契約内容更新日', ], ]; diff --git a/resources/views/admin/terms/_form.blade.php b/resources/views/admin/terms/_form.blade.php index 004d026..62c9467 100644 --- a/resources/views/admin/terms/_form.blade.php +++ b/resources/views/admin/terms/_form.blade.php @@ -4,109 +4,142 @@