Описание
Определение
Списки (Grids) — это динамический элемент системы позволяющий генерировать и выводить таблицы с данными в реальном времени. Что в свою очередь позволяет работать и управлять большим кол-вом данных и создавать места взаимодействия с данными на страницах модулей.
Принципы
- ...
- ...
Правила
- ...
- ...
Структура папок
Путь до контроллера генерации таблицы
- usr
- modules
- {module-name}
- UI
- WEB
- Grids
- GridControllerName.php
- ...
Путь до шаблона действий с элементом таблицы
- usr
- modules
- {module-name}
- UI
- WEB
- Views
- manager
- grid
- actions.blade.php
Основы использования
use Boot\System\Grid\GridModern;
protected function init()
{
// Заголовок таблицы
$this->title = 'Заголовок таблицы';
// Опции таблицы (в данном случае сортировка)
$this->options = array(
'sort_name' => 'numb',
'sort_order' => 'DESC',
);
// Опции панели навигации
$this->nav = array(
'excel' => true,
'exceltext' => __('grid.export.excel'),
'trash' => true,
'trashtype' => 'null',
'trashtext' => __('grid.trash.show'),
'trashfield' => $this->namespace . '.deleted_at',
);
// Подключение к необходимой таблице
$this->db = DB::table('Имя необходимой таблицы в БД');
// Настройка столбцов
$this->cols = array(
'Идентификатор столбца' => array(
...
),
...
);
}
Параметры массива default
Путь к файлу config: Папка проекта/config/grid.config.php
Массив default собрал в себе все значения заданные по умолчанию для работы с компонентом Grid.
Список параметров (col)
Определяет работу со столбцами в таблице
Типы полей используется как фильтры для формирования значений по умолчанию.
Доступные типы input
, select
, date_range
, actions
title
Заголовок столбца таблицы
'Имя столбца' => array(
'title' => 'Ваш заголовок для столбца',
...
),
# По умолчанию title => '';
type (WIP)
Параметр type
'Имя столбца' => array(
'type' => 'Тип вашего поля',
...
),
# По умолчанию type => 'input';
label (WIP)
Параметр label
Для того что бы задать текст label
type
input
, select
, date_range
,actions
или задать label
Добавляя свои типы в файл grid.config.php можно добавлять или изменять значения текста для label
Если type
label
type
Если задан type
label
label
type
Если type
label
input
.
'Имя столбца' => array(
'type' => 'Тип вашего поля',
...
# или
'label' => 'Тект вашего Label',
...
),
# По умолчанию по типам
'input' => 'Найти',
'select' => 'Выбрать',
'date_range' => 'Выбрать дату',
'actions' => 'Действия',
render (WIP)
Параметр render определяет каким образом обернуть выводимые данные в полях таблицы. К примеру для очень длинного текста, что-бы избежать чрезмерного "растягивания" одного из столбцов таблицы можно использовать render = text что создает обертку для выводимого значения скрывающую часть текста который выходить за ширины самого столбца за "..."
simple - Выводимый текст внутри простого блока div.render без скрытия.
input - Выводимый текст будет помещен в тег input
что в свою очередь скроет текст внутри себя.
text - Текст будет скрыт через text-truncate (bootstrap) внутри div.render блока.
Для render можно использовать tooltip что бы увидеть весь текст во всплывающей подсказке. Пока только для вывода текста.
'Имя столбца' => array(
'render' => 'Тип render',
...
),
# По умолчанию по типам
# 'render' => 'default'
db
db_agg
unset
replace
formatter
format_date
Параметр format_date
type
'Имя столбца' => array(
'format_date' => 'Формат даты в формате d.m.Y',
...
),
# По умолчанию по типам (Задается в config файле grid.config.php)
# 'date_range' => 'd.m.Y'
manual
visible
Параметр visible
'Имя столбца' => array(
'visible' => bool, // true || false
...
),
# По умолчанию
'visible' => true
sortable
editable
search
search_op
other
tooltip (WIP)
Подсказки для полей с render.
Не используйте tooltip вместе с render если выводится теги html. Только для обычного текста!
Для html используйте popover.
'Имя столбца' => array(
'render' => 'Тип render',
'tooltip' => true,
...
),
# По умолчанию
'tooltip' => null
popover (WIP)
Всплывающие окна для полей с render. Является более универсальным способом вывода уведомлений.
Используйте popover вместе с render если выводится теги html.
'Имя столбца' => array(
'render' => 'Тип render',
'popover' => true,
...
),
# По умолчанию
'popover' => null
width
Ширина столбца. Указывается в процентах.
'Имя столбца' => array(
'width' => '5%',
...
),
# По умолчанию
'width' => true
classes
className
Дополнительные стили css применяемые к столбцу.
'Имя столбца' => array(
'className' => 'css Классы как для атребута class', // text-center p-1 и тд.
...
),
По умолчанию
'className' => false
icon
Параметр icon
icon
'Имя столбца' => array(
'type' => 'Тип вашего поля',
# или
'icon' => 'settings', // набор feather
# или
'icon' => 'fa-light fa-users', // набор Font Awesome
...
),
# По умолчанию по типам
# 'actions' => 'settings'
null
encode
excel_hidden
excel_only
Список параметров (nav)
export
export.detail
Список параметров (options)
...
Список параметров (reserved_col_names)
...
Примеры кода
class GridControllerName extends GridModern
{
}