Skip to content

Releases: bensitu/DataTable-AltEditor

v4.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 18:03

Added

  • A style package entry for the minified stylesheet, alongside the existing JavaScript entries.
  • Optional Promise and async persistence on the existing add, edit, delete, and inline callbacks, with first-settlement semantics and unchanged callback arguments.
  • Structured fieldErrors with accessible dialog feedback, inline correction, and global fallback for fields that cannot display local messages.
  • The editorValidate column option for synchronous and asynchronous business rules, isolated submission context, and correction and retry.
  • Example 21 demonstrates delayed Promise saves, custom validation, structured errors, and inline editing. A validation guide describes the contracts and lifecycle behavior.
  • Translated fallback messages for custom validation in all bundled languages.

Changed

  • Validation and persistence share error normalization. Dialog feedback preserves existing accessibility descriptions and clears field messages on input or change.
  • Native constraints and custom validation complete before submission events and persistence. Busy state and operation identity checks also cover asynchronous validation.

Fixed

  • Select2 search controls receive accessible names and field-error descriptions. Default control borders have stronger contrast, and Select2 search and removal controls have minimum target sizes.
  • Inline persistence does not start when its target disappears during asynchronous validation.

v4.1.1

Choose a tag to compare

@github-actions github-actions released this 14 Sep 15:28

Added

  • Example 20 demonstrates lifecycle callbacks, event order, cancellation, failed saves, retries, inline editing, refresh, and editor destruction and recreation.

Changed

  • Updated the Rollup build dependency to 4.63.3.
  • The jQuery peer dependency and documentation consistently require >=1.8 <4.0.0.
  • Release validation reuses the existing build for compatibility checks.
  • Minimum aggregate test coverage is 85% for statements, branches, functions, and lines, with additional coverage for native dialog closure, nested data updates, and file read recovery.
  • Detached field rendering, template composition, form initialization, and framework event handling have separate responsibilities. Add and edit share one opening path, and template composition avoids an extra field clone.
  • Unique validation reads column values in one operation instead of creating a separate cell API for each row.
  • Documentation explains value conversion, persistence timeouts, select option replacement, event exceptions, field lookup, and explicit color overrides.

Fixed

  • Field plugin and change-callback failures during dialog initialization close the incomplete form and allow retry. Close callback exceptions release the previous dialog context.
  • Failed initialization releases partially attached resources so the editor can be initialized again.
  • Event listener exceptions no longer leave submission controls disabled or interrupt cleanup. Exceptions before opening or submitting cancel the operation.
  • Dialog fields use instance-specific identifiers and retain correctly associated labels across multiple tables. Compact fields have accessible names, literal title text is preserved, and empty placeholders remain empty.
  • Select controls retain stored values absent from their initial options. Literal JSON option strings remain intact, and multiple selections support serialized arrays without discarding matching literal options.
  • Missing row identifiers containing selector characters and invalid public row or cell selectors are handled without uncaught selector errors.
  • Add submissions omit unrelated deletion snapshots, and form collection uses a consistent set of column definitions.
  • Inline cleanup handles controls moved into nested elements, and failed saves display feedback when the edited cell is outside the visible table body.
  • File examples restrict avatar links to HTTP or HTTPS and return generic server errors without internal paths.
  • Removed unnecessary dialog serialization and duplicate initialization work; normalized boolean attributes and cleared dialog state on destruction.

v4.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 16:53

Added

  • Independent add and edit dialog templates with cloned layouts, named field slots, identifier remapping, and the existing field validation and persistence behavior.
  • Optional deletion details for single and multiple selected records, rendered as plain text or application-provided DOM content.
  • Synchronous before-open, render, and close callbacks with structured context, plus cancelable before-open and dialog-render events.
  • Explicit Bootstrap and Foundation selection and optional native browser dialogs with feature detection, scoped styles, and no additional runtime dependencies.
  • Examples 18 and 19 and a dialog guide covering custom layouts, deletion summaries, lifecycle callbacks, framework selection, and browser compatibility.

Changed

  • Separate dialog shell construction, framework selection, and language validation from the dialog controller, and share add/edit field population.
  • Include the native dialog browser requirement message in all bundled translations.

