getTables

Компонент редактируемых таблиц на основе bootstrap и pdoTools
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
touol
Пакетов
10
Закачек
1 016
Автор дополнения
Пакетов
10
Закачек
1 016
Версия 1.12.1-alpha
Дата выпуска 14.07.2023
Загрузки 358
Просмотры 6 783
При написании компонентов для MODX много времени уходит на программирование редактируемых таблиц через extJs. У меня на это уходит каждый раз до 4 часов. Причем на совершенно однотипные таблицы. В конце концов мне это надоело и я решился написать свой компонент редактируемых таблиц на основе bootstrap и pdoTools— getTables! Сложность задачи я сильно недооценил и компонент сейчас выглядит и исполнен ужастно, но время на программирование таблиц с ним сократилось до 5 минут на простую и до часа на более сложную. Это сильно помогает и getTables я постоянно использую и потихоньку допиливаю. Сейчас на его основе сделано несколько компонентов, которые я хочу выложить в общий доступ. Ну и приходиться выкладывать и getTables, несмотря на не самую лучшую его реализацию.

Есть, конечно, замечательный компонент MIGX, но чтобы его использовать на фронте нужно вытаскивать на фронт extJs ради пары табличек. А bootstrap у меня везде используется.

Для примера вот реализация админки компонента вопросов-ответов gtsReview на getTables.

<cut/>
Код вызова [ [!getTabs? &config=`gtsreview_admin`]]. Инструкция config загружает gts-код табов и таблиц из системной настройки gtsreview_admin в JSON формате. Посмотреть код можно на GitHub

Основы gts-синтаксиса
Код самой простой таблицы выглядит так:
{'getTable' | snippet : [
    'loadModels'=>'raschets',
    'table'=>[
        'class'=>'raschetsMatClass',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                
            ],
        ],
        'pdoTools'=>[
            'class'=>'raschetsMatClass',
            'limit'=>0,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                'label'=>[
                    'label'=>'Имя',
                    'filter'=>1
                    ],
            ],
    ],
]}

Инструкция loadModels говорит какую модель (базы) MODX загрузить. (Модель пока удобнее создавать через MIGX.)

В table задаются все параметры таблицы:

  • class — класс таблицы.
  • actions — что можно сделать с таблицей. Для того, чтобы в таблице можно было удалять строки достаточно добавить в action инструкцию ‘remove’=>[],.
  • pdoTools — данные в таблицу из базы подготавливает pdoTools. И здесь можно использовать все его параметры.
  • checkbox — включить выбор строк чекбоксами.
  • autosave — инлайн редактирование данных таблицы. (Для autosave нужно чтоб action update было включено.)
  • row — здесь задаются колонки таблицы, которые показываются и редактируются.

Таких простых простых таблиц за полгода я уже насоздавал штук 40. Делать их все через extJs было бы очень долго.

Более подробная справка Основы gts-синтаксиса

Ссылка на GitHub

1.12.1-alpha

  • В события тригеров добавлены редактируемые объекты.
  • В getTables добавлена функция insertToArray.
  • Событие getTablesLoadGTSConfig в getree.
  • Обновление класса при обновлении строки.
  • Горячие клавиши на action.
  • Закрепить шапку в документе и заголовки в таблице.
  • Фулконтент в ячейках таблицы. table.settings.fullcontent
  • copy для форм.
  • Закрепить шапку в документе и заголовки в таблице 2.
  • Убрать автоизменение размера ячеек при наведении.
  • Фулконтент в ячейках таблицы. Убрать дублирование клика.
  • Редактирование ширины столбцов.
  • Улучшение выбора времени.
  • Добавлено подчеркивание в дереве при наведении.
  • правка z-index.
  • Редактирование ширины столбцов 2.
  • Фуллконтент 2.
  • Исправление autosave autocomplect.
  • Добавлена обработка селектов в tree при событии getTablesLoadGTSConfig.
  • Исправлена обработка селектор в tree.

