Resource icon

Data Tables 1.4.3

No permission to download

Data Tables v1.4.3 - Bug Fixes + Performance​

Bug fixes and performance improvements. All issues from @briansol's reports are addressed.



Bug Fixes​

  • Rich text fields not saving - Content entered in the WYSIWYG editor (formatted text, bullet lists, bold, etc.) was silently lost on save. The field appeared blank on next view. Fixed by properly reading the editor's HTML output and converting it to BBCode for storage. (Reported by briansol)
  • Wrong slugs don't 301 redirect - URLs with incorrect slugs (e.g., /reference/transmissions/fsdfsdfsddsfsd.263/) served the page content without redirecting to the canonical URL. Now returns a proper 301 redirect to the correct slug. Applies to record view, edit, and delete pages. (Reported by briansol)
  • Pagination URLs use query params instead of XF-style paths - Changed from /reference/transmissions/?page=2 to /reference/transmissions/page-2, matching XF's native forum/thread pagination pattern. Sort parameters remain as query params where appropriate. (Reported by briansol)
  • Admin bulk delete has no confirmation - Selecting records and clicking "Delete selected" now shows a confirmation page with the count of records to be deleted. Records are only removed after explicit confirmation. (Reported by briansol)
  • Textarea/rich text not truncated in table view - Long text content (textarea and rich text fields) now truncates to ~100 characters with ellipsis in table views. Full content is still displayed on record detail pages. Fixes the row height blowout on tables with notes/description fields. (Reported by briansol)
  • File health check warnings - Eliminated "Missing" and "Unexpected contents" warnings on permissions.xml in the AdminCP file health check. Caused by a stale hashes.json entry from a prior build.

Performance​

  • Table lookup maps scoped to current page - Previously loaded ALL records from linked tables on every page view. Now only fetches records actually referenced on the current page. Dramatic improvement for tables with large linked datasets.
  • Autocomplete search bounded - Search no longer loads the entire table into memory for PHP-side filtering. Uses SQL LIKE with a limit of 50 candidates, then resolves display labels only for matches.
  • In-memory sort capped - Column sorting on JSON-stored fields is capped to tables with 500 or fewer records. Above that threshold, default pagination order is used to avoid loading the entire dataset into memory.
  • COUNT queries eliminated - Add/edit forms no longer run a COUNT query per table-lookup field. Uses the pre-maintained record_count column instead.
  • New composite index - Added (definition_id, created_date, record_id) index on the records table for faster default-order pagination.

Upgrade​

Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive. One automatic migration step adds the new database index. Seamless from any prior version.
v1.4.2 fixes two UI issues reported by briansol:
  • Color picker sizing - The color input displayed as a full-width thin black bar in admin forms. Now renders as a compact 80×36px color box.
  • Type change confirmation layout - The impact stats (records affected, auto-convertible, etc.) overlapped their labels. Now uses standard XF form rows with the description in the block header.
v1.4.1 fixes the sitemap handler that was not properly registered in v1.4.0. Records will now correctly appear in your XF sitemap. No other changes.

Data Tables v1.4.0 - Safe Type Conversion, Color & Rich Text Fields, Sitemap, New URL Format​

v1.4.0 adds safe field type conversion with data preservation, two new field types (color swatch and rich text/BBCode), sitemap integration, nested overlay creation, move field between definitions, custom route prefix, bulk select on all admin lists, and a cleaner .ID URL format. Includes admin UX improvements requested by briansol.



New Field Types​

  • Color - HTML5 color picker with hex validation. Shows a compact inline swatch in table views and a larger preview on record detail pages.
  • Rich Text (BBCode) - Full XF BBCode editor for rich content fields. Renders as formatted HTML on record detail pages. BBCode is cleanly stripped when converting to other field types.

That brings the total to 10 field types: Text, Number, URL, Date, Lookup, Table Lookup, Text Area, Yes/No, Color, and Rich Text.

Safe Field Type Conversion​

Changing a field's type no longer wipes existing data. You now get a confirmation page showing how many records will be affected and how many can be auto-converted. The addon performs smart conversions where possible - for example, changing a Lookup field to Text resolves option labels instead of leaving behind raw IDs, and changing a Table Lookup to Text resolves linked record display names.

