We are pleased to announce the availability of Servoy 8.1 (releasenumber 3027)
This version is available through the download at the Servoy website
and through the update site url: http://download.servoy.com/developer/8xx_updates/
This release is called 8.1 because we made quite a few changes but for the most part only in the developer
the clients changes are minimal compared to what a 8.0.4 release would have. So 8.1 will be the direct successor of 8.0.3
and the 8.0.x will not have another release.
Fixes and improvements in this release:
FormComponents: In the editor you can make Form Components forms, these forms don't have there own logic, but the template and the designer properties are used by components that reference them, we have 2 components called FormComponent that act as a tabless panel for absolute layout and the bootstrap. In the wiki it is explained more more
Besides having no logic and no state (so the form under forms.xxxx doesn't exists) these forms can be reused so you can have many of them on the same main form showing at the same time.
Grouping/minifying: By default now (you can turn this off through a setting on the admin page) a WAR will be deployed by using the minified versions of component/services js files if found (.min.js besides the normal one). All if not found then the export dialog has a minified option that you can check where some basic minification is done on those js files. After that all the js and css files are grouped together under a few urls also all the templates of the components that are exported are grouped in 1 js file to put them right away in the angular $templateCache.
Because of this the download size is a lot smaller and the request to the server to get all the resources is reduces a lot.
Those grouping urls that are generated are made unquie for that specific WAR deploy and because of that we can set the caching control headers of http to "public,max age=1Y". So the additional bonus is that after the first download of those resources, those resources are cached and don't need to be redownloaded again until a new WAR is deployed.
Fallback valuelist: the legacy components (combobox and typeahead) do now have support for this so that when you have real/display values in the valuelist and the selected real value is not in the current normal valuelist, the display value is now looked up on the fallback valuelist.
This fixes also the typeahead itself that only displays 100 items by default of the complete valuelist and if the real/display combination is not in the first set, the same lookup is done.
Servoy Extra Componets moved to the WebPackageManager, so that can now also be updated indepedently of a servoy releaes (just like the bootstrap components). Also this package now has a readonly table component that can also be used in absolute mode that is much faster then using a tableview or portal.
Manifest.json/Head Index contributions: Especially for NGClient on the mobile, a solution can now include a manifest.json (and a special file called head-index-contributions.html) in the media folder. The context menu of the media node let you create some sample files. See issue SVY-10067 or Install to Homescreen and iOS for more info. The head index contributions can be used also for other meta tags or links that you want to include.
See also the wiki
For NGClient branding of the favicon we use now the preferred way: https://www.w3.org/2005/10/howto-favicon so we added 2 links to our ngclient index pages "favicon75x75" (32x32 image) "favicon200x200.png" (192x192 image). These are in the application_server\server\webapps\ROOT dir, you can overwrite them with the one you want.
Fixes and improvements in the 8.1rc1 release:
Improved HTML5 editor, this does mean that data will not be shown anymore (for now) but it should be way better to work with.
Also we improved the selection of the form editor, now the preferences have multiply choices "classic","modern" and "automatic"
With classic the 7.4 form editor will be opened by default, with modern the new HTML5 editor.
If you select "automatic" then it depends on the solution type or if the form is a responsive form what editor we will open, so we try to guess what is best.
All this can be overwritten by using the "switch" editor symbol, if you use that then you force for that form the editor to be the HTML5 or the classic editor and it will be opened like that the next time
InMemory datasources: In the developer you can design/specify the in memory datasources upfront that you are creating at run time.
This way you can already build forms, relations and valuelist on top of them without having to do that through the solution model at run time.
This is for the most part a developer only thing, at run time the in mem datasources that you create are done at the same way, we only use and warn the definition now at run time so that it is easier to create (you don't need to specify the types in dataset.createDataSource() because we already know them)
Component/Services and layouts of NGClient are now install-able through the WebPackageManager (context menu on a solution or webpackages node in the solex)
our own bootstrapcomponents and 12grid packages are now moved to that, they will now have there own release cycle, if you use currently the 12grid and/or bootstrapcomponents in your solution, you need to add the packages to your solution. This is also the other change in this area, we deprecated the services/components under the resources, now they are inside a solution so it is easier "ship-able" or "shareable".
If the community do want to add components/services or layouts to the index of the package manager, please contact us with the package your want to share and we will evaluate it and add it to the index.
See wiki for more info
OnDataChange on form level (besides the onfocus form stuff), so you can have 1 datachange validator function that gets called for any datachange on any of the form fields
Readonly tableviews (for performance in ngclient) now are editable but just the cell you click on. So by default a cell is just a <div> with the data but if you click/focus the cell it will become the textfield that you defined in the designer.
issues fixed after rc1:
Client
[enh] SVY-6744 Add solutionModel.getObjectByUUID(UUID)
[fix] SVY-10008 dataset with column named 'row' cannot be turned into a datasource
[fix] SVY-10000 When creating a calculation on an in-memory datasource I get a nullPointer execption
SmartClient
[fix] SVY-9769 Date time with input mask is rendering incorrect after faulty entry
WebClient
[fix] SVY-10193 Internal error page is shown when selecting a record in a web tableview
NGClient
[enh] SVY-10192 NGClient: addStyleClass method has no effect on calendar fields
[enh] SVY-10067 create a filter/servlet that creates the manifest.json
[enh] SVY-10066 group all the component templates in 1 file at war export
[enh] SVY-10063 WarExport should generated grouping and minmized files already on export
[enh] SVY-10064 Introduce a Caching headers filter that sets caching control headers on certain files
[enh] SVY-10187 As a developer, it would be useful to have an api or a property on JSForm that specify if a form is responsive or not.
[enh] SVY-10160 add as many minified versions as possible for all our libs
[fix] SVY-10188 It is not working to show() a Popup (from plugins.window.Popup) linked to a custom component (bootstrapcomponents-button).
[fix] SVY-10184 In a responsive form, the Image Media component is not displaying the image set by the dataprovider.
[fix] SVY-10183 The bootstrap table component does not respect the servoy global data/time format setting
[fix] SVY-10094 HTML editor does not work in NG client
[fix] SVY-10080 NG Client typeahead: display value not resolved when not loaded in valuelist
[fix] SVY-10077 After browser refresh the CSS appears to be gone for a moment
[fix] SVY-10075 Valuelists can not be linked to webcomponents.
[fix] SVY-10073 Cannot open twice the same window.
[fix] SVY-10062 List view can't get all records
[fix] SVY-10025 Relation doesn't work properly?
[fix] SVY-10267 timestamp of an event object can be in micro seconds instead of ms.. (fix very old FF bug)
[fix] SVY-10231 controller.focusFirstField() does not work with NG-Client
Developer
[enh] SVY-8314 When switching solutions Servoy closed all open editors, not just the ones that belong to Servoy
[fix] SVY-10059 Running a method through 'right-click on outline' > 'Debug Method' executes old code first time after edit
[fix] SVY-10239 Service names not handled properly
known issues:
* recreate of the same in memory table, is not working (so calling dataset.createDataSource(name) with the same name twice to recreate it)
* FormComponents don't support changing components that have custom types in them (like a table with columns or tabpanel with tabs). So those can only be used as designed in the form components form.
* Modules of modules of the soluton don't show up in the events tab of the table editor
* A package (like servoy-extra and then the DBTreeView) that has a server side js can't be used as a zipped package (downloaded from WebPackageManager), Work around is to extract it and use it as a package project.
Previous release notes of 8.1rc1: this page
Previous release notes of 8: this page
Previous release notes of 7: this page