日付指定関連の不具合のご報告
Posted: 2014年7月23日(水) 20:03
yamaさま
謹んでご報告させていただきます。明確なバグ報告ついでに従前から感じていた改善希望もまとめさせていただいてます。ご検討のほどよろしくお願いします。
■$modx->parseText由来と思われる不具合(1.0.14J-r1より発現)
◎日付入力欄(例えば公開日指定)のソースをみると、プレースホルダ[+disabled+]が表に出ています。
# 権限がない or HOME の場合は、きちんとdisabled="disabled"となります。
これは、割と最近ブラッシュアップされたparseText関数が直接の原因となってるみたいです。
/manager/include/document.parser.class.inc.php 2503行目
#プレースホルダの置き換える値がない場合はそのまま文字列を返すロジックになっているからなのですが、parseText関数としては正しい姿のような気もします。一瞬空白を代入するようPRしようかとおもいましたが。disabled関数(mutate_content.functions.inc.php)がfalseの場合に空白を返すようにする感じの方が良いような気もします。
■datepicker.js等JS周りと思われる不具合(主にFireFox、1.0.14J,14J-r1で確認してます)
========================================
明らかな不具合
------------------------------
◎公開日付を指定しているリーソースのテンプレートを変更すると、日付が1970/01/01(時刻は-10時間くらい)になります。
改善を希望したい挙動
------------------------------
(その1)
日付入力欄(例えば公開日指定や公開終了日指定)で、カレンダーを表示させ日付をクリックすることで「指定日付+現在の時刻」が挿入されますが、
続けて時間を調整しようとして、再び、日時欄をクリックして、カレンダーの時刻欄に時間を入力、確定(Enter)すると、
(カレンダー上の日付は先に指定した本日以外の日付になっているにもかかわらず)
◎「本日の日付+入力した時刻」と時刻のみではなく、日付も変わってしまいます。
また、時刻欄に入力後、Tabキーでフィールド遷移した場合には変更が反映されないようです。
(その2)
日付の変更があり、再度調整するケースでは、さらにまた日付だけ変更しようと、日時欄をクリックすると思いますが、
クリックするとカレンダー下部の時刻欄には、先ほど入力した時刻ではなく「現在の時刻」が表示されており、新しい日付をクリックすると、
◎「修正した日付+現在の時刻」が挿入されます。
これも割と意図しない挙動だと思います。
(その3)
◎テキスト欄に手入力した日付が、一度保存して再編集しないとポップアップカレンダーに反映されない
のも、何かと誤指定の元になりそうな気がします。
(私的に)期待する挙動としては、
・(dateOnly以外の)日時指定の場合、日付クリック後は時刻入力欄に強制移動した方が良い。もしくは、そもそも日付欄と時刻欄を分ける感じ。
・既に入力値が存在する場合はその日時の両方を取得して反映するようにしてほしい。
感じでしょうか。
※ワークアラウンド: 現状では「最初に時刻欄を入力した後にカレンダー日付をクリック」するのが確実な感じです。
#js周り、全体像が把握できてないこともあって原因追求できず報告のみで申しわけありません。
以上になります。よろしくお願い致します。
謹んでご報告させていただきます。明確なバグ報告ついでに従前から感じていた改善希望もまとめさせていただいてます。ご検討のほどよろしくお願いします。
■$modx->parseText由来と思われる不具合(1.0.14J-r1より発現)
◎日付入力欄(例えば公開日指定)のソースをみると、プレースホルダ[+disabled+]が表に出ています。
コード: 全て選択
<input type="text" id="pub_date" [+disabled+] name="pub_date" class="DatePicker imeoff" value="" />
これは、割と最近ブラッシュアップされたparseText関数が直接の原因となってるみたいです。
/manager/include/document.parser.class.inc.php 2503行目
コード: 全て選択
else $replace[$i]= "{$left}{$key}{$right}";
■datepicker.js等JS周りと思われる不具合(主にFireFox、1.0.14J,14J-r1で確認してます)
========================================
明らかな不具合
------------------------------
◎公開日付を指定しているリーソースのテンプレートを変更すると、日付が1970/01/01(時刻は-10時間くらい)になります。
改善を希望したい挙動
------------------------------
(その1)
日付入力欄(例えば公開日指定や公開終了日指定)で、カレンダーを表示させ日付をクリックすることで「指定日付+現在の時刻」が挿入されますが、
続けて時間を調整しようとして、再び、日時欄をクリックして、カレンダーの時刻欄に時間を入力、確定(Enter)すると、
(カレンダー上の日付は先に指定した本日以外の日付になっているにもかかわらず)
◎「本日の日付+入力した時刻」と時刻のみではなく、日付も変わってしまいます。
また、時刻欄に入力後、Tabキーでフィールド遷移した場合には変更が反映されないようです。
(その2)
日付の変更があり、再度調整するケースでは、さらにまた日付だけ変更しようと、日時欄をクリックすると思いますが、
クリックするとカレンダー下部の時刻欄には、先ほど入力した時刻ではなく「現在の時刻」が表示されており、新しい日付をクリックすると、
◎「修正した日付+現在の時刻」が挿入されます。
これも割と意図しない挙動だと思います。
(その3)
◎テキスト欄に手入力した日付が、一度保存して再編集しないとポップアップカレンダーに反映されない
のも、何かと誤指定の元になりそうな気がします。
(私的に)期待する挙動としては、
・(dateOnly以外の)日時指定の場合、日付クリック後は時刻入力欄に強制移動した方が良い。もしくは、そもそも日付欄と時刻欄を分ける感じ。
・既に入力値が存在する場合はその日時の両方を取得して反映するようにしてほしい。
感じでしょうか。
※ワークアラウンド: 現状では「最初に時刻欄を入力した後にカレンダー日付をクリック」するのが確実な感じです。
#js周り、全体像が把握できてないこともあって原因追求できず報告のみで申しわけありません。
以上になります。よろしくお願い致します。