Sunday, October 28, 2012

New features for GyroGears

I've spent nearly 80 hours talking with GyroGears users (both programmers and non-programmers). A year ago the support for smarty-like templates was dropped in favor of XSLT. Then I used Sablotron but switched later to libxslt2 (easier to install). Now, the developers asked me about the possibility of calling Concept functions from XSLT, and I've said no. Not because is not possible, but because I consider it bad practice. However I've been asked about this so many times that I've decided to implement it. I've made a very simple interface - just one function that registers all members of a class:

XSLTRegister(object[, alias, namespace]).

So, you can just call XSLTRegister(this) and you will be able to call from the XSLT every function.

Also, Gyro now generates interfaces functions for XSLT. You could call something like:

<xsl:variable name="invoices" select="csp:WU_Client.GetInvoices(__DBID)"/>

Or even:
<xsl:variable name="clients" select="csp:WU_Client.Search('some client name')"/>

And then:

<xsl:for-each select="invoices/array/element">
   Amount: <xsl:value-of select="invoices/array/element/Amount"/>

Also, 3 features were implemented:

Reorderable flag for entities (you can reorder objects by drag and drop - lots of fun playing with this one) and reorderable flag for relations (just for non-exclusive ones). This allows the user to reorder objects in related views without affecting the master view order.

The third one - a flag for linking an object list to every HTTP script (for example an entity called "Menu" with this flag set to true will cause the menu items to be linked to every script.

As usual lots of bugs fixed. One was linked with the usage of filters on relation fields.

No comments: