Редактор Odoo¶
Odoo Editor - це власний текстовий редактор Odoo. Його вихідні коди можна знайти в каталозі odoo-editor.
Powerbox¶
Powerbox - це елемент інтерфейсу користувача, який містить команди, організовані в категорії. Він відображається після натискання / у редакторі. Команди можна фільтрувати, коли користувач вводить текст, і переміщатися між ними за допомогою клавіш зі стрілками.
Модифікація Powerbox¶
Одночасно має бути створено лише один екземпляр Powerbox, і це завдання виконує сам редактор. Його екземпляр Powerbox можна знайти у змінній екземпляра powerbox. Щоб змінити вміст та параметри Powerbox, змініть параметри, передані редактору, перш ніж його буде створено.
Важливо
Ніколи не створюйте екземпляр Powerbox самостійно. Завжди використовуйте власний екземпляр поточного редактора.
Example
Припустимо, ми хочемо додати нову команду Document до Powerbox, лише для модуля mass_mailing. Ми хочемо додати її до нової категорії під назвою Documentation, і ми хочемо, щоб вона розміщувалася у верхній частині Powerbox.
mass_mailing розширюється 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 за допомогою власного набору категорій та команд, обходячи всі існуючі. Для цього викличте метод open Powerbox та передайте йому ваші власні команди та категорії.
Example
Нам потрібен поточний екземпляр Powerbox, який можна знайти в поточному редакторі. У класі Wysiwyg ви знайдете його як this.odooEditor.powerbox.
Тепер, щоб відкрити його за допомогою нашої власної команди «Документ» у власній категорії «Документація»:
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,
}]
);
Команди фільтрації¶
Існує три способи фільтрації команд:
Через параметр
powerboxFiltersPowerbox.Через заданий запис команда’s
isDisabled.Користувач може фільтрувати команди, просто ввівши текст після відкриття Powerbox. Програма нечітко зіставить цей текст з назвами категорій та команд.
Референс¶
Категорія¶
Name |
Тип |
Опис |
|---|---|---|
|
|
назва категорії |
|
|
використовується для впорядкування категорії: категорія з вищим пріоритетом відображається вище в Powerbox (категорії з однаковим пріоритетом упорядковані в алфавітному порядку) |
Примітка
Якщо існує кілька категорій з однаковою назвою, вони будуть об’єднані в одну. Її пріоритет буде визначений у версії категорії, яка була оголошена останньою.
Команда¶
Name |
Тип |
Опис |
|---|---|---|
|
|
назва команди |
|
|
назва категорії, до якої належить команда |
|
|
короткий текст для опису команди |
|
|
назва Шрифта Awesome, який слугуватиме піктограмою команди |
|
|
використовується для впорядкування команди: команда з вищим пріоритетом відображається вище в Powerbox (команди з однаковим пріоритетом упорядковані в алфавітному порядку) |
|
|
функція, яка виконується при виборі команди (може бути асинхронною) |
|
|
функція, яка використовується для вимкнення команди за певних умов (коли вона повертає |
Примітка
Якщо команда вказує на категорію, якої ще не існує, ця категорія буде створена та додана в кінець Powerbox.
Параметри¶
Наступні параметри можна передати до OdooEditor, які потім будуть передані до екземпляра Powerbox:
Name |
Тип |
Опис |
|---|---|---|
|
|
команди для додавання до значення за замовчуванням, визначеного редактором |
|
|
категорії, які потрібно додати до стандартних, визначених редактором |
|
|
функції, що використовуються для фільтрації команд, що відображаються в Powerbox |
|
|
функція, яка повертає |