-
Notifications
You must be signed in to change notification settings - Fork 63
JavaScript
В KodiCMS часть элементов верстки передается на обработку JavaScript
<span data-icon="user">Text</span> => <span><i class="fa fa-sort"> Text</i></span>
Для вставки после текста:
<span data-icon-prepend="user">Text</span> => <span>Text <i class="fa fa-sort"></i></span>
Варинты можно комбинировать
При получении HTML кода через AJAX он может не преобразовать data-icon=""
в HTML код, для преобразования можно выполнить JS код CMS.ui.init('icon')
resources\assets\js\cms\ui.js
Искать .add('icon
В качесте основы используется bootstrap блок panel
http://getbootstrap.com/components/#panels.
Блок panel
должен содержать css класс tabbable
, при нахождении которого JS преобразует его во вкладки.
Каждая новая вкладка должна начинаться с panel-heading
, после нее должен быть panel-body
<div class="panel tabbable"> <div class="panel-heading"> <span class="panel-title">Tab1</span> </div> <div class="panel-body"> // Tab content </div> <div class="panel-heading"> <span class="panel-title">Tab2</span> </div> <div class="panel-body"> // Tab content </div> </div>
resources\assets\js\cms\ui.js
Искать .add('tabbable
resources\assets\js\cms\ui.js
Искать .add('flags
http://xdsoft.net/jqplugins/datetimepicker/
Для даты и времени
<input class="form-control datetimepicker" name="created_at" type="text" value="2015-06-26 08:45:40">
Для даты
<input class="form-control datepicker" name="created_at" type="text" value="2015-06-26">
Для времени
<input class="form-control timepicker" name="created_at" type="text" value="08:45:40">
resources\assets\js\cms\ui.js
Искать .add('datepicker
Преобразование контента поля в slug
Для поля необходимо указать css класс slugify
<input class="form-control slugify" name="slug" type="text" value="news">
Дополнительные параметры:
- data-separator="_" (По умолчанию: "-")
<input class="slug-generator form-control" name="title" type="text" value="News">
По умолчанию происходит передача данных в поле с классом slugify
, для передачи данных в другое поле, необходимо указать data-slug="#selector"
resources\assets\js\cms\ui.js
Искать .add('slug
resources\assets\js\cms\ui.js
Искать .add('select2
{!! Form::button('', [ 'data-icon' => 'plus', 'class' => 'btn btn-primary', 'data-hotkeys' => 'ctrl+a' ]) !!}
Global hotkeys
-
shift+f1
- Очистка кеша -
shift+f2
- Обновление блоков в шаблоне -
ctrl+shift+l
- Выход
resources\assets\js\cms\ui.js
Искать .add('hotkeys
resources\assets\js\cms\ui.js
Искать .add('select_all_checkbox
resources\assets\js\cms\ui.js
Искать .add('bootbox
Работа с popup окнами. Работает на основе http://www.jacklmoore.com/colorbox/
//Открытие Popup окна с переданным HTML кодом Popup.openHTML('HTML', Object params, parent); // Вывод данных с другой страницы через iframe. При открытии страниц админ панели, выводится только контент, без навигации. Popup.openIframe(href, Object params, parent); // Закрытие popup Popup.close();
// resources\assets\js\cms\popup.js
Выполнение API запросов
Api.get(url, Object data, function(response) { console.log(response); }, async); Api.post(url, Object data, function(response) { console.log(response); }, async); Api.put(url, Object data, function(response) { console.log(response); }, async); Api.delete(url, Object data, function(response) { console.log(response); }, async);
При выполнении запроса происходит вызов события, на которое можно подписаться
Api.get('/api.user.get', {id: 1}, function(response) { ... }) var event = 'get:api.user.get'; // Все слешы преобразуются в ":" // or var event = Api.getEventKey('get', '/api.user.get'); $('body').on(Api.getEventKey('get', '/api.user.get'), function(e, response) { console.log(response); });
// resources\assets\js\cms\api.js
Прелоадер показывает процесс загрузки в момент выполнения какой либо операции
var container = 'body'; // or var container = $('body'); // Если container не указан, то он будет показываться для "body" var loaderId = CMS.loader.show(container); // Т.к. на странице может быть несколько загрузчиков, то при его создании для него генерируется ID, по которому можно завершить конкретный CMS.loader.hide(loaderId); // or для скрытия всех загрузчиков CMS.loader.hide();
// resources\assets\js\cms\components\locader.js
// resources\assets\js\cms\components\controllers.js
Работа с мета данными текущего пользователя (пользовательскими настройками)
// Получение данных UserMeta.get(key, function(response) { console.log(response); }); // Добавление данных UserMeta.add(key, data function(response) { console.log(response); }); // Обновление данных UserMeta.update(key, data function(response) { console.log(response); }); // Удаление данных UserMeta.delete(key, function(response) { console.log(response); });
// resources\assets\js\cms\user.meta.js
// resources\assets\js\cms\scroll.js
// resources\assets\js\cms\components\messages.js