What's New in Version March 2015

Friday, February 27, 2015 by Rainer Stropek

The new version March 2015 (1.34) is downwards compatible to version March 2013 (1.10) and later. You can use all of these versions in a single account simultaneously.

Improvements in Full and Silverlight Client

For the full client and the Silverlight client we have made the following improvements and bug fixes.

Members Names and OData Web API

There is a new validation rule that ensures that entities must not contain properties or relations with the same name as the entity. If you have such properties or relations, you do not have to change your model immediately. Everything will continue to work. However, it will not be possible to create new properties or relation with the name of the enclosing entity anymore. The following screenshot shows the error message that appears if you try to add a property with an invalid name.

The reason for this new name limitation is time cockpit's OData web service layer. Some OData clients (e.g. a time cockpit customer reported problems while using LightSwitch to access time cockpit) perform a full validation on the OData metadata model and cannot handle models with member names that are equal to the entity name. Because of this, we discourage such a constellations.

Even if you do not update to the latest time cockpit version immediately, we recommend to no longer create properties or relations with a name equal to the name of the enclosing entity.

Relation Cells and Script Lists

Relation Cells are used in time cockpit forms to define combo boxes in which users can select an item (e.g. project assigned to a new timesheet record). In their simplest form, they just display a list of all related data rows (e.g. projects). However, time cockpit supports the creation of custom lists that are used in relation cells. Such lists are called Relation Lists. Typical use cases are sorting and filtering of the available rows (e.g. sort project list by the projects' code, display only those projects to which the user is assigned to). The following animated image illustrates how form, relation list, and combo box relate to each other:

In former releases, time cockpit did not support Script Source Lists (see also this blog article for a description of this list type) as relation lists. We removed this limitation in the current time cockpit release. In Relations Cells it is now possible to use lists with a script as its data source for the combo box values. Note that it is important that the getResultModelEntity method returns a model entity of the same type as the relation target.

Removing this limitation enables a large range of scenarios that time cockpit could not offer in the past. Customers sometimes have complex business rules for e.g. projects that should be available for timesheet records. In such cases, scripts are the perfect tool for the job.

Here is an example: If you have an edit form for projects with a relation to the corresponding customer, the RelationCell definition in the project form could look like this: <RelationCell Content="=Current.APP_Customer" List="USR_MyCustomerList" />. USR_MyCustomerList is a script source list where getResultModelEntity simply returns context.Model.Entities.APP_Customer. The getItems method of the script source list has to return EntityObjects that fit to the specified model entity.

Removed Limitation in Formulas for Calculated Properties

We have fixed an issue that prevented calculated properties to be updated correctly in forms. By now you had to specify names of properties and relations in formulas for calculated properties with their prefix (SYS for system, APP for time cockpit's predefined data model, and USR for tenant-specific customizations). Here is an example: If a calculated property Fullname had a formula like Current.Firstname + ' ' + Current.Lastname and you used the property in a form, Fullname  was not updated when Firstname or Lastname changed. You had to use the forumla Current.APP_Firstname + ' ' + Current.APP_Lastname. In the new versions both versions (with and without prefix) will work.

Silverlight Client

In the Silverlight client we have fixed a memory leak. The problem occurred only in accounts which use the TreeViewRelationCell in forms. If you have not customized the data model you were not affected by the memory leak because we do not use this control in the standard data model that we ship.

If you are using the TreeViewRelationCell in the Silverlight Client, you might have encountered problems when opening the form containing the TreeViewRelationCell repeatedly. Each time the peformance got a little worse, typing became slower and it took longer to open the next form. In the new version this problem is fixed and the performance should not slow down.

HTML5 Client

For the HTML5 client we have tried to make entering data more user friendly. At the end, using the web client should be at least as comfortable as using the full client. We know that there are still lots of points to get better but this month we can present some major usability improvements.

Default Values in Forms

The forms for new entities now support the same default values as the full client. This covers the default values from the data model, from the form definition and also data entered in the filter of the list. If you filter for a certain customer in the projects list and then add a new project, the selected customer will be pre-filled in the new form.

Auto Generated Lists and Forms

It is common practice in time cockpit, that users do not create custom lists and forms for very small entities with only a few input fields. The production clients recognize this and generate form and list on the fly. The HTML5 client did not do that in the past. The new release behaves exactly as the production clients. If there is no list or form defined for an entity, they are generated automatically in the background.

Hotkeys

We have added hotkeys to most functions available in the UI. You can click on the keyboard icon in the top right corner to get a summary of all available hotkeys. There are different hotkeys for different pages. That means that you will get another list of hotkeys when you are viewing a list compared to working in a form. Additionally, most icons will show you a tooltip with the hotkey when hovering over it for at least 2 seconds.

As far as possible we have tried to use the same hotkeys as available in the full client. Unfortunately some of them are already used by the browser so we had to replace them.

Focus

When opening a list with a filter form or an edit form, the focus is automatically set to the first input control.

Menu

If the available width of the browser window is too small for the menu, it collapses to a burger menu instead of increasing the height of the menu.

Timezone UTC+0

We have fixed an error that only occurred in timezones with a deviation of zero to the coordinated universal time. That means customers in Ireland, Portugal and UK were affected by this bug. It led to all kinds of strange behavior when displaying or entering dates and times.

Infinite Redirects When Session Ended

In some cases the redirect to the login page did not work properly when a session ended and the user had to re-authenticate. Now, a warning should be shown that authentication is required and then you should be redirected to the login page.

comments powered by Disqus

Rainer Stropek

Rainer Stropek

Co-founder, architect, developer

Bio

I am co-founder and CEO of the company software architects and have been serving this role since 2008. At software architects my team and I are developing the award-winning SaaS solution time cockpit. Previously, I founded and led IT consulting firms that worked in the area of developing software solutions based on the Microsoft technology stack.

In my work I focus on .NET development and software architecture. I have written some books and articles on C#, database development, Windows Azure, Windows 8 development, WPF, and Silverlight. Regularly I speak at conferences, do workshops and conduct trainings in Europe and the US. Since 2010 I have been MVP for Windows Azure.

I graduated the Higher Technical School Leonding (AT) for MIS with honors and hold a BSc (Hons) Computer Studies of the University of Derby (UK).

Contact

Twitter: @rstropek
Facebook
Google+
Xing
LinkedIn

Authors