Time Warp Roadmap — Jan 2024

Goodbye Luyten. Hello Ross.

Dave Norris
8 min readNov 9, 2023

Time Warp is an open source interactive timeline for the Salesforce platform available on the Salesforce AppExchange here.

The next release of Time Warp is planned for January 2024. We’re calling it Ross — a release naming system based on stars. We pick a new star every release based on their ever increasing distances from Earth.

Here are the planned features and bug fixes getting included.

Time Warp — an interactive timeline for the Salesforce platform

New Features

API Versions

API numbers will be incremented on all metadata. The API version moves from 58.0 to 59.0.

Ability to Plot Today’s Date and Time

Some requests in the GitHub repo have suggested that having the ability to draw a line representing the current date would be useful as a marker.

This seems like a good idea to us so we added a new property that can be set by an administrator. When you navigate to the Time Warp app builder properties you’ll see a new option called Show Today.

New property in App Builder to set a line for the current date.

This has been set to a dropdown that will default to No so that it will not appear for existing implementations. An administrator can change the value from No to a specific colour. This will add a line for the current date and time to the canvas and the minimap allowing users to quickly navigate in relation to that date.

New line for the current date and time in the canvas and minimap

We have decided not to let people pick a colour themselves as it impacts accessibility but we have used the lightning design system to pick a variety of colours to suit most needs that meet WCAG standards for contrast. These are Blue, Black, Green, Indigo, Pink, Purple, Teal and Red.

Changing colour of the line for today’s date from blue to red

D3.js version updated

D3 (or D3.js) is a JavaScript library for visualising data using web standards. Time Warp uses D3 for the canvas and minimap features. In the Epsilon release we’ll be updating the version we use to v7.8.5 from v7.4.4. This includes and new capabilities and bug fixes.

Support for dynamic Icons and Colours

The community asked for the ability to set Icon and Icon Background Colour based on a formula field. This gives you the ability to set different Icons and Colours based on attributes that you choose on each child record.

We have added 2 new fields to the metadata for Time Warp. One called Icon Field and the other called Icon Background Colour Field. Those people wanting to dynamically set their icons and colours based on record attributes (e.g. status, record type etc) first need to create 2 formula fields on the child object. One to hold the icon to use and one to hold the hex colour scheme to use. Then they can specify these fields in the new metadata placeholders. If a value exists in the new fields then they will override anything in the existing Icon and Icon Background Colour fields.

Let’s take an example on how it would work. Let’s add 2 formula fields to the Case object that represent the icon and colour we want based on different scenarios.

The first formula field we’ll call TimeWarp_Icon__c. This formula can use the power of advanced functions to return different icon strings depending on complex field values. Here we’ll use a different icon for structural and mechanical cases with a placeholder to return the default case image for all other types.

IF ( TEXT(Type) = ‘Structural’, ‘/img/icon/t4v35/standard/case_transcript.svg’,
IF ( TEXT(Type) = ‘Mechanical’, ‘/img/icon/t4v35/standard/case_milestone.svg’,
‘/img/icon/t4v35/standard/case.svg’))

The second we’ll call TimeWarp_Icon_Colour__c. This formula can have different logic but for this example we’ll use differnt colours for the same types.

IF ( TEXT(Type) = ‘Structural’, ‘#5867e8’,
IF ( TEXT(Type) = ‘Mechanical’, ‘#ff5d2c’,
‘#ff5d2c’)

Now I can update the Time Warp metadata for any record that plots cases under a parent. In this example we’ll update the Contact/Case record to add a reference to our 2 new fields.

A you can see there are 2 new fields to use. If your formula returns blank then Time Warp will revert to using the values in Icon and Icon Background Colour so those fields are still required.

New fields for a Time Warp child record

Now when I navigate to Time Warp I can see different Cases with different icons and background colours.

2 Cases with different Icons and Colours

As you can tell this structure is flexible and I can’t wait to see what people come up with to use it in their use cases.

Bug Fixes

Time Warp not Resizing when Splitter is used

Currently Time Warp is not resizing properly when the dimensions change within Salesforce for all use cases. The most noticeable is when using the splitter functionality from a list view. Since opening or closing it causes a gap to appear where the width hasn’t been recalculated.

Opening or closing a splitter doesn’t dynamically adjust Time Warp leaving a gap

To fix this we are adopting Resize observer. This is a JavaScript library that allows us to resize the dimensions based re-renders to the div that contains Time Warp. Previously we used the window object.

Update: Since Locker Service has no support for resizeobserver we are delaying the introduction of this change. We will reintroduce the fix when all orgs have been moved to Lightning Web Security in the next 3 releases.

Console App causes Time Warp to error

When using a Console App in Salesforce you can set an object to open as a subtab of another object. For example Contacts can be set to open as a subtab of their parent Account. If you have places Time Warp on both the Account and the Contact then it was observed that the parent component does not load properly.

In this release we’re adding some error handling that will throw an error and force the user to click the refresh button to reload Time Warp. This is a temporary work around.

New error for a specific Console use case.

WCAG colour schemes updated

Salesforce has changed the colour schemes for major icons used in Winter ’24. This improves the contrast that align to the web accessibility guidelines.

To align with this change new installs of Time Warp will have the new colour scheme applied. Existing installations will not be overwritten so an administrator will have to navigate to the Timeline metadata record and update the colour values accordingly.

Title padding for right to left languages

When using a right to left language the title of Time Warp is not padded correctly causing it to position itself too close to the right hand border. We will include a css change to fix this in Ross.

Date type fields are timezone adjusted when they shouldn’t be

When a date type field is used to plot against Time Warp the date used is timezone adjusted based on midnight. This means that for some users the positioning on the timeline appears to be incorrect.

So a Task created on 29–11–2023 appears on Time Warp at 28–11–2023 21:00 if the users timezone is set to GMT-3.

This happens because Date type fields when retrieved from the database still have a time component to them. Since global deployments have users in different timezones we then convert the date into the local users timezone and date format. This results in the behaviour above. In this release we’ve added a check on the type of field being used to plot. Date/Time type fields continue to be timezone adjusted. For Date type fields we don’t adjust for timezone.

Upgrading from a Previous Version

Ross will be a minor release. We plan for the upgrade path to be seamless. Time Warp upgrades are pull not push. You decide when, and if, to upgrade. When a new version is available you install the upgrade in the same way you would install any other package from the AppExchange. Just come back to the package listing in AppExchange and click ‘Get it Now’. The first page of the install wizard lists the current version you have installed, the version you’re about to install, and a list of additional components included in the new version.

We will be recommending that all users of Time Warp upgrade to the latest version in January ‘24.

Contributing

The best thing about the trailblazer community is contributions. Timeline needs lots of help and will need people to contribute who have a diversity of skills. Here’s a link to the open source repo. All contributions welcome.

--

--

Dave Norris

Developer Advocate @ Salesforce || Interested in solving unique challenges using different cloud service providers || All opinions are mine.