11const active_class = 'active' ;
2- const active_li = 'steps-li-active' ;
2+ const active_steps_li = 'steps-li-active' ;
3+ const active_tabs_li = 'tabs-li-active' ;
34
45const EmbedViewMode = "view" ;
56const EmbedEditMode = "edit" ;
67const EmbedCreateMode = "create" ;
78
89const runEmbedCodeTimeout = 500 ;
910
10- function OpenSelectStep ( ) {
11+ function OpenSamplesStep ( ) {
1112 $ ( '#steps-ul a' ) . removeClass ( active_class ) ;
12- $ ( ".steps-li-active" ) . removeClass ( active_li ) ;
13+ $ ( ".steps-li-active" ) . removeClass ( active_steps_li ) ;
1314
14- $ ( "#steps-select a" ) . addClass ( active_class ) ;
15- $ ( "#steps-select " ) . addClass ( active_li ) ;
15+ $ ( "#steps-samples a" ) . addClass ( active_class ) ;
16+ $ ( "#steps-samples " ) . addClass ( active_steps_li ) ;
1617
1718 // Hide Embed view in authorization step.
18- $ ( "#select -step-wrapper" ) . show ( ) ;
19+ $ ( "#samples -step-wrapper" ) . show ( ) ;
1920 $ ( "#embed-and-interact-steps-wrapper" ) . hide ( ) ;
2021}
2122
22- function OpenEmbedStepFromNavPane ( )
23+ function OpenCodeStepFromNavPane ( )
2324{
2425 var mode = GetSession ( SessionKeys . EmbedMode ) ;
2526 var entityType = GetSession ( SessionKeys . EntityType ) ;
2627 var tokenType = GetSession ( SessionKeys . TokenType ) ;
2728
28- OpenEmbedStep ( mode , entityType , tokenType ) ;
29+ OpenCodeStep ( mode , entityType , tokenType ) ;
2930}
3031
31- function OpenEmbedStep ( mode , entityType , tokenType ) {
32+ function OpenCodeStep ( mode , entityType , tokenType ) {
3233 $ ( '#steps-ul a' ) . removeClass ( active_class ) ;
33- $ ( ".steps-li-active" ) . removeClass ( active_li ) ;
34+ $ ( ".steps-li-active" ) . removeClass ( active_steps_li ) ;
3435
35- $ ( '#steps-embed a' ) . addClass ( active_class ) ;
36- $ ( '#steps-embed ' ) . addClass ( active_li ) ;
36+ $ ( '#steps-code a' ) . addClass ( active_class ) ;
37+ $ ( '#steps-code ' ) . addClass ( active_steps_li ) ;
3738
3839 // Hide Embed view in authorization step.
39- $ ( "#select -step-wrapper" ) . hide ( ) ;
40+ $ ( "#samples -step-wrapper" ) . hide ( ) ;
4041 $ ( "#embed-and-interact-steps-wrapper" ) . show ( ) ;
4142
4243 let containers = $ ( ".iframeContainer" ) ;
@@ -53,7 +54,15 @@ function OpenEmbedStep(mode, entityType, tokenType) {
5354 $ ( activeContainer ) . attr ( 'id' , containerID ) ;
5455 $ ( activeContainer ) . addClass ( active_class ) ;
5556
56- const widthHeightRatio = 0.4 ;
57+ $ ( '.' + active_tabs_li ) . removeClass ( active_tabs_li ) ;
58+
59+ $ ( '#embed-tab' ) . addClass ( active_tabs_li ) ;
60+ $ ( '#interact-tab' ) . removeClass ( active_tabs_li ) ;
61+
62+ LoadEmbedSettings ( mode , entityType , tokenType ) ;
63+ }
64+
65+ function LoadEmbedSettings ( mode , entityType , tokenType ) {
5766 if ( entityType == EntityType . Report )
5867 {
5968 $ ( "#settings" ) . load ( "settings_embed_report.html" , function ( ) {
@@ -86,18 +95,40 @@ function OpenEmbedStep(mode, entityType, tokenType) {
8695 }
8796}
8897
89- function OpenInteractStep ( ) {
90- $ ( '#steps-ul a' ) . removeClass ( active_class ) ;
91- $ ( ".steps-li-active" ) . removeClass ( active_li ) ;
98+ function OpenEmbedTab ( ) {
99+ if ( $ ( '#embed-tab' ) . hasClass ( active_tabs_li ) ) {
100+ return ;
101+ }
92102
93- $ ( '#steps-interact a' ) . addClass ( active_class ) ;
94- $ ( '#steps-interact' ) . addClass ( active_li ) ;
103+ $ ( '.' + active_tabs_li ) . removeClass ( active_tabs_li ) ;
95104
96- // Hide Embed view in authorization step.
97- $ ( "#select-step-wrapper" ) . hide ( ) ;
98- $ ( "#embed-and-interact-steps-wrapper" ) . show ( ) ;
105+ $ ( '#embed-tab' ) . addClass ( active_tabs_li ) ;
99106
107+ var mode = GetSession ( SessionKeys . EmbedMode ) ;
100108 var entityType = GetSession ( SessionKeys . EntityType ) ;
109+ var tokenType = GetSession ( SessionKeys . TokenType ) ;
110+
111+ LoadEmbedSettings ( mode , entityType , tokenType ) ;
112+ }
113+
114+ function isInteractStepEnabled ( entityType ) {
115+ var classPrefix = getEmbedContainerClassPrefix ( entityType ) ;
116+ var activeContainer = classPrefix + ( $ ( ".desktop-view" ) . hasClass ( active_class ) ? 'Container' : 'MobileContainer' ) ;
117+
118+ // Check if active container has an iframe
119+ return $ ( activeContainer + " iframe" ) . length > 0 ;
120+ }
121+
122+ function OpenInteractTab ( ) {
123+ var entityType = GetSession ( SessionKeys . EntityType ) ;
124+ // Interact step is disabled unless active container has an iframe
125+ if ( ! isInteractStepEnabled ( entityType ) ) {
126+ // TODO: SHOW TOOLTIP "Press the run button in order to embed, before interacting"
127+ return ;
128+ }
129+
130+ $ ( '.' + active_tabs_li ) . removeClass ( active_tabs_li ) ;
131+ $ ( '#interact-tab' ) . addClass ( active_tabs_li ) ;
101132
102133 if ( entityType == EntityType . Tile )
103134 {
@@ -386,7 +417,7 @@ function EmbedAreaDesktopView() {
386417 $ ( classPrefix + 'MobileContainer' ) . removeClass ( active_class ) ;
387418 $ ( classPrefix + 'Container' ) . addClass ( active_class ) ;
388419
389- if ( ! $ ( '#steps- embed' ) . hasClass ( "steps -li-active" ) ) {
420+ if ( ! $ ( '#embed-tab ' ) . hasClass ( "tabs -li-active" ) ) {
390421 return ;
391422 }
392423
@@ -424,7 +455,7 @@ function EmbedAreaMobileView() {
424455 $ ( classPrefix + 'Container' ) . removeClass ( active_class ) ;
425456 $ ( classPrefix + 'MobileContainer' ) . addClass ( active_class ) ;
426457
427- if ( ! $ ( '#steps- embed' ) . hasClass ( "steps -li-active" ) ) {
458+ if ( ! $ ( '#embed-tab ' ) . hasClass ( "tabs -li-active" ) ) {
428459 return ;
429460 }
430461
0 commit comments