FOX:Changelog
FOXr4.04.13
August 2011
- Point and click spatial work landed.
- Fix a regression introduced by the database connection work in FOXr4.04.10 that broke the use of any non-default Apps, i.e. "sys" for the sys/flush module.
- Fix a regression in the pagination work that broke module callbacks.
FOXr4.04.12
July 2011
- Chris' pagination work
- Suppress comments in generated HTML unless:
- they are explicitly put there by the engine
- the fm:set-buffer or fm:set-page is marked up with the attribute "preserve-comments".
FOXr4.04.11
July 2011
- Fix for the Document Generation job that polls the database, minor fix required for regression introduced by the database connection changes in FOXr4.04.10.
FOXr4.04.10
July 2011
- Hold a database connection open for the duration of a FOX request, for purposes of logging, data retrieval, mapset processing, etc. This helps to maintain a healthier connection pool, and minimise the time we spend recycling connections after use.
- Ability to store generated HTML and tie it to a user session for audit / support purposes. Not enabled by default. Needs additional markup in the resource master.
- LDAP authentication. Not enabled by default, needs an LDAP server and additional markup in the resource master:
<authentication> <ldap-connection-list> <ldap-connection> <name>fivium-docmgr</name> <host>ldapsrv.fivium.co.uk</host> <port>389</port> <base-dn>ou=Users,dc=fivium,dc=co,dc=uk</base-dn> <user-dn> <attribute>uid</attribute> </user-dn> <auth-info> <source-dn> <attribute>uid</attribute> <base-dn>ou=Users,dc=fivium,dc=co,dc=uk</base-dn> </source-dn> <login-id>uid</login-id> <forename>displayName</forename> <surname>homeDirectory</surname> <email>homeDirectory</email> </auth-info> </ldap-connection> </ldap-connection-list> </authentication>
This config sets up an LDAP data source, to use it, a corresponding attribute must be set on the fm:user-login command; for example:
<fm:user-login wua-login-id="/*/LOGIN/USERNAME" password="/*/LOGIN/PASSWORD" status-code="/*/STATUS_CODE" status-message="/*/LOGIN/STATUS_MESSAGE" authentication-method="LDAP" authentication-domain="string(concat('fivium-','docmgr'))"/>
- Support for SOAP headers (passed through to a new context :{service-header} is available during a web-service entry-theme's fm:do block). All headers will be propagated through, but any requests specifying the mustUnderstand attribute will fail unless the headers are marked up in the entry theme explicitly in fm:header-param-list/fm:header-param.
- Fix for image widget rotation.
- Pete's MMO HTMLGen Changes
- Accessibility Changes
FOXr4.04.09
July 2011
- Small tweak to HTML generation to prevent screens blowing up if you submit them back to FOX before maps have finished loading - bug introduced in FOXr4.04.08 as part of effort to workaround ELGAR duplicate HTTP requests.
FOXr4.04.08
July 2011
- Fix and verify zooming / panning cross-browser (IE6/7, Chrome, Firefox).
- Hack unnecessary (and incorrect) browser compatibility check out of HTMLArea (WYSIWYG widget) - fix for Chrome. Other browsers unaffected.
- Fix the escaping of newline characters in fm:alerts
- Fix the quoting of attributes values in Track (developer / admin only - no real impact, just tidying up).
FOXr4.04.07
July 2011
- Fix remote action call code (branching around "Lazy DOM" handler code).
- Zoom / pan tweaks to make the user interface more robust.
FOXr4.04.06
July 2011
- Introduce zooming and panning within a spatial canvas (cartographic widget). Not backwards compatible; requires markup to be changed (trivially) in spatial definitions.
- Fix an edge-case where an erroneous (temporary, non-data) node is introduced into the resultset of a merge-DOM XPath, simply tracks these nodes on insertion and prunes them out of the resultset. No regression impact.
- Partial fix for remote action calls for WorldPay callback processing (regressed by FOXopen initial build, mainly related to :{prefs} DOM changes).
FOXr4.04.05
July 2011
Fixes
- Fixed issue with session DOM not being initialised for file folder downloads or !STREAM
- Fix to make actions with images appear properly when used in fm:action-out or fm:menu-out. This bug was introduced with button widget consolidation in FOXr4.04.00.
- WARNING: this fix introduces a regression bug whereby button+ widgets with images, always runnable but a conditional ro attribute always appear when used in a list set out
- Fix editable mapset bug concerning non-unique mapset keys in a selector which was introduced in FOXr4.04.03
- Fix issue introduced by FOXr4.04.00 merge DOM changes (only merging implicated DOMs). If an XPath was not using the evaluate node an application error was thrown because the evaluate node could not be found in the resultant merged DOM. If the evaluate node is not used it is defaulted to the root of the merge DOM. There should be no impact on existing XPaths.
FOXr4.04.04
July 2011
Fixes
- Removed hardcoded image processing URL so correctly using processed-image-dispatch-url from resource master
- Module parsing speed improved
- Fix problems caused by conflicting flush and upload
- App "reflushing" a dev-only feature
- Allow max connection pending recycle limit to be customisable via the resource master
- Sync to prevent concurrent construction of Apps with the same mnemonic
FOXr4.04.03
July 2011
New Features
- Editable Mapsets
- Mapset records can be marked as historical using boolean attribute historical on <rec>
- Historical records are only included in the mapset when implicated. e.g a selector using the mapset that is set to NULL will not include historical records whereas a selector that has a historical record currently selected will still contain the relevant display key; this will disappear once a different record has been selected
- Calculation constants
- Elements in the DOM that are not output to the screen can now be included in a calculate expression as a constant which is evaluated at generate time
Fixes
- Character escaping for fm:alert string sanitisation fixed so '\n' no longer comes out as '\\n'
- Only reset scroll position in a context-set if attach point is changing
- Generate command
- The email and subject attributes on a mailto widget now evaluates XPaths (stringifiable)
- Support images on mailto button widget and stringifiable email and subject
- Confirm message is subjected to character escaping / string sanitisation like alerts
FOXr4.04.02
July 2011
New Features
- Input Masks - implemented inputMask schema attribute with commas input mask
- Calculations - client side calculations added. Schema element is marked up with calculate attribute containing calculation expression. Extra attributes calculate-value-invalid and calculate-result-decimal-places used to format result.
FOXr4.04.01
July 2011
New Features
- Field Groups - mutually exclusive fields using the fieldGroup schema attribute
FOXr4.04.00
July 2011
New Features
- New Bang Handler!
- !ABOUT - Shows brainchild comment, credits and lists libraries and licences
- !ALIVE - Returns 1 or 0, set with !ENGINEON/!ENGINEOFF currently
- !EM[/:app/:component] - Reload engine mirror if !EM used by itself or check if a component is mirrored if an app and component are specified
- !HELP - Updated lists with information
- !LOGIN - Now uses Captcha. MD5'd instead of .hashCode()
- !STATUS - show internal settings and statuses of servers/apps
- !TRACE - Set Oracle tracing on/off for an xfsession
- Date Formatter
- The schema attribute promptOutputMask and the fm:expr-out attribute formatMask can be used to format date values with Oracle date format masks.
- Conversion is attempted in the FOX engine initially but if this is not available then the conversion is passed to the database. Anything that requires a database conversion is Tracked for analysis so it can be implemented in the engine in the future
- Request Logging
- HTTP requests are logged to foxmgr.fox_requests. This is required for !TRACE but can be used to join audit information from various sources.
- Matrix Configuration
- Matrix options are now set in the Resource Master instead of being compiled in the engine. Example:
<matrix-service> <retry-count>3</retry-count> <retry-interval>100</retry-interval> <service-url-list> <service-url>http://matrix.website.co.uk/aim2/aim2?apiClassName=uk.gov.dti.aim.MATRIXService</service-url> <service-url>http://matrix. website.co.uk:81/aim2/aim2?apiClassName=uk.gov.dti.aim.MATRIXService</service-url> </service-url-list> </matrix-service>
- Engine Mirror
- A component can now be mirrored/cached on the engine. Component tables now have an ENGINE_MIRROR column, where 'Y' specifies the component should be mirrored
- The engine mirror is refreshed by a flush or [[FOX:!:EM|!EM] command.
- Apps with multiple component tables determine mirroring as follows:
- Error Page handling
- Error pages follow the new seek order and are now stored in the database instead of the engine.
- To allow error pages if the database is down, engine mirroring is used
- The following are evaluated:
- %ERROR_REF% - FOX error ID
- %ERROR_MSG% - FOX based error message
- %STACK_DISPLAY% - visible/none. Useful for CSS option to show stack info
- %APP% - app name
- %MODULE_NAME% - name of module error occurred in
- %MODULE_TITLE% - title of module error occurred in
- %MODULE_DESC% - description of module error occurred in
- %THEME% - entry theme loaded in when error occurred
- %STATE_NAME% - name of state loaded in when error occurred
- %STATE_TITLE% - title of state loaded in when error occurred
- %STATE_DESC% - description of state loaded in when error occurred
- %STACKTRACE% - full error stacktrace
- %PARAMS% - FOX request parameters
- Downloads
- Orphan Windows
- Preferences DOM
- Seek Order Changes

- Mutable Components
- Component elements in FoxComponents.xml can now specify the element OVERLOADABLE. Defaulting to FALSE, if set to TRUE the component will be put in the mutable internal cache shown in the seek order diagram. Images and other non-engine specific components are currently overloadable.
- Booting FOX
Fixes
- Newlines and apostrophes/quotes can be used in fm:alert
- Info item on developer menu now shows user set contexts
- Init command can use @xyz instead of attribute::xyz
- Error message overloading adds in command name and action name being run when error occurred
- Queries can use multiple primary keys when FOX is run on Java 1.6
- Callback failures now abort thread safely, no longer leaving a transaction mounted
- Query/API parameter listings on error pages now escape HTML data values so you can see them