Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'FLUID-4525-4532-4537-4539-4564-4563-4568'
* FLUID-4525-4532-4537-4539-4564-4563-4568: FLUID-4568: Added FluidView.js to some manual tests FLUID-4525: Removed logging from UIOptions test which appear to be causing painful race condition when run with firebug FLUID-4568: Added FluidView.js to two demo files FLUID-4568: Improved file comment for jquery.standalone.js following review FLUID-4568: Simplified implementation of fluid.model.mergeModel following review FLUID-4568: Comment improvement for decodeAccessorArg following review FLUID-4564: Code clarity and linting fixes, following review FLUID-4525: Linting for FatPanel and SlidingPanel FLUID-4539: Normalising case of test case variables as per review FLUID-4539: Clearer logic in createRendererSubcomponent as per review FLUID-4539: Corrected error message as per review FLUID-4563: Appropriate merge policy for "parentBundle" option accepted by RendererComponents - significant reduction in calls to "mergeImpl" FLUID-4563: Appropriate merge policy for "parents" of a bundle, for optimisation FLUID-4568: All work completed for FLUID-4568. All test cases and demos updated to reflect new status of "FluidView.js". FluidIoC tests factored into view-dependent and view-independent parts. View-independent FluidIoC test cases working with implementation of "standalone" jQuery. Minor fixes to prevent exceptions in "standalone demo renderer" samples. FLUID-4568: Reformatting and relabelling FLUID-4568: Initial implementation of core "standalone jQuery" implementation. Core test cases passing. Next step: separate out FluidIoC tests into view-dependent and view-independent parts, adjust includes across framework to account for new status of FluidView.js FLUID-4525: Reverting extra listener which was added as early attempt to resolving "jumpingness" - this was later fully resolved by use of CSS block display style. Also, adding "ModelTransformations" as standard part of framework dependencies. FLUID-4525: Display style of "block" on iframe removes jumpingness as well as upper gap. Previous fixes can probably be reverted. FLUID-4525: Resolution for issues involving i) "jumping" of animation on immediately opening fat panel and ii) anomalous "extra space" above the panel button on first rendering FLUID-4563: Improvements to merge tracing FLUID-4563: Extracted merge tracing code into FluidDebugging.js, protected by global flag Fluid.isTracing FLUID-4563: Micro-optimisations to improve performance of resolvePathSegment FLUID-4563: Improvements in performance for model access - restoration of Fluid 1.2 implementation of "fluid.get/set" as of Sep 30, 2010 (github revision dfae5a8) for cases without special configuration. This provides huge reduction in garbage in most common cases (reduction of 50% of the total load in Chrome for a complex CSpace page). Current framework version has been devolved out to implementation in DataBinding.js, opportunity taken to cut the remaining dependence of Fluid.js core on DataBinding with simplified implementation of "mergeModel". Linting. perftest: Performance tracing code for mergeImpl invocations FLUID-4563: Performance improvements in FluidIoC - reversion to "monkey patching" strategy for dynamism in fluid.threadLocal and conditionally disable querying caller stacks for demands blocks FLUID-4563: New caching strategy for graded defaults. This applies grade merging once only for each component in the system. This exposed an issue in Uploader's use of ProgressiveEnhancer, which used to assume that the return of fluid.defaults was an unshared copy - which used to be the case only for ungraded components. This has now been made consistent across all graded components and the return of fluid.defaults is a shared, morally unmodifiable instance as before. Some test cases originally in FluidJSTests.js needed to be disabled, which tested the ability to modify the contents of fluid.defaults live - this is now no longer possible. FLUID-4338, FLUID-4193: Fix for FLUID-4338 using "pathUtil" utility creates dependency of IoC on DataBinding.js - added in to test cases where missing. Also fix for what looks like nondeterministic failure of earlier fix for FLUID-4193 - "container" argument accumulated all decorated nodes for that cutpoint so far rather than just containing exactly the node for this match. FLUID-4564: Fixed up UploaderCompatibilityTests comparison for new listener merging strategy. After one pass through merging, listeners will always consist of an array. FLUID-4539: Fix to fluid.stringTemplate caused a regression in LayoutReordererTests. The feared case has finally bitten, and the strategy used in fluid.isArrayable has to be judged inadequate (it is over-broad). The "elementIndexer" for ModuleLayout returns a structure with an element named "length" which meets the criteria for being arrayable, in that it has a member named "length" which is of type number. This leads to a corrupted message when this structure is used as an argument to the new stringTemplate which passes it to framework utility fluid.keys. New implementation uses a strategy cobbled from an earlier version of jQuery, together with an explicity check for jQuery objects. The only case which cannot be saved is "arguments" which can't be reliably detected cross-browser. We need to drop any raw uses of "arguments" throughout the framework and instead always convert explicitly using fluid.makeArray. FLUID-4564: New rationalised implementation of listener merging, common across lifecycle functions and standard events. Resulting simplified implementation of component option merging with fewer special cases, ready for grade caching work. Also rationalised implementation of merge policies - these are now invoked in a standard way at a single workflow point in mergeImpl. New global name for fluid.makeEventFirer and simple utility fluid.fireEvent FLUID-4539: Fix for greedy stringTemplate implementation through key sorting FLUID-4537: Further fixes to allow path values to be resolved when raw reference to "pathAs" is issued from light material. Modified test case as supplied by JURA. FLUID-4532: Reverting ARIA labeller component to pre-IoC strategy FLUID-4525, FLUID-4536, FLUID-4338: Further simplification of cross-iframe strategy - now simply a "container with foreign jQuery" is enough guidance for the renderer, etc. in a full subtree. Discovery and fix for corruption in "mapOptions" in UIOptions which was failing to remove mapped material from its old location, leading to a complete duplicate set of components being constructed. This was being masked by an unexpected route for IoC resolution, also affecting "prefix" for ToC component. Test cases for cross-iframe FLUID-4536 and IoC FLUID-4338 fixes. FLUID-4525, FLUID-4398: All test cases passing again for UIO. Test cases tidied to avoid including UI plugins in "outer world" to verify correct jQuery cascading. Finished correcting SlidingPanel impl to model-driven version. Base UIO further tidied to remove messy "event relay". Test cases still required for FLUID-4338 as well as new "jQuery cascading". FLUID-4525, FLUID-4398, FLUID-4338 - first version of "simplified FatPanel" that appears fully working in the UI. Many adjustments in the core framework for "jQuery cascade" - the first instance of a component bearing a "jQuery" option will be diverted to use this to form its container. All subsequent containers formed by DOM binder location will automatically cascade that jQuery to their own containers. It is still necessary to explicitly supply the option to a renderer-bearing component. Fix was required in autobind to correctly use custom jQuery and document. This should really be fixed to indirect off the jQuery object holding "node" (assuming it is one - this would amount to an API change). Next step - get all test cases working again and normalise use of "prefix" FLUID-4525, FLUID-4028, FLUID-4398, FLUID-4337, FLUID-4151 - New simplified implementation for FatPanel UIOptions using new "composite event" and "boiled listener" facilities from FLUID-4398 and FLUID-4337. Improved diagnostics in framework - every event fired is now logged with its source and listener count. Previous verbose "demands resolution" logging is now prevented by dedicated flag. FatPanel opens and operates again but probably harbours severe bugs especially wrt. options parsing and UIEnhancer. Further work needed in core UIOptions to further simplify it in light of new event facilities. Tests required for "local event resolution" and also for previous jQuery injection functionality. FLUID-4525: Slightly simplified implementation with dead code removed and direct references to uiOptions subcomponents ("proto-ants") removed from FatPanel. Renamed "markupRenderer" as "iframeRenderer". Next step is to knock together "fatPanel" and "fatPanel.renderUIOptions" FLUID-4525: "jQuery bus" through core framework now resolves issue with broken sliders in UIOptions. Impl is still full of detritus and needs a lot of cleaning FLUID-4525: Fixed the issue that the UIO tabs are not rendered properly as well as namespacing a couple of fatPanel sub-components into fluid.uiOptions.fatPanel. FLUID-4525: Removed included infusion files from the fat panel iframe. As a result, theOtherWorld component is demolished from the fat panel. UI Options interface is now successfully rendered into iFrame by using the outer world jQuery and infusion. The remaining issues are, 1. the UI is not properly distributed into each tab; 2. Utilize the page enhancer in the outer world to manipulate the main page and iFrame content.
- Loading branch information