1.11.4-alpha

  • Адаптация под modx3(3.0.1) и pdoTools3.
  • Навигация по таблице с CTRL и стрелочками.
  • Инструкции autosave.refresh.row и autosave.refresh.form.
  • select autocomplect не требует field_content.
  • Инструкция table subs. В подтаблицы можно табы.
  • Инструкция tabs[tab].tables. В таб можно поместить несколько талиц.
  • Исправление ошибок grtTree.
  • Чистка предупреждений php.
  • Исправлено readonly для number и decimal.
  • Доработана функция getTables->calc_excel_formula.
  • Отключен автокомплект браузера.
  • Поле в таблице поверх при фокусе.
  • decimal инструкция step.
  • Исправлена инструкция prepareRows.
  • Исправлен фильтр autocomplect.
  • Копирование в getTree.
  • правка cells-selection.
  • Трехуровневое subtables.
  • Фильтр пустых дат.
  • limit в autocomplect.
  • Фильтр по умолчанию 0 для чекбокса.
  • Лог для json конфига.
  • Добавить пагинацию внизу таблицы.
  • Инструкция edit.type.content выгрузка в excel поля заданные контентом.
  • Исправление parent в tree.
  • Исправление расчет excel формул.
  • Исправение предупреждений php.
  • Отключение автозаполнения Chrome.
  • Исправление sub.tabs.tables.

1.11.3-alpha

  • Добавлено событие getTablesLoadGTSConfig для изменения gts-конфига, когда нельзя редактировать исходник.
  • Select autocomplect - инструкция content_name.
  • Добавлена инструкция edit['refresh_table'].
  • Доработки getTree.
  • Select autocomplect - инструкция treeOn включает для автокомплект дерево в dropdown nemu. Настройки rootIds, where_parent, where_active[, parentIdField, idField].
  • Инструкции prepareRow, prepareRows для table.
  • Исправлены предупреждения php.

1.11.2-alpha

  • Добавлен тип поля number.
  • Добавлен action insert.

1.11.1-alpha

  • Исправление getTree.
  • Правка верстки.
  • Исправлен ckeditor.

1.11.0-alpha

  • Доработан getTree.

1.10.1-alpha

  • Исправение верстки bootstrap 4.
  • Табы в модалке Создать Редактировать.

1.10.0-alpha

  • Добавлено getTree.
  • getTree. Загрузка таблиц и форм в панель.
  • Условия в фильтрах.

1.9.5-alpha

  • Добавлено response.data.replace на custom.

1.9.4-alpha

  • Добавлено response.data.modal_close на custom.

1.9.3-alpha

  • Правка form autocomplect.

1.9.2-alpha

  • Вывод данных фильтров в content поля.
  • Постобработка данных строки сниппетом.

1.9.1-alpha

  • Исправлена ошибка с модалкой.

1.9.0-alpha

  • Добавлена сортировка таблиц.

1.8.3-alpha

  • Подготовка стилизации модалок.

1.8.2-alpha

  • Правка модал title.

1.8.0-alpha

  • Подготовка компонента для стилизации без Bootstrap.
  • Добавлена валидация полей на create. Инструкция edit->validate.
  • Добавлена подпись наименование таблицы.
  • Добавлена проверка выборки для записи в таблицу. Инструкция edit->check='user_id'.

1.7.33-alpha

  • Добавлен style для textarea.

1.7.32-alpha

  • Добавлен класс canceled для окраски строк.

1.7.31-alpha

  • Добавлена возможность редиректа в sets.

1.7.29-alpha

  • Исправленно autoselect в getForm.

1.7.28-alpha

  • Исправленно sub_where.
  • Добавлены стили расцветки таблиц.

1.7.25-alpha

  • Добавлено fetchModal2Step.

1.7.24-alpha

  • Исправлена инструкция force.

1.7.23-alpha

  • Добавлено handleRequestInt.
  • Добавлено событие getTablesRunModalTriggers и регистрация триггера regModalTriggers.

1.7.22-alpha

  • Инструкция style для ячеек таблицы.

1.7.21-alpha

  • Подсказки для ячеек таблицы.

1.7.20-alpha

  • исправлен фильтр даты.

1.7.19-alpha

  • Проводка пустых дат в доптаблице.

1.7.18-alpha

  • Замена датапикера на AirDatepicker.
  • Добавлен тип поля datetime.

1.7.17-alpha

  • log для долгих процессов.

1.7.16-alpha

  • Вывод модалки если есть response.data.modal.

1.7.15-alpha

  • правка readonly date.
  • Исправлена нулевая дата.

1.7.14-alpha

  • Добавлена настройка формата даты.
  • Добавлена работа с формами. getForm.
  • Добавлено role document.

1.7.13-alpha

  • Добавлена инструкция skip_modal.