Fixed

  • Select2 multiple-selection placeholders use consistent alignment, spacing, and font sizing without overflowing the control. Dialog input spacing and placeholder contrast are consistent in light and dark modes.
  • Opening callbacks cannot redirect edits or deletions to another record after a table replacement. Missing targets reject opening, and canceled openings preserve existing field plugins.
  • Native dialog templates have consistent field spacing and scroll long forms while keeping the title and actions visible. Example 19 demonstrates typed fields, Select2, selection, and custom table rendering.
  • Fast Bootstrap saves wait for the show transition before closing. Opening during a close transition is rejected until closure completes.
  • Explicit Foundation dialogs avoid Bootstrap component classes and dismiss handlers when both frameworks are loaded.

v4.0.2

Choose a tag to compare

@github-actions github-actions released this 13 Sep 15:35

Added

  • Examples demonstrate multiple-row deletion, retained success dialogs, local HTTP persistence with raw file uploads, and advanced inline controls. Field configuration and translation examples include defaults, disabled fields, and direct language overrides.

Changed

  • Dialog rendering and form data collection have separate responsibilities. Dialog and inline controls share select option normalization and checkbox value conversion.
  • Dialog operations own framework selection, opening checks, and submission binding. Add, edit, and delete dialogs share their form and action-button rendering.

Fixed

  • Submission and refresh stop after destruction during event handlers. Dialog completions preserve the submitted field set and do not close a new dialog opened by a success handler.
  • Inline select options use the same missing-value defaults as dialog fields, and null native attributes are omitted.
  • Inline editing leaves rendered interactive controls intact and skips them during keyboard navigation. Example 14 demonstrates direct form controls, editable content, actions, and custom widgets alongside double-click editing and explains separate persistence handling.
  • Example pages link to their configuration source and guide. Documentation maps integration needs to examples and explains dependency loading, stored values, persistence, and reusable configuration.
  • Dependabot update limits distinguish fixed Bootstrap 4 compatibility from Bootstrap 5, retain DataTables 2 with Buttons 3 and Select 3, and keep jQuery on 3.7.x.
  • Multi-file forms validate field collection before starting encoded reads, avoiding unfinished reads when another file exceeds its limit.
  • Foundation example search and page-length labels follow the selected theme. Local distribution archives include contribution and policy documents linked from the README.
  • Object-based examples use salary values consistent with the array example instead of employee names in salary fields.

v4.0.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 16:27

Fixed

  • Foundation dialogs apply theme colors to their outer surface and border, with spacing between the header, fields, and actions. Application color overrides also apply to the outer surface.
  • Node.js requirements and the CI matrix match the locked development dependencies. Matrix jobs finish independently when another Node.js version fails.
  • Ajax examples use stable row identifiers, name callback arguments consistently, and avoid sending row values to static response URLs. The file example limits attachment size. Escaped DataTables source paths require an explicit inline setter. Debug mode reports callback exceptions after completion without changing the accepted result.
  • The dependent select example owns its loading error message instead of relying on an unused internal form label.
  • Removed unused imports, enabled unused-variable checks, and standardized text file line endings across platforms. Continuous integration verifies builds and unit tests on the minimum supported Node.js version in addition to Node.js 24.
  • Selection, persistence, and file errors use configurable language strings, with complete translations in all twelve language files. Missing dialog frameworks report a visible error and reject opening without an uncaught exception.
  • Invalid or unavailable translations retain working labels and report failures. Asynchronously loaded labels update open dialogs without discarding input. Invalid automatic editor configuration no longer interrupts table initialization.
  • Date/time picker cleanup continues after plugin failures, optional file size limits reject oversized files before reading, and time fields support explicit date input formats.
  • Dialog errors remain visible without an open modal, focus moves to the first available field after opening, Bootstrap 3 cleanup avoids unsupported methods, and Foundation dialogs prevent backdrop and Escape dismissal during saves. Dialog fields are rendered once without unused error labels.
  • Dialog editing and deletion require explicit row selectors when Select is unavailable. Unsupported field paths and radio fields are excluded from dialog forms without overwriting their original values.
  • Field lookup handles CSS punctuation consistently. Row copies preserve unrelated metadata without assigning object prototypes, and uniqueness checks distinguish text, numbers, empty values, and multiple selections.

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 16:27

