# SisenseDash
An object representing a Sisense dashboard.
# Properties
Name | Type | Description |
---|---|---|
datasource | Datasource | Contains an object representing the dashboard's primary data source. |
id | string | Contains the full dashboard ID. |
refreshing | boolean | True when the dashboard is currently refreshing, or false when it is not. |
widgets | object | A collection of the widget objects currently loaded to memory for a the dashboard |
$$model | Dashboard | The internal dashboard instance - same as the dashboard object in a dash script |
# Constructor
new Dashboard()
A blank dashboard object can be created and added to the application, into which various widgets may be loaded.
Doing this will not create an actual dashboard in Sisense - only a temporary object to host widgets on your application.
Example
// Create a blank dashboard object
var myEmptyDashboard = new Dashboard();
// Add dashboard to application
app.dashboards.add(myEmptyDashboard);
Filters and Blank Dashboards
By default, a "blank" dashboard as described above does not have a data source associated with it, and as such cannot support dashboard filters.
This makes it impossible to render the filters panel correctly.
To use dashboard filters and/or the filters panel with a "blank" dashboard, initialize it with a datasource and an empty widget array:
// You can get a list of available datasources via GET /api/datasources
var datasource = {
"title": "Sample Healthcare",
"address": "localHost",
"fullname": "LocalHost/Sample Healthcare"
};
// Create a blank dashboard object that supports filters
var myEmptyDashboard = new Dashboard({ datasource: datasource, widgets: [] });
# Methods
# refresh
dash.refresh()
Refresh a dashboard to apply recent changes. Use this method to render the widgets in a dashboard once their containers are set.
Arguments
N/A
Returns
N/A
Example
dash.refresh();
# renderFilters
dash.renderFilters(container)
Renders the dashboard filters panel into a DIV container.
After you have loaded a dashboard, you can load its filters UI using this method.
Note: A dashboard object can only contain filters if it's datasource property is set. When loading existing dashboards, they are always loaded with a datasource. When creating a new object, you must set it yourself.
Arguments
Name | Type | Required | Description | Example |
---|---|---|---|---|
container | DOMElement<DIV> | Yes | A DIV element to render to | document.getElementById("filters") |
Returns
N/A
Example
dash.renderFilters(document.getElementById("filters"));
# renderSimplyAsk L8.2.1
dash.renderSimplyAsk(container)
Renders the SimplyAsk NLQ (opens new window) UI into a container DOM element.
Limitations
- The
renderSimplyAsk
andpopSimplyAsk
methods cannot be used concurrently on the same page - When using this method, the SimplyAsk UI will not display the "Available Fields" button
Arguments
Name | Type | Required | Description |
---|---|---|---|
container | DOMElement | Yes | A DOM element to render into |
Returns
N/A
Example
Sisense.connect('https://example.com/').then(function (app) {
app.dashboards.load('5e9edfedf52f45002d5a6844').then(function (dashboard) {
dashboard.renderSimplyAsk(document.getElementById("simplyAskContainer"));
});
});
# popSimplyAsk L8.2.1
dash.popSimplyAsk([options])
Opens the SimplyAsk NLQ (opens new window) popup as a modal dialog.
Limitations
- The
renderSimplyAsk
andpopSimplyAsk
methods cannot be used concurrently on the same page
Arguments
Name | Type | Required | Description |
---|---|---|---|
options | object | No | Configuration for the NLQ popup |
options.containerClass | string | No | A CSS class name that will be added to NLQ container |
Returns
N/A
Example
// With a container CSS class
Sisense.connect('https://example.com/').then(function (app) {
app.dashboards.load('5e9edfedf52f45002d5a6844').then(function (dashboard) {
dashboard.popSimplyAsk({containerClass: 'custom-class-name'});
});
});
// Without any options
Sisense.connect('https://example.com/').then(function (app) {
app.dashboards.load('5e9edfedf52f45002d5a6844').then(function (dashboard) {
dashboard.popSimplyAsk();
});
});
# on
on(event, callback)
Registers dashboard events. For more information, see the Dashboard API reference.
Arguments
Name | Type | Required | Description | Example |
---|---|---|---|---|
event | string | yes | A string value of the event name. | 'initialized' |
callback | function | yes | The callback function to execute when the event is triggered. |
Returns
N/A
Example
dash.on('initialized', () => {
console.log('dashboard initialized');
});
# widgets.get
dash.widgets.get(widgetId) →
SisenseWidget
Get a widget object from the dashboard by OID, when the widget is already loaded (such as widgets belonging to the dashboard or those loaded with the widgets.load
method)
Arguments
Name | Type | Required | Description | Example |
---|---|---|---|---|
widgetId | string | Yes | OID of the widget to get | '574603d5fc726c3430000037' |
Returns
A SisenseWidget
object.
Example
var myWidget = dash.widgets.get('5746043ffc726c3430000043');
# widgets.load
dash.widgets.load(widgetId) → Promise<
SisenseWidget
>
Load a widget by OID. Used to load widgets that aren't already in the dashboard object, such as when using a blank dashboard object.
Arguments
Name | Type | Required | Description | Example |
---|---|---|---|---|
widgetId | string | Yes | OID of the widget to load | '574603d5fc726c3430000037' |
Returns
A Promise
that resolves to a SisenseWidget
once the widget has been loaded.
Example
dash.widgets.load('574603d5fc726c3430000037').then(function(widget) {
// your code here
});