Compare commits

..

3 Commits

3 changed files with 74 additions and 13 deletions

View File

@ -0,0 +1,10 @@
import currentVersion from "~/versionTag";
export default async function newestVersion() {
const current = currentVersion();
const req = await fetch("/api/version");
const res = await req.json();
if (current !== res.version) {
return false;
}
return true;
}

View File

@ -47,6 +47,9 @@ import { gsap } from "gsap";
import confetti from "js-confetti"; import confetti from "js-confetti";
import translate from "translate"; import translate from "translate";
// Import Scripts
import checkAppVersion from "~/components/checkAppVersion";
// Import Windows // Import Windows
import UserWindow from "~/components/app/windows/user.vue"; import UserWindow from "~/components/app/windows/user.vue";
import SourcesWindow from "~/components/app/windows/sources.vue"; import SourcesWindow from "~/components/app/windows/sources.vue";
@ -99,6 +102,7 @@ const applyForTranslation = ref(false);
const langPrefDifferent = ref(false); const langPrefDifferent = ref(false);
const notLoggedInState = ref(false); const notLoggedInState = ref(false);
const translateProvider = ref(""); const translateProvider = ref("");
const newUpdate = ref(false);
// Key Data // Key Data
const menuItems = [ const menuItems = [
@ -620,6 +624,12 @@ onMounted(async () => {
translateProvider.value = loadUserInfoData.translate.provider || "google"; translateProvider.value = loadUserInfoData.translate.provider || "google";
console.log(langPrefDifferent); console.log(langPrefDifferent);
});*/ });*/
// Get ghe newest update
const newUpdateTimer = 1000 * 60 * 3; // Check for thime every 3 min.
setInterval(async () => {
newUpdate.value = await checkAppVersion();
}, newUpdateTimer);
</script> </script>
<template> <template>
<div v-if="changeLangAnimation"> <div v-if="changeLangAnimation">
@ -745,6 +755,35 @@ onMounted(async () => {
</DialogFooter> </DialogFooter>
</DialogContent> </DialogContent>
</Dialog> </Dialog>
<!--New Update-->
<Dialog v-model:open="langPrefDifferent">
<DialogContent class="!border-0 !bg-black !rounded">
<DialogHeader>
<DialogTitle>There is a new Update!</DialogTitle>
<DialogDescription>
Click notify later to save your current tasks & update the page.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button
@click="
() => {
newUpdate.value = false;
}
"
variant="outline"
>
Notify later
</Button>
<Button
@click="() => window.location.reload('/desktop')"
variant="outline"
>
Update
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
<!--Window system--> <!--Window system-->
<Transition> <Transition>
<div> <div>

View File

@ -38,20 +38,32 @@ function cleanUpSlug(orgslug: string) {
} }
// Archive articles. For future use? // Archive articles. For future use?
async function storeArticlesIfItDoesNotExists(data, RequestId) { function storeArticlesIfItDoesNotExists(data, RequestId) {
try {
setImmediate(async () => {
try {
const checkDataIsInDatabase = await sql` const checkDataIsInDatabase = await sql`
SELECT * FROM news_articles SELECT uuid FROM news_articles
WHERE jsondata = ${data} WHERE article_id = ${RequestId}
LIMIT 1
`; `;
if (checkDataIsInDatabase.length > 0) { if (checkDataIsInDatabase.length > 0) {
console.log(`Article ${RequestId} already exists in database`);
return; return;
} }
const storeData = await sql` const jsonData = JSON.stringify(data);
await sql`
INSERT INTO news_articles (uuid, article_id, jsondata) INSERT INTO news_articles (uuid, article_id, jsondata)
VALUES (${uuidv4()}, ${RequestId}, ${data}::JSON) VALUES (${uuidv4()}, ${RequestId}, ${jsonData}::JSON)
`; `;
console.log(storeData); console.log(`Successfully archived article ${RequestId} in background`);
return; } catch (error) {
console.error("Failed to archive article in background:", error);
}
});
} catch (error) {
console.error("Failed to initiate background archiving:", error);
}
} }
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {