11var reportUrl = 'http://powerbiembedapiv2.azurewebsites.net/api/Reports/SampleReport' ;
22var datasetUrl = 'http://powerbiembedapiv2.azurewebsites.net/api/Reports/SampleCreate' ;
33var dashboardUrl = 'http://powerbiembedapiv2.azurewebsites.net/api/Dashboards/SampleDashboard' ;
4+ var tileUrl = 'http://powerbiembedapiv2.azurewebsites.net/api/Tiles/SampleTile' ;
45
56var LastReportSampleUrl = null ;
67var ReportRefreshTokenTimer = 0 ;
78var DashboardRefreshTokenTimer = 0 ;
9+ var TileRefreshTokenTimer = 0 ;
810
911const EntityType = {
1012 Report : "Report" ,
1113 Dashboard : "Dashboard" ,
14+ Tile : "Tile"
1215} ;
1316
1417function FetchUrlIntoSession ( url , updateCurrentToken ) {
1518 return fetch ( url ) . then ( function ( response ) {
1619 if ( response . ok ) {
1720 return response . json ( )
1821 . then ( function ( embedConfig ) {
19- setSession ( embedConfig . embedToken . token , embedConfig . embedUrl , embedConfig . id ) ;
22+ setSession ( embedConfig . embedToken . token , embedConfig . embedUrl , embedConfig . id , embedConfig . dashboardId ) ;
2023 SetSession ( SessionKeys . SampleId , embedConfig . id ) ;
2124
2225 if ( updateCurrentToken )
2326 {
24- var embedContainerId = ( embedConfig . type === "report" ) ? "embedContainer" : "dashboardContainer" ;
27+ var embedContainerId ;
28+ if ( embedConfig . type === "dashboard" ) {
29+ embedContainerId = "dashboardContainer" ;
30+ } else if ( embedConfig . type === "report" ) {
31+ embedContainerId = "embedContainer" ;
32+ } else {
33+ embedContainerId = "tileContainer"
34+ }
35+
2536 var embedContainer = powerbi . embeds . find ( function ( embedElement ) { return ( embedElement . element . id == embedContainerId ) } ) ;
2637 if ( embedContainer )
2738 {
@@ -34,10 +45,14 @@ function FetchUrlIntoSession(url, updateCurrentToken) {
3445 LastReportSampleUrl = url ;
3546 TokenExpirationRefreshListener ( embedConfig . minutesToExpiration , EntityType . Report ) ;
3647 }
37- else
48+ else if ( embedConfig . type === "dashboard" )
3849 {
3950 TokenExpirationRefreshListener ( embedConfig . minutesToExpiration , EntityType . Dashboard ) ;
4051 }
52+ else
53+ {
54+ TokenExpirationRefreshListener ( embedConfig . minutesToExpiration , EntityType . Tile ) ;
55+ }
4156 } ) ;
4257 }
4358 else {
@@ -81,6 +96,19 @@ function TokenExpirationRefreshListener(minutesToExpiration, entityType) {
8196 FetchUrlIntoSession ( dashboardUrl , true /* updateCurrentToken */ ) ;
8297 } , updateAfterMilliSeconds ) ;
8398 }
99+ else
100+ {
101+ if ( TileRefreshTokenTimer )
102+ {
103+ console . log ( "step current Tile Embed Token update threads." ) ;
104+ clearTimeout ( TileRefreshTokenTimer ) ;
105+ }
106+
107+ console . log ( "Tile Embed Token will be updated in " + updateAfterMilliSeconds + " milliseconds." ) ;
108+ TileRefreshTokenTimer = setTimeout ( function ( ) {
109+ FetchUrlIntoSession ( tileUrl , true /* updateCurrentToken */ ) ;
110+ } , updateAfterMilliSeconds ) ;
111+ }
84112}
85113
86114function LoadSampleReportIntoSession ( ) {
@@ -98,6 +126,11 @@ function LoadSampleDashboardIntoSession() {
98126 return FetchUrlIntoSession ( dashboardUrl , false /* updateCurrentToken */ ) ;
99127}
100128
129+ function LoadSampleTileIntoSession ( ) {
130+ SetSession ( SessionKeys . EntityType , EntityType . Tile ) ;
131+ return FetchUrlIntoSession ( tileUrl , false /* updateCurrentToken */ ) ;
132+ }
133+
101134function OpenEmbedStepWithSample ( entityType ) {
102135 SetSession ( SessionKeys . EntityType , entityType ) ;
103136
@@ -111,6 +144,11 @@ function OpenEmbedStepWithSample(entityType) {
111144 SetSession ( SessionKeys . IsSampleDashboard , true ) ;
112145 OpenEmbedStep ( EmbedViewMode , EntityType . Dashboard ) ;
113146 }
147+ else
148+ {
149+ SetSession ( SessionKeys . IsSampleTile , true ) ;
150+ OpenEmbedStep ( EmbedViewMode , EntityType . Tile )
151+ }
114152}
115153
116154function OpenEmbedStepCreateWithSample ( ) {
@@ -127,9 +165,10 @@ function OpenEmbedStepFromUserSettings() {
127165 OpenEmbedStep ( EmbedViewMode , EntityType . Report ) ;
128166}
129167
130- function setSession ( accessToken , embedUrl , embedId )
168+ function setSession ( accessToken , embedUrl , embedId , dashboardId )
131169{
132170 SetSession ( SessionKeys . AccessToken , accessToken ) ;
133171 SetSession ( SessionKeys . EmbedUrl , embedUrl ) ;
134172 SetSession ( SessionKeys . EmbedId , embedId ) ;
173+ SetSession ( SessionKeys . DashboardId , dashboardId ) ;
135174}
0 commit comments