FLUID-6312: Make preferences framework locale handling work the way the docs say it does

Metadata

Source
FLUID-6312
Type
Improvement
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Gregor Moss
Reporter
Gregor Moss
Created
2018-07-31T16:44:58.716-0400
Updated
2024-07-22T10:35:24.106-0400
Versions
N/A
Fixed Versions
N/A
Component
  1. Prefs Framework

Description

Per discussion on this pull request: https://github.com/fluid-project/infusion-docs/pull/139

1. "locale" is currently in the code as being set at "{prefsEditorLoader}.settings.preferences.locale"
2. It shouldn't be there.
3. We're going to move it back to "{prefsEditorLoader}.settings.locale", as the documentation specifies and update any tests or functions accordingly

This will store "locale" at the same level as "panelIndex" - a persisted property important for the component's state maintenance between reloads that is not a user-editable preference with a panel, enactors, etc.

Comments

  • Gregor Moss commented 2018-10-03T14:30:40.100-0400

    After discussions with @@Michelle D'Souza, @@Alan Harnum and @@Justin Obara, we will be storing the locale at {prefsEditorLoader}.settings.preferences.locale, as any previous storage scheme was either not implemented or not implemented correctly, so there is no concern for backwards compatibility. Also, considering we've got a panel and enactor implemented as part of FLUID-6303, it follows that any value stored as a result of actions within that panel should be stored along with the values from other panels, i.e. on the "preferences" key.

    Revised goal:

    • get it to store and load properly from {prefsEditorLoader}.settings.preferences.locale
    • add any required tests
    • readjust the docs (this could/should be a separate Jira)
  • Justin Obara commented 2018-12-17T07:57:03.464-0500

    I've been thinking about this more as I look at the panel and enactor for language selection (FLUID-6303). It is definitely required to store language as a preference for the panel/enactor. However, when using the schema it won't be stored at "preferences.locale". The exact location is specified based on the type name. For example, it would end up being something like "preferences.fluid_prefs_localization".