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