# Release Notes for Fluid Infusion 2.0.0 # [Fluid Project](http://fluidproject.org) [Infusion Documentation](https://github.com/fluid-project/infusion-docs) ## What's New in 2.0.0? ## See [API Changes from 1.5 to 2.0](http://docs.fluidproject.org/infusion/development/APIChangesFrom1_5To2_0.html) and [Deprecations in 1.5](http://docs.fluidproject.org/infusion/development/DeprecationsIn1_5.html) on the [Infusion Documentation](https://github.com/fluid-project/infusion-docs) site. For a complete list of Fixes and Improvements see the [Version 2.0](https://issues.fluidproject.org/projects/FLUID/versions/10041) summary in the [JIRA](https://issues.fluidproject.org) issue tracker. **Note:** Infusion 1.9 was not officially released, but is available as an official branch. It is is available on GitHub at [Infusion 1.9.x](https://github.com/fluid-project/infusion/tree/1.9.x). For a complete list of Fixes and Improvements see the [Version 1.9](https://issues.fluidproject.org/projects/FLUID/versions/10520) summary in the [JIRA](https://issues.fluidproject.org) issue tracker. ### New Features ### * Constraint-based priorities, supported by `listeners`, `modelListeners`, `modelRelay`, `distributeOptions`, `contextAwareness`, and `components`. This allows the specific order of those items to be configured. (See: [Priorities](http://docs.fluidproject.org/infusion/development/Priorities.html)) * Context Awareness - and things it relies on: * Global Instantiator * Every Infusion component, regardless of how it is instantiated, ends up in a single-rooted tree of components * This enables use of modern IoC features such as model relay and declarative event binding * Enables use of the root distributeOptions context "/" * Enables the removal of "demands blocks" * Useful debugging tip: Watch `fluid.globalInstantiator` in your JS debugging tools to see the structure of your application and its tree. * `fluid.notImplemented` function for implementing abstract grades * [Lazy loading for UI Options](http://docs.fluidproject.org/infusion/development/UserInterfaceOptionsAPI.html#lazyload) and instructions for how to use the Preferences Framework with a [zero initial load time](http://docs.fluidproject.org/infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html). * This should assist in improving performance when using the Preferences Framework, particularly for resource intensive sites and applications * Much faster invokers and boiled listeners (c. 60x faster) * Support for using Infusion with npm for both Node.js and web-based projects. * Provides a variety of prebuilt versions of Infusion in the module's `dist` directory. * Source Maps are generated for the concatenated JavaScript files * View oriented IoC debugging tools * Including FluidViewDebugging.js on the page of any Infusion application gives you access to the _IoC View Inspector_. Click on the small cogwheel icon at the bottom right of the page to open a panel which shows the details of the view components and their grades, that are attached to DOM nodes in the browser pane. This interface works similarly to the _DOM Inspector_ familiar from modern web browsers, but is an experimental implementation with an engineer-level UI. ### Removal of Deprecated Features ### * Manual lifecycle points finalInit, postInit, etc. * Obsolete syntax for arguments, options, etc. * `"autoInit"` grade * Static and dynamic environments, replaced by Global Instantiator * The old model component hierarchy and "old ChangeApplier" implementation * `fluid.demands` * No more distinction between fast and dynamic invokers * Model Relay specific component grades have been removed, model relay now works with any model grade. ## Obtaining Infusion ## * [Fork on GitHub](https://github.com/fluid-project/infusion) * [Download a Build](https://github.com/fluid-project/infusion/releases) * [NPM](https://www.npmjs.com/package/infusion) You can create your own custom build of Infusion using the [grunt build script](README.md#how-do-i-create-an-infusion-package). ## Demos ## Infusion ships with demos of all of the components in action. You can find them in the _**demos**_ folder in the release bundle or on our [build site](http://build.fluidproject.org/). When running the demos on your local machine, a web server is recommended. Several of the demos make use of AJAX calls; which typically are not allowed by the browser when run from the local file system. ## License ## Fluid Infusion is licensed under both the ECL 2.0 and new BSD licenses. More information is available in our [wiki](http://wiki.fluidproject.org/display/fluid/Fluid+Licensing). ## Third Party Software in Infusion ## This is a list of publicly available software that is redistributed with Fluid Infusion, categorized by license: ### Apache 2.0 ### * [`fluid.load.scripts` is based on Jake Archibald's script loading example](http://www.html5rocks.com/en/tutorials/speed/script-loading/#toc-dom-rescue) * [Open Sans Light font](http://www.google.com/fonts/specimen/Open+Sans) ### MIT License ### * [Buzz v1.1.0](http://buzz.jaysalvat.com) * [Foundation v6.2.3](http://foundation.zurb.com/index.html) * [HTML5 Boilerplate v4.3](http://html5boilerplate.com/) * [html5shiv v3.7.2](https://code.google.com/p/html5shiv/) * [jQuery v3.1.0](http://jquery.com/) * [jQuery Mockjax v2.2.1](https://github.com/jakerella/jquery-mockjax) * [jQuery QUnit v1.12.0](http://qunitjs.com) * [jQuery QUnit Composite v1.0.1](https://github.com/jquery/qunit-composite) * [jQuery scrollTo v1.4.2](http://flesler.blogspot.com/2007/10/jqueryscrollto.html) * [jQuery Touch Punch v0.2.2](http://touchpunch.furf.com/) * [jQuery UI (Core; Interactions: draggable, resizable; Widgets: button, checkboxradio, controlgroup, dialog, mouse, slider, tabs, and tooltip) v1.12.1](http://ui.jquery.com/) * [jquery.selectbox v0.5 (forked)](https://github.com/fluid-project/jquery.selectbox) * [jquery.simulate](https://github.com/eduardolundgren/jquery-simulate) * [Micro Clearfix](http://nicolasgallagher.com/micro-clearfix-hack/) * [Normalize v4.1.1](https://necolas.github.io/normalize.css/) ### zlib/libpng License ### * [fastXmlPull is based on XML for Script's Fast Pull Parser v3.1](http://wiki.fluidproject.org/display/fluid/Licensing+for+fastXmlPull.js) ## Documentation ## Documentation and tutorials can found on the [Infusion Documentation](http://docs.fluidproject.org/infusion/development/) site. ## Supported Browsers ## Infusion 2.0 was tested with the following browsers: * Chrome current (version 54) * Firefox current (versions 49-50) * Internet Explorer (version 11) * Microsoft Edge (version 38) * Safari (version 10) Additional testing for mobile devices was performed with the following: * Chrome (Android 6.0.1) * Safari (iOS 10.1.1) For more information see the [Fluid Infusion browser support](https://wiki.fluidproject.org/display/fluid/Prior+Browser+Support) wiki page. ### Testing Configurations #### Testing Configurations
Testing Task Desktop Browser Mobile Browser
Chrome Firefox IE 11 MS Edge Safari Chrome for Android Safari iOS
Run All Unit Tests Chrome 54 (macOS 10.12) Firefox 49 (macOS 10.12) IE 11 (Win 10) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) Chrome 54 (Android 6.0.1 & 7.0.0) Safari (iOS 10.1.1)
Smoke Tests - All Manual Tests Chrome 54 (macOS 10.11.6) Firefox 50 (macOS 10.12.1) IE 11 (Win 8.1) MS Edge 38 (Win 10) Safari 10 (macOS 10.12.1) Chrome 54 (Android 6.0.1) Safari (iOS 10.1.1)
Smoke Tests - All Demos Chrome 54 (macOS 10.12.1) Firefox 50 (macOS 10.12.1) IE 11 (Win 8.1) MS Edge 38 (Win 10) Safari 10 (macOS 10.12.1) Chrome 54 (Android 6.0.1) Safari (iOS 10.1.1)
Smoke Tests - All Examples Chrome 54 (macOS 10.12.1) Firefox 50 (macOS 10.12.1) IE 11 (Win 8.1) MS Edge 38 (Win 10) Safari 10 (macOS 10.12.1) Chrome 54 (Android 6.0.1) Safari (iOS 10.1.1)
Inline Edit QA Test Plan - Simple Text Chrome 54 (macOS 10.10) Firefox 49 (openSUSE Linux 42.1) IE 11 (Win 8.1) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Keyboard Accessibility QA Test Plan Chrome 54 (Win 10) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 8.1) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Pager QA Test Plan Chrome 54 (Win 10) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Progress QA Test Plan Chrome 54 (macOS 10.11.6) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Reorderer QA Test Plan - Image Reorderer Chrome 54 (Win 10) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Reorderer QA Test Plan - Layout Reorderer Chrome 54 (macOS 10.11.6) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Reorderer QA Test Plan - List Reorderer Chrome 54 (macOS 10.11.6) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Reorderer QA Test Plan - Grid Reorderer Chrome 54 (macOS 10.11.6) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Preferences Framework QA Test Plan Chrome 54 (Win 10) Firefox 49.0.2 (macOS 10.12) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
UI Options QA Test Plan - Separated Panel Chrome 54 (Win 10) Firefox 49.0.2 (Win 10) IE 11 (Win 7) MS Edge 38 (Win 10) Safari 10 (macOS 10.12) N/A N/A
Uploader QA Test Plan Chrome 54 (macOS 10.12.1) Firefox 49.0.2 (macOS 10.12.1) IE 11 (Win 10) MS Edge 38 (Win 10) Safari 10 (macOS 10.12.1) N/A N/A
## Known Issues ## The Fluid Project uses a [JIRA](http://issues.fluidproject.org) website to track bugs. Some of the known issues in this release are described here: ### Framework ### * [FLUID-5912: "{arguments}" IoC references in dynamicComponents model block are incorrectly interpreted as implicit model relays](https://issues.fluidproject.org/browse/FLUID-5912) * [FLUID-5546: Framework fails to deregister listeners to events which are injected from other components](https://issues.fluidproject.org/browse/FLUID-5546) * [FLUID-5519: Timing of "initial transaction" in new model relay system is problematic](https://issues.fluidproject.org/browse/FLUID-5519) ### Inline Edit ### * [FLUID-5392: Two clicks required to edit an empty inline edit field](https://issues.fluidproject.org/browse/FLUID-5392) * [FLUID-1600: Pressing the "Tab" key to exit edit mode places focus on the wrong item](http://issues.fluidproject.org/browse/FLUID-1600) ### Layout Reorderer ### * [FLUID-3864: Layout Reorderer failed to move portlets back to the first column in three-columns view with keyboard](http://issues.fluidproject.org/browse/FLUID-3864) * [FLUID-3089: If columns become stacked, can't drag item into lower column](http://issues.fluidproject.org/browse/FLUID-3089) ### Pager ### [FLUID-6081: VoiceOver on Pager doesn't announce the page number when the focus is on a page link](https://issues.fluidproject.org/browse/FLUID-6081) ### Reorderer ### * [FLUID-6013: The Grid Reorderer and Image Reorderer are missing ARIA role=row containers](https://issues.fluidproject.org/browse/FLUID-6013) * [FLUID-5870: Reorderer demo failures on IE 11](https://issues.fluidproject.org/browse/FLUID-5870) * [FLUID-44737: Focus styling persists after moving focus from Reorderer](https://issues.fluidproject.org/browse/FLUID-4437) * [FLUID-3925: With no wrapping on, the keyboard movement keystrokes are captured by the browser where a wrap would have occurred.](http://issues.fluidproject.org/browse/FLUID-3925) ### UI Options / Preferences Framework ### * [FLUID-5928: Schema and Grade version save preferences to different values](https://issues.fluidproject.org/browse/FLUID-5928) * [FLUID-5372: Increasing font size does not increase width of UIO panel](https://issues.fluidproject.org/browse/FLUID-5372) * [FLUID-5223: If there's exactly one text field in the prefs editor, pressing enter on most inputs causes the form to submit](http://issues.fluidproject.org/browse/FLUID-5223) * [FLUID-5218: Prefs editor requires iFrame template to be in the same place as panel templates; it probably shouldn't](http://issues.fluidproject.org/browse/FLUID-5218) * [FLUID-5066: UIO Integrators shouldn't have to edit Infusion's copy of html templates to add panels, css](http://issues.fluidproject.org/browse/FLUID-5066) * [FLUID-4491: Line spacing doesn't affect elements that have a line-height style set](http://issues.fluidproject.org/browse/FLUID-4491) * [FLUID-4394: Separated Panel UI Options' iFrame HTML page (SeparatedPanelFrame.html) doesn't play nice with a concatenated build of Infusion](http://issues.fluidproject.org/browse/FLUID-4394) ### Undo ### * [FLUID-3697: Undo hard-codes selector classes instead of using user-configured values](http://issues.fluidproject.org/browse/FLUID-3697) ### Uploader ### * [FLUID-6079: Uploader error, when chosen files are too large, is not read by screenreader](https://issues.fluidproject.org/browse/FLUID-6079) * [FLUID-6065: The focus remains on the "Browse Files" button with 2 keyboard tabbings in IE 11 and IE Edge](https://issues.fluidproject.org/browse/FLUID-6065) * [FLUID-6045: The table header scrolls out of view as the file queue is scrolled](https://issues.fluidproject.org/browse/FLUID-6045) * [FLUID-5737: Uploading size is higher than total size](https://issues.fluidproject.org/browse/FLUID-5737) * [FLUID-4726: Cannot change uploader's button text through the string options.](https://issues.fluidproject.org/browse/FLUID-4726)