Appearance
ADM-015 日別記事データ取得 自動実行設定管理画面
概要
- 日別記事データ取得処理を、毎朝指定時刻に自動実行するための設定を管理する画面。
- 本画面では「自動実行 ON/OFF」「実行時刻(HH:MM)」「再試行回数」「設定保存」を提供する。
- 自動実行の対象記事は、実行日時の前日の日付記事(前日記事)とする。
- 実行時刻のデフォルト値は
08:00とし、保存済み設定がある場合は保存値を優先表示する。 - 保存・検証ルール、エラーメッセージ表示方針、保存後の反映タイミングを本設計書で定義する。
- 記載ルールは 画面設計書フォーマットガイド(共通) を正とする。
ワイヤーフレーム
- 参照実装:
mockups/Adm14AutoRunSettingsWireframe/Adm14AutoRunSettingsWireframe.tsx
画面仕様
ブロック一覧
| ブロックID | ブロック名 | 表示内容 | 初期値 | ユーザー操作 | アクション |
|---|---|---|---|---|---|
B-1 | 保存結果通知 | 保存成功/失敗メッセージを表示する通知エリア。 | 非表示 | - | - |
B-2 | 自動実行 ON/OFF | 毎朝の自動データ取得を有効にする チェックボックスを表示。 | 保存済み設定(未設定時OFF) | ON/OFF を切り替える。 | - |
B-3 | 実行時刻 | HH:MM(24時間)入力欄を表示。説明文として「例: 08:00」を併記。 | 保存済み設定(未設定時08:00) | 時刻を入力する。 | - |
B-4 | 30分再試行回数 | 取得失敗時に30分ごとに再試行する回数 入力欄を表示。 | 保存済み設定(未設定時0回) | 回数(整数)を入力する。 | - |
B-5 | 対象記事ガイダンス | 自動実行対象は実行日時の前日記事です を画面上に固定表示する。 | 常時表示 | - | - |
B-6 | 入力エラーメッセージ | バリデーション失敗時のエラーメッセージを一覧表示。 | 非表示 | - | - |
B-7 | 設定を保存 | 設定保存ボタンを表示。 | 常時表示 | 押下時に設定保存処理を実行する。 | A-1 |
入力制約・表示ルール
B-2(自動実行 ON/OFF)- 未チェック(OFF)の場合は自動実行スケジュールを無効化する。
- チェック(ON)の場合のみ、
B-3の入力値で次回以降のスケジュールを設定する。
B-4(30分再試行回数)0以上の整数を受け付ける(0は再試行しない)。1以上の場合、定刻実行で未取得のホールがあるときのみ 30 分間隔で再試行ジョブを登録する。- 再試行時は、直前までに取得完了したホールを除外し、未対応ホールに対してのみ処理する。
- 取得処理でエラーが発生した場合は、その時点で再試行を停止する。
B-3(実行時刻)B-2が ON のとき必須。HH:MM(24時間表記)に一致し、HH=00〜23・MM=00〜59を満たすこと。B-2が ON で空文字・形式不正・範囲外値の場合は保存エラーとする。B-2が OFF のときはB-3は未入力を許容し、空値として保存・保持する。- 時刻の解釈は WordPress のサイトタイムゾーン設定に従う(
current_time()等の WP 設定値を使用し、JST をハードコードしない。プロジェクトの運用想定は JST)。
- エラーメッセージ方針
- 複数エラー時は
B-6に箇条書きで全件表示する。 - 文言はユーザーが修正方法を判断できる具体性を持たせる。
- 例:
実行時刻は HH:MM 形式で入力してください。 - 例:
実行時刻は 00:00 から 23:59 の範囲で入力してください。
- 例:
- 複数エラー時は
- 保存成功時の表示
B-1に自動データ取得設定を保存しました。を表示する。- 画面再表示後は保存済みの ON/OFF・実行時刻を反映する。
処理連携仕様
アクション一覧
A-1
B-7(設定を保存)押下時に、同一管理画面への同期 POST で自動実行設定を保存する。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
daily_data_fetch_auto_run_nonce | 隠しフィールド。常に必須。検証アクション: daily_data_fetch_auto_run_settings |
daily_data_fetch_auto_run_enabled | B-2 の設定値(チェック時 1、未チェック時は未送信。サーバー側では未送信を false として扱う)。DailyArticleAutoCreateOptions::save_from_post と同様に、呼び出し側は未送信/空値を boolean false として扱う。 |
daily_data_fetch_auto_run_time | B-3 の設定値(HH:MM) |
daily_data_fetch_auto_run_retry | B-4 の設定値(回数)。0 以上の整数を送信する。未送信時はサーバー側で 0(再試行なし)として扱う。 |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | 本画面へリダイレクトし、B-1 に保存成功通知を表示する。 |
| 失敗時 | 本画面へリダイレクトし、B-6 にエラーを表示する。入力値は transient で復元する(有効期限: 60秒)。transient キーはユーザーID(必要に応じて画面ID併用)を含めてユーザー単位で分離し、復元処理完了後は該当 transient を即時削除する。 |
| 画面更新時の処理 | 同期 POST + リダイレクト方式のため、レスポンス本文による部分更新は行わない。 |
保存後の反映タイミング
- ON/OFF または時刻変更を保存した時点で、次回実行分のスケジュール登録内容を更新する。
- 再試行回数の変更を保存した時点で、再試行ジョブの登録条件(回数上限)を更新する。
- 保存時刻を基準に、直近の未来時刻を次回実行時刻として再計算する。
- 例: 07:30 に
08:00を保存した場合、当日 08:00 を次回実行に設定。 - 例: 09:30 に
08:00を保存した場合、翌日 08:00 を次回実行に設定。
- 例: 07:30 に
- 定刻実行で一部ホールのみ失敗した場合、再試行回数が
1以上のときは未対応ホールのみを再試行対象としてキューイングする。
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/edit.php?post_type=daily_article&page=daily-data-fetch-auto-run-settings |
| 権限 | manage_options |
| 備考 | 日別記事関連の管理メニュー配下に配置する想定 |