Skyve 20190920 released
This was another big release, and adds some great new functionality to the Skyve open source platform. Charts can now be added to applications using the same low-code metadata used to build the rest of the interfaces. SmartClient got an upgrade from version 11 to 12 and brings a new default theme. A new image widget type was added, and a new type of association was added to improve performance for large object graphs.
Low-code Charts
Skyve has had the ability to create charts for a long time, but they required a SQL query and produced a static image. As of Skyve 20190920, charts can now be defined and declared within a view using metadata, as with any other widget! It uses chartjs as its charting library under the hood, and is available for use within the PrimeFaces and SmartClient interfaces.
SmartClient Upgrade
The version of SmartClient Skyve uses was updated from version 11 to 12. While this should not have any noticeable functional change to end users, it did bring a new default theme, Tahoe, which is less condensed and feels a bit more modern. The theme can now be changed in the DefaultUxUiSelector
class against the desktop UxUi.
New Image Attribute and Image Editor
We’ve added a new specialised form of the content
attribute, image
which can be used to store photos and other image files. When this is used in a view, it presents as a specialised file chooser which provides basic cropping and rotate functions before upload. Images included in a view will display as a thumbnail by default.
Embedded Associations
A new association type of embedded
has been added. An embedded association copies the columns from the associated document into the including document, which can greatly improve performance in large object graphs.
For example, if we have some common Contact
fields in our domain, but do not want to create and retrieve a Contact in a separate table every time, the embedded association allows us to use the Contact, but the values will be retrieved from the owning document’s table.
Framework
Add attribution for OpenStreetMap layer in json
Handle SpringSecurity's
CookieTheftException
by going to loginUse the default customer in
UtilImpl.CUSTOMER
if a resource is requested without a security principalIntroduce SmartClient skins to
DefaultUxUiSelector
and default to TahoeUpdated
DataBuilder
to respect numerical values min and max validator ranges when generating random numeralsAdd embedded associations
Constrain SQLServer identifiers to 128 chars in length
Refactor
Persistence.retrieve()
methods out toPersistence.retrieveAndLock()
methodsCall
Bizlet.preDelete()
before calling foreign key checks so the developer has a chance to resolve exported references on preDelete in the document that it is affectingEnsure that the constant domain value cache is keyed by module, document and attribute names
Introduce Image attribute type
Use imageUpload.xhtml for ContentImage widget
Add EXIF, rotation and cropping to image uploads
Added some additional description to the document number field to make things clear
Add parameters attribute to capture parameter bindings in
MetaDataQuery
driven widgets - lookup, lookupDescription, listGrid, listRepeater & treeGridAdd pertinent document to
UniqueConstraintViolationException
and constraint name in the exception messageImplemented ability to provide
router.xml
definitions in a module, which allows modules to be more self-containedMake the default widget for
content
to be thumbnail in "prototype mode"Add
ChartBuilder
,ProjectedChartBuilder
andTupleChartBuilder
Implement Category chart model metadata
Implement "others" function in charts where the rest of the data is clumped together into an "others" category
Added RainbowColourSeries as the new default colour series to use for charts
Add JFreeChart generation based on ChartData
Admin
Update admin Report Design to save files to the configured modulePath specified in the project JSON and fixed saving of sub-reports
Update UserDashboard and SystemDashboard views with new charts
SmartClient
Update to SmartClient 12
Fix bugs with geometry editor in filter mode
Remove old filter button images
Prefer font icons over images
Fix ListGrid.source property
Expose
DataGrid
properties for override in inject tags similar toListGrid
Implement charts in SC
PrimeFaces
Implement charts in PF
NOTES FOR UPGRADING
To upgrade your Skyve project to this version, change the Skyve version in your pom.xml
to 20190920 and change your skyve-maven-plugin
version to 1.20.
You will need to manually update your web.xml and spring/security.xml to support the new ChartServlet
and better secure rest endpoints.
You will need to update your desktop UxUi in the DefaultUxUiSelector.java to contain the new theme parameter, as per below:
public static final UxUi DESKTOP = new UxUi("desktop", "Tahoe", "casablanca", null);
You will also need to upgrade your selenium version in your pom.xml
to 3.141.59 to fix a conflict with hibernate 5, as per below:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>3.141.59</version>
<scope>test</scope>
</dependency>
See the complete upgrade instructions on GitHub.