getTables

Компонент редактируемых таблиц на основе bootstrap и pdoTools
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
touol
Пакетов
12
Закачек
972
Автор дополнения
Пакетов
12
Закачек
972
Версия 1.12.1-alpha
Дата выпуска 14.07.2023
Загрузки 333
Просмотры 5 245
Внимание, этот компонент требует версию PHP 7.0 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.6 !
При написании компонентов для 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