FLUID-5552: Upgrade the Prefs Framework to use the core Model Relay functionality instead of its own.

Metadata

Source
FLUID-5552
Type
Task
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
N/A
Reporter
Anastasia Cheetham
Created
2014-11-11T11:02:55.711-0500
Updated
2015-11-03T11:27:26.129-0500
Versions
  1. 1.5
Fixed Versions
  1. 1.9
Component
  1. Prefs Framework

Description

The core Infusion Framework uses the new model relay functionality, but the Prefs Framework still uses its own model relay framework. This makes upgrading the video player rather complicated.

Comments

  • Antranig Basman commented 2014-12-08T11:49:52.293-0500

    Note the upgrading the video player ( VP-295 ) with the new modelRelay system can't go ahead without FLUID-5249 ("global instantiators")

  • Cindy Li commented 2015-01-26T10:04:13.841-0500

    I've started working on this in the branch: https://github.com/cindyli/infusion/tree/FLUID-5552

    Most pieces are back working except one last issue. To produce:

    1. Open examples/framework/preferences/conditionalAdjusters-singlePanel/ in a browser where a debugger is turned on;
    2. Turn on "speak text" preference, adjust the slider for "Words-per-min", click on "reset" button;
    3. This javascript error occurs:

    ASSERTION FAILED: Cannot resolve reference {change}.value from component { typeName: "fluid.textfieldSlider.textfield" gradeNames: ["fluid.textfieldSlider.textfield","fluid.viewRelayComponent","fluid.commonViewComponent","fluid.standardRelayComponent","fluid.modelRelayComponent","fluid.commonModelComponent"] id: byh4wskj-1519} which has been destroyed

    The error doesn't occur if "Words-per-min" and other prefs in conditional panels have never been adjusted.

    The same issue can be produced with all conditional panel examples.

    Clicking on the reset button triggers:
    1. Reset the central model to the default which resets "speak text" to false and "words-per-min" to its original value. This should also triggers the model relay for the "Words-per-min" prefs value to be relayed to "Words-per-min" text field slider;
    2. Resetting "speak text" prefs to false results in the destroy of its conditional panels including the "words-per-min" text field slider. A refreshView() is called right after the destroy to stop showing these conditional panels - https://github.com/cindyli/infusion/blob/FLUID-5552/src/framework/preferences/js/Panels.js#L334-L340

    The debugging log shows the destroy of the "words-per-min" text field slider (line 337) happens before the error occurs. So it seems even though the text field slider should have been destroyed, the model relay onto it continues to happen.

  • Cindy Li commented 2015-01-27T10:16:29.655-0500

    Issued a pull request: https://github.com/fluid-project/infusion/pull/582

    This pull request is dependent on Antranig's pull request that fixes FLUID-5592: https://github.com/fluid-project/infusion/pull/581

  • Justin Obara commented 2015-03-19T12:26:15.785-0400

    Pull request ( https://github.com/fluid-project/infusion/pull/582 ) was merged into the project repo at 18939c0dd614901bfc434a29f880aa332600a239

  • Justin Obara commented 2015-06-26T09:51:29.045-0400

    Reopening to change the fix version to 1.9