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}