Skip to content

Commit eac2186

Browse files
committed
Properly map versions
1 parent babca12 commit eac2186

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

web/versioning.js

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,28 @@ var DOC_SORTED_VERSIONS = [];
44
var DOC_LATEST_VERSION = null;
55

66
function versionSplit(v) {
7-
var nparts = v.split(".", 3);
7+
var parts = v.split(".", 4);
88

9-
if (nparts.length != 3) {
9+
if (parts.length < 3) {
1010
throw new Error("Invalid version: " + v);
1111
}
1212

13-
var last = nparts[2];
14-
var ix = last.search(/[^0-9]/);
15-
var suffix = "";
16-
if (ix >= 0) {
17-
nparts[2] = last.substring(0, ix);
18-
suffix = last.substring(ix);
13+
var nparts = [];
14+
for (var i = 0; i < 3; i++) {
15+
nparts.push(parseInt(parts[i]));
1916
}
2017

21-
var version = nparts[0] + "." + nparts[1] + "." + nparts[2];
18+
var version = parts.slice(0, 3).join(".");
2219

23-
for (var i = 0; i < 3; i++) {
24-
nparts[i] = parseInt(nparts[i]);
25-
}
20+
var suffix;
2621

22+
if (parts.length == 3) {
23+
suffix = "";
24+
}
25+
else {
26+
suffix = parts[3];
27+
}
28+
2729
return {version: version, nparts: nparts, suffix: suffix, raw: v};
2830
}
2931

@@ -69,7 +71,7 @@ function initVersions() {
6971
}
7072

7173
for (var key in vs) {
72-
vs[key].all.sort((v1, v2) => {return v1.suffix.localeCompare(v2.suffix);});
74+
vs[key].all.sort((v1, v2) => {return -v1.suffix.localeCompare(v2.suffix);});
7375
vs[key].latest = vs[key].all[0];
7476
DOC_SORTED_VERSIONS.push(vs[key].latest);
7577
}
@@ -102,18 +104,24 @@ function splitLocation() {
102104
}
103105
}
104106
else {
105-
return [url, "unknown", ""];
107+
return [url, "", ""];
106108
}
107109
}
108110

109111
function setVersion() {
110112
var s = splitLocation();
111113

112-
window.location = s[0] + "/" + this.version + "/" + s[2];
114+
window.location = s[0] + "/" + DOC_VERSIONS[this.version].latest.raw + "/" + s[2];
113115
}
114116

115117
function getCurrentVersion() {
116-
return splitLocation()[1];
118+
v = splitLocation()[1];
119+
if (v == "") {
120+
return v;
121+
}
122+
else {
123+
return versionSplit(v).version;
124+
}
117125
}
118126

119127
initVersions();

0 commit comments

Comments
 (0)