Shiny: the widget now exposes which rows are visible after
filtering, mirroring the DT package inputs (#20).
input$<id>_rows_all holds the 1-based indices of the
rows that survive the current global and column searches (including
ColumnControl filters), input$<id>_rows_current the
rows on the current page, and
input$<id>_rows_selected the selected rows. The same
vectors are also included in
input$<id>_state.
Server-side processing: dt2_ssp_handler() and
dt2_bind_server() gain a rows_all argument
(default TRUE). The default handler now returns
dt2_rows_all / dt2_rows_current in its payload
so the inputs above also work in server mode; set
rows_all = FALSE to skip shipping the index vector on very
large tables.
Server-side processing:
options = list(server_side = TRUE) (or
serverSide = TRUE) now actually enables server-side mode
(#22). dt2() put the flag where dt2.js did not
look for it, so the table silently ran client-side and shipped every row
to the browser. In server mode dt2() now sends only the
column structure; rows are fetched through
dt2_bind_server().
Server-side processing: column ordering now reaches the server
(#22). The request encoder in dt2.js flattened only one
level, so DataTables’ order[i][column] /
order[i][dir] were lost and rows always came back in source
order.
dt2_cols_escape() now actually escapes HTML when
escape = TRUE (the default). Previously both
escape = TRUE and escape = FALSE produced the
same identity renderer, so cell content was always inserted as raw
HTML.
Server-side processing: the default request parser used by
dt2_ssp_handler() / dt2_bind_server() now
URL-decodes query-string keys, so global search and column
ordering are applied. Previously only pagination worked, because encoded
keys such as search%5Bvalue%5D and
order%5B0%5D%5Bcolumn%5D were never matched.
dt2() now fills options$columns from
the data when it is not supplied, matching the column list the
JavaScript side derives.
Name-based column helpers (dt2_cols_*(),
dt2_format_*(), dt2_order(), …) now emit an
informative warning when a column name cannot be resolved (for example
when options$columns was not set), instead of silently
producing an invalid target.
The number and date/time format helpers build their JavaScript using properly quoted and escaped string literals, fixing broken output when a prefix, suffix, locale or format string contained a quote.
print() for dt2_theme objects now also
shows the class field.
dt2_order(),
dt2_search_global(), dt2_use_buttons() and
dt2_language(), cross-linked
dt2_buttons()/dt2_use_buttons(), and
documented the options$columns pattern in the
vignettes.