New in Softadmin® 7.30.001

Design changes

Redesigned TreeView

The TreeView component has been redesigned.


Redesigned Multi-picker

The Multi-picker control has been redesigned.


UX changes

Parameter pages make a distinction between search and execute

Previously parameter pages would have the buttons OK and Cancel (unless you use the settings Search button text and Cancel button text to override them). Now parameter pages that are used for searching will have the buttons Search and Cancel instead, and screen readers will be informed that this is a search page.

By default, visible components like grid will be assumed to be searches, and invisible components like execute will be assumed to not be searches. You can override this for each menu item by using the Parameter page type setting found under Advanced.


Input page warning summary

If a user tries to save a page where there are validation errors, in addition to the errors displayed next to the offending fields, a summary of all errors on the page will be shown above the input page. Users can click on the individual warnings in the summary to scroll to the field.


Calendar highlights displayed dates

The mini calendar will now highlight the date range that is being shown in the big calendar.


Description for sub menugroups is now shown as text

The description for menu subgroups will now be shown as text in the menu group. In earlier versions the Description field was documented as being displayed as a tooltip, although it stopped working a long time ago and no tooltip was shown.

You can now use the menu group's description to explain the entire menu group's purpose, the subgroup's description to explain the menu items in the subgroup, and the description on featured menu items to explain an individual menu item.


Excel button in multipart

In multipart, if a grid is in compact mode, then the Excel export button is shown next to the part title.


If the grid is not in compact mode, then the Excel export button is shown in the grid head, just as it would for a standalone grid not in a multipart.


Special icons in tab menu items

Icons like "Fullscreen mode" and "View help page" are now found next to the menu item title in tab views.


You can put a link next to an InfoSQL warning to provide users with a shortcut to deal with the problem. On wide monitors, when the message was short the link would be too far away from the message, making it less intuitive. The link has been moved closer.


New features

Start Editable grid in Edit mode

Usually Grid: Editable Grid mode will start in view mode, and not begin editing until initiated by the user. You can now use the Row_IsEditing column to start editing a given row when the menu item is opened. For example, if you have a top link that creates a new row then users may want to edit that row immediately.

Magic Box: Collaborative editing

You can now enable collaborative editing in the Magic Box component, so that if one user changes a box the browsers of all other users viewing the same planning board are notified and can immediately request a partial update to reflect the latest changes.

For this to work the menu items that update the database must call SoftadminApi.SyncEntity_RaiseChanged, and the Magic Box menu item must enable collaborative editing and implement the Client sync call.

The technology is currently under evaluation, but depending on performance and server load it will be made available to other components in the future.

Magic Box: Delete boxes during partial update

Previously partial updates of Magic Box could add new boxes but could not remove existing boxes. Deletion is now supported for partial update, both for drag & drop and client sync, by using the IsDeleted column.

Developer features

Pass parameters to JavaScript returned from procedure

When trying to insert user data into a custom JavaScript you need to be careful to avoid injection security flaws. The new parameter columns supported in InfoSQL, and the JavaScript component will take care of the escaping for you.

    'thirdPartyApi.showMap(street, city, country)' AS JavaScript,
    StreetAddress AS street,
    CityName AS city,
    CountryName as country