This commit is contained in:
		@@ -119,9 +119,9 @@
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  async function copy() {
 | 
			
		||||
    if(!editable.registrationKey){
 | 
			
		||||
    if (!editable.registrationKey) {
 | 
			
		||||
      Toastify({
 | 
			
		||||
        text: $_('you-have-to-save-your-changes-to-generate-a-link'),
 | 
			
		||||
        text: $_("you-have-to-save-your-changes-to-generate-a-link"),
 | 
			
		||||
        duration: 500,
 | 
			
		||||
        backgroundColor:
 | 
			
		||||
          "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
			
		||||
@@ -167,7 +167,8 @@
 | 
			
		||||
  passed_orgs={[]}
 | 
			
		||||
  passed_org={editable}
 | 
			
		||||
  opened_from="OrgDetail"
 | 
			
		||||
  bind:import_modal_open />
 | 
			
		||||
  bind:import_modal_open
 | 
			
		||||
/>
 | 
			
		||||
<ConfirmOrgDeletion bind:modal_open bind:delete_org />
 | 
			
		||||
{#if data_loaded}
 | 
			
		||||
  <section class="container p-5">
 | 
			
		||||
@@ -176,29 +177,35 @@
 | 
			
		||||
      <span data-id="org_actions_${editable.id}">
 | 
			
		||||
        <GenerateSponsoringContracts
 | 
			
		||||
          bind:sponsoring_contracts_show
 | 
			
		||||
          bind:generate_orgs />
 | 
			
		||||
          bind:generate_orgs
 | 
			
		||||
        />
 | 
			
		||||
        <GenerateRunnerCards bind:cards_show bind:generate_orgs />
 | 
			
		||||
        <GenerateRunnerCertificates bind:certificates_show bind:generate_orgs />
 | 
			
		||||
        {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')}
 | 
			
		||||
        {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:IMPORT")}
 | 
			
		||||
          <button
 | 
			
		||||
            on:click={() => {
 | 
			
		||||
              import_modal_open = true;
 | 
			
		||||
            }}
 | 
			
		||||
            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 sm:ml-3 sm:w-auto sm:text-sm">
 | 
			
		||||
            {$_('import-runners')}
 | 
			
		||||
            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 sm:ml-3 sm:w-auto sm:text-sm"
 | 
			
		||||
          >
 | 
			
		||||
            {$_("import-runners")}
 | 
			
		||||
          </button>
 | 
			
		||||
        {/if}
 | 
			
		||||
        {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:DELETE')}
 | 
			
		||||
        {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:DELETE")}
 | 
			
		||||
          {#if delete_triggered}
 | 
			
		||||
            <button
 | 
			
		||||
              on:click={deleteOrganization}
 | 
			
		||||
              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-delete')}</button>
 | 
			
		||||
              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-delete")}</button
 | 
			
		||||
            >
 | 
			
		||||
            <button
 | 
			
		||||
              on:click={() => {
 | 
			
		||||
                delete_triggered = !delete_triggered;
 | 
			
		||||
              }}
 | 
			
		||||
              class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-400 text-base font-medium text-white sm:w-auto sm:text-sm">{$_('cancel')}</button>
 | 
			
		||||
              class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-400 text-base font-medium text-white sm:w-auto sm:text-sm"
 | 
			
		||||
              >{$_("cancel")}</button
 | 
			
		||||
            >
 | 
			
		||||
          {/if}
 | 
			
		||||
          {#if !delete_triggered}
 | 
			
		||||
            <button
 | 
			
		||||
@@ -206,7 +213,9 @@
 | 
			
		||||
                delete_triggered = true;
 | 
			
		||||
              }}
 | 
			
		||||
              type="button"
 | 
			
		||||
              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-organization')}</button>
 | 
			
		||||
              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-organization")}</button
 | 
			
		||||
            >
 | 
			
		||||
          {/if}
 | 
			
		||||
        {/if}
 | 
			
		||||
        {#if !delete_triggered}
 | 
			
		||||
@@ -215,7 +224,9 @@
 | 
			
		||||
            disabled={!save_enabled}
 | 
			
		||||
            class:opacity-50={!save_enabled}
 | 
			
		||||
            type="button"
 | 
			
		||||
            class="w-full 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 sm:ml-3 sm:w-auto sm:text-sm">{$_('save-changes')}</button>
 | 
			
		||||
            class="w-full 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 sm:ml-3 sm:w-auto sm:text-sm"
 | 
			
		||||
            >{$_("save-changes")}</button
 | 
			
		||||
          >
 | 
			
		||||
        {/if}
 | 
			
		||||
      </span>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -234,12 +245,13 @@
 | 
			
		||||
                class="h-3 w-3 stroke-current"
 | 
			
		||||
                height="1em"
 | 
			
		||||
                width="1em"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"><path
 | 
			
		||||
                  d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
 | 
			
		||||
                <polyline points="9 22 9 12 15 12 15 22" /></svg>
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                ><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
 | 
			
		||||
                <polyline points="9 22 9 12 15 12 15 22" /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </li>
 | 
			
		||||
            <li class="flex items-center">
 | 
			
		||||
              <a class="mr-2" href="/">{$_('home')}</a><svg
 | 
			
		||||
              <a class="mr-2" href="/">{$_("home")}</a><svg
 | 
			
		||||
                stroke="currentColor"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                stroke-width="2"
 | 
			
		||||
@@ -249,24 +261,25 @@
 | 
			
		||||
                class="h-3 w-3 mr-2 stroke-current"
 | 
			
		||||
                height="1em"
 | 
			
		||||
                width="1em"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"><line
 | 
			
		||||
                  x1="5"
 | 
			
		||||
                  y1="12"
 | 
			
		||||
                  x2="19"
 | 
			
		||||
                  y2="12" />
 | 
			
		||||
                <polyline points="12 5 19 12 12 19" /></svg>
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                ><line x1="5" y1="12" x2="19" y2="12" />
 | 
			
		||||
                <polyline points="12 5 19 12 12 19" /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </li>
 | 
			
		||||
            <li class="mr-2 flex items-center">
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                height="24"
 | 
			
		||||
                ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                <path
 | 
			
		||||
                  d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z" /></svg>
 | 
			
		||||
                  d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z"
 | 
			
		||||
                /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </li>
 | 
			
		||||
            <li class="flex items-center">
 | 
			
		||||
              <a class="mr-2" href="./">{$_('organizations')}</a><svg
 | 
			
		||||
              <a class="mr-2" href="./">{$_("organizations")}</a><svg
 | 
			
		||||
                stroke="currentColor"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                stroke-width="2"
 | 
			
		||||
@@ -276,12 +289,10 @@
 | 
			
		||||
                class="h-3 w-3 mr-2 stroke-current"
 | 
			
		||||
                height="1em"
 | 
			
		||||
                width="1em"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"><line
 | 
			
		||||
                  x1="5"
 | 
			
		||||
                  y1="12"
 | 
			
		||||
                  x2="19"
 | 
			
		||||
                  y2="12" />
 | 
			
		||||
                <polyline points="12 5 19 12 12 19" /></svg>
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                ><line x1="5" y1="12" x2="19" y2="12" />
 | 
			
		||||
                <polyline points="12 5 19 12 12 19" /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </li>
 | 
			
		||||
            <li class="flex items-center">
 | 
			
		||||
              <span class="mr-2">Org-Details #{params.orgid}</span>
 | 
			
		||||
@@ -291,35 +302,34 @@
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="text-sm w-full">
 | 
			
		||||
      <label for="name" class="font-medium text-gray-700">{$_('name')}</label>
 | 
			
		||||
      <label for="name" class="font-medium text-gray-700">{$_("name")}</label>
 | 
			
		||||
      <input
 | 
			
		||||
        autocomplete="off"
 | 
			
		||||
        placeholder={$_('name')}
 | 
			
		||||
        placeholder={$_("name")}
 | 
			
		||||
        type="text"
 | 
			
		||||
        bind:value={editable.name}
 | 
			
		||||
        name="name"
 | 
			
		||||
        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"
 | 
			
		||||
      />
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="text-sm w-full">
 | 
			
		||||
      <label
 | 
			
		||||
        for="contact"
 | 
			
		||||
        class="font-medium text-gray-700">{$_('contact')}</label>
 | 
			
		||||
      <label for="contact" class="font-medium text-gray-700"
 | 
			
		||||
        >{$_("contact")}</label
 | 
			
		||||
      >
 | 
			
		||||
      <Select
 | 
			
		||||
        containerClasses="rounded-l-md 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"
 | 
			
		||||
        itemFilter={(label, filterText, option) => label
 | 
			
		||||
            .toLowerCase()
 | 
			
		||||
            .includes(
 | 
			
		||||
              filterText.toLowerCase()
 | 
			
		||||
            ) || option.value.id
 | 
			
		||||
            .toString()
 | 
			
		||||
            .startsWith(filterText.toLowerCase())}
 | 
			
		||||
        itemFilter={(label, filterText, option) =>
 | 
			
		||||
          label.toLowerCase().includes(filterText.toLowerCase()) ||
 | 
			
		||||
          option.value.id.toString().startsWith(filterText.toLowerCase())}
 | 
			
		||||
        items={contacts}
 | 
			
		||||
        showChevron={true}
 | 
			
		||||
        placeholder={$_('no-contact-selected')}
 | 
			
		||||
        noOptionsMessage={$_('no-contact-found')}
 | 
			
		||||
        placeholder={$_("no-contact-selected")}
 | 
			
		||||
        noOptionsMessage={$_("no-contact-found")}
 | 
			
		||||
        bind:selectedValue={contact}
 | 
			
		||||
        on:select={(selectedValue) => (editable.contact = selectedValue.detail.value)}
 | 
			
		||||
        on:clear={() => (editable.contact = null)} />
 | 
			
		||||
        on:select={(selectedValue) =>
 | 
			
		||||
          (editable.contact = selectedValue.detail.value)}
 | 
			
		||||
        on:clear={() => (editable.contact = null)}
 | 
			
		||||
      />
 | 
			
		||||
    </div>
 | 
			
		||||
    <div>
 | 
			
		||||
      <div class="flex items-start mt-2">
 | 
			
		||||
@@ -329,43 +339,51 @@
 | 
			
		||||
            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 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ml-3 text-sm">
 | 
			
		||||
          <label
 | 
			
		||||
            for="toggle_selfservice_feature"
 | 
			
		||||
            class="font-medium text-gray-700">{$_('selfservice-registration')}</label>
 | 
			
		||||
            class="font-medium text-gray-700"
 | 
			
		||||
            >{$_("selfservice-registration")}</label
 | 
			
		||||
          >
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div>
 | 
			
		||||
        {#if editable.registrationEnabled}
 | 
			
		||||
          <div class="text-sm w-full">
 | 
			
		||||
            <div on:click={copy} class="inline-flex w-full">
 | 
			
		||||
            <button on:click={copy} class="inline-flex w-full">
 | 
			
		||||
              <p
 | 
			
		||||
                name="token"
 | 
			
		||||
                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 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 p-2"
 | 
			
		||||
              >
 | 
			
		||||
                {#if editable.registrationKey}
 | 
			
		||||
                {registrationLink}
 | 
			
		||||
                  {registrationLink}
 | 
			
		||||
                {:else}
 | 
			
		||||
                {$_('you-have-to-save-your-changes-to-generate-a-link')}
 | 
			
		||||
                  {$_("you-have-to-save-your-changes-to-generate-a-link")}
 | 
			
		||||
                {/if}
 | 
			
		||||
              </p>
 | 
			
		||||
              <div
 | 
			
		||||
                class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer">
 | 
			
		||||
                class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer"
 | 
			
		||||
              >
 | 
			
		||||
                <svg
 | 
			
		||||
                  xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                  viewBox="0 0 24 24"
 | 
			
		||||
                  width="24"
 | 
			
		||||
                  height="24"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                  height="24"
 | 
			
		||||
                  ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                  <path
 | 
			
		||||
                    fill="currentColor"
 | 
			
		||||
                    d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z" /></svg>
 | 
			
		||||
                    d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z"
 | 
			
		||||
                  /></svg
 | 
			
		||||
                >
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            </button>
 | 
			
		||||
            {#if editable.registrationKey}
 | 
			
		||||
            <p class="text-gray-500 text-xs">
 | 
			
		||||
              {$_('click-to-copy-the-link-into-your-clipboard')}
 | 
			
		||||
            </p>
 | 
			
		||||
              <p class="text-gray-500 text-xs">
 | 
			
		||||
                {$_("click-to-copy-the-link-into-your-clipboard")}
 | 
			
		||||
              </p>
 | 
			
		||||
            {/if}
 | 
			
		||||
          </div>
 | 
			
		||||
        {/if}
 | 
			
		||||
@@ -378,12 +396,14 @@
 | 
			
		||||
                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 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
              />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="ml-3 text-sm">
 | 
			
		||||
              <label
 | 
			
		||||
                for="toggle_address_checkbox"
 | 
			
		||||
                class="font-medium text-gray-700">{$_('address')}</label>
 | 
			
		||||
                class="font-medium text-gray-700">{$_("address")}</label
 | 
			
		||||
              >
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -391,7 +411,9 @@
 | 
			
		||||
          <div class="col-span-6">
 | 
			
		||||
            <label
 | 
			
		||||
              for="address1"
 | 
			
		||||
              class="block text-sm font-medium text-gray-700">{$_('address')}</label>
 | 
			
		||||
              class="block text-sm font-medium text-gray-700"
 | 
			
		||||
              >{$_("address")}</label
 | 
			
		||||
            >
 | 
			
		||||
            <input
 | 
			
		||||
              autocomplete="off"
 | 
			
		||||
              placeholder="Address"
 | 
			
		||||
@@ -401,65 +423,74 @@
 | 
			
		||||
              bind:value={editable.address.address1}
 | 
			
		||||
              type="text"
 | 
			
		||||
              name="address1"
 | 
			
		||||
              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"
 | 
			
		||||
            />
 | 
			
		||||
            {#if !isAddress1Valid}
 | 
			
		||||
              <span
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
 | 
			
		||||
                {$_('address-is-required')}
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
              >
 | 
			
		||||
                {$_("address-is-required")}
 | 
			
		||||
              </span>
 | 
			
		||||
            {/if}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-span-6">
 | 
			
		||||
            <label
 | 
			
		||||
              for="address2"
 | 
			
		||||
              class="block text-sm font-medium text-gray-700">{$_('apartment-suite-etc')}</label>
 | 
			
		||||
              class="block text-sm font-medium text-gray-700"
 | 
			
		||||
              >{$_("apartment-suite-etc")}</label
 | 
			
		||||
            >
 | 
			
		||||
            <input
 | 
			
		||||
              autocomplete="off"
 | 
			
		||||
              placeholder={$_('apartment-suite-etc')}
 | 
			
		||||
              placeholder={$_("apartment-suite-etc")}
 | 
			
		||||
              bind:value={editable.address.address2}
 | 
			
		||||
              type="text"
 | 
			
		||||
              name="address2"
 | 
			
		||||
              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"
 | 
			
		||||
            />
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-span-6">
 | 
			
		||||
            <label
 | 
			
		||||
              for="zipcode"
 | 
			
		||||
              class="block text-sm font-medium text-gray-700">{$_('zip-postal-code')}</label>
 | 
			
		||||
            <label for="zipcode" class="block text-sm font-medium text-gray-700"
 | 
			
		||||
              >{$_("zip-postal-code")}</label
 | 
			
		||||
            >
 | 
			
		||||
            <input
 | 
			
		||||
              autocomplete="off"
 | 
			
		||||
              placeholder={$_('zip-postal-code')}
 | 
			
		||||
              placeholder={$_("zip-postal-code")}
 | 
			
		||||
              class:border-red-500={!iszipcodevalid}
 | 
			
		||||
              class:focus:border-red-500={!iszipcodevalid}
 | 
			
		||||
              class:focus:ring-red-500={!iszipcodevalid}
 | 
			
		||||
              bind:value={editable.address.postalcode}
 | 
			
		||||
              type="text"
 | 
			
		||||
              name="zipcode"
 | 
			
		||||
              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"
 | 
			
		||||
            />
 | 
			
		||||
            {#if !iszipcodevalid}
 | 
			
		||||
              <span
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
 | 
			
		||||
                {$_('valid-zipcode-postal-code-is-required')}
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
              >
 | 
			
		||||
                {$_("valid-zipcode-postal-code-is-required")}
 | 
			
		||||
              </span>
 | 
			
		||||
            {/if}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-span-6">
 | 
			
		||||
            <label
 | 
			
		||||
              for="city"
 | 
			
		||||
              class="block text-sm font-medium text-gray-700">{$_('city')}</label>
 | 
			
		||||
            <label for="city" class="block text-sm font-medium text-gray-700"
 | 
			
		||||
              >{$_("city")}</label
 | 
			
		||||
            >
 | 
			
		||||
            <input
 | 
			
		||||
              autocomplete="off"
 | 
			
		||||
              placeholder={$_('city')}
 | 
			
		||||
              placeholder={$_("city")}
 | 
			
		||||
              class:border-red-500={!iscityvalid}
 | 
			
		||||
              class:focus:border-red-500={!iscityvalid}
 | 
			
		||||
              class:focus:ring-red-500={!iscityvalid}
 | 
			
		||||
              bind:value={editable.address.city}
 | 
			
		||||
              type="text"
 | 
			
		||||
              name="city"
 | 
			
		||||
              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"
 | 
			
		||||
            />
 | 
			
		||||
            {#if !iscityvalid}
 | 
			
		||||
              <span
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
 | 
			
		||||
                {$_('valid-city-is-required')}
 | 
			
		||||
                class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
              >
 | 
			
		||||
                {$_("valid-city-is-required")}
 | 
			
		||||
              </span>
 | 
			
		||||
            {/if}
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -469,7 +500,7 @@
 | 
			
		||||
  </section>
 | 
			
		||||
{:else}
 | 
			
		||||
  {#await promise}
 | 
			
		||||
    {$_('organization-detail-is-being-loaded')}
 | 
			
		||||
    {$_("organization-detail-is-being-loaded")}
 | 
			
		||||
  {:catch error}
 | 
			
		||||
    <PromiseError />
 | 
			
		||||
  {/await}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { _ } from "svelte-i18n";
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  import Toastify from "toastify-js";
 | 
			
		||||
  import { tick, createEventDispatcher } from "svelte";
 | 
			
		||||
  export let copy_modal_open;
 | 
			
		||||
@@ -46,70 +46,87 @@
 | 
			
		||||
  {#if valueCopy != null}
 | 
			
		||||
    <textarea bind:this={areaDom}>{valueCopy}</textarea>
 | 
			
		||||
  {/if}
 | 
			
		||||
  <div class="fixed z-10 inset-0 overflow-y-auto" >
 | 
			
		||||
  <div class="fixed z-10 inset-0 overflow-y-auto">
 | 
			
		||||
    <div
 | 
			
		||||
      class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
 | 
			
		||||
      class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="fixed inset-0 transition-opacity" aria-hidden="true">
 | 
			
		||||
        <div
 | 
			
		||||
          class="absolute inset-0 bg-gray-500 opacity-75"
 | 
			
		||||
          data-id="modal_backdrop" />
 | 
			
		||||
          data-id="modal_backdrop"
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
      <span
 | 
			
		||||
        class="hidden sm:inline-block sm:align-middle sm:h-screen"
 | 
			
		||||
        aria-hidden="true">​</span>
 | 
			
		||||
        aria-hidden="true">​</span
 | 
			
		||||
      >
 | 
			
		||||
      <div
 | 
			
		||||
        class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"
 | 
			
		||||
        role="dialog"
 | 
			
		||||
        aria-modal="true"
 | 
			
		||||
        aria-labelledby="modal-headline">
 | 
			
		||||
        aria-labelledby="modal-headline"
 | 
			
		||||
      >
 | 
			
		||||
        <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
 | 
			
		||||
          <div class="sm:flex sm:items-start">
 | 
			
		||||
            <div
 | 
			
		||||
              class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10">
 | 
			
		||||
              class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-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"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                <path
 | 
			
		||||
                  d="M4 5v11h16V5H4zM2 4a1 1 0 011-1h18a1 1 0 011 1v14H2V4zM1 19h22v2H1v-2z" /></svg>
 | 
			
		||||
                  d="M4 5v11h16V5H4zM2 4a1 1 0 011-1h18a1 1 0 011 1v14H2V4zM1 19h22v2H1v-2z"
 | 
			
		||||
                /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
 | 
			
		||||
              <h3 class="text-lg leading-6 font-medium text-gray-900">
 | 
			
		||||
                {$_('token')}
 | 
			
		||||
                {$_("token")}
 | 
			
		||||
              </h3>
 | 
			
		||||
              <div class="mt-2 mb-6">
 | 
			
		||||
                <p class="text-sm text-gray-500">
 | 
			
		||||
                  {$_('the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again')}
 | 
			
		||||
                  {$_(
 | 
			
		||||
                    "the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again"
 | 
			
		||||
                  )}
 | 
			
		||||
                  <br />
 | 
			
		||||
                  {$_('please-copy-the-token-and-store-it-somewhere-save')}
 | 
			
		||||
                  {$_("please-copy-the-token-and-store-it-somewhere-save")}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="mt-2 mb-6">
 | 
			
		||||
                <label
 | 
			
		||||
                  for="token"
 | 
			
		||||
                  class="block text-sm font-medium text-gray-700">{$_('token')}</label>
 | 
			
		||||
                <div on:click={copy} class="inline-flex">
 | 
			
		||||
                  class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                  >{$_("token")}</label
 | 
			
		||||
                >
 | 
			
		||||
                <button on:click={copy} class="inline-flex">
 | 
			
		||||
                  <p
 | 
			
		||||
                    name="token"
 | 
			
		||||
                    class:bg-green-200={copied}
 | 
			
		||||
                    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 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 p-2"
 | 
			
		||||
                  >
 | 
			
		||||
                    {new_station.key}
 | 
			
		||||
                  </p>
 | 
			
		||||
                  <div
 | 
			
		||||
                    class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer">
 | 
			
		||||
                    class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer"
 | 
			
		||||
                  >
 | 
			
		||||
                    <svg
 | 
			
		||||
                      xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                      viewBox="0 0 24 24"
 | 
			
		||||
                      width="24"
 | 
			
		||||
                      height="24"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                      height="24"
 | 
			
		||||
                      ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                      <path
 | 
			
		||||
                        fill="currentColor"
 | 
			
		||||
                        d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z" /></svg>
 | 
			
		||||
                        d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z"
 | 
			
		||||
                      /></svg
 | 
			
		||||
                    >
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                </button>
 | 
			
		||||
                <p class="text-gray-500 text-xs">
 | 
			
		||||
                  {$_('click-to-copy-token-to-clipboard')}
 | 
			
		||||
                  {$_("click-to-copy-token-to-clipboard")}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -119,8 +136,9 @@
 | 
			
		||||
          <button
 | 
			
		||||
            on:click={close}
 | 
			
		||||
            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-green-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">
 | 
			
		||||
            {$_('yes-i-copied-the-token')}
 | 
			
		||||
            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-green-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"
 | 
			
		||||
          >
 | 
			
		||||
            {$_("yes-i-copied-the-token")}
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { _ } from "svelte-i18n";
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  import Toastify from "toastify-js";
 | 
			
		||||
  import { tick, createEventDispatcher } from "svelte";
 | 
			
		||||
  export let copy_modal_open;
 | 
			
		||||
@@ -46,70 +46,87 @@
 | 
			
		||||
  {#if valueCopy != null}
 | 
			
		||||
    <textarea bind:this={areaDom}>{valueCopy}</textarea>
 | 
			
		||||
  {/if}
 | 
			
		||||
  <div class="fixed z-10 inset-0 overflow-y-auto" >
 | 
			
		||||
  <div class="fixed z-10 inset-0 overflow-y-auto">
 | 
			
		||||
    <div
 | 
			
		||||
      class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
 | 
			
		||||
      class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="fixed inset-0 transition-opacity" aria-hidden="true">
 | 
			
		||||
        <div
 | 
			
		||||
          class="absolute inset-0 bg-gray-500 opacity-75"
 | 
			
		||||
          data-id="modal_backdrop" />
 | 
			
		||||
          data-id="modal_backdrop"
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
      <span
 | 
			
		||||
        class="hidden sm:inline-block sm:align-middle sm:h-screen"
 | 
			
		||||
        aria-hidden="true">​</span>
 | 
			
		||||
        aria-hidden="true">​</span
 | 
			
		||||
      >
 | 
			
		||||
      <div
 | 
			
		||||
        class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"
 | 
			
		||||
        role="dialog"
 | 
			
		||||
        aria-modal="true"
 | 
			
		||||
        aria-labelledby="modal-headline">
 | 
			
		||||
        aria-labelledby="modal-headline"
 | 
			
		||||
      >
 | 
			
		||||
        <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
 | 
			
		||||
          <div class="sm:flex sm:items-start">
 | 
			
		||||
            <div
 | 
			
		||||
              class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10">
 | 
			
		||||
              class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-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"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                <path
 | 
			
		||||
                  d="M4 5v11h16V5H4zM2 4a1 1 0 011-1h18a1 1 0 011 1v14H2V4zM1 19h22v2H1v-2z" /></svg>
 | 
			
		||||
                  d="M4 5v11h16V5H4zM2 4a1 1 0 011-1h18a1 1 0 011 1v14H2V4zM1 19h22v2H1v-2z"
 | 
			
		||||
                /></svg
 | 
			
		||||
              >
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
 | 
			
		||||
              <h3 class="text-lg leading-6 font-medium text-gray-900">
 | 
			
		||||
                {$_('token')}
 | 
			
		||||
                {$_("token")}
 | 
			
		||||
              </h3>
 | 
			
		||||
              <div class="mt-2 mb-6">
 | 
			
		||||
                <p class="text-sm text-gray-500">
 | 
			
		||||
                  {$_('the-statsclient-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again')}
 | 
			
		||||
                  {$_(
 | 
			
		||||
                    "the-statsclient-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again"
 | 
			
		||||
                  )}
 | 
			
		||||
                  <br />
 | 
			
		||||
                  {$_('please-copy-the-token-and-store-it-somewhere-save')}
 | 
			
		||||
                  {$_("please-copy-the-token-and-store-it-somewhere-save")}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="mt-2 mb-6">
 | 
			
		||||
                <label
 | 
			
		||||
                  for="token"
 | 
			
		||||
                  class="block text-sm font-medium text-gray-700">{$_('token')}</label>
 | 
			
		||||
                <div on:click={copy} class="inline-flex">
 | 
			
		||||
                  class="block text-sm font-medium text-gray-700"
 | 
			
		||||
                  >{$_("token")}</label
 | 
			
		||||
                >
 | 
			
		||||
                <button on:click={copy} class="inline-flex">
 | 
			
		||||
                  <p
 | 
			
		||||
                    name="token"
 | 
			
		||||
                    class:bg-green-200={copied}
 | 
			
		||||
                    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 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 p-2"
 | 
			
		||||
                  >
 | 
			
		||||
                    {new_client.key}
 | 
			
		||||
                  </p>
 | 
			
		||||
                  <div
 | 
			
		||||
                    class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer">
 | 
			
		||||
                    class="bg-gray-200 border-gray-300 border-t border-b border-r text-black rounded-r-md sm:text-sm p-2 mt-1 cursor-pointer"
 | 
			
		||||
                  >
 | 
			
		||||
                    <svg
 | 
			
		||||
                      xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                      viewBox="0 0 24 24"
 | 
			
		||||
                      width="24"
 | 
			
		||||
                      height="24"><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                      height="24"
 | 
			
		||||
                      ><path fill="none" d="M0 0h24v24H0z" />
 | 
			
		||||
                      <path
 | 
			
		||||
                        fill="currentColor"
 | 
			
		||||
                        d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z" /></svg>
 | 
			
		||||
                        d="M7 4V2h10v2h3l1 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V5l1-1h3zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z"
 | 
			
		||||
                      /></svg
 | 
			
		||||
                    >
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                </button>
 | 
			
		||||
                <p class="text-gray-500 text-xs">
 | 
			
		||||
                  {$_('click-to-copy-token-to-clipboard')}
 | 
			
		||||
                  {$_("click-to-copy-token-to-clipboard")}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -119,8 +136,9 @@
 | 
			
		||||
          <button
 | 
			
		||||
            on:click={close}
 | 
			
		||||
            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-green-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">
 | 
			
		||||
            {$_('yes-i-copied-the-token')}
 | 
			
		||||
            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-green-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"
 | 
			
		||||
          >
 | 
			
		||||
            {$_("yes-i-copied-the-token")}
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user