What's up, Doc? We have another Universal Development Update for you. We've made a lot of progress on edit mode again, started working on tasks, and much more. Read on to find out all about it.
We'll be releasing a blog post soon detailing the roadmap for getting Universal out of beta. Be sure to look out for that! You can subscribe to the blog to get a notification.
Try the demo here
Alpha build
Like with every blog, we've released an alpha build so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind:
- 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 2018.3 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.
- 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.
Download your alpha build here
Controls
Suggestion control
Some of you may already have seen this, since we issued an extra release for this feature. We now translate lookup values in edit mode and you can edit those values using a suggestion control.
First of all, this is what it looks like:
Suggestion control
You can start typing and the control will suggest matching values from Indicium. You'll see the top 8 values that start with what you've typed in the field. As you'd expect, any prefilters that have been set in the model will apply to the results you'll get.
You might notice that the suggestion control has a dropdown arrow. The suggestion control in Universal is like a combination of the combobox and suggestion control you know from the Windows and Web GUI's. If you do not know what to type, you can press the dropdown button and see what kind of data you need to enter. This also shows 8 results.
Google maps control
We've made the Google maps control editable. This control is often used in your mobile apps. You can now edit the text and it has a button to open the location in Google Maps.
Google maps control
Edit mode
When you previously checked a checkbox for example, you needed to click away before the value was updated. This meant that defaults and layouts were triggered later. We've changed the way changing the value works, and now you see the updates without needing to click away.
Default is triggered without clicking away
This happens for the following controls:
- Checkbox
- Combo
- Suggestion
- Radio
Copy / delete row
We've added functionality to copy and delete rows. These actions can be executed from the action bar and work as you'd expect.
Copy and delete
Disabled moving away from a record in edit mode
When editing a record, you want to stay with that record until the changes are done. To help avoid mistakes, and potentially the loss of work, we've disabled a couple features when you're editing a record:
- Filtering (searching)
- Changing prefilters
- Going to a different row in the grid or cardlist
Unsaved changes
We've added an unsaved changes indicator. When a document has unsaved changes, a dot will appear over the close button in the open documents and in the topbar. This also works for inactive documents, so you can see at a glance which documents have unsaved changes before you try to close one.
Unsaved changes indicator in open documents and topbar
When you try to close a document with unsaved changes, Universal will not allow this, asking you to either save of discard your changes. If the document you're trying to close is not already active, it will be activated for you.
We are designing a better-looking notification, for now we have something that works to ensure that you don't accidentally throw away unsaved changes.
Unsaved changes notification
Navigating to saved row
When you add a new row, you want to have that row selected when you press save. Now this behavior has been implemented in Universal.
Tasks
We've started working on tasks. For now, they are shown disabled in the action bar, since we haven't built executing them yet. This will follow shortly. We're currently working hard on the design phase.
This is what tasks look like:
Tasks in the action bar
We'll be working on making the action bar responsive so it'll fit neatly on any device without causing a scrollbar since tasks take up quite a bit of space for now.
Overlay sidebar
We already had the option to make the sidebar very small, but on small devices you need all the space you can get. The sidebar now disappears completely when your screen gets smaller than 768px. You can get it to appear with the hamburger icon. To get rid of the sidebar again we've added a close icon, or you can press the darkened area next to the sidebar. Opening a document also closes the sidebar. It looks like this:
The overlay sidebar in action
Unit tests
Like before, we've added 174 more unit test cases for
- Several components
- Form controls
- Data fetching
Lots of minor fixes/tasks
Styling
- Date/time/datetime/radio button control labels are no longer always blue
- All fields on the login screen now use the correct colors
- The HTML control now changes the text color when switching between dark and light mode
- Note that the HTML control can add default (black) colors to the text. We do not override explicitly set colors. If these colors are undesirable, you can use [dbo].[sanitize_html] on the field
- The HTML control now uses the correct font by default
- Readonly fields no longer have a required asterisk
- Made all font sizes in the form the same
- DateTime/Time controls now show formatted value rather than timestamp
- Some SVG's with color got recolored when you switched dark/light mode. This has been fixed.
- Extended property theme colors are now correctly applied
- The label of a form field no longer animates down when field has a value
Edit mode
- Disabled Ctrl + Z (undo) and Ctrl + Y (redo) in the form
- Editing records that have a Date/Time field for a PK now works correctly
- Action bar now listens to edit mode of document, rather than its own
- Disabled fields in the form are now styled correctly
Technical
- Made it easier to see if the document is in edit mode
- Made it easier to see and fetch changes when reviewing code
- Enforced more code style in our development process
- Fixed bug where the current document would change when you close a different document
- Renamed 'Container' to descriptive names
- Added a size observer to help make Universal more responsive
- Refactored mapDispatchToProps from functions to objects where applicable
- Rename resource_id to staged_resource_id
- to comply with Indicium
- Properly handle alphanumeric PK's when editing, copying or deleting records
- Sanitize SVG's to prevent script execution
Performance
- Virtualized rendering for the Cardlist
- Reduced prop drilling in the ScreenBuilder
- Don't rerender form as much