WindowManager
Contents
Learn how to use the WindowManager plugin, which provides a controller for several different types of window group.
Overview
The WindowManager plugin provides a controller for several different types of window group. HTML UIs added to these WindowManager groups are arranged and managed in accordance with each group's purpose.
One group type is Dock View. Both WebChat and SendMessage utilize this group to show their toast-like UI docked in the lower-bottom-right of the screen. This group automatically stacks the two widgets horizontally. When one of the widgets closes, the stack collapses towards the right. Widgets can register themselves into this WindowManager group and let it do all the work.
Another group type is Side Button. WebChat and SendMessage also use this group to show their launcher buttons on the right side of the screen. Like the dock view, buttons are stacked, but in this case they are stacked vertically. As buttons are added and removed from the group, the button stack collapses to fill in the gaps.
Usage
WindowManager has "register" commands for registering your UI into different groups. They all accept one argument, the HTML you want to be handled by WindowManager. You can use 'registerDockView' or 'registerSideButton' at this time. More window management groups will be added in upcoming releases.
Customization
WindowManager does not have customization options.
Screenshots
Configuration
WindowManager does not have configuration options.
Localization
WindowManager does not have localization options.
API Commands
Once you've registered your plugin on the bus, you can call commands on other registered plugins. Here's how to use the global bus object to register a new plugin on the bus.
var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');
oMyPlugin.command('WindowManager.registerDockView', {html: '<div>HTML</div>'});
registerDockView
Creates a docked view container to show a widget on the bottom right corner. Its position is adjusted (stacked) to show side by of a widget if already present and is indexed with a tabindex.
Example
oMyPlugin.command('WindowManager.registerDockView', {html: '<div>Template</div>'}).done(function(e){
// WindowManager registered a dockView successfully
}).fail(function(e){
// WindowManager failed to register a dock view
});
Options
Option | Type | Description |
---|---|---|
html | string | A Widget HTML string template that needs to be shown in dock view. |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When the html template is successfully opened and registered in dock view | n/a |
rejected | When no html template is found | 'No html content' |
registerSideButton
Registers a button to show on the right side of the screen for a particular plugin. Its position is based on the respective plugin order defined in the array configuration. Currently, this is not supported for external plugins.
Example
oMyPlugin.command('WindowManager.registerSideButton', {template: '<div>Button Text</div>'}).done(function(e){
// WindowManager registered a side button successfully
}).fail(function(e){
// WindowManager failed to register a side button
});
Options
Option | Type | Description |
---|---|---|
template | string | Custom HTML string template for a button. |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When the html button is successfully registered | n/a |
rejected | When no html template is found | 'No button template found to register' |
API Events
Once you've registered your plugin on the bus, you can subscribe to and listen for published events. Here's how to use the global bus object to register a new plugin on the bus.
var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');
oMyPlugin.subscribe('WindowManager.ready', function(e){});
Name | Description | Data |
---|---|---|
ready | WindowManager is initialized and ready to accept commands. | n/a |
changed | WindowManager publishes this event when there is any change in the position of widgets on the screen. | {registry: (object)} |