From bcc7d7770ebcee95cbc6cfa69841ac15d12bc1a6 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 15:47:23 +0100 Subject: [PATCH 1/9] Added address to org overview ref #72 --- src/components/orgs/OrgOverview.svelte | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/orgs/OrgOverview.svelte b/src/components/orgs/OrgOverview.svelte index 7d4cd967..47a2f496 100644 --- a/src/components/orgs/OrgOverview.svelte +++ b/src/components/orgs/OrgOverview.svelte @@ -88,9 +88,13 @@
- {#if o.address} - {JSON.stringify(o.address)} - {:else}no address specified{/if} + {#if o.address.address1 !== null} + {o.address.address1}
+ {o.address.address2 || ''}
+ {o.address.postalcode} + {o.address.city} + {o.address.country} + {/if}
From 57e17f2864765c13ab6cce84ede92a3be8e524fc Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 15:51:15 +0100 Subject: [PATCH 2/9] Runner Contact information column npow features address ref #72 --- src/components/runners/RunnersOverview.svelte | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/runners/RunnersOverview.svelte b/src/components/runners/RunnersOverview.svelte index 320a70cc..e7ceeaa5 100644 --- a/src/components/runners/RunnersOverview.svelte +++ b/src/components/runners/RunnersOverview.svelte @@ -115,6 +115,13 @@ {#if runner.phone}
{runner.phone}
{/if} + {#if runner.address.address1 !== null} + {runner.address.address1}
+ {runner.address.address2 || ''}
+ {runner.address.postalcode} + {runner.address.city} + {runner.address.country} + {/if} {#if runner.group.responseType === 'RUNNERTEAM'} From 6d2431b683b36a2595a259e69339b8b9fd0c9bdc Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 16:07:12 +0100 Subject: [PATCH 3/9] Added address to org creation dialog (styleing only) ref #72 --- src/components/orgs/AddOrgModal.svelte | 119 ++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 2 deletions(-) diff --git a/src/components/orgs/AddOrgModal.svelte b/src/components/orgs/AddOrgModal.svelte index 8419cdf8..fa16e69f 100644 --- a/src/components/orgs/AddOrgModal.svelte +++ b/src/components/orgs/AddOrgModal.svelte @@ -13,7 +13,24 @@ $: name = ""; $: processed_last_submit = true; $: isOrgnameValid = name.trim().length !== 0; - $: createbtnenabled = isOrgnameValid; + $: isAddress1Valid = address_input1_value.trim().length !== 0; + $: iszipcodevalid = address_zipcode_value.trim().length !== 0; + $: iscityvalid = address_city_value.trim().length !== 0; + $: createbtnenabled = + isOrgnameValid && + ((isAddress1Valid && iszipcodevalid && iscityvalid) || + address_checked === false); + $: address_input1_value = ""; + $: address_input2_value = ""; + $: address_zipcode_value = ""; + $: address_city_value = ""; + $: address_checked = true; + + let address_input1; + let address_input2; + let address_zipcode; + let address_city; + (() => { document.onkeydown = (e) => { e = e || window.event; @@ -133,7 +150,105 @@ {/if} - +
+
+ +
+
+ +
+
+ {#if 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} + From 86f13003b5400ba5ea14bcc6bb9b7e7a9301c212 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 16:08:34 +0100 Subject: [PATCH 4/9] Implemented org address creation modal logic ref #72 --- src/components/orgs/AddOrgModal.svelte | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/orgs/AddOrgModal.svelte b/src/components/orgs/AddOrgModal.svelte index fa16e69f..6b3d8b68 100644 --- a/src/components/orgs/AddOrgModal.svelte +++ b/src/components/orgs/AddOrgModal.svelte @@ -52,9 +52,19 @@ text: "Organization is being added...", duration: -1, }).showToast(); + let address = {}; + if (address_checked === true) { + address = { + address1: address_input1_value, + address2: address_input2_value || "", + postalcode: address_zipcode_value, + city: address_city_value, + country: "DE", + }; + } RunnerOrganizationService.runnerOrganizationControllerPost({ name, - address: undefined, + address: address, contact: undefined, }) .then((result) => { From 4f3f7d1edb3c4f06dcda75461f87fe3688cf20fb Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 16:31:17 +0100 Subject: [PATCH 5/9] Fixed wrong relation getting targeted ref #72 --- src/components/contacts/ContactDetail.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/contacts/ContactDetail.svelte b/src/components/contacts/ContactDetail.svelte index 0d8fae48..93b2489d 100644 --- a/src/components/contacts/ContactDetail.svelte +++ b/src/components/contacts/ContactDetail.svelte @@ -31,7 +31,7 @@ isEmailValid && isPhoneValidOrEmpty && ((isAddress1Valid && iszipcodevalid && iscityvalid) || - address_checked === false); + editable.address_checked === false); const promise = GroupContactService.groupContactControllerGetOne( params.contact ).then((data) => { From e5c31c9dd43c36d81205e100ded030309296fb5d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 19 Feb 2021 16:36:17 +0100 Subject: [PATCH 6/9] 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} From 616990b930cafe4eac57cf771b8b5d722b281218 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Fri, 19 Feb 2021 17:24:22 +0100 Subject: [PATCH 7/9] =?UTF-8?q?=F0=9F=90=9E=20fixed=20bug=20in=20OrgDetail?= =?UTF-8?q?=20address=20reactivity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #72 --- src/components/orgs/OrgDetail.svelte | 75 +++++++++++++--------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/src/components/orgs/OrgDetail.svelte b/src/components/orgs/OrgDetail.svelte index 9ed83185..8c3da191 100644 --- a/src/components/orgs/OrgDetail.svelte +++ b/src/components/orgs/OrgDetail.svelte @@ -10,17 +10,20 @@ import ImportRunnerModal from "../runners/ImportRunnerModal.svelte"; import PromiseError from "../base/PromiseError.svelte"; $: delete_triggered = false; - $: save_enabled = (data_changed && ((isAddress1Valid && iszipcodevalid && iscityvalid) || - orgdata.address_checked === false)); - export let params; - $: orgdata = {}; - $: original = {}; + $: address_valid_or_none = + (isAddress1Valid && iszipcodevalid && iscityvalid) || + editable.address_checked === false; + $: save_enabled = data_changed && address_valid_or_none; + let original = ""; + let original_object = {}; let contacts = []; + export let params; + $: editable = {}; $: data_loaded = false; - $: 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; + $: data_changed = !(JSON.stringify(editable) === original); + $: isAddress1Valid = editable.address?.address1?.trim().length !== 0; + $: iszipcodevalid = editable.address?.postalcode?.trim().length !== 0; + $: iscityvalid = editable.address?.city?.trim().length !== 0; const promise = RunnerOrganizationService.runnerOrganizationControllerGetOne( params.orgid @@ -31,10 +34,11 @@ value.contact = value.contact.id; } } - orgdata = Object.assign(orgdata, value); - original = Object.assign(original, value); - orgdata.address_checked = orgdata.address.address1 !== null; - original.address_checked = orgdata.address.address1 !== null; + value.address_checked = value.address.address1 !== null; + editable = Object.assign(editable, value); + editable = editable; + original_object = Object.assign(editable, value); + original = JSON.stringify(value); }); GroupContactService.groupContactControllerGetAll().then((val) => { contacts = val; @@ -43,7 +47,7 @@ let delete_org = {}; function deleteOrganization() { RunnerOrganizationService.runnerOrganizationControllerRemove( - original.id, + original_object.id, false ) .then((resp) => { @@ -55,9 +59,9 @@ location.replace("./"); }) .catch((err) => { - modal_open = true; - delete_org = original; - }); + modal_open = true; + delete_org = original_object; + }); } function submit() { if (data_loaded === true && save_enabled) { @@ -65,20 +69,17 @@ text: "updating organization", duration: 2500, }).showToast(); - let postdata = orgdata; + let postdata = Object.assign({}, editable); if (postdata.address_checked === false) { - postdata.address = {}; + postdata.address = null; } postdata.contact = postdata.contact === "null" ? null : postdata.contact; RunnerOrganizationService.runnerOrganizationControllerPut( - original.id, + original_object.id, postdata ) .then((resp) => { - Object.assign(original, orgdata); - original = orgdata; - Object.assign(original, orgdata); - // + original = JSON.stringify(editable); Toastify({ text: "updated organization", duration: 2500, @@ -99,15 +100,15 @@ current_runners={[]} passed_team={{}} passed_orgs={[]} - passed_org={orgdata} + passed_org={editable} opened_from="OrgDetail" bind:import_modal_open /> {#if data_loaded}
- {original.name} - + {original_object.name} + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')}
-

Displayed: {data_changed}

-

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

-

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

-

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

@@ -239,7 +236,7 @@ class="font-medium text-gray-700">{$_('contact')} {$_('address')}
- {#if orgdata.address_checked === true} + {#if editable.address_checked === true}