Improve save public list (#554)
* improve save public list * remove obsolete code fragment --------- Co-authored-by: Flomp <Flomp@users.noreply.github.com>
This commit is contained in:
@@ -6,16 +6,20 @@
|
||||
title?: string;
|
||||
text: string;
|
||||
action?: string;
|
||||
deny?: string;
|
||||
id?: string;
|
||||
onconfirm?: () => void
|
||||
oncancel?: () => void
|
||||
}
|
||||
|
||||
let {
|
||||
title = $_("confirm-deletion"),
|
||||
text,
|
||||
action = "delete",
|
||||
deny ="cancel",
|
||||
id = "confirm-modal",
|
||||
onconfirm
|
||||
onconfirm,
|
||||
oncancel
|
||||
}: Props = $props();
|
||||
|
||||
let modal: Modal;
|
||||
@@ -24,6 +28,11 @@
|
||||
modal.openModal();
|
||||
}
|
||||
|
||||
function cancel() {
|
||||
oncancel?.();
|
||||
modal.closeModal!();
|
||||
}
|
||||
|
||||
function confirm() {
|
||||
onconfirm?.()
|
||||
modal.closeModal!();
|
||||
@@ -36,8 +45,8 @@
|
||||
{/snippet}
|
||||
{#snippet footer()}
|
||||
<div class="flex items-center gap-4">
|
||||
<button class="btn-secondary" onclick={() => modal.closeModal()}
|
||||
>{$_("cancel")}</button
|
||||
<button class="btn-secondary" onclick={cancel}
|
||||
>{$_(deny)}</button
|
||||
>
|
||||
<button
|
||||
id="confirm"
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Ungültiger Nutzername",
|
||||
"italian": "Italienisch",
|
||||
"joined": "Beigetreten",
|
||||
"keep-private": "Ohne Veröffentlichung fortfahren",
|
||||
"keep-original": "",
|
||||
"language": "Sprache",
|
||||
"latitude": "Breitengrad",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Invalid username",
|
||||
"italian": "Italian",
|
||||
"joined": "Joined",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "Keep original",
|
||||
"language": "Language",
|
||||
"latitude": "Latitude",
|
||||
|
||||
@@ -213,6 +213,7 @@
|
||||
"invalid-date": "Fecha no válida",
|
||||
"invalid-username": "Usuario no válido",
|
||||
"italian": "Italiano",
|
||||
"keep-private": "Keep private",
|
||||
"joined": "Afiliado",
|
||||
"keep-original": "",
|
||||
"language": "Idioma",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Erabiltzailea ez da zuzena",
|
||||
"italian": "Italiera",
|
||||
"joined": "Sartu da",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Hizkuntza",
|
||||
"latitude": "Latitudea",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Nom d'utilisateur invalide",
|
||||
"italian": "Italien",
|
||||
"joined": "Rejoint",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Langue",
|
||||
"latitude": "Latitude",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Érvénytelen felhasználó",
|
||||
"italian": "Olasz",
|
||||
"joined": "Joined",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Nyelf",
|
||||
"latitude": "Szélesség",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Nome utente non valido",
|
||||
"italian": "Italiano",
|
||||
"joined": "Aggiunto",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Lingua",
|
||||
"latitude": "Latitudine",
|
||||
|
||||
@@ -216,6 +216,7 @@
|
||||
"invalid-username": "Ongeldige gebruikersnaam",
|
||||
"italian": "Italiaans",
|
||||
"joined": "Aangesloten",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Taal",
|
||||
"latitude": "Breedtegraad",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Błędna nazwa użytkownika",
|
||||
"italian": "Włoski",
|
||||
"joined": "Dołączono",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Język",
|
||||
"latitude": "Szerokość",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Nome de usuário inválido",
|
||||
"italian": "Italiano",
|
||||
"joined": "Joined",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Língua",
|
||||
"latitude": "Latitude",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "Некорректное имя пользователя",
|
||||
"italian": "Итальянский",
|
||||
"joined": "Зарегистрирован",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "Язык",
|
||||
"latitude": "Широта",
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
"invalid-username": "无效用户名",
|
||||
"italian": "意大利语",
|
||||
"joined": "已加入",
|
||||
"keep-private": "Keep private",
|
||||
"keep-original": "",
|
||||
"language": "语言",
|
||||
"latitude": "纬度",
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
let loading: boolean = $state(false);
|
||||
|
||||
let newShares: TrailShare[] = [];
|
||||
let publicList: boolean = $state(data.list?.public);
|
||||
|
||||
let shareConfirmModal: ConfirmModal;
|
||||
let publishConfirmModal: ConfirmModal;
|
||||
@@ -104,11 +105,8 @@
|
||||
});
|
||||
|
||||
async function checkPrerequisites() {
|
||||
if (
|
||||
(data.list?.public === false && $formData.public === true) ||
|
||||
($formData.public === true &&
|
||||
(data.list?.expand?.trails?.length ?? 0) <
|
||||
($formData.expand?.trails?.length ?? 0))
|
||||
if ( $formData.public === true &&
|
||||
$formData.expand?.trails?.find(t => !t.public) !== undefined
|
||||
) {
|
||||
publishConfirmModal.openModal();
|
||||
return false;
|
||||
@@ -139,6 +137,7 @@
|
||||
icon: "check",
|
||||
text: $_("list-saved-successfully"),
|
||||
});
|
||||
publicList = $formData.public;
|
||||
} catch (e) {
|
||||
show_toast({
|
||||
type: "error",
|
||||
@@ -334,7 +333,11 @@
|
||||
label={$_("description")}
|
||||
error={$errors.description}
|
||||
></Editor>
|
||||
<Toggle name="public" label={$_("public")}></Toggle>
|
||||
<Toggle
|
||||
name="public"
|
||||
label={$formData.public ? $_("public") : $_("private")}
|
||||
icon={$formData.public ? "globe" : "lock"}
|
||||
></Toggle>
|
||||
<h3 class="text-xl font-semibold">
|
||||
{$_("trail", { values: { n: 2 } })}
|
||||
</h3>
|
||||
@@ -463,8 +466,13 @@
|
||||
action="confirm"
|
||||
bind:this={shareConfirmModal}
|
||||
onconfirm={async () => {
|
||||
loading = true;
|
||||
try {
|
||||
await updateTrailShares();
|
||||
await saveList();
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}}
|
||||
></ConfirmModal>
|
||||
|
||||
@@ -473,10 +481,24 @@
|
||||
text={$_("list-public-warning")}
|
||||
title={$_("confirm-publish")}
|
||||
action="confirm"
|
||||
deny="keep-private"
|
||||
bind:this={publishConfirmModal}
|
||||
onconfirm={async () => {
|
||||
loading = true;
|
||||
try {
|
||||
await publishTrails();
|
||||
await saveList();
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}}
|
||||
oncancel={async () => {
|
||||
loading = true;
|
||||
try {
|
||||
await saveList();
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}}
|
||||
></ConfirmModal>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user