New Features​

  • Sitemap integration - Records from active, listed definitions are automatically included in your XF sitemap for search engine discovery.
  • Nested overlay creation - The "+" button for creating linked records now works inside overlays (one level deep). Create a referenced record without leaving the parent form.
  • Move field between definitions - Relocate a field and all its record data from one table to another. Includes collision checks and automatic reference cleanup.
  • Custom route prefix - New admin option to change the public URL from /data-tables/ to any custom prefix (e.g., /reference/). Uses XF's native route filter system so all template links update automatically.
  • Bulk select & delete everywhere - The select-all checkbox and "Delete selected" button pattern (previously only on records) now also works on the definition list and field list pages.

URL Changes​

Record URLs now use XF's native .ID suffix pattern:

Old: /data-tables/record/{table-slug}/{record-slug}/
New: /data-tables/{table-slug}/{record-slug}.{id}/

This is cleaner - the table and record sit under the same path hierarchy, matching how XF handles thread URLs. All old URLs 301-redirect to the new format automatically.

Admin UX Improvements​

  • Clicking a definition title now goes to its Records page (not the edit form). Edit and Delete buttons are in the Actions column. (Requested by briansol)
  • "Required" and "Show in table" are now inline checkboxes on the field list, saved alongside display order in one click. No more opening each field individually. (Requested by briansol)
  • Title fields using Lookup or Table Lookup types now resolve to their display labels instead of showing raw IDs. No more "621" instead of "del Sol". (Reported by briansol)

Bug Fixes​

  • Fixed pagination overlap/gaps on bulk-imported records that share the same timestamp (added record ID tiebreaker sort). (Reported by briansol)
  • Fixed "Referenced by" showing raw record IDs instead of proper display labels.
  • Fixed singular/plural counts on the public table list ("1 field" vs "2 fields").
  • Fixed missing option group description in AdminCP.
  • Accessing /data-tables/... when a custom prefix is configured now 301-redirects to the custom prefix URL.

Upgrade​

Standard XF upgrade - upload and install from AdminCP. Seamless from any prior version (v1.0.0 through v1.3.2). All migration steps run automatically.

150 automated browser tests pass on this release.
  • Love
Reactions: briansol

Data Tables v1.3.2 - Title Field Selector, Editable Slugs, and Slug Regeneration​

v1.3.2 fixes the record title showing "#58" instead of field values, adds a title field selector per definition, makes slugs editable, and adds a one-click slug regeneration button.



New Features​

  • Title field selector - Choose which field is the record's display title from a dropdown on the definition edit page. Used in the page header, browser tab title, and URL slug generation. Defaults to "Auto (first text field)" for backward compatibility.
  • Editable record slugs - Admin record edit form now shows the URL slug field for manual editing.
  • Regenerate slugs button - One-click button on the admin record list page that regenerates all record slugs using the title field. Fixes generic slugs like record-2 created during the v1.3.0 migration.

Fixed​

  • Record title shows "#N" instead of field value - Title resolution now uses the definition's title field setting, then falls back to the first text field. Previously it could show the raw record ID when the first field value wasn't a plain string.
  • Bulk delete button count not resetting - Unchecking all checkboxes on the admin record list now correctly resets the button text to "Delete selected" instead of keeping the old count.
  • Slug generation uses title field - New records now generate their URL slug from the title field value instead of always using the first field.

How to Fix Existing Records​

If you upgraded from v1.2.x and have generic slugs like record-2:
  1. Go to AdminCP > Tools > Data Tables > edit your definition
  2. Set the Title field dropdown to the field you want (e.g., "Model" for a vehicles table)
  3. Save
  4. Go to the record list for that definition
  5. Click Regenerate slugs on the right side
All record URLs and page titles will update automatically. Old URLs will need manual redirects if shared externally.

Upgrading​

Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive. One automatic migration step adds the title_field_id column. All existing data and permissions are preserved.

Requirements​

  • XenForo 2.3.0+
Fixes DuplicateKeyException when upgrading from v1.2.x with existing records. Unique key now added after slug data migration completes.

Data Tables v1.3.0 - Friendly URLs, CSV Import/Export, Icon Picker, and Enhanced UI​

