OrgDetail - edit contact

ref #50
This commit is contained in:
Philipp Dormann 2021-02-17 19:51:04 +01:00
parent 2033572c83
commit 1586c2f9e6
2 changed files with 29 additions and 9 deletions

View File

@ -1,5 +1,8 @@
<script> <script>
import { RunnerOrganizationService } from "@odit/lfk-client-js"; import {
GroupContactService,
RunnerOrganizationService,
} from "@odit/lfk-client-js";
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import store from "../store"; import store from "../store";
@ -11,15 +14,24 @@
export let params; export let params;
let orgdata = {}; let orgdata = {};
let original = {}; let original = {};
let contacts = [];
$: data_loaded = false; $: data_loaded = false;
$: data_changed = JSON.stringify(orgdata) === JSON.stringify(original); $: data_changed = JSON.stringify(orgdata) === JSON.stringify(original);
const promise = RunnerOrganizationService.runnerOrganizationControllerGetOne( const promise = RunnerOrganizationService.runnerOrganizationControllerGetOne(
params.orgid params.orgid
).then((value) => { ).then((value) => {
data_loaded = true; data_loaded = true;
if (value.contact) {
if (value.contact !== "null") {
value.contact = value.contact.id;
}
}
orgdata = Object.assign(orgdata, value); orgdata = Object.assign(orgdata, value);
original = Object.assign(original, value); original = Object.assign(original, value);
}); });
GroupContactService.groupContactControllerGetAll().then((val) => {
contacts = val;
});
let modal_open = false; let modal_open = false;
let delete_org = {}; let delete_org = {};
function deleteOrganization() { function deleteOrganization() {
@ -46,9 +58,11 @@
text: "updating organization", text: "updating organization",
duration: 2500, duration: 2500,
}).showToast(); }).showToast();
let postdata = orgdata;
postdata.contact = postdata.contact === "null" ? null : postdata.contact;
RunnerOrganizationService.runnerOrganizationControllerPut( RunnerOrganizationService.runnerOrganizationControllerPut(
original.id, original.id,
orgdata postdata
) )
.then((resp) => { .then((resp) => {
Object.assign(original, orgdata); Object.assign(original, orgdata);
@ -209,13 +223,19 @@
<label <label
for="contact" for="contact"
class="font-medium text-gray-700">{$_('contact')}</label> class="font-medium text-gray-700">{$_('contact')}</label>
<input <select
autocomplete="off"
placeholder={$_('contact')}
type="text"
bind:value={orgdata.contact}
name="contact" name="contact"
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> bind:value={orgdata.contact}
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2">
<option value="null">no contact</option>
{#each contacts as c}
<option value={c.id}>
{c.firstname}
{c.middlename || ''}
{c.lastname}
</option>
{/each}
</select>
</div> </div>
<div class="text-sm w-full"> <div class="text-sm w-full">
<label <label

View File

@ -228,7 +228,7 @@
for="contact" for="contact"
class="font-medium text-gray-700">{$_('contact')}</label> class="font-medium text-gray-700">{$_('contact')}</label>
<select <select
name="org" name="contact"
bind:value={teamdata.contact} bind:value={teamdata.contact}
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"> class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2">
<option value="null">no contact</option> <option value="null">no contact</option>