工程表(バーチャート・ネットワーク)の品質改善
アノテーション機能の全面整備(メイン作業)
背景:2画面でアノテーション(テキストボックス・フリー線)の実装がバラバラで、barchartに欠けている機能が多かった・・設計書を作成してから4段階で実装した
| 1 | networkのイベント処理を委譲方式に統一(個別リスナー8箇所を撤去) |
| 2 | barchartにnetwork同等の機能を追加(ドラッグ移動・端点編集・描画プレビュー等) |
| 3 | UXルール統一(配置後即モーダル表示・ワンショット化) |
| 4 | 共通コード(schedules-common.js)として抽出・約230行の重複削減 |
あわせてモーダルのUI表記も両画面で統一(ボタンラベル・フォント選択肢・フリー線太さをselect化等)・・・P4完了後に発覚した退行(barchartのテキストボックス):長文・大フォントで文字が枠からはみ出し、クリック・ダブルクリックが効かなくなる問題。原因はforeignObjectの固定サイズ・・・networkにあった「文字量に合わせた自動拡大」が移植漏れだったため、共通モジュールに追加して解消
印刷機能の連続修正
| 回 | 問題 | 原因 |
|---|
| 1 | 印刷後に背面に残像が残る | try/finally未実装で復元処理が漏れる可能性 |
| 2 | プレビュー表示中も残像が見える | 描画凍結中にpaintが完了しない |
| 3 | そもそも消えない | デバッグ用のコメントアウトが残ったまま |
| 4 | 月境界線が太すぎ・テキストの上に乗る | 旧レイアウト時代の「貫通線」が残存していた |
| 5 | 月境界線が「時々」途切れる | UTC変換による日付の1日ずれ(タイムゾーンバグ) |
その他の改善
- キャンバス表示範囲の拡張:工期ぴったりの表示から「工期の前後1ヶ月」に拡張。工期前後への工程配置が可能になり、読込時は工期開始位置へ自動スクロール。印刷は従来どおり指定範囲のみ
- 印刷範囲外工程の除外:バーチャートの印刷で範囲外の工程・接続線が出力される問題を修正。あわせてアノテーション(テキスト・フリー線)が印刷範囲変更時にずれる問題も修正(日付アンカー方式を導入)
- フリー線の太さ・矢印修正:太さ変更が即反映されない問題と、1pxで矢印が見えなくなる問題を修正(矢印を固定サイズに変更)
- ダブルクリック編集の修正:委譲化により発生した問題。DOM再構築のタイミング制御(requestAnimationFrame遅延・3px閾値)で解消
結果
| テスト | TenantIsolationTest 33件パス維持(全修正通じて) |
| 主な成果 | アノテーション機能の2画面統一・印刷品質の大幅改善 |
| 特記 | 印刷残像の根本原因はデバッグコードの消し忘れ1行だった |