v1.3.0 adds friendly record URLs with breadcrumbs, clickable table rows, CSV import and export, field visibility controls, unlisted table definitions, per-definition FontAwesome icon picker, enhanced public page layouts, bulk record operations, and inline field display order editing.



New Features​

  • Friendly URLs - Records are now accessible at /data-tables/record/{table-slug}/{record-slug}/ with auto-generated unique slugs. Legacy ?record_id=N URLs 301-redirect to the new format.
  • Breadcrumbs - Full navigation trail on all public pages: Home > Data Tables > Table Name > Record Title.
  • Clickable table rows - Click anywhere on a table row to navigate to the record detail page. Ctrl/Cmd+click opens in a new tab. Action buttons still function independently.
  • Field visibility - Per-field "Show in table" toggle to hide columns from the table view while still displaying them on record detail pages.
  • Unlisted definitions - Hide tables from the public index while keeping them accessible via direct URL. "Unlisted" badge in AdminCP.
  • CSV Import - Upload CSV files from the AdminCP record list page. Supports comma, tab, semicolon, and pipe delimiters. Automatic column mapping, 5-row preview, lookup resolution with optional auto-creation of missing options.
  • CSV Export - Download table data as CSV with formatted cell values (lookup labels, boolean Yes/No, table lookup display labels).
  • Inline field display order - Edit display order values directly from the field list page without opening each field individually.
  • FontAwesome icon picker - Per-definition custom icon selectable from 1,500+ FontAwesome icons (e.g., fa-car, fa-wrench, fa-database). Displayed on the table list, table view header, and record detail header.
  • Enhanced table list - Public table directory uses rich card rows with definition icon, description, field count, and record count badge with smooth hover transitions.
  • Unified page headers - Table view and record detail pages use a consistent icon + title block header pattern for visual cohesion across all Data Tables pages.
  • Bulk select & delete - Admin record list has select-all checkbox and batch delete button with dynamic count display.

Changed​

  • Record detail URL changed from /data-tables/{slug}/view-record?record_id=N to /data-tables/record/{slug}/{record-slug}/
  • Table view headers respect the field "Show in table" setting
  • Record slugs are stable - editing a record no longer changes its URL
  • Table lookup autocomplete mode (>50 options) uses count-first strategy instead of loading all records into memory

Fixed​

  • Lookup option ID stability - Editing a lookup field (e.g., adding a new option) no longer reassigns option IDs, so existing records keep their values
  • Boolean required validation - Boolean fields marked "required" no longer block record creation with false-positive errors
  • Definition slug upgrade step - Upgrading from v1.2.x now correctly adds the slug column to definitions
  • Case-insensitive option matching - Renaming a lookup option's casing preserves the option ID
  • Lookup zero-value rejection - Option ID 0 is no longer accepted as valid
  • Orphaned table lookup display - Deleted targets now show "(Unknown)" consistently
  • Field type change cleanup - Changing a field type now clears stale reference IDs from records
  • syncRecordRefs transaction safety - Record reference sync wrapped in transaction
  • CSV import path traversal - File path validation prevents directory traversal attacks
  • Cross-definition validation - Admin controller now validates field/record ownership across table definitions

Upgrading​

Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive. Seven automatic migration steps handle everything: adding slugs to definitions and records, generating slugs for existing data, adding field visibility and definition listing columns, adding the icon column, and creating indexes for slug lookups. No manual steps required. Existing record URLs will 301-redirect to the new friendly format. All permissions and data are preserved.

Requirements​

  • XenForo 2.3.0+

Data Tables v1.2.1 - Permission fix​

v1.2.0 had an empty permissions.xml which caused the Data Tables permission group to disappear after upgrading. This release restores all 4 permission definitions (viewDataTable, addRecord, editRecord, deleteRecord).



After upgrading to v1.2.1, go to Admin CP > Groups & permissions > User group permissions, you should see the "Data table permissions" group with all 4 permissions configurable.

If you already set permissions before v1.2.0, you may need to re-configure them.

Data Tables v1.2.0 - Multi-Select, Public Edit/Delete, Autocomplete & More​

v1.2.0 adds multi-select table lookups, public edit/delete permissions, required field validation, autocomplete search for large lookup lists, and inline edit for linked records.



