OpenSparrow v4.2 adds native Excel export, column masking for viewers, and recordâtooltips in drilldowns â plus a handful of UI polish and stability fixes.
Native Excel export
The record grid, public share links, saved views and the massâedit âExport Selectedâ panel can now download a real .xlsx workbook alongside the existing CSV. The workbook is built completely in the browser by a dependencyâfree writer (public/assets/js/export_xlsx.js) that emits a valid OPC package:
- Typed cells for numbers, booleans and dates
- XMLâescaped text and sanitized sheet names (maxâŊ31âŊchars)
- Required
docProps/core.xmlanddocProps/app.xmlparts
The UI now shows an Export Excel button (also in the mobile actions menu), views and share pages render one next to Export CSV, and the massâedit panel adds a Format radio (CSVâŊ/âŊExcel) that switches the download label. All new strings are translated in every one of the 20 languages.
Viewer column masking
A column can be flagged in the schema editor (Schema â table â column ââŊMask value for Viewer) to hide its value from frontend Viewer accounts. The column stays visible everywhere, but every value is replaced with the âĒâĒâĒâĒâĒ placeholder:
- Grid, drillâdown subâtables, record form, board cards, calendar events, roadmap bars, dashboard lists and group/timeâseries labels
- M2M option labels, FK
__displaylabels, and public share links
Masking is enforced serverâside â the raw value never leaves the backend for a Viewer â while Editors and Admins see the real data. The flag lives in the schema configuration (columns.<col>.mask_for_viewer) and requires no migration; the schema editor marks such columns with a warning badge.
Record tooltip in drilldowns
Hovering a child row inside an expanded drillâdown now shows the same record tooltip as grid cells, with the childâs title and its configured columns. The tooltip logic was refactored to use a monotonic show token, eliminating race conditions between overlapping hovers.
Also in this release
-
XLSX export hardening â objectâURL revocation is now deferred (
setTimeout(âĶ,âŊ0)) so Firefox no longer cancels a download before it starts, and every download site (grid, views, massâedit CSV, share) uses the shareddownloadBlobhelper instead of handârolled<a>âŊ+âŊURL.createObjectURLcode. - Tooltip hide race fixed â a stale hide timer could dismiss a tooltip that a newer hover had just shown; the new tokenâbased approach guarantees the correct tooltip stays visible.
Top comments (0)