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.
The new PrimeFaces system dashboard
The new SmartClient system dashboard
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.
The new SmartClient 12 look and feel
The previous SmartClient look and feel
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
CookieTheftExceptionby going to loginUse the default customer in
UtilImpl.CUSTOMERif a resource is requested without a security principalIntroduce SmartClient skins to
DefaultUxUiSelectorand default to TahoeUpdated
DataBuilderto 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
MetaDataQuerydriven widgets - lookup, lookupDescription, listGrid, listRepeater & treeGridAdd pertinent document to
UniqueConstraintViolationExceptionand constraint name in the exception messageImplemented ability to provide
router.xmldefinitions in a module, which allows modules to be more self-containedMake the default widget for
contentto be thumbnail in "prototype mode"Add
ChartBuilder,ProjectedChartBuilderandTupleChartBuilderImplement 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
DataGridproperties for override in inject tags similar toListGridImplement 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.