Added @this annotation in JSDoc to type the 'this' keyword
Added @override to annotate methods as overriding a method on a super form
Added functions marked as constructor using the @constructor JSDoc tag as types in CodeCompletion globally. Note that it is not needed to access the type through it's fully qualified path (so scopes.xxxxx.myType). Instead just type the name of the function and when Code Completing, the scopes.xxx part of the path will be automatically inserted
Added @enum support to mark an object containing a set of values as an enumeration, which can then be used in relations again
Added the * type to be able to make a distinction between the lowest common denominator in JavaScript, which is Object and non-JavaScript types (for example Servoy's built-in types)
Improved the build mechanism to see forward references in .js files and thus not generate builder markers
Improved support for using types in JSDoc cross scopes. When a scope contains a function MyType which is marked as constructor, it can now be references inside the scope within JSDoc as just MyType, without prefixing it with the fully qualified path and outside the scope with the fully path, without the build system raising warnings that MyType != scopes.xxxx.MyType
Updated the Unit Test view to be able to:
rerun a failed test, or a subtree from a failed solution from the results view
double click (or right click-> go to file) on a test/form/scope to open the container script.
Added mnemonic support on Tabs of a TabPanel and Panes of an AccordionPane
Added RightClick and DoubleClick event handling support to ClientDesign mode
Added support to use values from a variable containing an object with values in relations. Example:
With the code below, in a relation the value of one of the status codes can be used, by using STATUS_CODE.ACTIVE
Added databaseManager.getDataModelClonesFrom function to make the functionality available in all clients (similar function was already available in the Maintanance plugin, but the maintenance plugin is to be used only inside Batch Processors)
Added JSDataSet.getColumnType
Added JSFoundSet.alldataproviders
Added databaseManager.getDataSource for convenience
Added orientation constants to JSTabPanel
Added JSRelation.FULL_JOIN constant to be used with QBSelect
Added JSRelation.RIGHT_OUTER_JOIN to be used with QBSelect
Added JSRelationItem.LITERAL_PREFIX to be used with QBSelect
Added JSRecord.hasChangedData
Added JSRecord.isNew
Added JSTable.isMetaDataTable
Added JSTableObject.isMetadataTable
Added plugins.headlessclient.getOrCreateClient to get an existing client for a specified UUID or create and return a new client with the specified ID if it not already exists
Added executeAsyncRequest to all request types of the HTTP plugin
Added sendBulkMail to send out emails with the bulk mail Precendence header set to Bulk, to prevent getting replies from auto-reponders
Added QBWhereCondition to allow modifying the where clause of QBSelect objects
Added concat method on QBAggregate, QBColumn, QBFunction and QBFunctions
Added clear method on QBGroupBy, QBResult and QBSorts
Added QBSelect.clearHaving
Added support for specifying the size of formPopups when showing the popup through plugins.window.showFormPopup
Added JSForm.removeMethod
Added JSForm.removeVariable
Added Utils.stringToNumber variant with decimal support
Added databaseManager.addTableFitlerParam variants that take a datasource string as parameter
Added parameter to databaseManager.createDataSourceByQuery variants that work with a sql string to specify the column types