This update introduces powerful new features to the table functionality, including multi-cell selection, copying, pasting, deletion, and row duplication. These enhancements aim to provide a more intuitive, spreadsheet-like experience for data manipulation within Budibase.

New Features:

  • Multi-cell Selection: Select multiple cells using click-and-drag, shift+click, or arrow keys with shift.
  • Multi-cell Copy & Paste: Copy and paste multiple cells (max 50 rows, unlimited columns) using ctrl+c/cmd+c/v or by right-clicking “copy/paste” in the context menu.
  • Multi-cell Deletion: Delete multiple cells at once (max 50 rows, unlimited columns) using delete, backspace, or by choosing the right-click menu option.
  • Multi-row Duplication: If you have multiple rows selected (which you can now do by holding shift and selecting another row), then you'll get a new option in the context menu to duplicate all those rows.

Enhancements:

  • Progress Indicators: Real-time bar for all multi-cell operations, offering insight into the expected duration of the process.
  • Error Handling: Graceful error handling on a per-row basis, with detailed notifications on successes and failures.
  • Code Refactoring: Improved performance, reduced redundant updates, and enhanced column handling logic.
  • Visual Improvements: Fixed pixel inconsistencies and gaps and improved the handling of long field names and text overflow in settings popovers.

Fixes:

  • Resolved issues with long field names in settings popovers.
  • Addressed text overflow problems in settings popovers.

With conditional formatting, you can now create rules that dynamically change the format of your cells. For example, when the value of a cell is set to “Done,” you could set up a rule so the cell's background turns green, improving the “at a glance” experience of your data.

Conditional formatting rules are set at the column level, while the formatting is set at the row and cell levels. These rules allow you to change the cell's background color or text color based on the values set in the rule.

To try conditional formatting for yourself, upgrade to the latest version of Budibase today.

A new Generate button has been added to the table menu in the Data section in Budibase.

Clicking the button presents two options:

  • Automation: when row is created - will create a new Row created trigger automation with the current table preselected
  • Automation: when row is updated - will create a new Row updated trigger automation with the current table preselected

The "Update Row" automation has been refined for a cleaner and more intuitive user experience. Previously, all fields in the table were displayed by default, leading to a cluttered interface. With this update, you now have the option to manually select the fields you wish to update, reducing unnecessary complexity and improving usability.

To learn more, and to see screenshots of this functionality, click here.

Modal Component

by Budibase

We are excited to introduce the new Modal component in Budibase. This feature enables a pop-up modal to appear on your screen when triggered by an action, such as a button click. It functions similarly to the existing Side Panel component but is designed for different use cases, such as confirmation dialogs, notifications, form inputs, and more.

Key features:

  • The modal will be centered on your screen by default for optimal visibility.
  • Choose from four different size options to suit your needs:
    • Large: 800px * 600px
    • Medium: 600px * 400px
    • Small: 400px * 200px
    • Full screen: 100% * 100%

You can find the new Modal component under Layout in-app.

Please note that modals block interaction with the rest of the app until users perform an action to dismiss them, so we recommend using them sparingly.

View filters will now have access to bindings. This release allows you to create dynamic views. For example, you could tailor a view to the current user or a specific time frame.

You can use the following bindings in your filter to achieve this:

  • {{ Current User }}: Represents the currently logged-in user. This provides access to the full user object.
  • {{ Date }}: Represents the current date.

The bindings aren't limited to just these use cases, so hop in-app to explore them for yourself.

Previously, when updating the visibility of a column in a View, you only had two options - Show and Hide. The main concern here was that if you could view a column, you could also edit it, and that might not always be the desired behavior.

To tackle this, we're updating Views to have three visibility options:

Hidden: The user has no access to this column.

Read Only: - The user can view the data, but does not have permission to edit the data in any way.

Writable: - The user has full permissions and can both view and edit the data.

🔒 Please note that this is a premium-tier feature. Please visit our pricing page for information on how to upgrade.

This collection of QoL improvements enhance the overall usability and functionality of the Table component.

UX Improvements:

  • You can now double-click the column header to open column settings.
  • Options Settings:
    • Auto-focus text field after adding an option.
    • Auto-select color for new options.
    • Rounded top and bottom design.
    • Updated button design to match custom forms in the design section.

Table Enhancements:

  • Reworked table height to support percentages again, ensuring correct min-height and preserving relativity to the parent component.
  • Added an initial width setting for table columns. Allows unique widths per table instance while retaining the ability to resize columns.

Fixes:

  • Resolved race conditions during cell editing by disabling rows during API calls, ensuring data integrity and proper loading states.
  • Eliminated random flashes and duplicated rows occurring during table refreshes.
  • Corrected the issue where highlighted rows under the mouse were incorrect when the page was scrolled.
  • Adjusted long column names in the new column settings button, so they now truncate properly and have sensible minimum and maximum widths. Also, padding has been slightly adjusted.
  • Fixed the problem where attachments were not working when editing rows in modals.
  • Resolved an issue where inputs could exceed cell bounds in Firefox.

We've added a new binding option: GlobalId. You now have access to both the app-level user ID and the global user ID in the bindings menu. This allows for more flexible user identification within the app.

General Improvements:

  • Upgraded to the latest Apex charts and removed the use of the Apex charts Svelte shim. We are now using the library directly.
  • datetime labels now display in a human-readable format instead of UNIX timestamps or raw ISO 8601 strings.
  • Horizontal mode now works for histograms and bar charts with date labels.
  • When used as values, datetime fields are now converted to UNIX timestamps which are more immediately useful.
  • In dev mode, if a chart is provided inputs that have no rows, an alert will tell users this is the case.
  • Removed the previous chart builder class, simplifying the construction of the Apex chart config object in each component.
  • Candlestick charts now accept correctly formatted numbers and string-like values as date inputs.
  • Histograms now support negative values.

Chart Explanation Tooltips:

  • Added tooltips that provide information on column types and their compatibility with specific component inputs when hovering over FieldSelects or MultiFieldSelects.
  • Tooltips include detailed explanations on topics such as converting strings to numbers for numerical inputs.
  • Additional QoL features include summaries of column configurations and direct links to documentation and the column's table.

Fixes:

  • Fixed an issue where alerts for required fields weren't displaying on newly added chart components.
  • Fixed a related issue where nested component controls didn't check their parent's dependsOn field for validation.
  • Fixed an issue where Donut and Pie charts would break until the page reloaded when a non-numeric value was selected as input.
  • Fixed an issue where switching to certain label types would break the chart component until a page refreshed.
  • Fixed an issue where selecting null or non-scalar values in multi-select charts would break the chart.

These improvements enhance the overall functionality and usability of the chart components, making the experience smoother and more intuitive.