Redirect users to different dashboards based on dashboard filters
This article discusses and shares the full code of a dashboard script that redirects users to a different dashboard ID based on the user's filter selections or initial loaded filter state. In the particular example shared in this article, the script checks whether the selected date filter (either from a members filter or a from/to filter range) includes an earlier date than the earliest date in the current dashboard's datasource. If this is the case, the script redirects the user to a specified alternate dashboard, preserving any additional URL segments and query parameters in the URL. Any other type of filter state can also be used to determine on when the script should redirect, including non-date filters using similar scripts.441Views1like0CommentsHide Widget Using Web Access Token
We have an embedded dashboard that utilizes web access token for filtering on different organizations. We have a widget that only needs to be displayed to certain organizations. Does anyone know if we can filter individual widgets using the web access tokens?Solved2.9KViews1like6CommentsSSO Sisense App vs Iframe
Hi Sisense We are trying to implement Auth0 SAML 2.0 SSO with Sisense. Once implemented, we see a new option on Sisense Login UI which asks us to login via SSO Now my question is if I embed sisense as an iframe to our company App, will it require users to login to Sisense separately on top of our company app login? on the other note, I wonder if there is a quick way to test our iframe functionality on a webpage without building html/css from scratchSolved1.3KViews0likes1Comment400 on getCustomActions with iframe embed dashboard and WAT authentication
Hello, To distribute our dashboards to our clients, we use iframes. We didn't have any issues until we started using the Web Access Token to authenticate our users. Since then, some actions in the dashboard are broken. Specifically, all actions that call the getCustomActions endpoint end with an HTTP status 400 (from blox button). Here is an example of a response (hidden tokens) Possibly unhandled rejection: {"data":{"error":{"code":5014,"message":"Endpoint is forbidden","status":400,"httpMessage":"Bad Request"}},"status":400,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/v1/blox/getCustomActions","headers":{"Internal":"true","x-request-id":"xxx","Accept":"application/json, text/plain, */*","Authorization":"xxx","Initialiser":{"words":[-408432632,967604053,-1185492005,-1736048623,-790530727,35211402,447656597,-1442048497],"sigBytes":32},"X-XSRF-TOKEN":"xxx"}},"statusText":"","xhrStatus":"complete"} Do you have any suggestions for resolving this issue ? Best Regards, AlexandreSolved3.3KViews1like7CommentsCan't Export PDF in embedded iframe when filters are applied
Hello, We are currently using an embedded iframe in one of our applications. We programmatically apply filters to the dashboard via query parameters. The dashboard renders and the filters are applied, however, we are unable to export to PDF via the embedded toolbar while these filters are active. Without the filters, the export function works. Looking at the error, it looks like there is an issue with the body of the request, where the "customDashboardFilters" property is still a string and hasn't been deserialized. Are there any ideas on ways around this?Solved3.4KViews0likes5CommentsThird Party Cookies Google Chrome Phase out
With Google Chrome's recent change to remove third-party cookies this year, many solutions responsible for running embedded content are being affected. In reviewing the Sisense documentation, it appears that alternatives such as utilizing Web Access Tokens (WAT) or employing the same domain for various apps behind specific paths are suggested. However, both solutions have limitations hindering their implementation: WAT, as stated in the documentation, only applies to registered users with the viewer role. This raises concerns about accessibility for users with Administrator or Designer roles. Is there an official solution available for these user types? Regarding domains, the proposed solution of consolidating apps under a single domain and path poses challenges for solutions with multiple custom domains. Considering Google Chrome's plan to remove all third-party cookies for 100% of its users by the end of the year, and the potential for other browsers to follow suit, it's crucial to explore viable alternatives. Is there a plan to adopt the CHIPS initiative for cookie management in the near future, or are there existing solutions available for testing the transition?Solved1.9KViews0likes1CommentEmbedding a Google Doc or Sheet in Your Dashboard
The iFrame Widget Plugin is a powerful tool that enables you to embed any web page that you wish into your dashboard, using its URL. A great use of the iFrame widget can also be used to Embed Google Docs or Sheets. The quick access to the document or sheet can be used to store notes and comments derived from a dashboard's results. Furthermore, it can be utilized for reading or even updating the same spreadsheet being used as an Elasticube's data source (write back). Other users with whom the dashboard is shared will be able to view the content of the doc, only if its sharing settings allow it. You can decide if the user must be logged in to Google, and if so, who may view and who may edit. For more information about it, see this Google article. To embed a single fixed doc: 1. Get the required doc's URL. If you want the doc to be editable, use the shareable URL. If you want it to be presented in presentation only mode, use the Published URL. 2. Create a new iFrame widget. 3. In the Widget's edit mode, provide the document's URL to the iFrame. 4. Apply your changes. To Embed a dynamic, filter responsive selection of documents: 1. Create a table that would list all of the relevant documents' description and URL. In the below example, we are using the owner's Email as the description that we will filter by: 2. Import the table into an existing or to a new Elasticube. The table can exist as a stand-alone island, and enable filtering based on its inline dimensions, or it can be integrating into an existing model, to enable interaction with its additional filters. 3. Create a new iFrame widget based on the same cube. In the widget's URL panel, add the field that holds the documents' URLs 4. Apply changes and inspect your dashboard. You can now choose the required document by choosing the relevant Email:6.7KViews0likes0CommentsDynamic Resize For Embedded IFrames
If you've ever attempted to dynamically resize your embedded iFrames in your parent application, you may have experienced a CORS conflict. Basically, since your parent application and sisense application serve from different domains, your browser restricts HTTP responses for security reasons. Luckily, we have a workaround that leverages the Window.postMessage() function. This solution dynamically resizes your embedded iFrame based on the height of the contents. // Within your SISENSE APPLICATION, apply this script on the dashboard to be embedded via iFrame: dashboard.on('refreshend', function () { var heightValue = 0, columnArr = dashboard.layout.columns, columnHeight = [], targetWindow = window.parent, // replace with your target domain targetOrigin = 'http://main.mytestapp.com:8083'; // iterate through columns for (var i = 0; i < columnArr.length; i++) { var cellsLength = columnArr[i].cells.length, heightTotal = 0; // increment through each column widget for (var j = 0; j < cellsLength; j++) { var height = columnArr[i].cells[j].subcells[0].elements[0].height; heightTotal += height; } columnHeight.push(heightTotal); // assign max aggregate column height heightValue = columnHeight.reduce(function (a, b) { return Math.max(a, b); }); } targetWindow.postMessage({ heightValue: heightValue }, targetOrigin); }); // Within your PARENT APPLICATION: window.addEventListener('message', receiveMessage, false); function receiveMessage(event) { // replace with your sisense application origin var sendingOrigin = 'http://reporting.mytestapp.com:8080'; if (event.origin !== sendingOrigin) { throw new Error('bad origin:', event.origin); } else { try { // replace with your iFrame ID document.getElementById('ifm').height = event.data.heightValue; } catch (err) { throw new Error(err.name + ':', err.message); } } }2.4KViews2likes1CommentSisense Iframe embedded feature - I want to pass the parameters for the filter dynamically.
In my case, I have GetUserAuditReport Store Procedure with the param UserId. Based on this SP I need to create a table view in sisense. I need to embed this into my application. In this case, how can I achieve this? I going to embed only a widget table based on filtration.1.1KViews0likes1Comment