Odoo エディター¶
Odoo Editor は Odoo 独自のリッチテキストエディタで、ソースは odoo-editorディレクトリ にあります。
Powerbox¶
Powerboxは commands <reference/frontend/odoo_editor/powerbox/command>`を :ref:`categories <reference/frontend/odoo_editor/powerbox/category>`にまとめたユーザーインターフェイスです。 エディタに `/ を入力すると表示されます。ユーザーがテキストを入力し、矢印キーで移動すると、コマンドをフィルタリングできます。

Powerboxの変更¶
その時点で Powerbox を 1 つだけインスタンス化し、そのジョブはエディタ自身によって実行されます。 Powerbox インスタンスは powerbox
インスタンス変数にあります。 Powerboxの内容とオプションを変更するには、インスタンス化される前にエディタに渡されるオプションを変更します。
重要
Powerboxをインスタンス化しないでください。常に現在のエディタ自身のインスタンスを代わりに使用してください。
Example
たとえば、mass_mailing`モジュールだけのために、新しいコマンド `Document
をPowerboxに追加します。 「Documentation」という新しいカテゴリに追加したいので、Powerboxの一番上にずっと追加したいと思います。
mass_mailing
extends web_editor
の Wysiwyg class これは、start
メソッドでエディタをインスタンス化します。 これを行う前に、独自の _getPowerboxOptions
メソッドを呼び出し、新しいコマンドを追加するのに便利にオーバーライドできます。
mass_mailing
はすでに`_getPowerboxOptions`を上書きしているので、新しいコマンドを追加しましょう。
_getPowerboxOptions: function () {
const options = this._super();
// (existing code before the return statement)
options.categories.push({
name: _t('Documentation'),
priority: 300,
});
options.commands.push({
name: _t('Document'),
category: _t('Documentation'),
description: _t("Add this text to your mailing's documentation"),
fontawesome: 'fa-book',
priority: 1, // This is the only command in its category anyway.
});
return options;
}
重要
コマンドやカテゴリの名前や説明を翻訳できるようにするには、 _t
関数でそれらをラップしてください。
ちなみに
制御不能のエスカレーションを避けるために 優先順位に乱数を使用しないでください。すでにどの優先順位が存在するか見て、それに応じて値を選択してください (z-index
のように)。
カスタムPowerboxを開く¶
すべての既存のものをバイパスし、カテゴリとコマンドのカスタムセットでPowerboxを開くことができます。 これを行うには、Powerboxの「open」メソッドを呼び出し、カスタムコマンドとカテゴリを渡します。

Example
現在のエディタで見つけることができるPowerboxの現在のインスタンスが必要です。 Wysiwyg クラス には、this.odooEditor.powerbox
として表示されます。
カスタム "Documentation" カテゴリでカスタム "Document" コマンドを開きます:
this.odooEditor.powerbox.open(
[{
name: _t('Document'),
category: _t('Documentation'),
description: _t("Add this text to your mailing's documentation"),
fontawesome: 'fa-book',
priority: 1, // This is the only command in its category anyway.
}],
[{
name: _t('Documentation'),
priority: 300,
}]
);
フィルタリングコマンド¶
コマンドをフィルタリングするには、次の3つの方法があります。
powerboxFilters
:ref:`Powerbox option <reference/frontend/odoo_editor/powerbox/options> ` を介して。指定された command <reference/frontend/odoo_editor/powerbox/command>`の `isDisabled エントリを介して実行します。
ユーザーは、Powerboxを開いた後にテキストを入力するだけで、コマンドをフィルタリングできます。 それは、そのテキストとカテゴリとコマンドの名前を曖昧に一致させます。

リファレンス¶
カテゴリー¶
名前(name) |
型 |
説明 |
---|---|---|
|
|
カテゴリの名前 |
|
|
カテゴリを注文するために使用されます: 優先度が高いカテゴリがPowerboxに高く表示されます (同じ優先度のカテゴリはアルファベット順に並べられます) |
注釈
同じ名前を持つ複数のカテゴリが存在する場合、それらは1つにグループ化されます。 その優先度は、最後に宣言されたカテゴリのバージョンで定義されます。
コマンド¶
名前(name) |
型 |
説明 |
---|---|---|
|
|
コマンドの名前 |
|
|
コマンドが属するカテゴリの名前 |
|
|
コマンドを説明するための短いテキスト |
|
|
コマンドのアイコンとなる*フォント素晴らしい*の名前 |
|
|
コマンドを順序付けるために使用されます: 優先度が高いコマンドは Powerbox に高く表示されます (同じ優先度のコマンドはアルファベット順に並べられます) |
|
|
コマンドが選択されたときに実行する関数 (非同期でもかまいません) |
|
|
特定の条件下でコマンドを無効にするために使用される関数 ( |
注釈
コマンドがまだ存在しないカテゴリを指すと、そのカテゴリが作成され、Powerboxの最後に追加されます。
オプション¶
以下のオプションは、Powerboxのインスタンスに渡されるOdooEditorに渡すことができます。
名前(name) |
型 |
説明 |
---|---|---|
|
|
コマンドは、エディタで定義されたデフォルトに追加されます。 |
|
|
エディタによって定義されたデフォルトに追加するカテゴリ |
|
|
Powerbox に表示されるコマンドのフィルタリングに使用される関数 |
|
|
エディタの祖先の |