change: move version display to

This commit is contained in:
Julian Krauser 2025-02-07 13:23:53 +01:00
parent 4a5aec36dd
commit 117372af39
5 changed files with 49 additions and 51 deletions

View file

@ -12,11 +12,6 @@
:link="{ name: 'account-administration' }"
:active="activeRouteName == 'account-administration'"
/>
<RoutingLink
title="Versions-Verwaltung"
:link="{ name: 'account-version' }"
:active="activeRouteName == 'account-version'"
/>
</template>
<template #list>
<RoutingLink title="Mein Account" :link="{ name: 'account-me' }" :active="activeRouteName == 'account-me'" />

View file

@ -10,7 +10,17 @@
<div class="h-1/2 flex flex-col gap-2 p-2 border border-gray-300 rounded-t-md">
<div class="flex flex-row justify-between border-b-2 border-gray-300">
<h1 class="text-xl font-semibold">Client</h1>
<p>V{{ clientVersion }}</p>
<p>
V{{ clientVersion }} ({{
new Date(clientVersionRelease).toLocaleDateString("de", {
month: "2-digit",
day: "2-digit",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
})
}})
</p>
</div>
<div class="grow flex flex-col gap-4 overflow-y-scroll">
<div v-for="version in newerClientVersions">
@ -18,7 +28,7 @@
<span class="font-semibold text-lg">V{{ version.title }}</span> vom
{{
new Date(version.isoDate).toLocaleDateString("de", {
month: "long",
month: "2-digit",
day: "2-digit",
year: "numeric",
})
@ -34,7 +44,17 @@
<div class="h-1/2 flex flex-col gap-2 p-2 border border-gray-300 rounded-b-md">
<div class="flex flex-row justify-between border-b-2 border-gray-300">
<h1 class="text-xl font-semibold">Server</h1>
<p>V{{ serverVersion }}</p>
<p>
V{{ serverVersion }} ({{
new Date(serverVersionRelease).toLocaleDateString("de", {
month: "2-digit",
day: "2-digit",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
})
}})
</p>
</div>
<div class="grow flex flex-col gap-2 overflow-y-scroll">
<div v-for="version in newerServerVersions">
@ -42,7 +62,7 @@
<span class="font-semibold text-lg">V{{ version.title }}</span> vom
{{
new Date(version.isoDate).toLocaleDateString("de", {
month: "long",
month: "2-digit",
day: "2-digit",
year: "numeric",
})
@ -63,8 +83,8 @@
<script setup lang="ts">
import { defineComponent } from "vue";
import MainTemplate from "@/templates/Main.vue";
import clientPackage from "../../../package.json";
import type { Releases } from "../../viewmodels/version.models";
import clientPackage from "../../../../../package.json";
import type { Releases } from "@/viewmodels/version.models";
</script>
<script lang="ts">
@ -80,11 +100,19 @@ export default defineComponent({
computed: {
newerServerVersions() {
if (!this.serverRss) return [];
return this.serverRss.items.filter((i) => this.compareVersionStrings(this.serverVersion, i.title) < 0);
return this.serverRss.items.filter((i) => new Date(i.isoDate) > new Date(this.serverVersionRelease));
},
newerClientVersions() {
if (!this.clientRss) return [];
return this.clientRss.items.filter((i) => this.compareVersionStrings(this.clientVersion, i.title) < 0);
return this.clientRss.items.filter((i) => new Date(i.isoDate) > new Date(this.clientVersionRelease));
},
serverVersionRelease() {
if (!this.serverRss) return "";
return this.serverRss.items.find((i) => i.title == this.serverVersion)?.isoDate ?? "";
},
clientVersionRelease() {
if (!this.clientRss) return "";
return this.clientRss.items.find((i) => i.title == this.clientVersion)?.isoDate ?? "";
},
},
mounted() {
@ -102,7 +130,7 @@ export default defineComponent({
})
.catch(() => {});
},
async getServerFeed() {
getServerFeed() {
this.$http
.get("/server/serverrss")
.then((res) => {
@ -110,7 +138,7 @@ export default defineComponent({
})
.catch(() => {});
},
async getClientFeed() {
getClientFeed() {
this.$http
.get("/server/clientrss")
.then((res) => {
@ -118,37 +146,6 @@ export default defineComponent({
})
.catch(() => {});
},
compareVersionStrings(activeVersion: string, compareVersion: string) {
const parseVersion = (version: string) => {
const [main, tag] = version.split("-");
const [major, minor, patch] = main.split(".").map(Number);
return { major, minor, patch, tag };
};
if (!activeVersion || !compareVersion) return 0;
const versionA = parseVersion(activeVersion);
const versionB = parseVersion(compareVersion);
if (versionA.major !== versionB.major) {
return versionA.major - versionB.major;
}
if (versionA.minor !== versionB.minor) {
return versionA.minor - versionB.minor;
}
if (versionA.patch !== versionB.patch) {
return versionA.patch - versionB.patch;
}
if (versionA.tag && !versionB.tag) return -1;
if (!versionA.tag && versionB.tag) return 1;
if (versionA.tag && versionB.tag) {
const tags = ["alpha", "beta", ""];
return tags.indexOf(versionA.tag) - tags.indexOf(versionB.tag);
}
return 0;
},
},
});
</script>