001-011082

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

関数「schedule.event.create.show」などを使用して、通常予定の日時フィールドの値を書き換えようとしても、時刻の値を書き換えられない場合がある。

種別
不具合
機能
  • スケジュール
  • JavaScript API
再現バージョン
  • 4.10.0
  • 4.10.1
  • 4.10.2
  • 4.10.3
  • 5.0.0
  • 5.0.1
  • 5.0.2
  • 5.5.0
  • 5.5.1
  • 5.9.0
  • 5.9.1
  • 5.9.2
  • 5.15.0
  • 5.15.1
  • 5.15.2
  • 6.0.0
  • 6.0.1
改修バージョン
公開日
2022-06-27
更新日
2022-06-27

詳細

【発生条件】
次の条件を満たす場合に発生します。
  • 次のいずれかの関数を使用して、通常予定の日時フィールドの時刻を初期値から書き換える。
    • 関数「schedule.event.create.show」
    • 関数「schedule.event.create.submit」(バージョン 5.0.0以降のGaroonの場合)
    • 関数「schedule.event.edit.show」
    • 関数「schedule.event.edit.submit」(バージョン 5.0.0以降のGaroonの場合)

※本記事は、関数「schedule.event.create.show」を使用して、通常予定の日時フィールドの時刻を書き換えるケースについて手順を記載します。

【準備】
  • 関数「schedule.event.create.show」を使用して、日時フィールドの時刻を初期値から書き換えるよう準備します。

    例:
    ---------
    garoon.events.on("schedule.event.create.show", function(event) {
    console.log('test');
    var schedule_event = event.event;

    schedule_event["start"] = {dateTime: "2022-06-01T08:00:00+09:00", timeZone: "Asia/Tokyo"};
    schedule_event["end"] = {dateTime: "2022-06-01T09:00:00+09:00", timeZone: "Asia/Tokyo"};

    return event;
    });

    ---------

    補足:
    • eventオブジェクトのプロパティ「isAllDay」の値は指定しません。

    • Garoon JavaScript APIの使用については、cybozu developer networkをご確認ください。
      https://cybozu.dev/ja/garoon/docs/js-api/

【再現手順】
  1. アプリケーション画面にログインし、[スケジュール] > [予定を登録する]の順にクリックします。

→現象発生:
 eventオブジェクトのプロパティ「isAllDay」の値が「true」として扱われ、日時フィールドの時刻が初期値から書き換えられません。

例:
 ------------
 日時:2022年06月01日(水)
--時--分 ~ 2022年06月01日(水)--時--分
------------


→正しい結果:
 日時フィールドの時刻が初期値から書き換えられます。

 例:
 ------------
 日時:2022年06月01日(水)8時00分 ~ 2022年06月01日(水)9時00分
 ------------

補足:
  • 現象発生時、日時フィールドの日付は正常に書き換えられます。

  • 予定を再利用または変更する場合も、日時フィールドに時刻が設定されていない通常予定で同様の現象が発生します。

回避/対応方法

【回避方法】
eventオブジェクトのプロパティ「isAllDay」の値を「false」にします。

例:
---------
garoon.events.on("schedule.event.create.show", function(event) {
console.log('test');
var schedule_event = event.event;

schedule_event["start"] = {dateTime: "2022-06-01T08:00:00+09:00", timeZone: "Asia/Tokyo"};
schedule_event["end"] = {dateTime: "2022-06-01T09:00:00+09:00", timeZone: "Asia/Tokyo"};

schedule_event["isAllDay"] = false;

return event;
});

---------

【対応方法】
「回避方法」と同じ手順です。