Javasript API
Admin:
Получение текущего токена (Readonly)
Admin.token
Получение текущей локали (Readonly)
Admin.locale
Получение текущего окружения (Readonly)
Admin.env
Проверка на активность дебага (Readonly)
Admin.debug
Объект Admin.Config
Настройки приложения хранятся в глобальном объекте window.GlobalConfig и при старте приложения передаются в этот объект
Admin.Config.get(key, [default])
Admin.Config.set(key, value)
Admin.Config.has(key)
Admin.Config.merge(config)
Admin.Config.all()
Из этих настроек можно получить:
Admin.Config.get('debug')- состояниеdebugприложенияAdmin.Config.get('env')- состояниеenvприложенияAdmin.Config.get('locale')- локаль приложенияAdmin.Config.get('url')- URL приложенияAdmin.Config.get('url_path')- относительный путь (только в @dev-development ветке)Admin.Config.get('lang')- текущие ключи и значения локализацииAdmin.Config.get('wysiwyg')- WYSIWYG настройки из файла конфигурацииAdmin.Config.get('template')- информация о шаблоне по умолчаниюAdmin.Config.get('user_id')- идентификатор активного пользователяAdmin.Config.get('datetime_format')- текущий формат даты и времениAdmin.Config.get('date_format')- текущий формат датыAdmin.Config.get('state_tabs')- сохранение активности табовAdmin.Config.get('state_filters')- сохранение значений фильтров datatables
Сообщения
Для вывода сообщений используется SweetAlert2
// Сообщение об ошибке
Admin.Messages.error('title', 'message')
// Success сообщение
Admin.Messages.success('title', 'message')
// Произвольное сообщение
Admin.Messages.message('title', 'message', 'error')
// Сообщение с подтверждением
Admin.Messages.confirm('title', 'message').then(confirm, dismiss)
// Сообщение с полем ввода
Admin.Messages.prompt('title', 'message', 'placeholder').then(confirm, dismiss)
События
В системе есть простая система обработки событий Admin.Events
// Подписка на событие
Admin.Events.on('event:name', function() {
// your js code here ...
})
// Запуск события и передача аргументов
Admin.Events.fire('event:name', param1, param2, ....)
Список событий
wysiwyg:switchOn [editor]- Редактор подключен в input [editor] - объект инициализированного редактораwysiwyg:switchOff [textareaId]- Редактор выключен [textareaId] - ID инпутаwysiwyg:exec [command, textareaId, data]- Вызов команды редактораbootstrap::tab::shown [tab]- Отображение вкладки [tab] - ключ активного табаbootstrap::tab::hidden [tab]- Скрытие вкладкиdatatables::draw [Datatable]- Рендер datatables [Datatable] - объект отрендереной таблицыdisplay.tree::changed
Модули
Модуль представляет собой блок кода, который будет запускаться при каждом старте системы
Регистрация модуля
Admin.Modules.register(key, function() {
// your js code here ...
}, prioroty, events);
// key - ключ (название) текущего модуля. В системе не может быть нескольких модулей с одним ключом (модуль будет переопределен)
// callback - код который будет выполнен при запуске модуля
// prioroty - приоритет запуска модулей. (После запуска системы, все модули сортируются по приоритету и происходит последовательный запуск)
// events - событие или массив событий при возникновении которых код модуля будет запущен повторно.
Ручной запуск модулей
Admin.Modules.call(key)
Подключение WYSIWYG редакторов
Предназначен для регистрации и запуска редакторов текста в системе.
Регистрация редактора
Регистрация по сути заключается в указании трех функций, которые будут вызваны в момент подключения редактора, отключения и выполнении каких либо команд.
Admin.WYSIWYG.register(name, switchOnHandler, switchOffHandler, execHandler);
function switchOnHandler(textareaId, config) {
// textareaId - идентификатор поля ввода к которому необходимо подключить редактор
// config - дополнительные настройки
editor = new WYSIWYGEditor(textareaId)
editor.setConfig(config)
return editor
}
function switchOffHandler(editor, textareaId) {
// editor - объект подключенного редактора
// textareaId - идентификатор поля ввода к которому необходимо подключить редактор
editor.destroy()
}
function execHandler(editor, command, textareaId, data) {
// editor - объект подключенного редактора
// command - команда, которую необходимо выполнить
// textareaId - идентификатор поля ввода к которому необходимо подключить редактор
// data - дополнительные данные
switch (command) {
case 'insert':
editor.insertText(data);
break;
}
}
// name - ключ (Название) редактора
// switchOnHandler - функция, которая будет вызвана в момент подключения. Обязательно должен вернуть объект подключаемого редактора (Происходит запуск события wysiwyg:switchOn)
// switchOffHandler - функция, которая будет вызвана в момент отключения редактора (Происходит запуск события wysiwyg:switchOff)
// execHandler - функция, которая будет вызвана в момент вызова команды редактора (Происходит запуск события wysiwyg:exec)
Подключение редактора
// Сначала должен быть зарегистрирован в системе редактор
Admin.WYSIWYG.register('ckeditor', switchOnHandler, switchOffHandler, execHandler);
<textearea id="MyTextarea"></textearea>
Admin.WYSIWYG.switchOn('MyTextarea', 'ckeditor', {param1: ..., param2: ...})
Отключение редактора
Admin.WYSIWYG.switchOff('MyTextarea')
Выполнение команды
Admin.WYSIWYG.exec('MyTextarea', 'insert', 'Текст который вставляем в редактор')
Url
Модуль предназначен для работы с url адресами.
Получение якоря
Admin.Url.hash
Генерация ссылки на asset файл для текущей темы
Admin.Url.asset(path, query)
// path - относительный путь до файла
// query - параметры для генерации query string {foo: bar, baz: bar} = ?foo=bar&baz=bar
Admin.Url.asset('script.js') // http://site.com/packages/sleepingow/default/script.js
Генерация admin ссылки
Admin.Url.admin(path, query)
// path - относительный путь
// query - параметры для генерации query string {foo: bar, baz: bar} = ?foo=bar&baz=bar
Admin.Url.admin('users/1') // http://site.com/backend/users/1
Генерация front ссылки
Admin.Url.app(path, query)
// path - относительный путь
// query - параметры для генерации query string {foo: bar, baz: bar} = ?foo=bar&baz=bar
Admin.Url.app('users/1') // http://site.com/users/1
Получение системных данных
Admin.Url.url // ссылка на front
Admin.Url.url_prefix // получение значения url prefix админ панели
Admin.Url.url_path // получение относительного пути (только в @dev-development ветке)
Admin.Url.asset_dir// относительный путь до хранения ассетов для текущей темы
User
Получение ID авторизованного пользователя
Admin.User.id: int|null
Получение статуса авторизации пользователя
Admin.User.isAuthenticated(): bool
Asset
Подключение CSS файлов
Если файл с переданным путем уже добавлен на страницу, он будет пропущен.
Возвращает объект Promise.
Admin.Asset.css(string url): Promise
Подключение JS файлов
Если файл с переданным путем уже добавлен на страницу, он будет пропущен.
Возвращает объект Promise.
Admin.Asset.js(string url): Promise
Подключение Image файлов
Возвращает объект Promise.
https://habrahabr.ru/company/zerotech/blog/317256/
Admin.Asset.img(string url): Promise
Admin.Asset.img('http://sizte.com/logo.png').then(function(url) {
$('#images').append('<img src="'+url+'" style="width: 200px;" />');
})