墓参り 工事管理の見直し

墓掃除と墓参り
1-2. edit_overview.blade.php 削除
変更詳細
edit_overview.blade.php削除
routes/web.phpprojects.overview.edit / projects.overview.update ルートを削除
ProjectControllereditOverview() / updateOverview() メソッドを削除

残留リンク確認: resources/views/projects/ 内に overview ルートへの参照なし(削除前にgrep確認済み)

甲斐犬のキクも一緒に

2.show.blade.php — 工事編集ボタンの移動

変更前: <x-slot name=”nav_extra”> でヘッダータブとして表示
変更後*: 工事名・ステータスバーの右端にボタン配置

[ 工事名 (施工中) ] ··················· [ 部署: ○○ ] [ 担当: ○○ ] [ ✏️ 工事編集 ]

プロジェクトの管理画面を刷新

プロジェクト管理プロセスのセキュリティ及びファイルの健全性を検証

1.コードファイルの統合

1-1. create.blade.php + edit.blade.php → edit.blade.php(統合・create 削除)

統合方法:

  • $project->exists(Eloquent 未保存インスタンスかどうか)で動作を切り替え
  • 新規モード(exists = false): フォーム action → projects.store、HTTP method → POST、入力値なし
  • 編集モード(exists = true): フォーム action → projects.update、HTTP method → PATCH、old() + 既存値
  • ヘッダー文言・キャンセル遷移先・会社名ソース・nav_extra タブをモードで分岐
  • ProjectController@create() を view(‘projects.edit’, [‘project’ => new Project()]) に変更
  • 影響範囲: index.blade.php の route(‘projects.create’) はそのまま動作(resource ルートは維持)
変更前変更後
create.blade.php(新規登録専用)削除
edit.blade.php(編集専用)create+edit 統合版に書き換え

3.バグ修正 — ステータス表示の不整合

問題: index.blade.php は start_date/end_date から PHP で計算、show.blade.php は $project->status(DBカラム値)を直接参照 → 表示が食い違う修正: Project モデルにアクセサを追加し、全ページで統一

php
// app/Models/Project.php に追加
public function getStatusLabelAttribute(): string
{
$today = \Carbon\Carbon::today()->format(‘Y-m-d’);
if (!$this->start_date || !$this->end_date || $today < $this->start_date) {
return ‘準備中’;
}
if ($today > $this->end_date) {
return ‘工事完了’;
}
return ‘施工中’;
}

適用箇所*

ファイル変更前変更
index.blade.php@php ブロックで 15 行の計算$project->status_label 1行
show.blade.php(ステータスバー)$project->status(DBカラム)$project->status_label
show.blade.php(情報テーブル)$project->status(DBカラム)$project->status_label
print.blade.php@php ブロックで 8 行の計算$project->status_label 1行

7.Swiper を npm 管理に移行(CDN 廃止)

背景: show.blade.php で cdn.jsdelivr.net から Swiper 11 を直接読み込んでいた。CDN 障害時に写真スライダーが機能停止するリスクがあった。
変更内容:

変更箇所内容
npm install swiperswiper@12.2.0 をプロジェクトの依存に追加
resources/js/app.jsimport Swiper from ‘swiper/bundle’ + import ‘swiper/css/bundle’ を追加、window.Swiper = Swiper でグローバル登録
resources/views/projects/show.blade.php<link rel=”stylesheet” … cdn…> と<cript src=”… cdn…”> の2行を削除

ビルド結果: npm run build 成功。app.js に Swiper がバンドル済み(211KB CSS / 671KB JS)
⚠️ 注意: app.js が 671KB(gzip: 211KB)と大きい。将来的に dynamic import によるコード分割を検討推奨。

9.edit.blade.php — 概要テキスト欄を全幅に拡大

背景: edit_overview.blade.php 削除に伴い、工事概要入力が edit.blade.php の左カラム内の狭い textarea のみになっていた。
変更内容: フォームレイアウトを以下の3段構成に変更
概要テキストエリアを 2 カラム分の全幅(w-full)で表示
行数を 3 → 5 に拡大

11.残課題

優先度     内容
app.js が 671KB(gzip 211KB)と大きい。Swiper の dynamic import / manual chunk 分割を検討
写真のスライダー上の × 削除ボタンが小さく見えにくい場合は、スライダー外に写真一覧・削除 UI を設けることも一案

4.セキュリティ・脆弱性の対処(前回作業分の確認)

項目状態
XSS: session(‘error’/’success’) を alert() で表示✅ 前回修正済み(アラート削除、toast コンポーネント利用)
インラインJSハンドラー(onclick= / onsubmit=)✅ 前回修正済み(addEventListener / 使用)
写真 taken_at nullチェック不足✅ 前回修正済み(Carbon::parse() + null ガード)

5.修正後のファイル一覧

ファイル状態
projects/index.blade.php修正(ステータス計算を status_label アクセサに置換)
projects/edit.blade.php書き換え(create + edit 統合)
projects/show.blade.php修正(工事編集ボタン移動・status_label 適用)
projects/print.blade.php修正(status_label アクセサ適用)
projects/create.blade.php削除
projects/edit_overview.blade.php削除
app/Models/Project.php修正(getStatusLabelAttribute() 追加)
app/Http/Controllers/ProjectController.php修正(create 改修、editOverview/updateOverview 削除)
routes/web.php修正(overview ルート 2 件削除)

8.projects テーブルの status カラム削除

背景: status DB カラムと getStatusLabelAttribute()アクセサが二重管理状態だった。アクセサが start_date/end_date から常に正確な値を返すため、DB カラムは不要。
変更内容:

変更箇所内容
database/migrations/2026_06_11_000001_drop_status_from_projects_table.php新規作成 —projects.status カラムを削除するマイグレーション(down() でロールバック可能)
php artisan migrate | マイグレーション実行済み(100ms、DONE)app/Models/Project.php | $fillable から status’ を削除

10.変更ファイル一覧

ファイル 変更種別
package.json / package-lock.jsonswiper 追加
resources/js/app.jsSwiper import 追加
resources/views/projects/show.blade.phpCDN リンク2行削除
database/migrations/2026_06_11_000001_…php新規作成(マイグレーション実行済み)
app/Models/Project.php$fillable から status 削除
resources/views/projects/edit.blade.php概要欄レイアウト変更
resources/views/components/help/projects-edit-overview.blade.php削除
ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  • 2026年7月
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031