release notes

Universal Development Update March 2020

Related products: Universal GUI
Universal Development Update March 2020

Hello everyone, this sprint we've made some great improvements to Universal we think you'll like. Among other things, we've added lookup popups and the tiles menu. Read on to get all details.

As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen.

We'll keep you updated regularly about Universal's progress.

Beta build

Like with every blog, we've released a beta build so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind:

  • Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal.
  • Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json.
  • Universal only works with version 2019.1 and up of the Thinkwise Platform.
  • Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal.
  • Make sure you are on the latest version of Indicium Universal.

Download your beta build here

Lookup popups

In the previous blog we promised you lookup popups for the next release. We had to do quite some work with styling and actually selecting the chosen record. We did just that, so here it is:

Working with lookups was a bit cumbersome in Universal, it was difficult to quickly open a lookup and make some changes. We've now made that a lot easier by implementing lookup popups. Before we continue, here's what they look like:

Lookup popups in action

When you open the lookup popup the correct record is selected and you see only the records you'd be able to select. This seems obvious of course, but did need to be implemented.

Details are hidden in the toolbar of lookup popups. If you'd open a detail via the toolbar, it would open a new document. That document is below the popup, so it would be unusable. Since we support screen types, you can still access your details via a tab page in a popup.

There are some improvements we'd like to do. For example making breakpoints work better in lookup popups and indicate when there are unsaved changes. You'll be seeing that and more in a future release.

Tiles menu

We've created the first version of the tiles menu. This is what it looks like:

The tiles menu in action
Switching between two applications, one with, and one without a tiles menu

Tiles will not scroll horizontally, but will arrange themselves neatly on the screen. While the tile sizes aren't responsive yet, they to respond to the available width:

Tiles menu responsiveness

As you can see in the images above, badges also work for tiles!

Next up we'll be adding open documents to the tiles menu.

Grid improvements

We've made some improvement to the grid. Now it listens to the column size as defined in the SF. Also we now support locking columns, it looks like this:

Fixed columns and custom column width in the grid

Besides that, we now also indicate the sort order in the grid:

Arrows indicating the sort order in the grid headers

It is not yet possible to change the sort order by pressing a column header, this will follow in another release.

Form improvements

Earlier we implemented that you could change the width of form fields. That is a nice feature on its own, but only become truly powerful when you can put form fields next to each other. This sprint we've made just that. This is what it looks like:

Form fields next to each other

Chart improvements

We continue to work hard on the chart. This sprint we've added positioning the chart labels (inside or outside). That looks like this:

Labels can now also be placed inside the graph

Also we've implemented legend positioning, this is best explained by an image:

The legend position can be changed now

he chart used to crash when a category or series datapoint didn't exists. That is fixed now.

We now also clean up the cube nicely when the document is closed. This is more of a technical change that helps keeps things nice and organized under the hood.

Groundwork for process flows

We've been working hard on the base architecture for process flows. This is a complicated feature involving multiple products. We'll keep you up to date on the progress.

Unit tests

In the past three weeks we've added another 32 unit test cases to the components and inner workings of Universal. This brings us up to 1378 test cases in total.

Lots of minor fixes/tasks

UI/UX

  • The active record in the tree now changes when navigating with the arrow keys
  • Fixed a bug where the CRUD toolbar expanded through the toolbar next to it
  • We now disable the login button if the username or password fields are empty
  • Fixed a bug where you'd see an old value after putting the form in edit mode when previously entering wrong data in the form
  • The browser tab icon and text now reflect the current application

Technical

  • There no longer is an error when moving through the rows in a grid with file uploads
  • Fixed a bug where no data would load when there was no prefilter bar
  • Deletes are no longer done directly on the state; this could cause errors.

Performance

  • Removed unused translation key and language files

Stability

  • We now send readable data to Sentry so we can fix bugs faster
  • We've implemented a feature that stops Universal from starting in our development environment when vulnerabilities are discovered in third party dependencies. This ensures we fix any such vulnerability whenever it shows up.
    • This has proven effective; we already found and fixed a vulnerability in a third party dependency in the few days after we've implemented this functionality
  • Universal now gives a nice error message on the login screen when trying to use an unsupported platform version.

What we'll be working on next sprint

In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we’ll be working on the features that are essential for the production release like

  • Responsive form columns
  • Grid column autosizing
  • Mandatory field validation
  • Being able to locate a record after save if it falls outside the filtered set of records.
  • Finishing the first version of Universal as a Progressive Web App (PWA) with, among other things, pushing a new version of Universal to the service worker, having the correct icons, contructing the manifest