Работа с таблицами

Функционал работы с таблицами

Backlog

v0.6.2 — Table Core

  • единый metadata v2;
  • обратная совместимость с v1;
  • merge cells;
  • split cell;
  • header row;
  • header column;
  • horizontal + vertical alignment;
  • выбор строки/столбца/всей таблицы;
  • очистка cell formatting;
  • полное сохранение rowspan/colspan/align/valign.
  • выравнивание по центру, левому или правому краю для индивидуальной ячейки или прямоугольному фрагменту из нескольких выбранных ячеек
  • Insert row above / below — уже есть.
  • Delete row — уже есть.
  • Insert column left / right — уже есть.
  • Delete column — уже есть.
  • Delete table — уже есть.
  • Создание таблицы N×M — есть picker 10×10.
  • Корректная работа операций с merged cells — базово проверена, но стоит включить в regression.
  • Сохранение типа th/td после Save → Edit → Public — фактически обеспечивает v2, но тоже стоит явно записать.
  • Сохранение содержимого и структуры после нескольких циклов Save → Edit — важный regression-тест.
  • Undo/Redo табличных операций — TableKit/ProseMirror должен это обеспечивать, но мы отдельно не проверяли.

v0.6.3 — Table Geometry

сохранение colwidth;

  • восстановление ширин после Save → Edit;
  • интерактивный resize столбцов после повторного открытия страницы;
  • равномерное выравнивание ширины выбранных столбцов;
  • возврат выбранных столбцов к автоматической ширине;
  • перемещение строк вверх/вниз;
  • перемещение столбцов влево/вправо;
  • дублирование строк;
  • дублирование столбцов;
  • сохранение типа ячеек TH/TD при перемещении строк и столбцов;
  • сохранение заголовочной геометрии при move/duplicate;
  • сохранение align при геометрических операциях;
  • сохранение valign при геометрических операциях;
  • сохранение colspan;
  • сохранение rowspan;
  • блокировка неоднозначных geometry-операций для таблиц с объединёнными ячейками;
  • работа операций как для одиночной ячейки/столбца, так и для CellSelection;
  • сохранение вложенного содержимого ячеек при move/duplicate: врезки, checklist и обычный текст;
  • корректное прохождение Visual → Save → Edit;
  • корректное прохождение Visual → Markdown → Visual;
  • корректное отображение после Save → Public;
  • сохранение Table Core metadata tp-table:v2 без потери геометрии;
  • корректная пересборка admin-page-editor.bundle.js;
  • cache-busting browser bundle после обновления Table Geometry;
  • regression test редактора и публичной страницы — PASS.

v0.6.4 — Table Clipboard

  • вставка из Excel / LibreOffice Calc / TSV;
  • распознавание text/plain с TAB + CR/LF;
  • распознавание text/html из clipboard;
  • корректная обработка вставляемых HTML <table>;
  • выбор наиболее богатого clipboard-формата: HTML → TSV/plain text;
  • вставка прямоугольной матрицы начиная с текущей ячейки;
  • вставка матрицы в выделенный диапазон CellSelection;
  • автоматическое расширение таблицы вниз/вправо, если вставляемая матрица больше доступной области;
  • корректная вставка одной ячейки в одну ячейку;
  • корректная вставка одной строки / одного столбца;
  • копирование одной ячейки;
  • копирование выделенного диапазона;
  • запись при Copy одновременно в text/plain/TSV и text/html;
  • возможность вставить скопированный диапазон обратно в TechPortal без потери структуры;
  • сохранение переносов строк внутри ячеек;
  • корректная обработка пустых ячеек;
  • корректная обработка табов/переводов строк и завершающего CRLF;
  • сохранение текста и inline-formatting при HTML paste там, где это допустимо;
  • перенос <th>/<td> из HTML-таблиц с понятной семантикой;
  • обработка rowspan / colspan при HTML paste;
  • защита от некорректных/непрямоугольных clipboard-матриц;
  • sanitization HTML перед созданием ProseMirror nodes;
  • отсутствие выполнения скриптов/опасных атрибутов из clipboard HTML;
  • вставка обычного текста вне таблицы должна остаться без изменений;
  • вставка обычного текста внутрь одной ячейки не должна неожиданно превращаться в матрицу;
  • стандартные Ctrl+C / Ctrl+V без отдельного диалога;
  • работа через системный clipboard без требования специальных browser permissions;
  • сохранение результата через Visual → Save → Edit → Public;
  • сохранение результата через Visual → Markdown → Visual;
  • regression test с Table Core и Table Geometry;
  • проверка, что move/duplicate/resize после clipboard-операций продолжают работать.

v0.6.5 — Table UX polish

  • контекстное меню;
  • понятное состояние команд;
  • hover/selection controls;
  • клавиатурная навигация;
  • защита destructive commands;
  • финальные Public/Visual стили и responsive.

Область тестирования

Item 1.1

Item 2.1 Item 3.1

Header 1 - Right

Header 2 - Center Header 3 - Left

Item 1.2

Item 2.2

Item 3.2

ывпыпв

кКR

ыва

A1

B1

C1

A2

C2

D1

A3

B3

C3

D3

B4

A4

C4

D4

Table Core — финальный regression test

A1

B1

C1

D2

A2

C2

C1

A3

B3

C3

C2

B5

A3

A1

B1

C1

A2

C2

A3

B3

C3

A1

B1

A2

изображение.png

C2

A3

B3

C3

A1

B1

A2


C2

A3

B3

C3

A1

B1

A2


C2

A3

B3

C3

изображение.png