Moved away from SSR to regular Node API server.

This commit is contained in:
Cameron Redmore 2025-04-25 12:50:44 +01:00
parent 9aea69c7be
commit 83d93aefc0
30 changed files with 939 additions and 1024 deletions

View file

@ -1,20 +1,20 @@
<template>
<q-page padding>
<div
class="q-gutter-md"
style="max-width: 800px; margin: auto;"
<div
class="q-gutter-md"
style="max-width: 800px; margin: auto;"
>
<h5 class="q-mt-none q-mb-md">
Settings
<h5 class="q-mt-none q-mb-md">
Settings
</h5>
<q-card
flat
bordered
<q-card
flat
bordered
>
<q-card-section>
<div class="text-h6">
Mantis Summary Prompt
<div class="text-h6">
Mantis Summary Prompt
</div>
<div class="text-caption text-grey q-mb-sm">
Edit the prompt used to generate Mantis summaries. Use $DATE and $MANTIS_TICKETS as placeholders.
@ -40,13 +40,13 @@
</q-card-actions>
</q-card>
<q-card
flat
bordered
<q-card
flat
bordered
>
<q-card-section>
<div class="text-h6">
Email Summary Prompt
<div class="text-h6">
Email Summary Prompt
</div>
<div class="text-caption text-grey q-mb-sm">
Edit the prompt used to generate Email summaries. Use $EMAIL_DATA as a placeholder for the JSON email array.
@ -70,7 +70,7 @@
:disable="!emailPrompt || loadingEmailPrompt"
/>
</q-card-actions>
</q-card>
</q-card>
</div>
</q-page>
</template>
@ -78,7 +78,7 @@
<script setup>
import { ref, onMounted } from 'vue';
import { useQuasar } from 'quasar';
import axios from 'axios';
import axios from 'boot/axios';
const $q = useQuasar();
@ -86,15 +86,15 @@ const mantisPrompt = ref('');
const loadingPrompt = ref(false);
const savingPrompt = ref(false);
const fetchMantisPrompt = async() =>
const fetchMantisPrompt = async() =>
{
loadingPrompt.value = true;
try
try
{
const response = await axios.get('/api/settings/mantisPrompt');
mantisPrompt.value = response.data.value || ''; // Handle case where setting might not exist yet
}
catch (error)
}
catch (error)
{
console.error('Error fetching Mantis prompt:', error);
$q.notify({
@ -102,17 +102,17 @@ const fetchMantisPrompt = async() =>
message: 'Failed to load Mantis prompt setting.',
icon: 'report_problem'
});
}
finally
}
finally
{
loadingPrompt.value = false;
}
};
const saveMantisPrompt = async() =>
const saveMantisPrompt = async() =>
{
savingPrompt.value = true;
try
try
{
await axios.put('/api/settings/mantisPrompt', { value: mantisPrompt.value });
$q.notify({
@ -120,8 +120,8 @@ const saveMantisPrompt = async() =>
message: 'Mantis prompt updated successfully.',
icon: 'check_circle'
});
}
catch (error)
}
catch (error)
{
console.error('Error saving Mantis prompt:', error);
$q.notify({
@ -129,8 +129,8 @@ const saveMantisPrompt = async() =>
message: 'Failed to save Mantis prompt setting.',
icon: 'report_problem'
});
}
finally
}
finally
{
savingPrompt.value = false;
}
@ -140,15 +140,15 @@ const emailPrompt = ref('');
const loadingEmailPrompt = ref(false);
const savingEmailPrompt = ref(false);
const fetchEmailPrompt = async() =>
const fetchEmailPrompt = async() =>
{
loadingEmailPrompt.value = true;
try
try
{
const response = await axios.get('/api/settings/emailPrompt');
emailPrompt.value = response.data.value || ''; // Handle case where setting might not exist yet
}
catch (error)
}
catch (error)
{
console.error('Error fetching Email prompt:', error);
$q.notify({
@ -156,17 +156,17 @@ const fetchEmailPrompt = async() =>
message: 'Failed to load Email prompt setting.',
icon: 'report_problem'
});
}
finally
}
finally
{
loadingEmailPrompt.value = false;
}
};
const saveEmailPrompt = async() =>
const saveEmailPrompt = async() =>
{
savingEmailPrompt.value = true;
try
try
{
await axios.put('/api/settings/emailPrompt', { value: emailPrompt.value });
$q.notify({
@ -174,8 +174,8 @@ const saveEmailPrompt = async() =>
message: 'Email prompt updated successfully.',
icon: 'check_circle'
});
}
catch (error)
}
catch (error)
{
console.error('Error saving Email prompt:', error);
$q.notify({
@ -183,14 +183,14 @@ const saveEmailPrompt = async() =>
message: 'Failed to save Email prompt setting.',
icon: 'report_problem'
});
}
finally
}
finally
{
savingEmailPrompt.value = false;
}
};
onMounted(() =>
onMounted(() =>
{
fetchMantisPrompt();
fetchEmailPrompt();