Added

  • GitHub Pages deployment for the example site and a manual release draft workflow with version validation, release notes, an npm archive, and a SHA-256 checksum.
  • Tests for control value conversion, optional plugin cleanup, dialog framework lifecycle, persistence errors, and inline keyboard interactions. CI checks aggregate JavaScript coverage of at least 80% for statements, branches, functions, and lines.
  • A minified distribution stylesheet with an external source map and embedded CSS source content.
  • Monthly Dependabot updates for npm development dependencies and GitHub Actions within their current major versions, preserving the DataTables 2.1.x compatibility dependency.
  • Simplified Chinese, Japanese, Spanish, French, German, Korean, and Turkish translations, with a language configuration and coverage guide.
  • Automatic light and dark editor themes, scoped CSS custom properties, and an Appearance selector shared by the examples.
  • Security policy covering supported versions, private vulnerability reporting, and application responsibilities.
  • Code of conduct covering participation standards, reporting concerns, and maintainer responses.
  • Cell inline editing with native controls, immutable candidate rows, keyboard navigation, IME composition handling, validation, and persistence retry.
  • onInlineEditRow callback with onEditRow fallback and structured DataTables lifecycle events.
  • Public table.altEditor() accessor, editor.api(), dialog methods, inline methods, refresh(), and destroy().
  • Reproducible readable and minified UMD builds, source maps, CSS, and exact dependency locking.
  • DataTables 2.1.x and browser compatibility commands.

Changed

  • CI dependency installation enforces declared Node.js requirements on Node.js 24.
  • Generated JavaScript, source maps, and CSS in dist/ are tracked in Git and shipped with the checkout.
  • Examples use consistent DataTables table styling without overlapping Bootstrap table classes.
  • Example pages share responsive navigation, typography, table containers, and an example directory. Long dialog forms scroll within the available mobile viewport.
  • Historical changelog entries are grouped by change type and listed in reverse chronological order, preserving available dates and contributor credits.
  • JavaScript source is organized into ES modules using DataTables 2.x public initialization and column APIs.
  • Package version is 4.0.0; the package entry and example script paths now use dist/.
  • Examples use DataTables 2.3.8, Buttons 3.2.6, Select 3.1.3, and Bootstrap 5, with a separate Foundation example.
  • Bootstrap 5 uses its official Modal API. Bootstrap 4 and Foundation Reveal remain supported; Bootstrap 3 compatibility is best effort.
  • Buttons and Select are optional for programmatic usage.
  • Edit and delete targets retain their identity independently of changes in selection. Repeated callback settlements are ignored.

Fixed

  • The dialog close button's accessible label updates when an asynchronous translation finishes loading.
  • Missing Italian, Russian, and Ukrainian deletion confirmations, the Italian response code label, and Ukrainian spelling in the required-field message.
  • Examples generate new row identifiers consistently and remove duplicate identifiers from sample data. Validation starts with valid unique values, field options use supported constraints, and custom actions work in responsive row details.
  • Ajax examples retain submitted values and assign identifiers to new rows. Dependent town options handle loading, request failures, and country changes. The file example stores and downloads attachments without discarding them on later edits.
  • Example 6 retains submitted selections and dates after simulated saves, derives degree labels from the selected value, and uses the source timestamp format in its date/time control.
  • Dialog close button alignment, form spacing, checkbox sizing, and stacked fields on small screens across supported dialog frameworks.
  • Array fields with numeric source 0 and immutable nested row updates.
  • uniqueMsg validation, safe option merging, text-only error rendering, file read failures, and optional plugin cleanup.
  • Inactive dialogs remain hidden when using inline editing without a dialog framework.

Deprecated

  • _openAddModal, _openEditModal, and _openDeleteModal aliases; use the public dialog methods.
  • The special column attribute; it remains readable for compatibility.

Removed

  • Unused alwaysAsk, focus, columns, update, and editor defaults.
  • Direct script consumption of the single-file source. Use the built UMD distribution.