Add collapsible version on github io. (#982)

This commit is contained in:
Sima Zhu 2020-11-14 17:13:22 -08:00 committed by GitHub
parent be87eb5de6
commit 8aebd51c22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 70 additions and 13 deletions

View File

@ -255,6 +255,31 @@ article h4 {
.navbar-inverse .navbar-link:hover {
color: #ecdbff;
}
.versionarrow {
margin-left: 0.8em;
margin-top: -1.5em;
margin-bottom: -1em;
padding: 1em;
}
.versionarrow::before {
position: absolute;
content: '';
width: 0;
height: 0;
border: .5em solid transparent;
border-left-color: gray;
transform-origin: 0 50%;
transition: transform .1s;
margin-top: 0.2em;
}
.versionarrow.disable {
text-decoration: line-through;
}
.versionarrow.down::before {
transform: rotate(90deg);
margin-top: 0em;
transition: transform .1s;
}
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {

View File

@ -100,25 +100,57 @@ function populateOptions(selector, packageName) {
})
}
function httpGetLatestAsync(targetUrl, latestVersions, packageName) {
httpGetAsync(targetUrl, function (responseText) {
if (responseText) {
version = responseText.match(/[^\r\n]+/g)
$(latestVersions).append('<li><a href="' + getPackageUrl(SELECTED_LANGUAGE, packageName, version) + '" target="_blank">' + version + '</a></li>')
}
})
}
function populateIndexList(selector, packageName) {
url = BLOB_URI_PREFIX + packageName + "/versioning/versions"
var url = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/versions"
var latestGAUrl = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/latest-ga"
var latestPreviewUrl = "https://azuresdkdocs.blob.core.windows.net/$web/" + SELECTED_LANGUAGE + "/" + packageName + "/versioning/latest-preview"
var latestVersions = document.createElement("ul")
httpGetLatestAsync(latestGAUrl, latestVersions, packageName)
httpGetLatestAsync(latestPreviewUrl, latestVersions, packageName)
var publishedVersions = $('<ul style="display: none;"></ul>')
var collapsible = $('<div class="versionarrow">&nbsp;&nbsp;&nbsp;Other versions</div>')
httpGetAsync(url, function (responseText) {
$(selector).after(latestVersions)
$(latestVersions).after(collapsible)
$(collapsible).after(publishedVersions)
var publishedversions = document.createElement("ul")
if (responseText) {
options = responseText.match(/[^\r\n]+/g)
for (var i in options) {
$(publishedversions).append('<li><a href="' + getPackageUrl(SELECTED_LANGUAGE, packageName, options[i]) + '" target="_blank">' + options[i] + '</a></li>')
// Add collapsible arrow on other versions.
$(collapsible).on('click', function(event) {
event.preventDefault();
if (collapsible.hasClass('disable')) {
return
}
$(this).toggleClass('down')
if ($(this).hasClass('down')) {
if (!$(selector).hasClass('loaded')){
httpGetAsync(url, function (responseText) {
if (responseText) {
options = responseText.match(/[^\r\n]+/g)
for (var i in options) {
$(publishedVersions).append('<li><a href="' + getPackageUrl(SELECTED_LANGUAGE, packageName, options[i]) + '" target="_blank">' + options[i] + '</a></li>')
}
}
else {
$(publishedVersions).append('<li>No discovered versions present in blob storage.</li>')
}
$(selector).addClass("loaded")
})
}
$(publishedVersions).show()
} else {
$(publishedVersions).hide()
}
else {
$(publishedversions).append('<li>No discovered versions present in blob storage.</li>')
}
$(selector).after(publishedversions)
})
});
}
function getPackageUrl(language, package, version) {