ACMS.events で購読できるイベントの一覧です。使い方は イベント(ACMS.events) を参照してください。
実験的機能
この機能は Ver. 3.2 の間は実験的機能として提供し、Ver. 3.3 で正式に提供する予定です。
- 変わりうる範囲: イベント名と受け取る値の構造は、マイナーバージョンアップで変更される可能性があります。
- 変わらない範囲: 従来の DOM イベントと
ACMS.dispatchEvent 経由のイベントは、今後も発火します(末尾の「従来のイベントとの対応」参照)。 - 公開 API の線引き: このページに掲載しているイベントを公開 API として扱います。 掲載外のものも利用できますが、告知なく変更されることがあります。
- サポート対象外: 管理画面に追加した独自の JavaScript・CSS は、バージョンアップ後の動作を保証しません。これらを原因とする不具合は、サポートの対象外です。
- 「種別」が 中止可 のイベントは、ハンドラの第2引数
gateCtx の cancel() で操作を中止できます。値の書き換えは、受け取った値のプロパティを直接書き換えて行います(イベント の「ゲートでできること」参照)。 - 「通知」のイベントは、戻り値を返しても無視され、中止もできません。
メディア
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 変更できるもの | 効く画面 |
|---|
media.upload.before | 中止可 | ファイルを選択し、アップロードを開始する直前 | files(File の配列) | files の除外のみ(新しい File への差し替えは反映されません) | メディア管理・カスタムフィールド・ブロックエディターの画像/ファイル・リッチエディター・バナー・ナビゲーション・ユニットなど、メディア選択を使うすべての画面 |
media.upload.success | 通知 | アップロードが完了した後 | items(登録されたメディア) | — | 同上 |
media.update.before | 中止可 | メディア詳細の「保存」直前 | item, formData | formData の書き換え | メディア詳細モーダル(上記すべての画面から開けます) |
media.update.success | 通知 | 保存が成功した後 | item | — | 同上 |
media.update-as-new.before | 中止可 | 「別名で保存」の直前 | item, formData | formData の書き換え | 同上 |
media.update-as-new.success | 通知 | 別名保存が成功した後 | item | — | 同上 |
media.delete.before | 中止可 | メディア一覧の一括削除の直前(確認ダイアログの後) | mediaIds | 絞り込みは不可(中止のみ) | メディア管理の一覧 |
media.delete.success | 通知 | 一括削除が成功した後 | mediaIds | — | 同上 |
エントリー
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 変更できるもの | 効く画面 |
|---|
entry.trash.before | 中止可 | エントリーをゴミ箱へ移す直前(確認の後) | entry | entry の書き換え(書き換えた内容が実際の対象になります) | エントリー一覧 |
entry.trash.success | 通知 | ゴミ箱へ移した後 | entry | — | 同上 |
entry.duplicate.success | 通知 | エントリーを複製した後 | entry | — | 同上 |
entry.bulk-status.before | 中止可 | 複数選択して公開状態を変更する直前 | formData | formData の書き換え | エントリー一覧(一括操作) |
entry.bulk-status.success | 通知 | 一括変更が成功した後 | formData | — | 同上 |
entry.bulk-trash.success | 通知 | 一括でゴミ箱へ移した後 | formData | — | 同上 |
entry.bulk-duplicate.success | 通知 | 一括で複製した後 | formData | — | 同上 |
モジュール
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 変更できるもの | 効く画面 |
|---|
module.bulk-status.before | 中止可 | 複数選択して公開状態を変更する直前 | formData | formData の書き換え | モジュール一覧(一括操作) |
module.bulk-status.success | 通知 | 一括変更が成功した後 | formData | — | 同上 |
プレビュー・タイムマシン
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 変更できるもの | 効く画面 |
|---|
preview.share.before | 中止可 | 共有用プレビュー URL を発行する直前 | formData | formData の書き換え | プレビュー画面 |
preview.share.success | 通知 | 共有 URL の発行が成功した後 | shareUrl | — | 同上 |
preview.mode.change | 通知 | プレビューモードのオン/オフが切り替わった後 | enabled | — | エントリー編集・プレビュー |
timemachine.mode.change | 通知 | タイムマシンモードのオン/オフが切り替わった後 | enabled | — | エントリー編集 |
入力フィールド
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 効く画面 |
|---|
category.select.change | 通知 | カテゴリーの選択が変わった後 | target(対象の要素) | エントリー編集・カスタムフィールド |
sub-category.select.change | 通知 | サブカテゴリーの選択が変わった後 | target | 同上 |
tag.select.change | 通知 | タグの選択が変わった後 | target | 同上 |
related-entry.select.change | 通知 | 関連エントリーが変わった後 | target, entries, type, title, moduleId, ctx, maxItem | エントリー編集 |
entry.main-image.change | 通知 | メイン画像が設定された後 | target, mediaId, thumbnail | ブロックエディターの画像ブロック |
media-field.change | 通知 | メディアフィールドの値が変わった後 | target | カスタムフィールド |
media-unit.change | 通知 | メディアユニットの値が変わった後 | target, mediaItems | エントリー編集(ユニット) |
field-group.add.after | 通知 | カスタムフィールドグループの行が追加された後 | element(追加された要素) | カスタムフィールドを使う画面全般 |
同じ種類のフィールドが複数ある画面では、すべてのフィールドの変更が同じイベントで届きます。 どのフィールドかを判定するには target を確認してください。
画面共通の UI
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 効く画面 |
|---|
dialog.open.after | 通知 | ダイアログ・モーダル・ドロワーが開いた後 | element | 管理画面全般 |
tab.select.change | 通知 | タブが選択された後 | tab | 管理画面全般 |
tab.show.after | 通知 | タブのパネルが表示された後 | tab, panel(パネルがない場合は null) | 同上 |
tab.hide.after | 通知 | タブのパネルが非表示になった後 | tab, panel(パネルがない場合は null) | 同上 |
admin.delayed-contents.change | 通知 | 非同期に読み込まれたコンテンツが差し込まれた後 | target, detail | 管理画面全般 |
custom-field-maker.preview.after | 通知 | カスタムフィールドメーカーのプレビューが再描画された後 | element | カスタムフィールドメーカー |
geo.info-add.after | 通知 | 地図に位置情報が追加された後 | element | 地図フィールド |
lazy-load.load.after | 通知 | 遅延読み込みの要素が読み込まれた後 | element | 管理画面・サイト表示側 |
フォームの検証
| イベント名 | 種別 | 発生タイミング | 受け取れる値 |
|---|
validator.invalid.after | 通知 | 検証に失敗した後 | results, element |
validator.valid.after | 通知 | 検証に成功した後 | results, element |
validator.validated.after | 通知 | 検証が完了した後(成功・失敗を問わず) | results, element |
validator.submit-fail.after | 通知 | 検証エラーで送信が中止された後 | results, form |
ユニットエディター
| イベント名 | 種別 | 発生タイミング | 受け取れる値 | 備考 |
|---|
unit-editor.create.after | 通知 | ユニットエディターが生成された後 | editor, settings | 従来の acmsUnitEditorCreate と同じタイミングで発火します |
unit-editor.command.before | 通知(中止できません) | ユニットの追加・削除・移動・複製・更新などの操作の直前 | commands, editor | 名前は .before ですが、観測専用です。値の書き換え・中止・非同期の待機はできません |
unit-editor.command.success | 通知 | 同じ操作が完了した後 | commands, editor | — |
unit-editor.inplace-dialog-open.after | 通知 | インライン編集のダイアログが開いた後 | element | — |
起動
購読より先に完了しているかどうかを確認してください(イベント の「起動時の処理を書く」参照)。
| イベント名 | 確認するプロパティ | 意味 |
|---|
acms.state.ready | ACMS.readyStates.ready | JavaScript の初期化が完了した |
acms.state.admin-ready | ACMS.readyStates.adminReady | 管理画面の初期化が完了した |
acms.pending.ready | ACMS.pendingReadyState | 読み込み中表示の準備が完了した |
従来のイベントとの対応
以下の DOM イベント(document.addEventListener で購読するもの)と ACMS.dispatchEvent 経由のイベントは、今後も発火します。既存の購読はそのままで動作します。新しく書く場合は右列のイベントを使ってください。
| 従来のイベント | 新しいイベント | 内容 |
|---|
acms.media-updated | media.update.success | メディアの更新 |
acms.set-main-image | entry.main-image.change | メイン画像の設定 |
acms.category.change | category.select.change | カテゴリー選択の変更 |
acms.sub-category.change | sub-category.select.change | サブカテゴリー選択の変更 |
acms.tag.change | tag.select.change | タグ選択の変更 |
acms.related-entry.change | related-entry.select.change | 関連エントリーの変更 |
acms.media-field.change | media-field.change | メディアフィールドの変更 |
acms.media-unit.change | media-unit.change | メディアユニットの変更 |
acmsUnitEditorCreate | unit-editor.create.after | ユニットエディターの生成 |
acmsAddUnit | (対応なし) | サーバー側で描画されたユニットの追加 |
acmsCustomFieldMakerPreview | custom-field-maker.preview.after | プレビューの再描画 |
acmsAdminDelayedContents | admin.delayed-contents.change | 非同期コンテンツの差し込み |
acmsDialogOpened | dialog.open.after | ダイアログの表示 |
acmsAdminSelectTab | tab.select.change | タブの選択 |
acmsAdminShowTabPanel | tab.show.after | タブパネルの表示 |
acmsAdminHideTabPanel | tab.hide.after | タブパネルの非表示 |
acmsAddCustomFieldGroup | field-group.add.after | フィールドグループの追加 |
acmsInplaceDialogOpen | unit-editor.inplace-dialog-open.after | インライン編集ダイアログの表示 |
onGeoInfoAdded | geo.info-add.after | 位置情報の追加 |
acmsLazyLoaded | lazy-load.load.after | 遅延読み込みの完了 |
acmsFormInvalid | validator.invalid.after | 検証の失敗 |
acmsFormValid | validator.valid.after | 検証の成功 |
acmsFormValidated | validator.validated.after | 検証の完了 |
acmsValidateFailed | validator.submit-fail.after | 検証エラーによる送信中止 |
acmsReady | acms.state.ready | 初期化の完了 |
acmsAdminReady | acms.state.admin-ready | 管理画面の初期化完了 |
変更履歴
| バージョン | 変更内容 |
|---|
| Ver. 3.2.29 | 新規追加(実験的機能) |
| Ver. 3.2.33 | media.* などの「中止可」イベントの中止方法を gateCtx.cancel() に変更 |