FLUID-4035: Partial work in refactoring the Pager
Merge branch 'FLUID-5029' into FLUID-4035
FLUID-4035: Pager split out into separate components and files mirroring original ancient work on lost SVN branch FLUID-2881. Test cases similarly factored - next issue is correction of dynamicComponents -> top-level material gearing
FLUID-5022: Fix and test case for dynamic components targeted at non-options material
FLUID-4035: First working test cases in very simplest configuration. Rewritten to use transactional data binding features for which case these were originally designed. Improved diagnostics in cases of failed view components. Fixed bug introduced earlier with "renderTarget" functionality in RendererComponent.
FLUID-4035: All tests passing for basic pager for the first time. Fixed conditions in DataBinding for auto-transactions - a PostGuard should trigger these too. Still several issues with model idiom - need to think more about event sequence on startup. Listeners which are sensitive to deltas should in theory receive initial "delta from nothing" as model is populated on startup. Timing of this event is problematic though - model is really populated "early" through gingerness, but many listeners will not really be ready until onCreate. However, we could still supply a synthetic empty "oldModel" for this special event. Still raises the issue that crucial guards (e.g. pageCount) may not execute until late into the lifecycle. Also may upset a lot of existing code with this unexpected extra event.
FLUID-4035: Good new scheme allows more graceful model initialisation using new "initModelEvent" approach. Even listeners unhelpfully added at a later time (pending solution for FLUID-4258) will be walked through an apparent sequence of the model initialising itself from {} to its true initial value
Merge branch 'master' into FLUID-4035
FLUID-4035, FLUID-4334, FLUID-5046, FLUID-4036, FLUID-2880, FLUID-4789: Update of Pager to current standards, together with refactoring into 3 components. Some work on RendererComponent itself makes this now dependent on IoC - fix to lifecycle of "refreshView" and "produceTree". Fixes to DataBinding handling of duplicate ChangeEvents. Fix to implementation of marker detection. Fix to implementation of "destroy" for root of component tree - now correctly causes recursive clear, which exposed bug in UIOptions ModelRelay system. Framework test cases rewritten to reflect final withdrawal of support for manual lifecycle components, of which now NONE REMAIN IN THE FRAMEWORK.
FLUID-4071, FLUID-4021, FLUID-3770: Corrected handling of page size change in the pager - this failed to return the pager to a valid page if the page count was reduced. This required removal of the strange "internal applier" in the transactional ChangeApplier, since we require transactionally generated changes themselves to be guarded - however this scheme is strange and unnatural, requiring a fictitious "forced change" to be generated within the transaction. Test cases updated to guard against infinite recursion in guards which is now possible. This whole framework area must be considered cursed and will be reimplemented as soon as "ModelRelay" work is mature enough. Must not be advertised as a public API. Corrected implementation of sorting in the Table component. Improved options in pager demo as per FLUID-4021. Rewritten "FiveStar" demo to modern framework standards. Almost the last call to "fluid.initView" remaining in the wild. Implemented "annotateSortedColumn" option for PagedTable for FULID-4071. Hoisted fluid.iota into main framework for FLUID-3770. Fixed implementation of FLUID-5048 test case which would fail 1 time in 2 on Chrome as a result of assumptions on ordering in JSON objects.
FLUID-4035: Rewriting of the very last manual lifecycle component left in the wild: FSS mobile theming demo. This demo has in fact been broken for several years, ever since "FluidView.js" was introduced as a required dependency for view components in late 2010. It was mangled somewhat further during the mass renaming of demo files in 2011 with some references missed to the old file "themer.js".
Merge branch 'master' into FLUID-4035
FLUID-5082: Implementation and test cases for new "soft namespaces" system for event listeners - primarily designed to automatically assign sensible default namespaces for members of long rambling "onCreate" listener blocks. These will not mutually interfere but require an explicit namespace guess in order to be overridden.
FLUID-5059: Get rid of the removeListeners functionality from model relay component since the namespace used to keep track of listeners is not unique.
FLUID-5059: Keep track of all the listeners added to the external change applier by the model relay component and remove those listeners at the destroy of the model relay.
FLUID-5059: Added more unit tests to ensure the sourceApplier listeners added by the model relay are cleaned up at the destroy of the model relay itself.
FLUID-5093: Created a test case to demonstrate the incorrect merging of the components block when the target components block has other existing components.
FLUID-5094: Created a test case to demonstrate that the dynamic grade merging takes the undefined source passed in from IoCSS into account rather than ignoring it.
FLUID-5093: Further improvements to "fluid.destroyValue" strategy for restarting evaluation of "components" block modified by dynamic grades
Merge remote-tracking branch 'cindyli/FLUID-5094' into FLUID-5093