Compare commits
	
		
			9 Commits
		
	
	
		
			1.11.5
			...
			feature/an
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						8c56aa3c46
	
				 | 
					
					
						|||
| 
						
						
							
						
						1505080afd
	
				 | 
					
					
						|||
| 
						
						
							
						
						f642849dbb
	
				 | 
					
					
						|||
| 
						
						
							
						
						7ac92ae6ca
	
				 | 
					
					
						|||
| 
						
						
							
						
						95af9f9914
	
				 | 
					
					
						|||
| 
						
						
							
						
						1004aee16c
	
				 | 
					
					
						|||
| 
						
						
							
						
						0baf2fc460
	
				 | 
					
					
						|||
| 
						
						
							
						
						09b59175ee
	
				 | 
					
					
						|||
| 
						
						
							
						
						a21f61f3f3
	
				 | 
					
					
						
@@ -122,7 +122,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -109,7 +109,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -162,7 +162,7 @@
 | 
			
		||||
                      name="enabled"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      checked={editable.enabled}
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                    {$_("this-card-is")}
 | 
			
		||||
                    {#if editable.enabled}
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -167,7 +167,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -345,7 +345,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -300,7 +300,7 @@
 | 
			
		||||
					id="comments"
 | 
			
		||||
					name="comments"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,340 +1,384 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { _ } from "svelte-i18n";
 | 
			
		||||
  import { clickOutside } from "../base/outsideclick";
 | 
			
		||||
	import { _ } from "svelte-i18n";
 | 
			
		||||
	import { clickOutside } from "../base/outsideclick";
 | 
			
		||||
 | 
			
		||||
  import {
 | 
			
		||||
    DonationService,
 | 
			
		||||
    DonorService,
 | 
			
		||||
    RunnerService,
 | 
			
		||||
  } from "@odit/lfk-client-js";
 | 
			
		||||
  import Select from "svelte-select";
 | 
			
		||||
  import { createEventDispatcher, onMount } from "svelte";
 | 
			
		||||
  import toast from "svelte-french-toast";
 | 
			
		||||
  export let modal_open;
 | 
			
		||||
  const dispatch = createEventDispatcher();
 | 
			
		||||
  const getDonorLabel = (option) =>
 | 
			
		||||
    option.firstname + " " + (option.middlename || "") + " " + option.lastname;
 | 
			
		||||
  const filterDonors = (label, filterText, option) =>
 | 
			
		||||
    label.toLowerCase().includes(filterText.toLowerCase()) ||
 | 
			
		||||
    option.value.id.toString().startsWith(filterText.toLowerCase());
 | 
			
		||||
  $: donor = 0;
 | 
			
		||||
  $: runner = 0;
 | 
			
		||||
  $: donors = [];
 | 
			
		||||
  $: runners = [];
 | 
			
		||||
  $: is_fixed = false;
 | 
			
		||||
  $: is_paid = false;
 | 
			
		||||
  $: amount_input = 0;
 | 
			
		||||
  $: processed_last_submit = true;
 | 
			
		||||
  $: is_amount_valid = amount_input > 0;
 | 
			
		||||
  $: createbtnenabled = is_amount_valid;
 | 
			
		||||
  (() => {
 | 
			
		||||
    document.onkeydown = (e) => {
 | 
			
		||||
      e = e || window.event;
 | 
			
		||||
      if (e.key === "Escape") {
 | 
			
		||||
        modal_open = false;
 | 
			
		||||
      }
 | 
			
		||||
      if (e.keyCode === 13) {
 | 
			
		||||
        if (createbtnenabled === true) {
 | 
			
		||||
          createbtnenabled = false;
 | 
			
		||||
          submit();
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  })();
 | 
			
		||||
  function submit() {
 | 
			
		||||
    if (processed_last_submit === true) {
 | 
			
		||||
      let amount_cent = Math.floor(amount_input * 100);
 | 
			
		||||
      processed_last_submit = false;
 | 
			
		||||
      toast.loading($_("adding-donation"));
 | 
			
		||||
      if (is_fixed) {
 | 
			
		||||
        let postdata = {
 | 
			
		||||
          donor,
 | 
			
		||||
          amount: amount_cent,
 | 
			
		||||
          paidAmount: 0,
 | 
			
		||||
        };
 | 
			
		||||
        if (is_paid) {
 | 
			
		||||
          postdata.paidAmount = amount_cent;
 | 
			
		||||
        }
 | 
			
		||||
        DonationService.donationControllerPostFixed(postdata)
 | 
			
		||||
          .then((result) => {
 | 
			
		||||
            donor = donors[0].id || 0;
 | 
			
		||||
            runner = runners[0].id || 0;
 | 
			
		||||
            amount_input = 0;
 | 
			
		||||
            modal_open = false;
 | 
			
		||||
            //
 | 
			
		||||
            toast.dismiss();
 | 
			
		||||
            toast.success($_("donation_added"));
 | 
			
		||||
            dispatch("created", { donations: [result] });
 | 
			
		||||
          })
 | 
			
		||||
          .catch((err) => {
 | 
			
		||||
            //
 | 
			
		||||
          })
 | 
			
		||||
          .finally(() => {
 | 
			
		||||
            processed_last_submit = true;
 | 
			
		||||
          });
 | 
			
		||||
      } else {
 | 
			
		||||
        let postdata = {
 | 
			
		||||
          donor,
 | 
			
		||||
          runner,
 | 
			
		||||
          amountPerDistance: amount_cent,
 | 
			
		||||
        };
 | 
			
		||||
        DonationService.donationControllerPostDistance(postdata)
 | 
			
		||||
          .then((result) => {
 | 
			
		||||
            donor = donors[0].id || 0;
 | 
			
		||||
            runner = runners[0].id || 0;
 | 
			
		||||
            amount_input = 0;
 | 
			
		||||
            modal_open = false;
 | 
			
		||||
            //
 | 
			
		||||
            toast.dismiss();
 | 
			
		||||
            toast.success($_("donation_added"));
 | 
			
		||||
            dispatch("created", { donations: [result] });
 | 
			
		||||
          })
 | 
			
		||||
          .catch((err) => {
 | 
			
		||||
            //
 | 
			
		||||
          })
 | 
			
		||||
          .finally(() => {
 | 
			
		||||
            processed_last_submit = true;
 | 
			
		||||
          });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
	import {
 | 
			
		||||
		DonationService,
 | 
			
		||||
		DonorService,
 | 
			
		||||
		RunnerService,
 | 
			
		||||
	} from "@odit/lfk-client-js";
 | 
			
		||||
	import Select from "svelte-select";
 | 
			
		||||
	import { createEventDispatcher, onMount } from "svelte";
 | 
			
		||||
	import toast from "svelte-french-toast";
 | 
			
		||||
	export let modal_open;
 | 
			
		||||
	const dispatch = createEventDispatcher();
 | 
			
		||||
	const getDonorLabel = (option) =>
 | 
			
		||||
		option.firstname + " " + (option.middlename || "") + " " + option.lastname;
 | 
			
		||||
	const filterDonors = (label, filterText, option) =>
 | 
			
		||||
		label.toLowerCase().includes(filterText.toLowerCase()) ||
 | 
			
		||||
		option.value.id.toString().startsWith(filterText.toLowerCase());
 | 
			
		||||
	$: donor = 0;
 | 
			
		||||
	$: runner = 0;
 | 
			
		||||
	$: donors = [];
 | 
			
		||||
	$: runners = [];
 | 
			
		||||
	$: type = "distance";
 | 
			
		||||
	$: is_paid = false;
 | 
			
		||||
	$: amount_input = 0;
 | 
			
		||||
	$: processed_last_submit = true;
 | 
			
		||||
	$: is_amount_valid = amount_input > 0;
 | 
			
		||||
	$: createbtnenabled = is_amount_valid;
 | 
			
		||||
	(() => {
 | 
			
		||||
		document.onkeydown = (e) => {
 | 
			
		||||
			e = e || window.event;
 | 
			
		||||
			if (e.key === "Escape") {
 | 
			
		||||
				modal_open = false;
 | 
			
		||||
			}
 | 
			
		||||
			if (e.keyCode === 13) {
 | 
			
		||||
				if (createbtnenabled === true) {
 | 
			
		||||
					createbtnenabled = false;
 | 
			
		||||
					submit();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
	})();
 | 
			
		||||
	function submit() {
 | 
			
		||||
		if (processed_last_submit === true) {
 | 
			
		||||
			let amount_cent = Math.floor(amount_input * 100);
 | 
			
		||||
			processed_last_submit = false;
 | 
			
		||||
			toast.loading($_("adding-donation"));
 | 
			
		||||
			if (type === "fixed") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					donor,
 | 
			
		||||
					amount: amount_cent,
 | 
			
		||||
					paidAmount: 0,
 | 
			
		||||
				};
 | 
			
		||||
				if (is_paid) {
 | 
			
		||||
					postdata.paidAmount = amount_cent;
 | 
			
		||||
				}
 | 
			
		||||
				DonationService.donationControllerPostFixed(postdata)
 | 
			
		||||
					.then((result) => {
 | 
			
		||||
						donor = donors[0].id || 0;
 | 
			
		||||
						runner = runners[0].id || 0;
 | 
			
		||||
						amount_input = 0;
 | 
			
		||||
						modal_open = false;
 | 
			
		||||
						//
 | 
			
		||||
						toast.dismiss();
 | 
			
		||||
						toast.success($_("donation_added"));
 | 
			
		||||
						dispatch("created", { donations: [result] });
 | 
			
		||||
					})
 | 
			
		||||
					.catch((err) => {
 | 
			
		||||
						//
 | 
			
		||||
					})
 | 
			
		||||
					.finally(() => {
 | 
			
		||||
						processed_last_submit = true;
 | 
			
		||||
					});
 | 
			
		||||
			} else if (type === "anonymous") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					amount: amount_cent,
 | 
			
		||||
					paidAmount: 0,
 | 
			
		||||
				};
 | 
			
		||||
				if (is_paid) {
 | 
			
		||||
					postdata.paidAmount = amount_cent;
 | 
			
		||||
				}
 | 
			
		||||
				DonationService.donationControllerPostFixed(postdata)
 | 
			
		||||
					.then((result) => {
 | 
			
		||||
						amount_input = 0;
 | 
			
		||||
						modal_open = false;
 | 
			
		||||
						//
 | 
			
		||||
						toast.dismiss();
 | 
			
		||||
						toast.success($_("donation_added"));
 | 
			
		||||
						dispatch("created", { donations: [result] });
 | 
			
		||||
					})
 | 
			
		||||
					.catch((err) => {
 | 
			
		||||
						//
 | 
			
		||||
					})
 | 
			
		||||
					.finally(() => {
 | 
			
		||||
						processed_last_submit = true;
 | 
			
		||||
					});
 | 
			
		||||
			} else if (type === "distance") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					donor,
 | 
			
		||||
					runner,
 | 
			
		||||
					amountPerDistance: amount_cent,
 | 
			
		||||
				};
 | 
			
		||||
				DonationService.donationControllerPostDistance(postdata)
 | 
			
		||||
					.then((result) => {
 | 
			
		||||
						donor = donors[0].id || 0;
 | 
			
		||||
						runner = runners[0].id || 0;
 | 
			
		||||
						amount_input = 0;
 | 
			
		||||
						modal_open = false;
 | 
			
		||||
						//
 | 
			
		||||
						toast.dismiss();
 | 
			
		||||
						toast.success($_("donation_added"));
 | 
			
		||||
						dispatch("created", { donations: [result] });
 | 
			
		||||
					})
 | 
			
		||||
					.catch((err) => {
 | 
			
		||||
						//
 | 
			
		||||
					})
 | 
			
		||||
					.finally(() => {
 | 
			
		||||
						processed_last_submit = true;
 | 
			
		||||
					});
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
  onMount(async () => {
 | 
			
		||||
    donors = (await DonorService.donorControllerGetAll()).map(
 | 
			
		||||
      (r) => {
 | 
			
		||||
        return { label: getDonorLabel(r), value: r };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
    runners = (await RunnerService.runnerControllerGetAll()).map(
 | 
			
		||||
      (r) => {
 | 
			
		||||
        return { label: getDonorLabel(r), value: r };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
	onMount(async () => {
 | 
			
		||||
		donors = (await DonorService.donorControllerGetAll()).map((r) => {
 | 
			
		||||
			return { label: getDonorLabel(r), value: r };
 | 
			
		||||
		});
 | 
			
		||||
		runners = (await RunnerService.runnerControllerGetAll()).map((r) => {
 | 
			
		||||
			return { label: getDonorLabel(r), value: r };
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{#if modal_open}
 | 
			
		||||
  <div
 | 
			
		||||
    class="fixed z-10 inset-0 overflow-y-hidden"
 | 
			
		||||
    use:clickOutside
 | 
			
		||||
    on:click_outside={() => {
 | 
			
		||||
      modal_open = false;
 | 
			
		||||
    }}
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      class="flex items-end justify-center h-screen text-center sm:block p-0 lg:p-4"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="fixed inset-0 transition-opacity" aria-hidden="true">
 | 
			
		||||
        <div
 | 
			
		||||
          class="absolute inset-0 bg-gray-500 opacity-75"
 | 
			
		||||
          data-id="modal_backdrop"
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
      <span
 | 
			
		||||
        class="hidden sm:inline-block sm:align-middle sm:h-screen"
 | 
			
		||||
        aria-hidden="true">​</span
 | 
			
		||||
      >
 | 
			
		||||
      <div
 | 
			
		||||
        class="inline-block align-bottom text-left shadow-xl transform transition-all sm:align-middle w-full lg:w-auto min-w-auto lg:min-w-[35vw] relative z-10"
 | 
			
		||||
        role="dialog"
 | 
			
		||||
        aria-modal="true"
 | 
			
		||||
        aria-labelledby="modal-headline"
 | 
			
		||||
      >
 | 
			
		||||
        <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4 rounded-t-xl">
 | 
			
		||||
          <div class="">
 | 
			
		||||
            <div
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
                ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                <path
 | 
			
		||||
                  d="M14 2a8 8 0 013.3 15.3A8 8 0 116.7 6.7 8 8 0 0114 2zm-3 7H9v1a2.5 2.5 0 00-.16 5h2.25a.5.5 0 010 1H7v2h2v1h2v-1a2.5 2.5 0 00.16-5H8.91a.5.5 0 010-1H13v-2h-2V9zm3-5a5.99 5.99 0 00-4.48 2.01 8 8 0 018.47 8.47A6 6 0 0014 4z"
 | 
			
		||||
                /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="mt-3">
 | 
			
		||||
              <h3 class="text-lg leading-6 font-medium text-gray-900">
 | 
			
		||||
                {#if is_fixed}
 | 
			
		||||
                  {$_("create-a-new-fixed-donation")}
 | 
			
		||||
                {:else}{$_("create-a-new-distance-donation")}{/if}
 | 
			
		||||
	<div
 | 
			
		||||
		class="fixed z-10 inset-0 overflow-y-hidden"
 | 
			
		||||
		use:clickOutside
 | 
			
		||||
		on:click_outside={() => {
 | 
			
		||||
			modal_open = false;
 | 
			
		||||
		}}
 | 
			
		||||
	>
 | 
			
		||||
		<div
 | 
			
		||||
			class="flex items-end justify-center h-screen text-center sm:block p-0 lg:p-4"
 | 
			
		||||
		>
 | 
			
		||||
			<div class="fixed inset-0 transition-opacity" aria-hidden="true">
 | 
			
		||||
				<div
 | 
			
		||||
					class="absolute inset-0 bg-neutral-500 opacity-75"
 | 
			
		||||
					data-id="modal_backdrop"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<span
 | 
			
		||||
				class="hidden sm:inline-block sm:align-middle sm:h-screen"
 | 
			
		||||
				aria-hidden="true">​</span
 | 
			
		||||
			>
 | 
			
		||||
			<div
 | 
			
		||||
				class="inline-block align-bottom text-left shadow-xl transform transition-all sm:align-middle w-full lg:w-auto min-w-auto lg:min-w-[35vw] relative z-10"
 | 
			
		||||
				role="dialog"
 | 
			
		||||
				aria-modal="true"
 | 
			
		||||
				aria-labelledby="modal-headline"
 | 
			
		||||
			>
 | 
			
		||||
				<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4 rounded-t-xl">
 | 
			
		||||
					<div class="">
 | 
			
		||||
						<div
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
								><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
								<path
 | 
			
		||||
									d="M14 2a8 8 0 013.3 15.3A8 8 0 116.7 6.7 8 8 0 0114 2zm-3 7H9v1a2.5 2.5 0 00-.16 5h2.25a.5.5 0 010 1H7v2h2v1h2v-1a2.5 2.5 0 00.16-5H8.91a.5.5 0 010-1H13v-2h-2V9zm3-5a5.99 5.99 0 00-4.48 2.01 8 8 0 018.47 8.47A6 6 0 0014 4z"
 | 
			
		||||
								/></svg
 | 
			
		||||
							>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="mt-3">
 | 
			
		||||
              <h3 class="text-xl leading-6 font-medium text-neutral-900">
 | 
			
		||||
                Sponsoring erstellen
 | 
			
		||||
              </h3>
 | 
			
		||||
              <label class="content-center align-middle object-center">
 | 
			
		||||
                <span class="text-base" class:text-gray-300={is_fixed}
 | 
			
		||||
                  >{$_("distance-donation")}</span
 | 
			
		||||
                >
 | 
			
		||||
                <input
 | 
			
		||||
                  class="toggle relative w-10 h-5 transition-all duration-200 ease-in-out bg-gray-400 rounded-full shadow-inner outline-none appearance-none align-middle"
 | 
			
		||||
                  type="checkbox"
 | 
			
		||||
                  bind:checked={is_fixed}
 | 
			
		||||
                />
 | 
			
		||||
                <span class="ml-2 text-base" class:text-gray-300={!is_fixed}
 | 
			
		||||
                  >{$_("fixed-donation")}</span
 | 
			
		||||
                >
 | 
			
		||||
              </label>
 | 
			
		||||
              <div class="mb-6">
 | 
			
		||||
                <p class="text-sm text-gray-500">
 | 
			
		||||
                  {$_(
 | 
			
		||||
                    "please-provide-the-nessecary-information-to-create-a-new-donation"
 | 
			
		||||
                  )}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="grid grid-cols-6 gap-2 lg:gap-6 text-left">
 | 
			
		||||
                <div class="col-span-6">
 | 
			
		||||
                  <label
 | 
			
		||||
                    for="donor"
 | 
			
		||||
                    class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                    >{$_("donor")}</label
 | 
			
		||||
                  >
 | 
			
		||||
                  <Select
 | 
			
		||||
                    containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
                    itemFilter={(label, filterText, option) =>
 | 
			
		||||
                      filterDonors(label, filterText, option)}
 | 
			
		||||
                    items={donors}
 | 
			
		||||
                    showChevron={true}
 | 
			
		||||
                    placeholder={$_("search-for-donor-name-or-id")}
 | 
			
		||||
                    noOptionsMessage={$_("no-donors-found")}
 | 
			
		||||
                    on:select={(selectedValue) =>
 | 
			
		||||
                      (donor = selectedValue.detail.value.id)}
 | 
			
		||||
                    on:clear={() => (donors = null)}
 | 
			
		||||
                  />
 | 
			
		||||
                </div>
 | 
			
		||||
                {#if !is_fixed}
 | 
			
		||||
                  <div class="col-span-6">
 | 
			
		||||
                    <label
 | 
			
		||||
                      for="donor"
 | 
			
		||||
                      class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                      >{$_("runner")}</label
 | 
			
		||||
                    >
 | 
			
		||||
                    <Select
 | 
			
		||||
                      containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
                      itemFilter={(label, filterText, option) =>
 | 
			
		||||
                        filterDonors(label, filterText, option)}
 | 
			
		||||
                      items={runners}
 | 
			
		||||
                      showChevron={true}
 | 
			
		||||
                      placeholder={$_("search-for-runner-by-name-or-id")}
 | 
			
		||||
                      noOptionsMessage={$_("no-runners-found")}
 | 
			
		||||
                      on:select={(selectedValue) =>
 | 
			
		||||
                        (runner = selectedValue.detail.value.id)}
 | 
			
		||||
                      on:clear={() => (runner = null)}
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                {/if}
 | 
			
		||||
                <div class="col-span-6">
 | 
			
		||||
                  <label
 | 
			
		||||
                    for="donation_amount_eur"
 | 
			
		||||
                    class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                  >
 | 
			
		||||
                    {#if !is_fixed}
 | 
			
		||||
                      {$_("amount-per-kilometer")}
 | 
			
		||||
                    {:else}{$_("donation-amount")}{/if}</label
 | 
			
		||||
                  >
 | 
			
		||||
                  <div class="mt-1 flex rounded-md shadow-sm">
 | 
			
		||||
                    <input
 | 
			
		||||
                      autocomplete="off"
 | 
			
		||||
                      class:border-red-500={!is_amount_valid}
 | 
			
		||||
                      class:focus:border-red-500={!is_amount_valid}
 | 
			
		||||
                      class:focus:ring-red-500={!is_amount_valid}
 | 
			
		||||
                      bind:value={amount_input}
 | 
			
		||||
                      type="number"
 | 
			
		||||
                      step="0.01"
 | 
			
		||||
                      name="donation_amount_eur"
 | 
			
		||||
                      class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 p-2"
 | 
			
		||||
                      placeholder="2.00"
 | 
			
		||||
                    />
 | 
			
		||||
                    <span
 | 
			
		||||
                      class="inline-flex items-center px-3 rounded-r-md border border-gray-300 bg-gray-50 text-gray-500 text-sm"
 | 
			
		||||
                      >€</span
 | 
			
		||||
                    >
 | 
			
		||||
                  </div>
 | 
			
		||||
                  {#if !is_amount_valid}
 | 
			
		||||
                    <span
 | 
			
		||||
                      class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
                    >
 | 
			
		||||
                      {$_("donation-amount-must-be-greater-that-0-00eur")}
 | 
			
		||||
                    </span>
 | 
			
		||||
                  {/if}
 | 
			
		||||
                </div>
 | 
			
		||||
                {#if is_fixed}
 | 
			
		||||
                  <div class="col-span-6">
 | 
			
		||||
                    <label
 | 
			
		||||
                      for="paid"
 | 
			
		||||
                      class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                      >{$_("already-paid")}</label
 | 
			
		||||
                    >
 | 
			
		||||
                    <p class="text-gray-500">
 | 
			
		||||
                      <input
 | 
			
		||||
                        id="paid"
 | 
			
		||||
                        bind:checked={is_paid}
 | 
			
		||||
                        name="paid"
 | 
			
		||||
                        type="checkbox"
 | 
			
		||||
                        class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      />
 | 
			
		||||
                      <span class="align-text-bottom">
 | 
			
		||||
                        {#if is_paid}
 | 
			
		||||
                          {$_("paid")}
 | 
			
		||||
                        {:else}
 | 
			
		||||
                          {$_("open")}
 | 
			
		||||
                        {/if}
 | 
			
		||||
                      </span>
 | 
			
		||||
                    </p>
 | 
			
		||||
                  </div>
 | 
			
		||||
                {/if}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="bg-gray-50 px-4 lg:py-3 sm:px-6 grid gap-2 lg:rounded-b-xl pt-3 pb-10">
 | 
			
		||||
          <button
 | 
			
		||||
            disabled={!createbtnenabled}
 | 
			
		||||
            class:opacity-50={!createbtnenabled}
 | 
			
		||||
            on:click={submit}
 | 
			
		||||
            type="button"
 | 
			
		||||
            class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
 | 
			
		||||
          >
 | 
			
		||||
            {$_("create")}
 | 
			
		||||
          </button>
 | 
			
		||||
          <button
 | 
			
		||||
            on:click={() => {
 | 
			
		||||
              modal_open = false;
 | 
			
		||||
            }}
 | 
			
		||||
            type="button"
 | 
			
		||||
            class="w-full justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 hidden lg:block"
 | 
			
		||||
          >
 | 
			
		||||
            {$_("cancel")}
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
							<nav
 | 
			
		||||
								class="relative z-0 flex border border-neutral-200 rounded-xl overflow-hidden mb-2"
 | 
			
		||||
							>
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "distance";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-1"
 | 
			
		||||
									class:donation_active_tab={type === "distance"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "distance"}
 | 
			
		||||
									aria-selected={type === "distance"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
									{$_("spende_pro_km")}
 | 
			
		||||
								</button>
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "fixed";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-2"
 | 
			
		||||
									class:donation_active_tab={type === "fixed"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "fixed"}
 | 
			
		||||
									aria-selected={type === "fixed"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
									{$_("festbetrag")}
 | 
			
		||||
								</button>
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "anonymous";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-3"
 | 
			
		||||
									class:donation_active_tab={type === "anonymous"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "anonymous"}
 | 
			
		||||
									aria-selected={type === "anonymous"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
									{$_("anonyme_spende")}
 | 
			
		||||
								</button>
 | 
			
		||||
							</nav>
 | 
			
		||||
 | 
			
		||||
							<div class="grid grid-cols-6 gap-2 lg:gap-6 text-left">
 | 
			
		||||
								{#if type === "anonymous"}
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donation_amount_eur"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
										>
 | 
			
		||||
											{$_("donation-amount")}</label
 | 
			
		||||
										>
 | 
			
		||||
										<div class="mt-1 flex rounded-md shadow-sm">
 | 
			
		||||
											<input
 | 
			
		||||
												autocomplete="off"
 | 
			
		||||
												class:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:ring-red-500={!is_amount_valid}
 | 
			
		||||
												bind:value={amount_input}
 | 
			
		||||
												type="number"
 | 
			
		||||
												step="0.01"
 | 
			
		||||
												name="donation_amount_eur"
 | 
			
		||||
												class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 p-2"
 | 
			
		||||
												placeholder="2.00"
 | 
			
		||||
											/>
 | 
			
		||||
											<span
 | 
			
		||||
												class="inline-flex items-center px-3 rounded-r-md border border-neutral-300 bg-neutral-50 text-neutral-500 text-sm"
 | 
			
		||||
												>€</span
 | 
			
		||||
											>
 | 
			
		||||
										</div>
 | 
			
		||||
										{#if !is_amount_valid}
 | 
			
		||||
											<span
 | 
			
		||||
												class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
											>
 | 
			
		||||
												{$_("donation-amount-must-be-greater-that-0-00eur")}
 | 
			
		||||
											</span>
 | 
			
		||||
										{/if}
 | 
			
		||||
									</div>
 | 
			
		||||
								{:else}
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donor"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
											>{$_("donor")}</label
 | 
			
		||||
										>
 | 
			
		||||
										<Select
 | 
			
		||||
											containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
											itemFilter={(label, filterText, option) =>
 | 
			
		||||
												filterDonors(label, filterText, option)}
 | 
			
		||||
											items={donors}
 | 
			
		||||
											showChevron={true}
 | 
			
		||||
											placeholder={$_("search-for-donor-name-or-id")}
 | 
			
		||||
											noOptionsMessage={$_("no-donors-found")}
 | 
			
		||||
											on:select={(selectedValue) =>
 | 
			
		||||
												(donor = selectedValue.detail.value.id)}
 | 
			
		||||
											on:clear={() => (donors = null)}
 | 
			
		||||
										/>
 | 
			
		||||
									</div>
 | 
			
		||||
									{#if type === "distance"}
 | 
			
		||||
										<div class="col-span-6">
 | 
			
		||||
											<label
 | 
			
		||||
												for="donor"
 | 
			
		||||
												class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
												>{$_("runner")}</label
 | 
			
		||||
											>
 | 
			
		||||
											<Select
 | 
			
		||||
												containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
												itemFilter={(label, filterText, option) =>
 | 
			
		||||
													filterDonors(label, filterText, option)}
 | 
			
		||||
												items={runners}
 | 
			
		||||
												showChevron={true}
 | 
			
		||||
												placeholder={$_("search-for-runner-by-name-or-id")}
 | 
			
		||||
												noOptionsMessage={$_("no-runners-found")}
 | 
			
		||||
												on:select={(selectedValue) =>
 | 
			
		||||
													(runner = selectedValue.detail.value.id)}
 | 
			
		||||
												on:clear={() => (runner = null)}
 | 
			
		||||
											/>
 | 
			
		||||
										</div>
 | 
			
		||||
									{/if}
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donation_amount_eur"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
										>
 | 
			
		||||
											{#if type === "fixed"}
 | 
			
		||||
												{$_("donation-amount")}
 | 
			
		||||
											{:else}{$_("amount-per-kilometer")}{/if}</label
 | 
			
		||||
										>
 | 
			
		||||
										<div class="mt-1 flex rounded-md shadow-sm">
 | 
			
		||||
											<input
 | 
			
		||||
												autocomplete="off"
 | 
			
		||||
												class:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:ring-red-500={!is_amount_valid}
 | 
			
		||||
												bind:value={amount_input}
 | 
			
		||||
												type="number"
 | 
			
		||||
												step="0.01"
 | 
			
		||||
												name="donation_amount_eur"
 | 
			
		||||
												class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 p-2"
 | 
			
		||||
												placeholder="2.00"
 | 
			
		||||
											/>
 | 
			
		||||
											<span
 | 
			
		||||
												class="inline-flex items-center px-3 rounded-r-md border border-neutral-300 bg-neutral-50 text-neutral-500 text-sm"
 | 
			
		||||
												>€</span
 | 
			
		||||
											>
 | 
			
		||||
										</div>
 | 
			
		||||
										{#if !is_amount_valid}
 | 
			
		||||
											<span
 | 
			
		||||
												class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
											>
 | 
			
		||||
												{$_("donation-amount-must-be-greater-that-0-00eur")}
 | 
			
		||||
											</span>
 | 
			
		||||
										{/if}
 | 
			
		||||
									</div>
 | 
			
		||||
								{/if}
 | 
			
		||||
								{#if type === "fixed" || type === "anonymous"}
 | 
			
		||||
									<div class="flex">
 | 
			
		||||
										<input
 | 
			
		||||
											bind:checked={is_paid}
 | 
			
		||||
											type="checkbox"
 | 
			
		||||
											class="shrink-0 mt-0.5 border-neutral-200 rounded-sm text-blue-600 focus:ring-blue-500 checked:border-blue-500 disabled:opacity-50 disabled:pointer-events-none"
 | 
			
		||||
											id="hs-default-checkbox"
 | 
			
		||||
										/>
 | 
			
		||||
										<label
 | 
			
		||||
											for="hs-default-checkbox"
 | 
			
		||||
											class="text-base text-neutral-900 ms-2 font-medium"
 | 
			
		||||
											>{$_("already-paid")}</label
 | 
			
		||||
										>
 | 
			
		||||
									</div>
 | 
			
		||||
								{/if}
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div
 | 
			
		||||
					class="bg-neutral-50 px-4 lg:py-3 sm:px-6 grid gap-2 lg:rounded-b-xl pt-3 pb-10"
 | 
			
		||||
				>
 | 
			
		||||
					<button
 | 
			
		||||
						disabled={!createbtnenabled}
 | 
			
		||||
						class:opacity-50={!createbtnenabled}
 | 
			
		||||
						on:click={submit}
 | 
			
		||||
						type="button"
 | 
			
		||||
						class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
 | 
			
		||||
					>
 | 
			
		||||
						{$_("create")}
 | 
			
		||||
					</button>
 | 
			
		||||
					<button
 | 
			
		||||
						on:click={() => {
 | 
			
		||||
							modal_open = false;
 | 
			
		||||
						}}
 | 
			
		||||
						type="button"
 | 
			
		||||
						class="w-full justify-center rounded-md border border-neutral-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-neutral-900 hover:bg-neutral-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 hidden lg:block"
 | 
			
		||||
					>
 | 
			
		||||
						{$_("cancel")}
 | 
			
		||||
					</button>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
{/if}
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
  .toggle:before {
 | 
			
		||||
    content: "";
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    width: 1.25rem;
 | 
			
		||||
    height: 1.25rem;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    transform: scale(1.1);
 | 
			
		||||
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.2);
 | 
			
		||||
    background-color: white;
 | 
			
		||||
    transition: 0.2s ease-in-out;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .toggle:checked {
 | 
			
		||||
    /* @apply: bg-indigo-400; */
 | 
			
		||||
    background-color: #7f9cf5;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .toggle:checked:before {
 | 
			
		||||
    left: 1.25rem;
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,21 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { _ } from "svelte-i18n";
 | 
			
		||||
  export let donor;
 | 
			
		||||
	import { _ } from "svelte-i18n";
 | 
			
		||||
	export let donor;
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{#if !donor || donor.firstname == 0}
 | 
			
		||||
  {$_("donor-has-no-associated-donations")}
 | 
			
		||||
	<span
 | 
			
		||||
		class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 border border-current"
 | 
			
		||||
		>{$_('anonymer_sponsor')}</span
 | 
			
		||||
	>
 | 
			
		||||
{:else}
 | 
			
		||||
  <div class="flex items-center">
 | 
			
		||||
    <a
 | 
			
		||||
      href="../donors/{donor.id}"
 | 
			
		||||
      class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 border border-current"
 | 
			
		||||
      >{donor.firstname}
 | 
			
		||||
      {#if donor.middlename}{donor.middlename}{/if}
 | 
			
		||||
      {donor.lastname}</a
 | 
			
		||||
    >
 | 
			
		||||
  </div>
 | 
			
		||||
	<div class="flex items-center">
 | 
			
		||||
		<a
 | 
			
		||||
			href="../donors/{donor.id}"
 | 
			
		||||
			class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 border border-current"
 | 
			
		||||
			>{donor.firstname}
 | 
			
		||||
			{#if donor.middlename}{donor.middlename}{/if}
 | 
			
		||||
			{donor.lastname}</a
 | 
			
		||||
		>
 | 
			
		||||
	</div>
 | 
			
		||||
{/if}
 | 
			
		||||
 
 | 
			
		||||
@@ -155,7 +155,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -309,7 +309,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -314,7 +314,7 @@
 | 
			
		||||
					id="comments"
 | 
			
		||||
					name="comments"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ml-3">
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								width="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
<script>
 | 
			
		||||
  let open = false;
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div class="md:flex flex-col md:flex-row h-screen w-full">
 | 
			
		||||
  <div
 | 
			
		||||
    class="flex flex-col w-full md:w-64 text-gray-700 bg-white dark-mode:text-gray-200 dark-mode:bg-gray-800 flex-shrink-0"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      class="flex-shrink-0 px-8 py-4 flex flex-row items-center justify-between"
 | 
			
		||||
    >
 | 
			
		||||
      <a
 | 
			
		||||
        href="/#/test"
 | 
			
		||||
        class="text-lg font-semibold tracking-widest text-gray-900 uppercase rounded-lg dark-mode:text-white focus:outline-none focus:shadow-outline"
 | 
			
		||||
        >Sidebar</a
 | 
			
		||||
      >
 | 
			
		||||
      <button
 | 
			
		||||
        class="rounded-lg md:hidden focus:outline-none focus:shadow-outline"
 | 
			
		||||
      >
 | 
			
		||||
        <svg fill="currentColor" viewBox="0 0 20 20" class="w-6 h-6">
 | 
			
		||||
          {#if open}
 | 
			
		||||
            <path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            />
 | 
			
		||||
          {/if}
 | 
			
		||||
          {#if !open}
 | 
			
		||||
            <path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM9 15a1 1 0 011-1h6a1 1 0 110 2h-6a1 1 0 01-1-1z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            />
 | 
			
		||||
          {/if}
 | 
			
		||||
        </svg>
 | 
			
		||||
      </button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <nav
 | 
			
		||||
      :class:block={open}
 | 
			
		||||
      :class:hidden={!open}
 | 
			
		||||
      class="flex-grow md:block px-4 pb-4 md:pb-0 md:overflow-y-auto"
 | 
			
		||||
    >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-gray-200 rounded-lg dark-mode:bg-gray-700 dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Blog</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Portfolio</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">About</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Contact</a
 | 
			
		||||
      >
 | 
			
		||||
      <div class="relative">
 | 
			
		||||
        <button
 | 
			
		||||
          on:click={() => {
 | 
			
		||||
            open = !open;
 | 
			
		||||
          }}
 | 
			
		||||
          class="flex flex-row items-center w-full px-4 py-2 mt-2 text-sm font-semibold text-left bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:focus:bg-gray-600 dark-mode:hover:bg-gray-600 md:block hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        >
 | 
			
		||||
          <span>Dropdown</span>
 | 
			
		||||
          <svg
 | 
			
		||||
            fill="currentColor"
 | 
			
		||||
            viewBox="0 0 20 20"
 | 
			
		||||
            class="inline w-4 h-4 mt-1 ml-1 transition-transform duration-200 transform md:-mt-1"
 | 
			
		||||
            ><path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            /></svg
 | 
			
		||||
          >
 | 
			
		||||
        </button>
 | 
			
		||||
        <div
 | 
			
		||||
          class:block={open}
 | 
			
		||||
          class:hidden={!open}
 | 
			
		||||
          class="absolute right-0 w-full mt-2 origin-top-right rounded-md shadow-lg"
 | 
			
		||||
        >
 | 
			
		||||
          <div
 | 
			
		||||
            class="px-2 py-2 bg-white rounded-md shadow dark-mode:bg-gray-800"
 | 
			
		||||
          >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #1</a
 | 
			
		||||
            >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #2</a
 | 
			
		||||
            >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #3</a
 | 
			
		||||
            >
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </nav>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -92,7 +92,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 640 512"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -170,7 +170,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -246,7 +246,7 @@
 | 
			
		||||
						id="toggle_selfservice_feature"
 | 
			
		||||
						name="toggle_selfservice_feature"
 | 
			
		||||
						type="checkbox"
 | 
			
		||||
						class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
						class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="ml-3 text-sm">
 | 
			
		||||
@@ -303,7 +303,7 @@
 | 
			
		||||
								id="toggle_address_checkbox"
 | 
			
		||||
								name="toggle_address_checkbox"
 | 
			
		||||
								type="checkbox"
 | 
			
		||||
								class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
								class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
							/>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -159,7 +159,7 @@
 | 
			
		||||
											<input
 | 
			
		||||
												bind:checked={o.is_selected}
 | 
			
		||||
												type="checkbox"
 | 
			
		||||
												class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
												class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
											/>
 | 
			
		||||
										</td>
 | 
			
		||||
										<td class="px-6 py-4 whitespace-nowrap">
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -150,7 +150,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -225,7 +225,7 @@
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -103,7 +103,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -178,7 +178,7 @@
 | 
			
		||||
                      name="enabled"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      checked={enabled}
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                    {$_("this-scanstation-is")}
 | 
			
		||||
                    {#if enabled}{$_("enabled")}{:else}{$_("disabled")}{/if}
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -178,7 +178,7 @@
 | 
			
		||||
					name="enabled"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					checked={editable.enabled}
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
				{$_("this-scanstation-is")}
 | 
			
		||||
				{#if editable.enabled}{$_("enabled")}{:else}{$_("disabled")}{/if}
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -100,7 +100,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -144,7 +144,7 @@
 | 
			
		||||
											<input
 | 
			
		||||
												bind:checked={t.is_selected}
 | 
			
		||||
												type="checkbox"
 | 
			
		||||
												class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
												class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
											/>
 | 
			
		||||
										</td>
 | 
			
		||||
										<td class="px-6 py-4 whitespace-nowrap">
 | 
			
		||||
 
 | 
			
		||||
@@ -98,7 +98,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -192,7 +192,7 @@
 | 
			
		||||
					name="enabled"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					checked={editable_userdata.enabled}
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
				{$_("set-the-user-active-inactive")}
 | 
			
		||||
			</p>
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,8 @@
 | 
			
		||||
    "already-paid": "Bereits bezahlt",
 | 
			
		||||
    "amount": "Anzahl",
 | 
			
		||||
    "amount-per-kilometer": "Betrag pro Kilometer",
 | 
			
		||||
    "anonyme_spende": "Anonyme Spende",
 | 
			
		||||
    "anonymer_sponsor": "👻 Anonymer Sponsor",
 | 
			
		||||
    "apartment-suite-etc": "Apartment, Wohnung, etc.",
 | 
			
		||||
    "api-endpoint": "API-Endpunkt",
 | 
			
		||||
    "application_name": "Lauf für Kaya! - Admin",
 | 
			
		||||
@@ -224,6 +226,7 @@
 | 
			
		||||
    "error_on_login": "😢Fehler beim Login",
 | 
			
		||||
    "everything-concerning-your-profile": "Alles zu deinem Profil",
 | 
			
		||||
    "faq": "FAQ",
 | 
			
		||||
    "festbetrag": "Festbetrag",
 | 
			
		||||
    "filename_sponsoringquittungsliste": "SponsoringQuittungsListe",
 | 
			
		||||
    "filter-by-organization-team": "Filtern nach Organisation / Team",
 | 
			
		||||
    "first-name": "Vorname",
 | 
			
		||||
@@ -418,6 +421,7 @@
 | 
			
		||||
    "settings": "Einstellungen",
 | 
			
		||||
    "settings-for-your-profile": "Die Einstellungen deines Accounts",
 | 
			
		||||
    "something-about-the-group": "Infos zur Gruppe",
 | 
			
		||||
    "spende_pro_km": "Spende pro km",
 | 
			
		||||
    "sponsoring-quittungs-liste_herunterladen": "Sponsoring-Quittungs-Liste herunterladen",
 | 
			
		||||
    "sponsorings": "Sponsoringerklaerungen",
 | 
			
		||||
    "station-deleted": "Scannerstation gelöscht",
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,8 @@
 | 
			
		||||
    "already-paid": "Already paid",
 | 
			
		||||
    "amount": "Amount",
 | 
			
		||||
    "amount-per-kilometer": "Amount per kilometer",
 | 
			
		||||
    "anonyme_spende": "Anonymous Donation",
 | 
			
		||||
    "anonymer_sponsor": "👻 Anonymous Donor",
 | 
			
		||||
    "apartment-suite-etc": "Apartment, suite, etc.",
 | 
			
		||||
    "api-endpoint": "API-Endpoint",
 | 
			
		||||
    "application_name": "Lauf für Kaya! - Admin",
 | 
			
		||||
@@ -224,6 +226,7 @@
 | 
			
		||||
    "error_on_login": "Error on login",
 | 
			
		||||
    "everything-concerning-your-profile": "Everything concerning your profile",
 | 
			
		||||
    "faq": "FAQ",
 | 
			
		||||
    "festbetrag": "Fixed Donation",
 | 
			
		||||
    "filename_sponsoringquittungsliste": "DonorReceiptList",
 | 
			
		||||
    "filter-by-organization-team": "Filter by Organization/ Team",
 | 
			
		||||
    "first-name": "First name",
 | 
			
		||||
@@ -418,6 +421,7 @@
 | 
			
		||||
    "settings": "Settings",
 | 
			
		||||
    "settings-for-your-profile": "Settings for your profile",
 | 
			
		||||
    "something-about-the-group": "Something about the group...",
 | 
			
		||||
    "spende_pro_km": "donation per km",
 | 
			
		||||
    "sponsoring-quittungs-liste_herunterladen": "Download donor receipt list",
 | 
			
		||||
    "sponsorings": "Sponsorings",
 | 
			
		||||
    "station-deleted": "station deleted",
 | 
			
		||||
 
 | 
			
		||||
@@ -25,3 +25,9 @@
 | 
			
		||||
#html5-qrcode-button-camera-stop {
 | 
			
		||||
	@apply px-2 inline-flex text-lg leading-5 font-semibold rounded-md border border-current bg-red-100 text-red-800 mb-2 cursor-pointer;
 | 
			
		||||
}
 | 
			
		||||
.donation_inactive_tab {
 | 
			
		||||
	@apply min-w-0 flex-1 bg-white first:border-s-0 border-s border-b-2 border-neutral-200 py-4 px-4 text-neutral-800 hover:text-neutral-700 text-sm font-medium text-center overflow-hidden hover:bg-neutral-200 cursor-pointer focus:z-10 focus:outline-hidden focus:bg-neutral-200 disabled:opacity-50 disabled:pointer-events-none;
 | 
			
		||||
}
 | 
			
		||||
.donation_active_tab {
 | 
			
		||||
	@apply min-w-0 flex-1 bg-blue-400 text-white first:border-s-0 border-s border-b-2 border-neutral-200 py-4 px-4 text-sm font-medium text-center overflow-hidden cursor-pointer focus:outline-hidden;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user