@@ -126,25 +126,56 @@ function populateOptions(selector, packageName) {
126126 } )
127127}
128128
129-
130- function populateIndexList ( selector , packageName ) {
131- url = BLOB_URI_PREFIX + packageName + "/versioning/versions"
132-
133- httpGetAsync ( url , function ( responseText ) {
134-
135- var publishedversions = document . createElement ( "ul" )
129+ function httpGetLatestAsync ( targetUrl , latestVersions , packageName ) {
130+ httpGetAsync ( targetUrl , function ( responseText ) {
136131 if ( responseText ) {
137- options = responseText . match ( / [ ^ \r \n ] + / g)
132+ version = responseText . match ( / [ ^ \r \n ] + / g)
133+ $ ( latestVersions ) . append ( '<li><a href="' + getPackageUrl ( SELECTED_LANGUAGE , packageName , version ) + '" target="_blank">' + version + '</a></li>' )
134+ }
135+ } )
136+ }
138137
139- for ( var i in options ) {
140- $ ( publishedversions ) . append ( '<li><a href="' + getPackageUrl ( SELECTED_LANGUAGE , packageName , options [ i ] ) + '" target="_blank">' + options [ i ] + '</a></li>' )
141- }
138+ function populateIndexList ( selector , packageName ) {
139+ var url = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/versions"
140+ var latestGAUrl = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/latest-ga"
141+ var latestPreviewUrl = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/latest-preview"
142+ var latestVersions = document . createElement ( "ul" )
143+ httpGetLatestAsync ( latestGAUrl , latestVersions , packageName )
144+ httpGetLatestAsync ( latestPreviewUrl , latestVersions , packageName )
145+ var publishedVersions = $ ( '<ul style="display: none;"></ul>' )
146+ var collapsible = $ ( '<div class="versionarrow"> Other versions</div>' )
147+
148+ $ ( selector ) . after ( latestVersions )
149+ $ ( latestVersions ) . after ( collapsible )
150+ $ ( collapsible ) . after ( publishedVersions )
151+ // Add collapsible arrows on versioned docs.
152+ $ ( collapsible ) . on ( 'click' , function ( event ) {
153+ event . preventDefault ( ) ;
154+ if ( collapsible . hasClass ( 'disable' ) ) {
155+ return
142156 }
143- else {
144- $ ( publishedversions ) . append ( '<li>No discovered versions present in blob storage.</li>' )
157+ $ ( this ) . toggleClass ( 'down' )
158+ if ( $ ( this ) . hasClass ( 'down' ) ) {
159+ if ( ! $ ( selector ) . hasClass ( 'loaded' ) ) {
160+ httpGetAsync ( url , function ( responseText ) {
161+ if ( responseText ) {
162+ options = responseText . match ( / [ ^ \r \n ] + / g)
163+ for ( var i in options ) {
164+ $ ( publishedVersions ) . append ( '<li><a href="' + getPackageUrl ( SELECTED_LANGUAGE , packageName , options [ i ] ) + '" target="_blank">' + options [ i ] + '</a></li>' )
165+
166+ }
167+ }
168+ else {
169+ $ ( publishedVersions ) . append ( '<li>No discovered versions present in blob storage.</li>' )
170+ }
171+ $ ( selector ) . addClass ( "loaded" )
172+ } )
173+ }
174+ $ ( publishedVersions ) . show ( )
175+ } else {
176+ $ ( publishedVersions ) . hide ( )
145177 }
146- $ ( selector ) . after ( publishedversions )
147- } )
178+ } ) ;
148179}
149180
150181function getPackageUrl ( language , package , version ) {
0 commit comments