mirror of
https://github.com/LogicLabs-OU/OpenArchiver.git
synced 2026-04-06 00:31:57 +02:00
Error handling improvement
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,251 +1,251 @@
|
||||
{
|
||||
"version": "7",
|
||||
"dialect": "postgresql",
|
||||
"entries": [
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "7",
|
||||
"when": 1752225352591,
|
||||
"tag": "0000_amusing_namora",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "7",
|
||||
"when": 1752326803882,
|
||||
"tag": "0001_odd_night_thrasher",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"version": "7",
|
||||
"when": 1752332648392,
|
||||
"tag": "0002_lethal_quentin_quire",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"version": "7",
|
||||
"when": 1752332967084,
|
||||
"tag": "0003_petite_wrecker",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 4,
|
||||
"version": "7",
|
||||
"when": 1752606108876,
|
||||
"tag": "0004_sleepy_paper_doll",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 5,
|
||||
"version": "7",
|
||||
"when": 1752606327253,
|
||||
"tag": "0005_chunky_sue_storm",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 6,
|
||||
"version": "7",
|
||||
"when": 1753112018514,
|
||||
"tag": "0006_majestic_caretaker",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 7,
|
||||
"version": "7",
|
||||
"when": 1753190159356,
|
||||
"tag": "0007_handy_archangel",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 8,
|
||||
"version": "7",
|
||||
"when": 1753370737317,
|
||||
"tag": "0008_eminent_the_spike",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 9,
|
||||
"version": "7",
|
||||
"when": 1754337938241,
|
||||
"tag": "0009_late_lenny_balinger",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 10,
|
||||
"version": "7",
|
||||
"when": 1754420780849,
|
||||
"tag": "0010_perpetual_lightspeed",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 11,
|
||||
"version": "7",
|
||||
"when": 1754422064158,
|
||||
"tag": "0011_tan_blackheart",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 12,
|
||||
"version": "7",
|
||||
"when": 1754476962901,
|
||||
"tag": "0012_warm_the_stranger",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 13,
|
||||
"version": "7",
|
||||
"when": 1754659373517,
|
||||
"tag": "0013_classy_talkback",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 14,
|
||||
"version": "7",
|
||||
"when": 1754831765718,
|
||||
"tag": "0014_foamy_vapor",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 15,
|
||||
"version": "7",
|
||||
"when": 1755443936046,
|
||||
"tag": "0015_wakeful_norman_osborn",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 16,
|
||||
"version": "7",
|
||||
"when": 1755780572342,
|
||||
"tag": "0016_lonely_mariko_yashida",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 17,
|
||||
"version": "7",
|
||||
"when": 1755961566627,
|
||||
"tag": "0017_tranquil_shooting_star",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 18,
|
||||
"version": "7",
|
||||
"when": 1756911118035,
|
||||
"tag": "0018_flawless_owl",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 19,
|
||||
"version": "7",
|
||||
"when": 1756937533843,
|
||||
"tag": "0019_confused_scream",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 20,
|
||||
"version": "7",
|
||||
"when": 1757860242528,
|
||||
"tag": "0020_panoramic_wolverine",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 21,
|
||||
"version": "7",
|
||||
"when": 1759412986134,
|
||||
"tag": "0021_nosy_veda",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 22,
|
||||
"version": "7",
|
||||
"when": 1759701622932,
|
||||
"tag": "0022_complete_triton",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 23,
|
||||
"version": "7",
|
||||
"when": 1760354094610,
|
||||
"tag": "0023_swift_swordsman",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 24,
|
||||
"version": "7",
|
||||
"when": 1772842674479,
|
||||
"tag": "0024_careful_black_panther",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 25,
|
||||
"version": "7",
|
||||
"when": 1773013461190,
|
||||
"tag": "0025_peaceful_grim_reaper",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 26,
|
||||
"version": "7",
|
||||
"when": 1773326266420,
|
||||
"tag": "0026_pink_fantastic_four",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 27,
|
||||
"version": "7",
|
||||
"when": 1773768709477,
|
||||
"tag": "0027_black_morph",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 28,
|
||||
"version": "7",
|
||||
"when": 1773770326402,
|
||||
"tag": "0028_youthful_kitty_pryde",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 29,
|
||||
"version": "7",
|
||||
"when": 1773927678269,
|
||||
"tag": "0029_lethal_brood",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 30,
|
||||
"version": "7",
|
||||
"when": 1774440788278,
|
||||
"tag": "0030_strong_ultron",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 31,
|
||||
"version": "7",
|
||||
"when": 1774623960683,
|
||||
"tag": "0031_bouncy_boomerang",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 32,
|
||||
"version": "7",
|
||||
"when": 1774709286830,
|
||||
"tag": "0032_exotic_the_twelve",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 33,
|
||||
"version": "7",
|
||||
"when": 1774719684064,
|
||||
"tag": "0033_adorable_lockheed",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 34,
|
||||
"version": "7",
|
||||
"when": 1774900882674,
|
||||
"tag": "0034_stiff_toad",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
"version": "7",
|
||||
"dialect": "postgresql",
|
||||
"entries": [
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "7",
|
||||
"when": 1752225352591,
|
||||
"tag": "0000_amusing_namora",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "7",
|
||||
"when": 1752326803882,
|
||||
"tag": "0001_odd_night_thrasher",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"version": "7",
|
||||
"when": 1752332648392,
|
||||
"tag": "0002_lethal_quentin_quire",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"version": "7",
|
||||
"when": 1752332967084,
|
||||
"tag": "0003_petite_wrecker",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 4,
|
||||
"version": "7",
|
||||
"when": 1752606108876,
|
||||
"tag": "0004_sleepy_paper_doll",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 5,
|
||||
"version": "7",
|
||||
"when": 1752606327253,
|
||||
"tag": "0005_chunky_sue_storm",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 6,
|
||||
"version": "7",
|
||||
"when": 1753112018514,
|
||||
"tag": "0006_majestic_caretaker",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 7,
|
||||
"version": "7",
|
||||
"when": 1753190159356,
|
||||
"tag": "0007_handy_archangel",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 8,
|
||||
"version": "7",
|
||||
"when": 1753370737317,
|
||||
"tag": "0008_eminent_the_spike",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 9,
|
||||
"version": "7",
|
||||
"when": 1754337938241,
|
||||
"tag": "0009_late_lenny_balinger",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 10,
|
||||
"version": "7",
|
||||
"when": 1754420780849,
|
||||
"tag": "0010_perpetual_lightspeed",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 11,
|
||||
"version": "7",
|
||||
"when": 1754422064158,
|
||||
"tag": "0011_tan_blackheart",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 12,
|
||||
"version": "7",
|
||||
"when": 1754476962901,
|
||||
"tag": "0012_warm_the_stranger",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 13,
|
||||
"version": "7",
|
||||
"when": 1754659373517,
|
||||
"tag": "0013_classy_talkback",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 14,
|
||||
"version": "7",
|
||||
"when": 1754831765718,
|
||||
"tag": "0014_foamy_vapor",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 15,
|
||||
"version": "7",
|
||||
"when": 1755443936046,
|
||||
"tag": "0015_wakeful_norman_osborn",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 16,
|
||||
"version": "7",
|
||||
"when": 1755780572342,
|
||||
"tag": "0016_lonely_mariko_yashida",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 17,
|
||||
"version": "7",
|
||||
"when": 1755961566627,
|
||||
"tag": "0017_tranquil_shooting_star",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 18,
|
||||
"version": "7",
|
||||
"when": 1756911118035,
|
||||
"tag": "0018_flawless_owl",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 19,
|
||||
"version": "7",
|
||||
"when": 1756937533843,
|
||||
"tag": "0019_confused_scream",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 20,
|
||||
"version": "7",
|
||||
"when": 1757860242528,
|
||||
"tag": "0020_panoramic_wolverine",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 21,
|
||||
"version": "7",
|
||||
"when": 1759412986134,
|
||||
"tag": "0021_nosy_veda",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 22,
|
||||
"version": "7",
|
||||
"when": 1759701622932,
|
||||
"tag": "0022_complete_triton",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 23,
|
||||
"version": "7",
|
||||
"when": 1760354094610,
|
||||
"tag": "0023_swift_swordsman",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 24,
|
||||
"version": "7",
|
||||
"when": 1772842674479,
|
||||
"tag": "0024_careful_black_panther",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 25,
|
||||
"version": "7",
|
||||
"when": 1773013461190,
|
||||
"tag": "0025_peaceful_grim_reaper",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 26,
|
||||
"version": "7",
|
||||
"when": 1773326266420,
|
||||
"tag": "0026_pink_fantastic_four",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 27,
|
||||
"version": "7",
|
||||
"when": 1773768709477,
|
||||
"tag": "0027_black_morph",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 28,
|
||||
"version": "7",
|
||||
"when": 1773770326402,
|
||||
"tag": "0028_youthful_kitty_pryde",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 29,
|
||||
"version": "7",
|
||||
"when": 1773927678269,
|
||||
"tag": "0029_lethal_brood",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 30,
|
||||
"version": "7",
|
||||
"when": 1774440788278,
|
||||
"tag": "0030_strong_ultron",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 31,
|
||||
"version": "7",
|
||||
"when": 1774623960683,
|
||||
"tag": "0031_bouncy_boomerang",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 32,
|
||||
"version": "7",
|
||||
"when": 1774709286830,
|
||||
"tag": "0032_exotic_the_twelve",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 33,
|
||||
"version": "7",
|
||||
"when": 1774719684064,
|
||||
"tag": "0033_adorable_lockheed",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 34,
|
||||
"version": "7",
|
||||
"when": 1774900882674,
|
||||
"tag": "0034_stiff_toad",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -27,9 +27,7 @@
|
||||
{/if}
|
||||
<p class="text-balance text-center text-xs font-medium leading-loose">
|
||||
© {new Date().getFullYear()}
|
||||
<a href="https://openarchiver.com/" target="_blank">Open Archiver</a>. {$t(
|
||||
'app.components.footer.all_rights_reserved'
|
||||
)}
|
||||
<a href="https://openarchiver.com/" target="_blank">Open Archiver</a>
|
||||
</p>
|
||||
<p class="text-balance text-center text-xs font-medium leading-loose">
|
||||
Version: {currentVersion}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { api } from '$lib/server/api';
|
||||
import { error } from '@sveltejs/kit';
|
||||
import { error, fail } from '@sveltejs/kit';
|
||||
import type { Actions, PageServerLoad } from './$types';
|
||||
import type { LegalHold, SearchQuery } from '@open-archiver/types';
|
||||
|
||||
@@ -40,7 +40,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to create legal hold.' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to create legal hold.',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -63,7 +66,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to update legal hold.' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update legal hold.',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -82,7 +88,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to update legal hold.' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update legal hold.',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true, isActive };
|
||||
@@ -98,10 +107,10 @@ export const actions: Actions = {
|
||||
|
||||
if (!response.ok) {
|
||||
const res = await response.json().catch(() => ({}));
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: (res as { message?: string }).message || 'Failed to delete legal hold.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -116,7 +125,7 @@ export const actions: Actions = {
|
||||
try {
|
||||
searchQuery = JSON.parse(rawQuery) as SearchQuery;
|
||||
} catch {
|
||||
return { success: false, message: 'Invalid search query format.' };
|
||||
return fail(400, { success: false, message: 'Invalid search query format.' });
|
||||
}
|
||||
|
||||
const response = await api(`/enterprise/legal-holds/holds/${holdId}/bulk-apply`, event, {
|
||||
@@ -127,10 +136,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: (res as { message?: string }).message || 'Bulk apply failed.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const result = res as { emailsLinked: number };
|
||||
@@ -148,11 +157,11 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message:
|
||||
(res as { message?: string }).message || 'Failed to release emails from hold.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const result = res as { emailsReleased: number };
|
||||
|
||||
@@ -186,10 +186,7 @@
|
||||
action="?/toggleActive"
|
||||
use:enhance={() => {
|
||||
return async ({ result, update }) => {
|
||||
if (
|
||||
result.type === 'success' &&
|
||||
result.data?.success !== false
|
||||
) {
|
||||
if (result.type === 'success') {
|
||||
const newState = result.data
|
||||
?.isActive as boolean;
|
||||
setAlert({
|
||||
@@ -205,10 +202,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (
|
||||
result.type === 'success' &&
|
||||
result.data?.success === false
|
||||
) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.update_error'),
|
||||
@@ -275,7 +269,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isCreateOpen = false;
|
||||
setAlert({
|
||||
type: 'success',
|
||||
@@ -284,7 +278,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.create_error'),
|
||||
@@ -353,7 +347,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isEditOpen = false;
|
||||
selectedHold = null;
|
||||
setAlert({
|
||||
@@ -363,7 +357,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.update_error'),
|
||||
@@ -425,7 +419,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isBulkApplyOpen = false;
|
||||
const count = result.data?.emailsLinked as number;
|
||||
setAlert({
|
||||
@@ -435,7 +429,7 @@
|
||||
duration: 5000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.bulk_apply_error'),
|
||||
@@ -539,7 +533,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isReleaseAllOpen = false;
|
||||
const count = result.data?.emailsReleased as number;
|
||||
setAlert({
|
||||
@@ -550,14 +544,11 @@
|
||||
show: true,
|
||||
});
|
||||
selectedHold = null;
|
||||
} else {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.release_all_error'),
|
||||
message:
|
||||
result.type === 'success'
|
||||
? String(result.data?.message ?? '')
|
||||
: '',
|
||||
message: String(result.data?.message ?? ''),
|
||||
duration: 5000,
|
||||
show: true,
|
||||
});
|
||||
@@ -605,7 +596,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isDeleteOpen = false;
|
||||
setAlert({
|
||||
type: 'success',
|
||||
@@ -615,14 +606,11 @@
|
||||
show: true,
|
||||
});
|
||||
selectedHold = null;
|
||||
} else {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.legal_holds.delete_error'),
|
||||
message:
|
||||
result.type === 'success'
|
||||
? String(result.data?.message ?? '')
|
||||
: '',
|
||||
message: String(result.data?.message ?? ''),
|
||||
duration: 5000,
|
||||
show: true,
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { api } from '$lib/server/api';
|
||||
import { error } from '@sveltejs/kit';
|
||||
import { error, fail } from '@sveltejs/kit';
|
||||
import type { Actions, PageServerLoad } from './$types';
|
||||
import type { RetentionLabel } from '@open-archiver/types';
|
||||
|
||||
@@ -41,7 +41,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to create label' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to create label',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -70,7 +73,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to update label' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update label',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -86,7 +92,10 @@ export const actions: Actions = {
|
||||
|
||||
if (!response.ok) {
|
||||
const res = await response.json().catch(() => ({}));
|
||||
return { success: false, message: res.message || 'Failed to delete label' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to delete label',
|
||||
});
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isCreateOpen = false;
|
||||
setAlert({
|
||||
type: 'success',
|
||||
@@ -180,7 +180,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.retention_labels.create_error'),
|
||||
@@ -261,7 +261,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isEditOpen = false;
|
||||
selectedLabel = null;
|
||||
setAlert({
|
||||
@@ -271,7 +271,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.retention_labels.update_error'),
|
||||
@@ -376,7 +376,7 @@
|
||||
isDeleting = true;
|
||||
return async ({ result, update }) => {
|
||||
isDeleting = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isDeleteOpen = false;
|
||||
const action = result.data?.action;
|
||||
setAlert({
|
||||
@@ -390,14 +390,11 @@
|
||||
show: true,
|
||||
});
|
||||
selectedLabel = null;
|
||||
} else {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.retention_labels.delete_error'),
|
||||
message:
|
||||
result.type === 'success'
|
||||
? String(result.data?.message ?? '')
|
||||
: '',
|
||||
message: String(result.data?.message ?? ''),
|
||||
duration: 5000,
|
||||
show: true,
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { api } from '$lib/server/api';
|
||||
import { error } from '@sveltejs/kit';
|
||||
import { error, fail } from '@sveltejs/kit';
|
||||
import type { Actions, PageServerLoad } from './$types';
|
||||
import type {
|
||||
RetentionPolicy,
|
||||
@@ -76,7 +76,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to create policy' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to create policy',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -118,7 +121,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to update policy' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update policy',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -134,7 +140,10 @@ export const actions: Actions = {
|
||||
|
||||
if (!response.ok) {
|
||||
const res = await response.json().catch(() => ({}));
|
||||
return { success: false, message: res.message || 'Failed to delete policy' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to delete policy',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -173,11 +182,11 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to evaluate policies',
|
||||
evaluationResult: null as PolicyEvaluationResult | null,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
// React to form results (errors and evaluation results)
|
||||
$effect(() => {
|
||||
if (form && form.success === false && form.message) {
|
||||
if (form && 'success' in form && form.success === false && form.message) {
|
||||
toast.error(form.message);
|
||||
}
|
||||
if (form && 'evaluationResult' in form) {
|
||||
@@ -449,8 +449,13 @@
|
||||
isDeleteOpen = false;
|
||||
selectedPolicy = null;
|
||||
toast.success($t('app.retention_policies.delete_success'));
|
||||
} else {
|
||||
toast.error($t('app.retention_policies.delete_error'));
|
||||
} else if (result.type === 'failure') {
|
||||
toast.error(
|
||||
String(
|
||||
result.data?.message ??
|
||||
$t('app.retention_policies.delete_error')
|
||||
)
|
||||
);
|
||||
}
|
||||
await update();
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { api } from '$lib/server/api';
|
||||
import { error } from '@sveltejs/kit';
|
||||
import { error, fail } from '@sveltejs/kit';
|
||||
import type { Actions, PageServerLoad } from './$types';
|
||||
import type { JournalingSource } from '@open-archiver/types';
|
||||
|
||||
@@ -59,10 +59,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to create journaling source.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -97,10 +97,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update journaling source.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -119,7 +119,10 @@ export const actions: Actions = {
|
||||
const res = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: res.message || 'Failed to update status.' };
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message: res.message || 'Failed to update status.',
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true, status };
|
||||
@@ -135,12 +138,12 @@ export const actions: Actions = {
|
||||
|
||||
if (!response.ok) {
|
||||
const res = await response.json().catch(() => ({}));
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message:
|
||||
(res as { message?: string }).message ||
|
||||
'Failed to regenerate routing address.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
@@ -156,11 +159,11 @@ export const actions: Actions = {
|
||||
|
||||
if (!response.ok) {
|
||||
const res = await response.json().catch(() => ({}));
|
||||
return {
|
||||
return fail(response.status, {
|
||||
success: false,
|
||||
message:
|
||||
(res as { message?: string }).message || 'Failed to delete journaling source.',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
|
||||
@@ -249,10 +249,7 @@
|
||||
action="?/toggleStatus"
|
||||
use:enhance={() => {
|
||||
return async ({ result, update }) => {
|
||||
if (
|
||||
result.type === 'success' &&
|
||||
result.data?.success !== false
|
||||
) {
|
||||
if (result.type === 'success') {
|
||||
setAlert({
|
||||
type: 'success',
|
||||
title: $t('app.journaling.update_success'),
|
||||
@@ -260,10 +257,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (
|
||||
result.type === 'success' &&
|
||||
result.data?.success === false
|
||||
) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.journaling.update_error'),
|
||||
@@ -330,7 +324,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isCreateOpen = false;
|
||||
setAlert({
|
||||
type: 'success',
|
||||
@@ -339,7 +333,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.journaling.create_error'),
|
||||
@@ -444,7 +438,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isEditOpen = false;
|
||||
selectedSource = null;
|
||||
setAlert({
|
||||
@@ -454,7 +448,7 @@
|
||||
duration: 3000,
|
||||
show: true,
|
||||
});
|
||||
} else if (result.type === 'success' && result.data?.success === false) {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.journaling.update_error'),
|
||||
@@ -670,7 +664,7 @@
|
||||
isFormLoading = true;
|
||||
return async ({ result, update }) => {
|
||||
isFormLoading = false;
|
||||
if (result.type === 'success' && result.data?.success !== false) {
|
||||
if (result.type === 'success') {
|
||||
isDeleteOpen = false;
|
||||
setAlert({
|
||||
type: 'success',
|
||||
@@ -680,14 +674,11 @@
|
||||
show: true,
|
||||
});
|
||||
selectedSource = null;
|
||||
} else {
|
||||
} else if (result.type === 'failure') {
|
||||
setAlert({
|
||||
type: 'error',
|
||||
title: $t('app.journaling.delete_error'),
|
||||
message:
|
||||
result.type === 'success'
|
||||
? String(result.data?.message ?? '')
|
||||
: '',
|
||||
message: String(result.data?.message ?? ''),
|
||||
duration: 5000,
|
||||
show: true,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user