ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

4年に1度しかないので、気づきにくいこと

うるう年のことまで確認して対処していてくれなかったので、修正していました。
f:id:AJYA:20160209054339j:plain
photo credit: 96221841 via photopin (license)

JavaScriptライブラリのsuperTables(現Grid)を使って、縦軸に人の名前、横に1か月分の日付を表示するシステムがあります。
Grid Updated | Matt's 411

お客さんから、今月だけほぼ全員の名前の折り返しが発生していると連絡がありました。

確認すると、どのブラウザで見ても発生していて、1月と3月には発生していません。
2月の表示を1月と3月の表示と比べると、名前を表示するセルの幅が狭くなっています。

2月の考慮はしていても、うるう年の考慮はされていない

2015年の2月の表示はどうなっているんだろうと確認すると、名前を表示するセルの幅は、2016年の1月と3月と幅でした。
ここがヒントになりました。

表示にはSmartyが使われているので、該当テンプレートを確認すると、2月か2月ではないかで、読み込むCSSが変わるようになっています。
読み込むCSSを比較すると、superTablesの表部分の横幅の設定が異なっていました。
2月用は幅が狭くなっています。

今年はうるう年のため、28日分で最適化されたCSSで29日分の日付を表示したために、名前を表示するセルの幅が狭くなっていました。

4年以上前に元同僚が納品しているシステムのはずなので、1度うるう年は経験しているはずですが、当時は問題にならなかったようです。


2月か2月ではないかの判定に加え、2月が29日まであるのかの判定をして、29日あれば29日用のCSSを読み込むようにして対処しました。
2月で切り分けた時点で、うるう年の対処もしておいて欲しかったです。