Child pages
  • New in 7.0

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Wiki Markup
    Send to Back/Bring to Front (resp. Control+\] & Control+\[beta:)
  • Wiki Markup
    Send backwards/Bring forward (resp. \] and \[)
  • Group/Ungroup (resp. Control+G & Control+U)
  • Same Height/Same Width (resp. Shift+H & Shift+W)
  • Anchoring Top - Right - Bottom - Left (resp. Shift+-, Shift+*, Shift++ & Shift+/)
  • Big step move (Control+Alt+Arrow keys)
  • Big step resize (Shift+Alt+Arrow keys)

...

  • Code completion inside JSDoc for supported JSDoc tags and on Types (type '@' first, then Control-Space). Supported tags:
    • @AllowToRunInFind
    • @author {userName}
    • @constructor
    • @deprecated
    • @example
    • @param {Type} name mandatory name property
    • Wiki Markup
      @param \{Type} \[beta:name\] optional name property
    • @private
    • @protected
    • @return {Type}
    • @see
    • @since
    • @SuppressWarnings (warning)
    • @throws {Type}
    • @type {Type}
    • @version
  • Support for automatically creating the basic JSDoc tags for an existing function: See context menu of the Script Editor > Source > Generate Element Comment (Alt-Shift-J) 
  • Support for inline JSDoc to provide type information for objects: 
    Code Block
    function demo(){
       /** @type {JSFoundSet<db:/udm/contacts>}*/
       var x = databaseManager.getFoundset('udm', 'contacts');
       x. //Code-completion here will know that x is a FoundSet on table Contacts in the UDM database, thus will include all columns, calculations and aggregates
    }
  • Support for the @deprecated tag: When a variable or function is marked as deprecated any reference to the object will generate a builder marker
  • Support for the @private tag: Hides the object for access from outside the current scope, including child scopes. Accessing the hidden object from outside the scope in which it is defined will generate a builder marker
  • Support for the @protected tag: Hides the object for access from outside the current scope. Accessing the hidden object from outside the scope in which it is defined will generate a builder marker 
  • Support for typed Arrays: 
    • Wiki Markup
      @type \{String\[\]}
    • @type {Array<String>}
    • @type {Array<Byte>}
  • Support for types Objects:
    • @type {Object<String>}
    • Wiki Markup
      @type \{Object<Array<String>>}: equivalent of \{\[beta:'one', 'two', 'three'\], \[beta:'four', 'five', 'six'\], \[beta:'seven', 'eight', 'nine'\]}
  • Support for typing JSFoundSets and JSRecord: 
    • @type {JSFoundset<datasource>}
    • @type {JSRecord<datasource>}
      (a datasource string is build up like this: "db:/{serverName}/{tableName}", for example "db:/udm/contacts")
    • @type {JSFoundset<{column1:String,column2:Number}>}
    • @type {JSRecord<{column1:String,column2:Number}>}
  • Support for typing as a RecordType:
    • @type {JSDataSet<{name:String, age:Number}>}
    • @param { {name:String, age:Number}} person A JavaScript object with a name and age property representing a person
  • Support for optional properties on RecordType. There are two different syntaxes allowed: 
    • Wiki Markup
      Square brackets around the property name: @param \{\{{{sDocID:String, \[beta:sTemplateID\]:String}}}} oArg
    • An equal-sign behind the type: @param {{sDocID:String, sTemplateID:String=}} oArg

