add glitchtip

This commit is contained in:
Andras Bacsai
2022-10-19 14:59:38 +02:00
parent b4c6f80e1c
commit 21f3a70788
5 changed files with 289 additions and 31 deletions

View File

@@ -70,6 +70,7 @@
import { onDestroy, onMount } from 'svelte';
import { goto } from '$app/navigation';
import Menu from './_Menu.svelte';
import { saveForm } from './utils';
const { id } = $page.params;
$isDeploymentEnabled = checkIfDeploymentEnabledServices($appSession.isAdmin, service);
@@ -112,6 +113,11 @@
$status.service.initialLoading = true;
$status.service.loading = true;
try {
const form: any = document.getElementById('saveForm');
if (form) {
const formData = new FormData(form);
service = await saveForm(formData, service);
}
await post(`/services/${service.id}/start`, {});
} catch (error) {
return errorNotification(error);

View File

@@ -34,6 +34,7 @@
import DocLink from '$lib/components/DocLink.svelte';
import Explainer from '$lib/components/Explainer.svelte';
import ServiceStatus from '$lib/components/ServiceStatus.svelte';
import { saveForm } from './utils';
const { id } = $page.params;
$: isDisabled =
@@ -71,30 +72,9 @@
}
async function handleSubmit(e: any) {
const formData = new FormData(e.target);
const settings = service.serviceSetting.map((setting: { name: string }) => setting.name);
const baseCoolifySetting = ['name', 'fqdn', 'exposePort'];
for (let field of formData) {
const [key, value] = field;
service.serviceSetting = service.serviceSetting.map((setting: any) => {
if (setting.name === key) {
setting.changed = true;
setting.value = value;
}
return setting;
});
if (!settings.includes(key) && !baseCoolifySetting.includes(key)) {
service.serviceSetting.push({
id: service.id,
name: key,
value: value,
isNew: true
});
}
}
if (loading.save) return;
loading.save = true;
try {
// await post(`/services/${id}/check`, {
// fqdn: service.fqdn,
@@ -103,13 +83,10 @@
// otherFqdns: service.minio?.apiFqdn ? [service.minio?.apiFqdn] : [],
// exposePort: service.exposePort
// });
await post(`/services/${id}`, { ...service });
const formData = new FormData(e.target);
service = await saveForm(formData, service);
setLocation(service);
const reloadServices = await get(`/services/${id}`);
service = reloadServices.service
forceSave = false;
$isDeploymentEnabled = checkIfDeploymentEnabledServices($appSession.isAdmin, service);
return addToast({
message: 'Configuration saved.',

View File

@@ -1,4 +1,4 @@
import { post } from '$lib/api';
import { get, post } from '$lib/api';
import { t } from '$lib/translations';
import { errorNotification } from '$lib/common';
@@ -40,3 +40,30 @@ export async function saveSecret({
throw error
}
}
export async function saveForm(formData: any, service: any) {
const settings = service.serviceSetting.map((setting: { name: string }) => setting.name);
const baseCoolifySetting = ['name', 'fqdn', 'exposePort'];
for (let field of formData) {
const [key, value] = field;
service.serviceSetting = service.serviceSetting.map((setting: any) => {
if (setting.name === key) {
setting.changed = true;
setting.value = value;
}
return setting;
});
if (!settings.includes(key) && !baseCoolifySetting.includes(key)) {
service.serviceSetting.push({
id: service.id,
name: key,
value: value,
isNew: true
});
}
}
await post(`/services/${service.id}`, { ...service });
const { service: reloadedService } = await get(`/services/${service.id}`);
return reloadedService;
}