diff --git a/src/components/RunnerDetail.svelte b/src/components/RunnerDetail.svelte index e5fdef7e..036792a8 100644 --- a/src/components/RunnerDetail.svelte +++ b/src/components/RunnerDetail.svelte @@ -5,39 +5,38 @@ import { RunnerService } from "@odit/lfk-client-js"; import Toastify from "toastify-js"; import PromiseError from "./PromiseError.svelte"; - export let params; + import isEmail from "validator/es/lib/isEmail"; const runner_promise = RunnerService.runnerControllerGetOne(params.runnerid); let data_loaded = false; + export let params; $: delete_triggered = false; $: original_data = {}; - $: editable_userdata = {}; - runner_promise.then((data) => { - console.log(data); - data_loaded = true; - original_data = Object.assign(original_data, data); - editable_userdata = data; - }); - $: changes_performed = !lodashIsEqual(original_data, editable_userdata); - - import isEmail from "validator/es/lib/isEmail"; + $: editable = {}; + $: changes_performed = !lodashIsEqual(original_data, editable); $: isEmailValid = - (editable_userdata.email || "") === "" || - (editable_userdata.email && isEmail(editable_userdata.email || "")); - $: isFirstnameValid = editable_userdata.firstname !== ""; - $: isLastnameValid = editable_userdata.lastname !== ""; + (editable.email || "") === "" || + (editable.email && isEmail(editable.email || "")); + $: isFirstnameValid = editable.firstname !== ""; + $: isLastnameValid = editable.lastname !== ""; $: save_enabled = changes_performed && isFirstnameValid && isLastnameValid && isEmailValid; + runner_promise.then((data) => { + data_loaded = true; + original_data = Object.assign(original_data, data); + editable = data; + }); function submit() { if (data_loaded === true && save_enabled) { Toastify({ text: "Updating runner...", duration: 2500, }).showToast(); - RunnerService.runnerControllerPut(original_data.id, editable_userdata) + editable.group = editable.group.id; + RunnerService.runnerControllerPut(original_data.id, editable) .then((resp) => { - Object.assign(original_data, editable_userdata); - original_data = editable_userdata; - Object.assign(original_data, editable_userdata); + Object.assign(original_data, editable); + original_data = editable; + Object.assign(original_data, editable); // Toastify({ text: "Runner updated!", @@ -60,7 +59,7 @@ {#await runner_promise} -{:then user} +{:then}
@@ -108,13 +107,12 @@ {original_data.firstname} {original_data.middlename || ''} {original_data.lastname} - + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:DELETE')} {#if delete_triggered} + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">{$_('confirm-deletion')} + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">{$_('delete-runner')} {/if} {/if} {#if !delete_triggered} @@ -153,7 +150,7 @@ class:border-red-500={!isFirstnameValid} class:focus:border-red-500={!isFirstnameValid} class:focus:ring-red-500={!isFirstnameValid} - bind:value={editable_userdata.firstname} + bind:value={editable.firstname} name="firstname" 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" /> {#if !isFirstnameValid} @@ -171,7 +168,7 @@ autocomplete="off" placeholder={$_('middle-name')} type="text" - bind:value={editable_userdata.middlename} + bind:value={editable.middlename} name="middlename" 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" />
@@ -183,7 +180,7 @@ autocomplete="off" placeholder={$_('last-name')} type="text" - bind:value={editable_userdata.lastname} + bind:value={editable.lastname} class:border-red-500={!isLastnameValid} class:focus:border-red-500={!isLastnameValid} class:focus:ring-red-500={!isLastnameValid} @@ -204,7 +201,7 @@ autocomplete="off" placeholder={$_('e-mail-adress')} type="email" - bind:value={editable_userdata.email} + bind:value={editable.email} class:border-red-500={!isEmailValid} class:focus:border-red-500={!isEmailValid} class:focus:ring-red-500={!isEmailValid} @@ -223,12 +220,12 @@ autocomplete="off" placeholder={$_('phone')} type="tel" - bind:value={editable_userdata.phone} + bind:value={editable.phone} name="phone" 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" />
- Distance + {$_('distance')}
{original_data.distance} km
diff --git a/src/locales/en.json b/src/locales/en.json index 15a862ef..d86f9a13 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -14,6 +14,7 @@ "changelog": "Changelog", "close": "Close", "confirm-delete": "Confirm Delete", + "confirm-deletion": "Confirm Deletion", "contact": "Contact", "count_organizations": "# Organizations", "count_teams": "# Teams", @@ -45,9 +46,11 @@ "an_error_happened_while_fetching_the_data": "An error happened while fetching the data" }, "delete-organization": "Delete Organization", + "delete-runner": "Delete Runner", "delete-team": "Delete Team", "delete-user": "Delete User", "dependency_name": "Name", + "distance": "Distance", "dont-have-your-email-connected": "Don't have your email connected?", "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", "drag-and-drop-your-files-or": "Drag & Drop your files or",