New Features​

  • Multi-select table lookups - Table Lookup fields can now be marked as multi-select for many-to-many relationships. Rendered as a multi-select dropdown (or autocomplete tags when >50 options). Cell display shows comma-separated linked items with clickable links to each.
  • Public edit/delete - Records can now be edited and deleted from public pages. Two new permissions: "Edit records" (default: Allow) and "Delete records" (default: Deny). Edit and Delete buttons appear on both table view rows and record detail pages.
  • Required field validation - Fields can be marked as required. Validation is enforced across all 4 save actions (admin create/edit, public create/edit) with clear error messages.
  • Autocomplete search - Table Lookup fields with more than 50 options automatically switch from a standard dropdown to an AJAX-powered autocomplete with debounced search. Multi-select uses removable tag pills.
  • Inline edit linked record - A pencil icon appears next to single-select Table Lookup fields. Click it to open an overlay and edit the referenced record in-place. The option label refreshes on save without page reload.
  • Overlay form reset - After overlay save, the container DOM is removed to force a fresh fetch on next open, preventing stale form data.

Fixed​

  • Display field dropdown - Fixed the display field dropdown not populating when selecting a linked table for Table Lookup fields (reported by briansol).
  • Deleted record references - Skip deleted record references instead of showing broken links in "Referenced by" sections.
  • Button styling - Consistent text-only action buttons across admin and public views with proper inline-flex layout and matching button sizes.
  • Inline styles extracted to LESS - All static inline styles moved to addon LESS files using XF theme variables for full theme compatibility.
  • Lookup field options - Added "Add option" button so you can add unlimited lookup options without saving and reloading (reported by briansol).
  • Table lookup display labels - Dropdowns and record lists now show the first text value from linked records instead of "#1", "#2" or "Record detail #N" when display field is not explicitly set (reported by briansol).
  • Accessibility - Autocomplete widget now includes proper ARIA attributes (role=combobox, aria-expanded, role=listbox, role=option).

Upgrading​

Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive. One automatic upgrade step adds the is_multi_select column to the field table and registers the new edit/delete permissions. All existing data is preserved. Seamless upgrade from v1.0.0 or v1.1.0.

Requirements​

  • XenForo 2.3.0+

Data Tables v1.1.0 - Cross-Table Relational Lookups & Inline Record Creation​

v1.1.0 adds cross-table relational lookups and inline record creation via overlay.



New Features​

  • Cross-table relational lookups - a new "Table Lookup" field type lets you reference records from another table. Select a linked table and choose which field to display as the label. Users pick from existing records via dropdown, and values render as clickable links to the referenced record's detail page.
  • Inline "Create New" overlay - a "+" button appears next to every Table Lookup dropdown. Click it and a modal opens with the linked table's record form. Fill it out, save, and the new record is automatically selected in the parent dropdown - no page reload, no navigating away. Works in both AdminCP and public pages (permission-gated).
  • Record detail pages - every record now has its own page at /data-tables/{slug}/view-record?record_id=N showing all fields in a clean layout. A "Referenced by" section at the bottom lists records from other tables that point to this one - giving you automatic reverse navigation between related data.
  • Clickable cross-links - Table Lookup values display as clickable links in both admin and public table views. Click a manufacturer name in a products table and jump straight to that manufacturer's detail page.
  • Clickable URL fields - URL-type field values now render as clickable links (safe protocols only - http/https).
  • AJAX field configuration - when editing fields in the AdminCP, selecting "Table Lookup" as the field type dynamically loads linked table and display field dropdowns via AJAX - no page reload needed.
  • Reference tracking - denormalized xf_qubn_dt_record_ref table for fast reverse lookups between tables.
  • 17 new phrases for relational lookup and overlay UI.

Changed​

  • Cell output restructured to support clickable cells in both admin and public views.
  • Setup.php refactored to use getTables() helper (prevents install/uninstall drift).
  • URL field values validated for safe protocols.

Fixed​

  • Definition deletion now cleans up orphaned linked_definition_id references in other tables' fields.

Upgrading​

Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive. Two upgrade steps run automatically to add the new xf_qubn_dt_record_ref table and linked_definition_id / display_field_key columns to the field table. All existing data is preserved. Database tables: 5 (was 4). No class extensions - zero conflict risk.

Requirements​

  • XenForo 2.3.0+
Back
Top Bottom