Comment on page
Modules Service
A module is a new window inside the Symphony client workspace, such as a chatroom or an instant message. Use the
modules
service to create application-specific modules.// To use the modules service, you must subscribe to it from your application
var modulesService = SYMPHONY.services.subscribe("modules");
The following methods are available on the
modules
service:Show a new application module:
function show(id, title, serviceName, iframe, options)
Parameter | Type | Description |
id | String | A unique id for this module (must be unique across all modules of a given application) |
Either title
or {title, icon} | String or Object | Either the title of the module as a string
or an object with the keys title and icon
|
serviceName | String | The name of a local service implemented by your application that will be invoked when a user action is performed relating to this module |
iframe | String | The URL for the content of the module (must be an HTTPS URL) |
options | Object |
An object, which can contain:
|
modulesService.show(
"hello",
{title: "Hello World App"},
"hello:controller",
"https://localhost:4000/app.html",
{
"canFloat": true
}
);
Hide an existing application module:
function hide(id)
Parameter | Type | Description |
id | String | The id of the module that should be hidden. |
modulesService.hide("hello");
Change the title of an existing application module:
Note that this only changes the title of a specific module, not all titles of all modules created by the application.
function setTitle(id, title)
Parameters | Type | Description |
id | String | The id of the module for which the title should be changed |
Either title or {title, icon} | String or Object | Either the title of the module as a string
or an object with the keys title and icon
|
modulesService.setTitle("hello", "New Module Title");
Focus an existing application module:
function focus(id)
Parameter | Type | Description |
id | String | The id of the module to focus |
modulesService.focus("hello");
Opens a link from your application in a new tab in the user's default browser. This method should be used to open links, rather than
<a href="..." target="_blank">...</a>
.function openLink(url)
Parameter | Type | Description |
url | String | The URL to be opened |
// This code will live in your application view.
// Assume there is a button element with id "link" on the application module
// If that button is clicked, open a Google link.
var linkButton = document.getElementById("link");
linkButton.addEventListener("click", function(){
modulesService.openLink("https://www.google.com");
});
Reloads the content of the module at the new URL.
The Client Extensions API is designed for single-page applications. Use this method with multi-page applications to load new content when users navigate to another page:
function redirect(id, url)
Parameter | Type | Description |
id | String | The unique identifier for the module. A module with this id must already exist. |
url | String | The URL of the new iframe to load in the module. |
onSelect : function(symbol) {
this.modulesService.redirect(this.moduleId, MODULE.baseUrl + 'details?symbol=' + encodeURIComponent(symbol));
},
Last modified 1mo ago