1.7.12-alpha

  • Доработка долгих процессов.

1.7.9-alpha

  • Добавлено меню для кнопок строки.

1.7.7-alpha

  • Добавлена обработка долгих процессов.

1.7.5-alpha

  • Добавлена инструкция table.tree для отображения таблицы-дерева.

1.7.4-alpha

  • Исправлено выделение в полях.
  • Исправлена навигация.

1.7.3-alpha

  • Добавлена инструкция content для action.

1.7.2-alpha

  • Добавлен select data.
  • Исправлено обнуление даты.

1.7.1-alpha

  • Исправлены стили для админки.

1.7.0-alpha

  • фильтры перенесены в заголовки таблиц.

1.6.5-alpha

  • частично переведено на англиский.

1.6.3-alpha

  • добавлено search_where по sub_where_current.

1.6.2-alpha

  • исправлено export_excel.

1.6.1-alpha

  • Включение и выключение выделение ячеек в таблице и подсчет суммы по Ctrl+Shift+s.
  • исправлено readonly на autocomplect.

1.6.0-alpha

  • Контент полей модальных окон вынесен в отдельный чанк getTable.EditForm.tpl.

1.5.37-alpha

  • Разрешен getTable/fetch по ajax.

1.5.36-alpha

  • исправлено sub_where_current.

1.5.35-alpha

  • добавлено событие getTablesRunTriggers.

1.5.34-alpha

  • исправлено добавление table_name для autosave.
  • исправлен search_field в нижнем регистре.

1.5.33-alpha

  • добавлено события getTablesBeforeUpdateCreate,getTablesBeforeRemove,getTablesAfterRemove.
  • исправлен js callbacks remove.

1.5.32-alpha

  • В autoselect подстановка в поиск данных из родительской таблицы.
  • добавлено событие getTablesAfterUpdateCreate.

1.5.31-alpha

  • Подключение кастомных чанков.

1.5.29-alpha

  • Правки сортировки таблицы.

1.5.28-alpha

  • Исправлено переключение контекстов.
  • Изменено subtables строки.
  • Добавлена возможность сортировки таблицы.

1.5.26-alpha

  • Исправлена ошибка показа subtables.

1.5.25-alpha

  • Ускорено выделение ячеек в таблице.

1.5.23-alpha

  • Добавлено выделение ячеек в таблице и подсчет суммы, кол-ва ячеек и среднего для них.

1.5.22-alpha

  • Исправленно bootsrap_style.

1.5.21-alpha

  • Исправленно data у generateEditsData.

1.5.20-alpha

  • экспорт в excel исправлен чекбокс.

1.5.19-alpha

  • Добавлен экспорт в excel.

1.5.18-alpha

  • Исправлена инструкция content для поля таблицы.
  • Исправлена инструкция modal для action.

1.5.17-alpha

  • Исправлена ошибка subtable.

1.5.16-alpha

  • добавлено custom modal.

1.5.15-alpha

  • Исправлена ошибка subtable.

1.5.14-alpha

  • force значения при autosave.

1.5.13-alpha

  • Исправлена пагинация.

1.5.12-alpha

  • Исправлена ошибка загрузки моделей MODX.

1.5.11-alpha

  • Загрузка тригеров из класса модели MODX.

1.5.10-alpha

  • Исправлено сохранение в кеш подтаблицы.
  • Исправлено сохранение в кеш autosave.
  • Добавлены стили для админки.

1.5.9-alpha

  • Исправлено page limit.

1.5.8-alpha

  • Добавлен action copy.

1.5.7-alpha

  • Добавлена инструкция table.export для экспорта таблицы в массив. Помещается в лог pdoTools.
  • Исправлено отображение в админке.

1.5.6-alpha

  • Восстановил фильтры в GET запросах (При санации запросов была сделана ошибка).

1.5.5-alpha

  • Сделаны default и force значения полей.
  • Обработка IN в фильтрах.

1.5.4-alpha

  • Добавлены редакторы для textarea: ace и ckeditor.

1.5.3-alpha

  • Чанк для action.
  • Попровлена ошибка проверки существования строки в таблице перед записью.
  • Добавлены описания для системных параметров.

1.5.2-alpha

  • pdoTools добавлен в зависимости (Автоматически устанавливается при установки пакета.).

1.5.1-alpha

  • Исправлен запуск сторонних action.

Последние обсуждения в сообществе MODX.pro