...

  • Added a Servoy Active Solution Working set: the workset functionality of Eclipse allows to limit the scope of operations like searching or display of builder markers. The Servoy Active Solution workset is a pre-defined workset that contains the Active Solution and all it's modules. The Servoy Active Solution working set can be used in:
    • Problems view: The contents of the Problems view can be filtered to only show the builder markers for the active solution. Click "View menu" > Configure Contents > Select "Servoy Active Solution Filter"
    • Searching: In the Search dialog, the scope of the Search can also be restricted to the Servoy Active Solution workset:
  • Servoy MarketPlace integration: Servoy MarketPlace can be opened in Servoy Developer, through Help > Servoy MarketPlace
  • Added Servoy Admin page shortcut in the Help menu of Servoy Developer
  • Added option to show the firstForm of the solution that is being activated (see Window > Preferences > Servoy > Form Editor) 
  • First form created in a Solution is automatically set as the Main form in the Solution properties
  • Wiki Markup
    Improved output to console of Javascript objects: \{name: someValue}&nbsp;instead of \[beta:object Object\]
  • Added predefined update url for JSDoc plugin (https://www.servoyforge.net/projects/jsdoc)
  • Updated Servoy Developer to Eclipse Helios (3.6)
    • Option to export/import Preferences via generic export/import mechanism 
  • Reduced memory footprint of solutions in Servoy Developer by about 40% 
  • Added command line Solution Exporter (more info will follow)
  • Added JUnit testclass for running JSUnit tests contained in a solution within the JUnit framework (more info will follow)
  • Made update of Calculations and Aggregates in the Replace Table action optional
  • In the Debug Smart Client, a call to application.showUrl(...) will open the URL in a browser within Servoy Developer
  • In Table Editor, when creating a new column containing the text "email" or "url" in the columnName, automatically set the type to "Text" and the length to resp. 254 or 2048 (based on the specifications for email addresses and urls)
  • Added Copy action in columns rows in Table Editor, to quickly get the column name into the clipboard
  • Added "Maximum prepared statements idle" property in Database Server Editor (was already exposed on the Admin page)
  • Made "Link with Editor" work for Styles, Tables and Database Servers as well
  • Added "FoxPro DBF" New server template
  • Included the FoxPro DBF JDBC driver into the distrubution
  • Added ability to to also externalize hard-coded Strings inside JavaScript code (See Externalize Messages dialog)
  • Moved all Database Server management into Servoy Developer and disabled the functionality on the Servoy Admin page when running Servoy Developer
  • Removed option to turn off Enhanced Security from the UI. enhanced Security is now the default mode. Can only be turned on by manually adding the relevant property to the servoy.properties file (see #Deployment )  
  • Images in the Media library are now opened with the Viewer which is registered for the image type. By default this will be the Image viewer Servoy supplies, but can now be overruled by the user, for example by installing another Image Viewer plugin, for example the QuickImage plugin for Eclipse: [http://psnet.nu/eclipse/|http://psnet.nu/eclipse/]
  • Table Editor: support Control-Click to deselect the selected row and hide the Column Details
  • Database Server Editor: Highlighted the JDBC Driver ClassName if it cannot be resolved, meaning that the specified class cannot be found in the available JDBC Drivers
  • Added more options to synchronize I18N keys between the workspace and database in Servoy Developer
    • Read from DB: Option to sync the keys in the workspace (target) with the keys in the I18N table in the database (source)
    • Write to DB:  Option to sync the keys in the I18N table (target) in the database with the keys in the workspace (source)
    • Both option provide the option to remove keys that are in the target, but not in the source
    • Both options are available through the context menu of the Resources > I18N files node of the Solution Explorer

...

  • getFailedRecords: optional JSFoundset parameter
  • getEditedRecords: optional JSFoundSet parameter
  • New addTrackingInfo(...)
  • New databaseManager.dataSourceExists()
  • Wiki Markup
    New createDataSourceByQuery(String name, String server_name, String sql_query, Object\[\] arguments, int max_returned_rows): Creates a datasource directly from an SQL statement, instead of having to create a JSDataSet based on SQL and then create the DataSource based on the JSDataSet
  • Wiki Markup
    Deprecated&nbsp;getFoundSetDataProviderAsArray() in favor of databaseManager.convertToDataSet(foundset, \[beta:'columnName'\]).getColumnAsArray()

...

  • Deprecated rowBGColorCalculation property on Forms, in favor of CSS support for odd/even/selected styling and onRender event for finegrained stylinging control
  • Deprecated application.getStartupArguments(): the deeplink arguments are now also applied to the onOpen method of the login solution (were already applied to the onOpen method of the main solution), which makes the getStartupArguments() method obsolete
  • Deprecated i18n.setDefaultTimezone() in favor of i18n.setTimezone()
  • New class JSRenderEvent: eventType passed to onRender event handler methods 
  • New class Renderable: used by the JSRenderEvent
  • New class JSWindow; see Windowing API
  • New class JSDNDEvent: eventType passed to Drag 'n' Drop event handlers
  • New class CLIENTDESIGN containing constants for ClientDesign
  • New constants
    • UICONSTANTS.USE_SYSTEM_PRINT_DIALOG
    • ELEMENT_TYPES.TYPE_AHEAD
    • ELEMENT_TYPES.SPLITPANE
    • ELEMENT_TYPES.RTF_AREA
    • ELEMENT_TYPES.RECTANGLE
    • ELEMENT_TYPES.HTML_AREA
    • ELEMENT_TYPES.COMBOBOX
    • DRAGNDROP.MIME_TYPE_SERVOY_RECORD
    • DRAGNDROP.MIME_TYPE_SERVOY
    • JSEvent.ONDRAGEND
    • SQL_ACTION_TYPES.UPDATE_ACTION
    • SQL_ACTION_TYPES.SELECT_ACTION
    • SQL_ACTION_TYPES.NO_ACTION
    • SQL_ACTION_TYPES.INSERT_ACTION
    • SQL_ACTION_TYPES.DELETE_ACTION
  • New security.isUserMemberOfGroup(...)
  • New JSTable.getDataSource(...)
  • New JSRecord.getDataSource(...)
  • New JSDataSet.sort(Function)
  • Wiki Markup
    New JSFoundSet.sort(Function, \[beta:defer\])
  • New setRollOverImageURL(...) on Labels and Buttons
  • New getImageURL() on Labels
  • Deprecated .getTitleText() on fields in favor of a titleText property that also allows setting the titleText at runtime
  • Made Date.setYear deprecated (is deprecated in ECMAScript)
  • Made relation parameter optional for setLeft/RightForm(...) functions for Splitpane instances
  • Added support for multiple fallback filter values in i18n.setI18NMessagefilter, by supplying an Array of Strings for the value parameter
  • Newi18n.getCountries()
  • New i18n.setDefaulttimeZone()
  • Add support to utils.stringReplaceTags() to accept as input not only a JSFoundset or JSRecord but a RuntimeForm as well
  • New application.removeClientInfo()
  • Added UIConstant that determines whether readOnly fields remain readOnly in findMode or not:  APP_UI_PROPERTY.LEAVE_FIELDS_READONLY_IN_FIND_MODE
  • Support for IN operator support in scripted Find/Search. The advantage over the OR ('||') option are:
    • Unlimited size: the Or statement is limited to what the database supports
    • The values don't need to concatenated into a String value, making it easier to work with values containing '||' or working with Dates
  • Code Block
    if (foundset.find()) {
       foundset.name = ['John', 'Paul', 'Ringo', 'George'];
       foundset.search();
    }

...

  • Compression is enabled by default on the Servoy Application Server for serving HTML, CSS and JavaScript files, which improves the performance of the Web Client
  • Lazy loading of the datamodel of database server clones, resulting in faster Servoy Application Server startup and no unneeded overhead for database server clones that aren't going to be used
  • Enhanced Security is now the default mode, can only be disabled by manually setting the relevant property in the servoy.properties file: "servoy.application_server.enhancedSecurity=false"
  • The default value for the MaxHeapSize memory setting (-Xmx) for the Application Server has been changes to 1Gb (both in servoy_server.bat as well as in the wrapper.conf for the Service component)
  • Display Community Edition splash screen content over HTTPS, to prevent mixed content warnings when running the community edition over HTTPS
  • In the Preferences of the Smart Client, the Services Preference tab is hidden if the Smart Client is not connected to the Application Server through Direct connection of TwoWay socket  
  • BugFix/BehaviorChange: pre-import hook now runs before updating the datamodel and importing sample data
  • Improved Web Client source generation: The generated source will always use short, dynamic ID's, to lower the amount of data that needs to be send back and forth between the browser and the server.
    The option on the Servoy Admin page to use Local ID's (servoy.webclient.templates.use_local_ids) has been removed, as it's no longer needed.
    The HTML/CSS templates contain the long UUID and Servoy will automatically map the UUID's in customized templates at runtime to the internal ID's that end up in the Web Client's page markup

...

Admin page

...

page

  • Ability to update the "Maximum connections active" and "Maximum connections idle" without requiring a restart
  • Added ability to specify the user directory for Smart Clients on the Admin page
  • Ability on the Admin page to set on Solution level if the the solution is to use Anchors in the Web Client or not 
  • Ability to "compact" a Solution: this removes all but the latest release of the solution
  • Added Styles node, to allow the deletion of StyleSheets from the Repository
  • Added a grid-like Database Server overview on the Servoy Admin page for better overview of the status of all Database Server connections, with links to get to the details of a specific Database Server. Database Server clones will be grouped under their master.
  • Moved the Log Server setting away from the individual Database Server details to the Database Server overview, as there can only be one Log server defined on the Application Server
  • Added Solution import option to auto update Servoy Sequences after import 
  • Added Database Server name to the Performance Data page of the Admin page
  • Added log entry when clearing the log on the Server Log page of the Admin page
  • Moved the link to import Solutions to the top of the Solutions page on the Admin page
  • Improved type tagging of queries in the Performance Data page on the Admin page. For example, FoundSet queries are now properly tagged as FoundSet queries.
  • Added option to push a Font to clients as well (To complement the already existing Look & Feel and Theme push options)
  • Removed SocketFactory.useTwoWaySocket and SocketFactory.rmiServerFactory on the Network section of the Admin page and replaced them with a SocketFactory.tunnelConnectionMode property that is displayed as a dropdown with the available options.
  • Added option to disable SSL encryption when using the HTTP Tunnel if the HTTP Tunnel runs over HTTPS (to prevent double encryption)
  • Added option to set the min and max Java Version for Smart Clients on the Admin page: Setting the minimum Java version to Java 1.6 will force the Smart Client to only start when Java 6 is available on the Client machine.
    • servoy.smartclient.min_java_version
    • servoy.smartclient.max_java_version
  • Relocated Smart Client related memory settings under the "Smart Client Settings", instead of the "Memory/Performance settings"
  • Removed "servoy.webclient.templates.use_local_ids" preference, see "Improved Web Client source generation" item under General

...