Пример создания справочника
Имя
Придумайте имя вашему справочнику, например example
.
* При использовании данной инструкции меняйте все упоминания example
, GuideExample
, Пример
на свои.
Готовый шаблон шаблон справочника
- Скачайте шаблон справочника Example.
- Распакуйте в любом каталоге.
- Поместите содержимое каталога
guideExample/client-metronic
в ваш каталог, где у васclient-metronic
. - Поместите содержимое каталога
guideExample/api
в ваш каталог, где у васapi
.
Таблица в БД
-- Пример справочника
CREATE TABLE IF NOT EXISTS `guide_example` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL,
`created_at` DATETIME,
`updated_at` DATETIME,
`deleted_at` DATETIME,
PRIMARY KEY (`id`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci;
web (client-metronic)
- Добавим в файл
/src/js/0-app/200-routes.js
новый маршрут:'/guide/example': function (params, query) { app.page = { name : 'guide', // Всегда guide для всех справочников title : 'Пример | Справочник', onLoad: function () { lemurro.guide.init('example', 'guideExample'); }, params: params, query : query }; },
- Добавим в файл
/src/html/pages/guide/menu.html
новый пункт меню:<li class="m-nav__item js-guide-link js-guide-link__example" data-active-class="m-nav__item--active"> <a class="m-nav__link" href="/guide/example" data-navigo> <span class="m-nav__link-text"> Пример </span> </a> </li>
api
Добавим в файл /app/Configs/SettingsGuides.php
новый маршрут в свойстве $classes
:
'example' => 'Example',
Сборка проекта
Перезапускаем gulp-задачу build-dev
Методы .insert(), .save(), .remove()
Если в эти методы не передать callback, тогда после выполнения операции будет выполнен встроенный в ядро код.
- .insert()
var container = $('#js-guide__items'); container.prepend(lemurro.guide._templates.item(result.data)); var row = container.find('tr[data-item-id="' + result.data.id + '"]'); lemurro.helper.initBootstrapConfirmation(row, null); $('#js-guide__empty').hide(); $('#js-guide__list').show(); lemurro.tabs.tabInsertEdit('hide');
- .save()
var newRecord = $(lemurro.guide._templates.item(result.data)); var row = $('#js-guide__items').find('tr[data-item-id="' + result.data.id + '"]'); row.html(newRecord.html()); lemurro.helper.initBootstrapConfirmation(row, null); lemurro.tabs.tabInsertEdit('hide'); Swal.fire('Выполнено', 'Запись успешно изменена', 'success');
- .remove()
var container = $('#js-guide__items'); container.find('tr[data-item-id="' + result.data.id + '"]').remove(); if (container.find('tr').length === 0) { $('#js-guide__empty').show(); $('#js-guide__list').hide(); } Swal.fire('Выполнено', 'Запись успешно удалена', 'success');
Если вы передаёте свой callback, тогда будет выполнен только он и не выполнится код указанный выше.