New in Softadmin® 7.20.001

User Experience

You can now use a new link type to create menu item links from InfoSQL warnings. Often, when there's a warning about a problem the user experience can be improved by either linking from the warning to a menu item that can fix the problem or at least show more detailed information.

A warning: "No invoice address has been configured" with a link "Edit addresses"

New InfoSQL "warnings" for displaying positive messages

The WarningSuccess column can be used to show positive alerts.

A banner showing the text: Invoice has been paid

Support for different themes in different system instances

You can now create multiple color themes and choose which to use on an instance basis. This is useful if you have multiple production systems that share the same development system, but where the production systems should use different theme colors.

Developer Features

Field information gets support for Input constants

Input constants are dropdown options declared in metadata that are prepended to the options returned from the stored procedure. Originally only dropdowns could only use input constants when used as a parameter, but now support has also been added for field information (that is, on a new/edit menu item).

Download file can now serve text files directly

Sometimes you generate a text document in the database (for example a XML or JSON document). Previously the Download File component only supported binary data, so you would manually have to convert the text to bytes if a user should download your document.

You could either use the SoftadminUtil.TextEncoding_StringToBytes function, which is not available in the cloud, or use SQL Server's CONVERT, which has limited encoding support.

Now you can use the TextContent and TextEncoding columns to serve text files, and leave the binary conversion to the web server.

Configure lifetime of job history

You can use the new setting RetainJobHistoryMonths if you need to retain the run history of jobs for more than the default two months.

A new type of login link has been introduced: static login links. A static login link is used to allow other systems to link to the Softadmin system. It can not be instantiated and will only take parameters from the query string. You can also use static login links when there's no need for instantiation (for example the link takes no parameters, or when users editing the query string values will not cause any security problems).

Unlike instantiated links the link key will be the same in all system instances. For example:
https://dev.example.com/admin/Login.aspx?Link=z1DNqpUJlX9386ikaWrQrGDawIk
https://stage.example.com/admin/Login.aspx?Link=z1DNqpUJlX9386ikaWrQrGDawIk
https://prod.example.com/admin/Login.aspx?Link=z1DNqpUJlX9386ikaWrQrGDawIk

In an edit menu item, if a dropdown starts with a value that is not found among its options then an option with the label "Unchanged value" will automatically be added. This prevents end users from accidentally changing historical data but gives them no clue as to what "value" the dropdown actually has.

The old solution to this was for the developer to manually write the dropdown procedure in such a way as to always add the current value, even if it would not normally be available. For example

CREATE PROCEDURE dbo.MaintenanceItem_UserAssigned_Dropdown
    @MaintenanceItemId int = NULL
AS
BEGIN
    DECLARE @UserIdAssignedCurrent int = (
        SELECT
            UserIdAssigned
        FROM
            dbo.MaintenanceItem
        WHERE
            MaintenanceItemId = @MaintenanceItemId);

    SELECT
        UserId,
        FirstNameLastName
    FROM
        SoftadminApi.[User]
    WHERE
        IsEnabled = 1
        OR
        UserId = @UserIdAssignedCurrent;
END

This code takes time write, especially when the dropdown is used by multiple different entities, meaning that it was often not done. We have now added the HideUnlessCurrent column.

CREATE PROCEDURE dbo.MaintenanceItem_UserAssigned_Dropdown
AS
BEGIN
    SELECT
        UserId,
        FirstNameLastName,
        ~IsEnabled AS HideUnlessCurrent
    FROM
        SoftadminApi.[User];
END

Developer Tools

Automatic parameters and basic bodies when creating new procedures

When you click the Edit button next to a procedure name, for example in edit menu item, edit field information, or edit parameter, if no procedure with that name exists then you will instead get a CREATE PROCEDURE statement.

In earlier versions, this CREATE PROCEDURE did not have any parameters and had a single RETURN statement as body.

Softadmin® has a basic knowledge of which parameters a component's procedure will need to support based on component type and component mode. For example, a calendar will always require the @FromDate and @ToDate parameters. Grid will require the @ColumnName in Editable grid mode but not in normal grid mode. From now on, this information will be used to give the newly created procedure a basic set of parameters and body.

CREATE OR ALTER PROCEDURE Example.Calendar
	@FromDate date = NULL,
	@ToDate date = NULL,
	@Resources bit = NULL,
	@ExtraInfo bit = NULL
AS
BEGIN
	SET NOCOUNT, XACT_ABORT ON;

	IF @Resources = 1
	BEGIN
		RETURN;
	END;
	
	IF @ExtraInfo = 1
	BEGIN
		RETURN;
	END;
END;

Admin menu items for Single Sign-on

There were no admin menu items to administer the content of tables like SoftadminApi.AdGroup, as it was assumed that you would always build menu items where the customers would administer the content of these tables. In practice not all organizations value the ability to administer this without developer help enough to motivate the construction of customer-specific menu items.

We've now created normal admin menu items where you as a developer can configure these tables as well as the system settings related to Single Sign-on.