Skip to content

Commit 0f61e2c

Browse files
authored
Add collapsible versions in github io (Azure#16948)
1 parent 9ee292a commit 0f61e2c

File tree

2 files changed

+71
-16
lines changed

2 files changed

+71
-16
lines changed

doc/ApiDocGeneration/templates/matthews/styles/main.css

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,31 @@ article h4 {
255255
.navbar-inverse .navbar-link:hover {
256256
color: #ecdbff;
257257
}
258-
258+
.versionarrow {
259+
margin-left: 0.8em;
260+
margin-top: -1.5em;
261+
margin-bottom: -1em;
262+
padding: 1em;
263+
}
264+
.versionarrow::before {
265+
position: absolute;
266+
content: '';
267+
width: 0;
268+
height: 0;
269+
border: .5em solid transparent;
270+
border-left-color: gray;
271+
transform-origin: 0 50%;
272+
transition: transform .1s;
273+
margin-top: 0.2em;
274+
}
275+
.versionarrow.disable {
276+
text-decoration: line-through;
277+
}
278+
.versionarrow.down::before {
279+
transform: rotate(90deg);
280+
margin-top: 0em;
281+
transition: transform .1s;
282+
}
259283
@media (max-width: 767px) {
260284
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
261285
color: #ffffff;

doc/ApiDocGeneration/templates/matthews/styles/main.js

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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">&nbsp;&nbsp;&nbsp;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

150181
function getPackageUrl(language, package, version) {

0 commit comments

Comments
 (0)