1+ <!-- Code for version selectors --> 
2+ 
3+ < script > 
4+     window . onload  =  function ( ) { 
5+         var  currentUrl  =  window . location . href 
6+         const  regex_kubernetes  =  new  RegExp ( '/docs/latest/operate/kubernetes/.*' ) 
7+         const  regex_rs  =  new  RegExp ( '/docs/latest/operate/rs/.*' ) 
8+ 
9+         if  ( regex_kubernetes . test ( currentUrl ) ) { 
10+             // unhide kubernetes version selector 
11+             document . getElementById (  'versionSelectorKubernetes'  ) . style . display  =  '' ; 
12+         } 
13+         else  if  ( regex_rs . test ( currentUrl ) )  { 
14+             // unhide rs version selector 
15+             document . getElementById (  'versionSelectorRs'  ) . style . display  =  '' ; 
16+         } 
17+     } 
18+ 
19+     function  _setSelectedVersion ( product ,  ver )  { 
20+         if  ( ver )  { 
21+             var  i  =  document . getElementById ( product  +  '-version-select-'  +  ver ) ; 
22+             if  ( i )  { 
23+                 i . classList . toggle ( 'selected-version' ) ; 
24+             } 
25+         } 
26+     } 
27+ 
28+     function  _getVersion ( product )  { 
29+         return  document . getElementById ( "versionSelector"  +  product  +  "Value" ) . innerText 
30+     } 
31+ 
32+     function  _openVersionSelector ( product )  { 
33+         var  productLowercase  =  product . toLowerCase ( ) 
34+ 
35+         document . getElementById ( "versionSelector"  +  product ) . classList . toggle ( 'open' ) ; 
36+ 
37+         // get currently selected version 
38+         var  currentVersion  =  _getVersion ( product ) 
39+ 
40+         if  ( currentVersion  !=  "latest" )  { 
41+             currentVersion  =  currentVersion . substring ( 1 ) 
42+         } 
43+ 
44+         // get current url 
45+         var  currentUrl  =  window . location . href 
46+ 
47+         // get version dropdown children 
48+         var  versionsDropdown  =  document . getElementById ( "versionDropdown"  +  product ) . children 
49+         var  versionsDropdownLength  =  versionsDropdown . length 
50+ 
51+         const  regex  =  new  RegExp ( String . raw `^.+\/operate\/${ productLowercase }  , "g" ) ; 
52+         const  versionRegex  =  / ^ ( \/ \d + \. \d + (?: \. \d + ) ? (?: \- \d + ) ? ) ? / g; 
53+ 
54+         // for each version in dropdown, edit its href link 
55+         for  ( var  i =  0 ;  i  <  versionsDropdownLength ;  i  ++ )  { 
56+             if  ( versionsDropdown [ i ] . innerText  ==  "latest" )  { 
57+                 url_start  =  versionsDropdown [ i ] . href . match ( regex ) 
58+                 url_end  =  currentUrl . replace ( regex , "" ) . replace ( versionRegex , "" ) 
59+                 versionsDropdown [ i ] . href  =  url_start  +  url_end 
60+             } 
61+             else  { 
62+                 var  versionDropdown  =  versionsDropdown [ i ] . innerText . substring ( 1 ) 
63+                 url_start  =  versionsDropdown [ i ] . href . match ( regex ) 
64+                 url_end  =  currentUrl . replace ( regex , "" ) . replace ( versionRegex , ( "/"  +  versionDropdown ) ) 
65+                 versionsDropdown [ i ] . href  =  url_start  +  url_end 
66+             } 
67+         } 
68+     } 
69+ 
70+     window . onclick  =  function  ( e )  { 
71+         if  ( ! e . target . matches ( '.version-selector-control' ) )  { 
72+             var  d  =  document . getElementsByClassName ( 'menu__version-selector' ) ; 
73+             var  i ; 
74+             for  ( i  =  0 ;  i  <  d . length ;  i ++ )  { 
75+                 if  ( d [ i ] . classList . contains ( 'open' ) )  { 
76+                     d [ i ] . classList . remove ( 'open' ) ; 
77+                 } 
78+             } 
79+         } 
80+     } 
81+ </ script > 
0 commit comments