release notes

Universal Development Update – December 2018

Related products: Universal GUI
Universal Development Update – December 2018
Hello everyone. Today we have a new monthly status update for the Universal GUI.



Like always, a demo environment of Universal on the Insights application is accessible here using your Thinkwise credentials as login.



Alpha build

With this update we’ve also released an alpha build so you can test it out for yourself. To aid (external) developers, we’ve created documentation for deploying, running and troubleshooting Universal. Like always, keep the following in mind:




  • Universal must be deployed on the same server as Indicium. Browser security prohibits us from deploying this otherwise. For now.
  • Universal only works with version 2018.3 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.
  • This is an Alpha version, there is no compatibility plan in place for Universal just yet. Indicium updates and IAM hotfixes will eventually break this Alpha release.

Click here to download your alpha build



Detail tiles

The first version of the detail tiles has been released, which is just a simple tile with no special abilities yet like badges or disabling. The only thing it does is open the detail. They can be placed like any screen component and will automatically position all the tiles in the available space. The detail tiles will be further improved in future sprints, for now you can enjoy the simple detail tiles.







Refresh button

Small, but important. Refreshing will reload the data and the look-ups for the current document.

It has a sweet animation too!







Improved configuration options

The login screen has been extended with several configuration options:





The previous release of Universal has support for logging in to your own IAM using https://server/indicium in the login screen. This URL format is old news, we don’t use it anymore.



Now, you can use https://server/indicium/iam/iam to load products from IAM and https://server/indicium/iam/sf to load products from the Software Factory.



Furthermore, you can configure Universal to load a specific application, which can be set by using the application ID or alias. When running against a Software Factory, the application points to a specific runtime configuration. Nothing new here. The interesting thing is that you can also choose to load a specific application when starting against IAM. This opens up possibilities like separate shortcuts for different applications.



You can also choose to leave the application field empty and load all applications, like the GUI’s do now for IAM. With Universal, you can also choose to do this for the Software Factory. Universal will have all runtime configurations assigned to the current user available to switch to as if they were different applications. You can choose which runtime configurations are available per user in the Software Factory.



A developer can create a menu specifically to Mobile, Windows or Web in the Software Factory. Since Universal is not bound to a specific platform, you can choose the platform it should load the menu for in the login options.



Clear cache

When you log out in Universal, the cached model is deleted and will have to be reloaded. But there can be situations where you completely want to reset any data that might have remained offline. This can be the login settings, the status of the light switch or perhaps cached model data or offline data in the future.



Hit that clear cache button to reset everything!



Improved look-up mechanisms

Look-up display value resolvement

For a while, we were thinking about the perplexing feature of lookup references, called: Look display value resolvement. Especially the case where the lookup links to another lookup – and so on – to get the display value. To learn more about lookups, read this article.



In the past month we figured out the plan and wrote a technical design for the Universal GUI. Until the development of this is completed, we handle such columns as untranslated lookup columns. Development is planned for the upcoming period.



Our first though was to leave it completely to Indicium to figure this out, but we quickly found out this wouldn’t work. We switched over to the $expand statement of ODATA in Indicium to request lookup presentation values.

code:
GET http://localhost/odata/Categories(1)?$expand=Products/Supplier


In this case the “Products” subject may of may not be directly referenced by “Categories”. From the Universal GUI point of view we should resolvethe path to “Products” by recursively walking over the lookup references of “Categories” to find the column with the presentation value (in this case “Supplier”).



Sorting on display value

The Universal GUI already supported default sorting as configured on the subject from the SF, however the sorting was applied to the data value rather than the presentation value when the column contained a lookup reference. This caused unexpected ordering of data after the data values been translated with their lookup display value by the GUI.



From now on, the GUI sorts columns on its lookup display value rather than its data value.



In our Insights application, direct result of this is visible in e.g. “Projects” sorted on “Customer”.



Filtering on display value

Granted, filtering on display value hasn’t made it into this release since we wanted to make sure the look-up mechanisms are high quality. The next release will have it!



Design, design, design

Nothing in Universal is built without a good design.



An improved design for all components has been done to make a clearer distinction between them, without having to resort to splitter-lines.



Title bar and breadcrumb has been designed and will be implemented soon.



A global design for editing is currently under review by the team.



Many, many minor fixes

As always, we’ve put an enormous amount of energy in ensuring a top-quality GUI:


  • Corrected path for placeholder
  • Hide database value for lookups
  • Made cardlist items all the same size
  • Added target_tab_col_id to i_ui_tab_lookup
  • Images in grid are now the same size, regardless of row height
  • Fixed alignment of listbar items without icons
  • Fixed the size of group icons in the listbar
  • Fixed grid header font size
  • Filter out untranslated lookups to avoid 500 statuscodes
  • Data is properly loaded when starting against an SF
  • Reinstated default prefilter button colors
  • Properly aligned the HTML control content to the rest of the form
  • Fixed alignment of items in the cardlist overflow menu
  • Made input label styling consistent
  • Validated and closed bugs that were no longer reproducible

What we are working on next month


  • Squashing about a dozen bugs
  • Better quality control: Test coverage, typings and enabling strict mode
  • Filtering on lookup presentation
  • Look-up display value resolvement
  • Breadcrumbs
  • Refactoring the sidebar
  • Scrolling the grid and cardlist to the active row after filtering
  • Replacing our router
  • Layout logic for the current row
  • Align controls according to domain control alignment from SF
  • Multiple designs for how to make Universal responsive

Be the first to reply!