diff --git a/src/paths/index/components/versions/VersionList.js b/src/paths/index/components/versions/VersionList.js
index ff43e31..0b4f82a 100644
--- a/src/paths/index/components/versions/VersionList.js
+++ b/src/paths/index/components/versions/VersionList.js
@@ -103,6 +103,20 @@ export default class VersionList extends LitElement {
}
}
+ update(changedProperties) {
+ // Check if the version list was set, this should only happen once.
+ if (changedProperties.size > 0) {
+ const oldVersions = changedProperties.get("versions");
+ // When this happens, we should unfold the selected version,
+ // because it came from the URL slug.
+ if (typeof oldVersions === "undefined" && typeof this.versions !== "undefined") {
+ this._toggleEntry("main", this.selectedVersion);
+ }
+ }
+
+ super.update(changedProperties);
+ }
+
render() {
return html`
diff --git a/src/paths/index/entry.js b/src/paths/index/entry.js
index 129123c..6172f40 100644
--- a/src/paths/index/entry.js
+++ b/src/paths/index/entry.js
@@ -86,12 +86,32 @@ export default class EntryComponent extends LitElement {
if (data) {
this._versions = data;
+ let releaseNames = {};
this._versions.forEach((version) => {
+ releaseNames[version.name] = [];
+
version.commit_log = [];
version.releases.forEach((release) => {
release.commit_log = [];
+
+ releaseNames[version.name].push(release.name);
});
});
+
+ const requested_slug = greports.util.getHistoryHash();
+ if (requested_slug !== "") {
+ const slug_bits = requested_slug.split("-");
+
+ if (slug_bits[0] !== "" && typeof releaseNames[slug_bits[0]] !== "undefined") {
+ this._selectedVersion = slug_bits[0];
+
+ if (slug_bits.length > 1 && releaseNames[slug_bits[0]].indexOf(slug_bits[1]) >= 0) {
+ this._selectedRelease = slug_bits[1];
+ } else {
+ this._selectedRelease = "";
+ }
+ }
+ }
} else {
this._versions = [];
}
@@ -179,6 +199,11 @@ export default class EntryComponent extends LitElement {
this._selectedRelease = event.detail.release;
this.requestUpdate();
+ let versionString = event.detail.version;
+ if (event.detail.release !== "") {
+ versionString += `-${event.detail.release}`;
+ }
+ greports.util.setHistoryHash(versionString);
window.scrollTo(0, 0);
}