mirror of
https://github.com/godotengine/godot-interactive-changelog.git
synced 2025-12-31 01:49:28 +03:00
Add support for linking directly to a specific version
This commit is contained in:
@@ -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`
|
||||
<div class="version-list">
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user