From e5c31c9dd43c36d81205e100ded030309296fb5d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 16:36:17 +0100 Subject: [PATCH] First part of org detail address edit ref #72 --- src/components/orgs/OrgDetail.svelte | 125 +++++++++++++++++++++++---- 1 file changed, 110 insertions(+), 15 deletions(-) diff --git a/src/components/orgs/OrgDetail.svelte b/src/components/orgs/OrgDetail.svelte index 43df726a..9ed83185 100644 --- a/src/components/orgs/OrgDetail.svelte +++ b/src/components/orgs/OrgDetail.svelte @@ -10,13 +10,18 @@ import ImportRunnerModal from "../runners/ImportRunnerModal.svelte"; import PromiseError from "../base/PromiseError.svelte"; $: delete_triggered = false; - $: save_enabled = !data_changed; + $: save_enabled = (data_changed && ((isAddress1Valid && iszipcodevalid && iscityvalid) || + orgdata.address_checked === false)); export let params; - let orgdata = {}; - let original = {}; + $: orgdata = {}; + $: original = {}; let contacts = []; $: data_loaded = false; - $: data_changed = JSON.stringify(orgdata) === JSON.stringify(original); + $: data_changed = !(JSON.stringify(orgdata) === JSON.stringify(original)); + $: isAddress1Valid = orgdata.address?.address1?.trim().length !== 0; + $: iszipcodevalid = orgdata.address?.postalcode?.trim().length !== 0; + $: iscityvalid = orgdata.address?.city?.trim().length !== 0; + const promise = RunnerOrganizationService.runnerOrganizationControllerGetOne( params.orgid ).then((value) => { @@ -28,6 +33,8 @@ } orgdata = Object.assign(orgdata, value); original = Object.assign(original, value); + orgdata.address_checked = orgdata.address.address1 !== null; + original.address_checked = orgdata.address.address1 !== null; }); GroupContactService.groupContactControllerGetAll().then((val) => { contacts = val; @@ -59,6 +66,9 @@ duration: 2500, }).showToast(); let postdata = orgdata; + if (postdata.address_checked === false) { + postdata.address = {}; + } postdata.contact = postdata.contact === "null" ? null : postdata.contact; RunnerOrganizationService.runnerOrganizationControllerPut( original.id, @@ -138,6 +148,10 @@ {/if} +

Displayed: {data_changed}

+

Target: {!(JSON.stringify(orgdata.address) === JSON.stringify(original.address))}

+

Edit: {JSON.stringify(orgdata.address)}

+

Original: {JSON.stringify(original.address)}

-
- - + +
+
+ +
+
+ +
+ {#if orgdata.address_checked === true} +
+ + + {#if !isAddress1Valid} + + {$_('address-is-required')} + + {/if} +
+
+ + +
+
+ + + {#if !iszipcodevalid} + + {$_('valid-zipcode-postal-code-is-required')} + + {/if} +
+
+ + + {#if !iscityvalid} + + {$_('valid-city-is-required')} + + {/if} +
+ {/if} {:else} {#await promise}