This documentation is currently being moved to our new documentation site.
Please view or edit the documentation there, instead.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.
User Interface Options API
Production Status: PREVIEW
UI Options does three things:
- places a preferences editor dialog with a set of six panels in a collapsible panel at the top of the page, accessible through a button in the upper right corner of the page;
- instantiates a cookie-based Settings Store for storing the user's preferences; and
- acts upon the user's preferences.
The User Interface Options component (UI Options) is a convenient way to add a simple separated-panel preferences editor to any page. The interface will automatically support the set of "starter" preferences provided by the Preferences Framework, in their default configuration. If you require any customization of the preferences editor, you should use the Builder tool of the Preferences Framework directly.
See Also
Tutorial - User Interface Options
Builder
Preferences Framework
Â
| |
| |
Methods | none |
Options |
tocTemplate
prefsEditor prefsEditorType enhancerType storeType |
Modifiable Preference Defaults | UI Options comes with 7 preference out-of-box. The default information of these preferences, such as its default value, the limits of its range, can be modified by redefining corresponding starter primary schema components before instantiating the creator function The starter component: fluid.prefs.schemas.lineSpace The starter component: fluid.prefs.schemas.textFontThe starter component: fluid.prefs.schemas.contrastThe starter component: fluid.prefs.schemas.tableOfContentsThe starter component: fluid.prefs.schemas.emphasizeLinksThe starter component: fluid.prefs.schemas.inputsLarger |
Creator
back to top Use the following function to create a UI Options component:
Method |
|
---|---|
Description | Instantiate a separated panel version of the UI Options component, which displays the controls in a sliding panel at the top of the page. |
Parameters |
|
Returns | The UI Options component |
Examples | var myUIO = fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "../../components/tableOfContents/html/TableOfContents.html" }); |
Notes | The UI Options uses the page itself as a live "preview:" As users adjust controls, the page is modified accordingly. |
Supported Events
Listeners can be attached to any supported events through a component's listeners
option. Values can be a function reference (not a string function name) or an anonymous function definition, as illustrated below:
var myComponent = component.name("#myContainerID", { listeners: { eventName1: functionName, eventName2: function (params) { ... } } });
For information on the different types of events, see Infusion Event System.
onReady
Description | This event fires when the UI Options component is fully instantiated, rendered and ready to use. |
---|---|
Type | default |
Parameters | uio The instantiated UI Options component. |
Availability | Infusion 1.4 and later (note that the component signature changed in 1.5) |
onPrefsEditorReady
Description | This event fires when the UI Options interface has been rendered into the iframe. Note: use onReady if the listener needs UI Options to be both rendered and ready to use. |
---|---|
Type | default |
Parameters | prefsEditorLoader |
Availability | Infusion 1.5 and later |
Options
The second argument to the creator function is the options argument. This is a JavaScript object containing name/value pairs: The name is the name of the option and the value is the desired setting. Components define their own default values for options, but integrators can override these defaults by providing new values using the options argument. For technical information about how options are merged with defaults, see Options Merging.
var uio = fluid.uiOptions.prefsEditor(".myContainer", { <option1Name>: <option1value>, <option2Name>: <option2value> ... } });
The options supported by UI Options are described below.
tocTemplate
Description | The |
---|---|
Default | "../../components/tableOfContents/html/TableOfContents.html" |
Example | fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
See also |
templatePrefix
Description | The |
---|---|
Default | "../../framework/preferences/html/" |
Example | fluid.uiOptions.prefsEditor("#myContainer", { templatePrefix: "../infusion/framework/preferences/html/" }); |
See also |
messagePrefix
Description | The |
---|---|
Default | "../../framework/preferences/messages/" |
Example | fluid.uiOptions.prefsEditor("#myContainer", { messagePrefix: "../infusion/framework/preferences/messages/" }); |
See also |
prefsEditor
Description | The |
---|---|
Default | null |
Example | fluid.uiOptions.prefsEditor("#myContainer", { prefsEditor: { listeners: { onReady: function (internalEditor) {...} onReset: function (internalEditor) {...} } } }); |
prefsEditorType
Description | The |
---|---|
Default | "fluid.prefs.separatedPanel" |
Example | fluid.uiOptions.prefsEditor("#myContainer", { prefsEditorType: "myNamespace.myPrefsEditor" }); |
See also |
enhancerType
Description | The |
---|---|
Default | "fluid.pageEnhancer" |
Example | fluid.uiOptions.prefsEditor("#myContainer", { enhancerType: "myNamespace.myUIEnhancer" }); |
storeType
Description | The |
---|---|
Default | "fluid.globalSettingsStore" |
Example | fluid.uiOptions.fullNoPreview("#myContainer", { storeType: "myNamespace.mySettingsStore" }); |
See also |
Modifiable Preference Defaults
Text Size
Description | To change the text size of the page by a multiplier factor. The corresponding starter primary schema component for the "Text Size" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.textSize", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.textSize": { "type": "number", "default": 1, // The default is the original text size "minimum": 1, // The minimum value allowed "maximum": 2, // The maximum value allowed "divisibleBy": 0.1 // The stepper value for the slider } } }); |
Example | fluid.defaults("fluid.prefs.schemas.textSize", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.textSize": { "type": "number", "default": 5, "minimum": 1, "maximum": 10, "divisibleBy": 1 } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Line Space
Description | To change the line space of the page by a multiplier factor. The corresponding starter primary schema component for the "Line Space" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.lineSpace", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.lineSpace": { "type": "number", "default": 1, // The default text size is 1, the original line space "minimum": 1, // The minimum value allowed "maximum": 2, // The maximum value allowed "divisibleBy": 0.1 // The stepper value for the slider } } }); |
Example | fluid.defaults("fluid.prefs.schemas.lineSpace", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.lineSpace": { "type": "number", "default": 1, "minimum": 0.5, "maximum": 2.5, "divisibleBy": 0.1 } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Text Font
Description | To change the text font of the page. The corresponding starter primary schema component for the "Text Font" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.textFont", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.textFont": { "type": "string", // The data type "default": "default", // The default is the original font "enum": ["default", "times", "comic", "arial", "verdana"] // The enumeration of possible values } } }); |
Example | fluid.defaults("fluid.prefs.schemas.textFont", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.textFont": { "type": "string", "default": "arial", "enum": ["default","comic", "arial"] } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Contrast
Description | To change the foreground and background contrast of the page. The corresponding starter primary schema component for the "Contrast" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.contrast", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.contrast": { "type": "string", // The data type "default": "default", // The default is the original contrast settings "enum": ["default", "bw", "wb", "by", "yb", "lgdg"] // The enumeration of possible values } } }); |
Example | fluid.defaults("fluid.prefs.schemas.contrast", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.contrast": { "type": "string", "default": "bw", "enum": ["default", "bw", "wb"] } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Table of Contents
Description | To create and render a section of "Table of Contents" at the top of the page. The corresponding starter primary schema component for the "Table of Contents" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.tableOfContents", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.tableOfContents": { "type": "boolean", // The data type "default": false // Not to show table of contents by default } } }); |
Example | fluid.defaults("fluid.prefs.schemas.tableOfContents", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.tableOfContents": { "type": "boolean", "default": true } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Emphasize Links
Description | To underline and bold links on the page. The corresponding starter primary schema component for the "Emphasize Links" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.emphasizeLinks", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.emphasizeLinks": { "type": "boolean", // The data type "default": false // Not to emphasize links by default } } }); |
Example | fluid.defaults("fluid.prefs.schemas.emphasizeLinks", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.emphasizeLinks": { "type": "boolean", "default": true } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |
Inputs Larger
Description | To enlarge input fields on the page. The corresponding starter primary schema component for the "Inputs Larger" preference is |
---|---|
Default | fluid.defaults("fluid.prefs.schemas.inputsLarger", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.inputsLarger": { "type": "boolean", // The data type "default": false // Not to enlarge input fields by default } } }); |
Example | fluid.defaults("fluid.prefs.schemas.inputsLarger", { gradeNames: ["autoInit", "fluid.prefs.schemas"], schema: { "fluid.prefs.inputsLarger": { "type": "boolean", "default": true } } }); fluid.uiOptions.prefsEditor("#myContainer", { tocTemplate: "html/myTocTemplate.html" }); |