| @@ -11,7 +11,8 @@ | ||||
|   import ImportRunnerModal from "../runners/ImportRunnerModal.svelte"; | ||||
|   import PromiseError from "../base/PromiseError.svelte"; | ||||
|   import ConfirmTeamDeletion from "./ConfirmTeamDeletion.svelte"; | ||||
| import Teams from "./Teams.svelte"; | ||||
|   import Teams from "./Teams.svelte"; | ||||
|   import GenerateSponsoringContracts from "../runners/GenerateSponsoringContracts.svelte"; | ||||
|   let [teamdata, original, delete_team, orgs, contacts, modal_open] = [ | ||||
|     {}, | ||||
|     {}, | ||||
| @@ -26,7 +27,8 @@ import Teams from "./Teams.svelte"; | ||||
|   $: save_enabled = !data_changed && teamdata.parentGroup != null; | ||||
|   $: data_loaded = false; | ||||
|   $: data_changed = JSON.stringify(teamdata) === JSON.stringify(original); | ||||
|   $: sponsoring_contracts_download_open = false; | ||||
|   $: sponsoring_contracts_show = true; | ||||
|   $: generate_teams = [original]; | ||||
|   $: group = {}; | ||||
|   $: contact = {}; | ||||
|   // | ||||
| @@ -38,32 +40,25 @@ import Teams from "./Teams.svelte"; | ||||
|     data_loaded = true; | ||||
|     teamdata = Object.assign(teamdata, value); | ||||
|     original = Object.assign(original, value); | ||||
|     RunnerOrganizationService.runnerOrganizationControllerGetAll().then((val) => { | ||||
|       orgs = val.map((r) => { | ||||
|         return { label: r.name, value: r }; | ||||
|       }); | ||||
|       group = orgs.find((g) => g.value.id == teamdata.parentGroup.id); | ||||
|     }); | ||||
|     RunnerOrganizationService.runnerOrganizationControllerGetAll().then( | ||||
|       (val) => { | ||||
|         orgs = val.map((r) => { | ||||
|           return { label: r.name, value: r }; | ||||
|         }); | ||||
|         group = orgs.find((g) => g.value.id == teamdata.parentGroup.id); | ||||
|       } | ||||
|     ); | ||||
|     GroupContactService.groupContactControllerGetAll().then((val) => { | ||||
|       contacts = val.map((r) => { | ||||
|         return { label: getContactLabel(r), value: r }; | ||||
|       }); | ||||
|       if(teamdata.contact){ | ||||
|       if (teamdata.contact) { | ||||
|         contact = contacts.find((g) => g.value.id == teamdata.contact.id); | ||||
|       } | ||||
|       else{ | ||||
|       } else { | ||||
|         contact = null; | ||||
|       } | ||||
|     }); | ||||
|   }); | ||||
|   document.addEventListener("click", function (e) { | ||||
|     if ( | ||||
|       e.target.parentNode?.parentNode?.id != "sponsoring:dropdown" && | ||||
|       e.target.parentNode?.parentNode?.id != "sponsoring:dropdown:menu" | ||||
|     ) { | ||||
|       sponsoring_contracts_download_open = false; | ||||
|     } | ||||
|   }); | ||||
|   function deleteTeam() { | ||||
|     RunnerTeamService.runnerTeamControllerRemove(original.id, false) | ||||
|       .then((resp) => { | ||||
| @@ -101,55 +96,6 @@ import Teams from "./Teams.svelte"; | ||||
|         .catch((err) => {}); | ||||
|     } | ||||
|   } | ||||
|   async function generateSponsoringContract(locale) { | ||||
|     sponsoring_contracts_download_open = false; | ||||
|     const runners = await RunnerTeamService.runnerTeamControllerGetRunners( | ||||
|       teamdata.id | ||||
|     ); | ||||
|     const toast = Toastify({ | ||||
|       text: $_("generating-pdf"), | ||||
|       duration: -1, | ||||
|     }).showToast(); | ||||
|     fetch( | ||||
|       `${config.baseurl}/documents/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|       { | ||||
|         method: "POST", | ||||
|         headers: { | ||||
|           "Content-Type": "application/json", | ||||
|         }, | ||||
|         body: JSON.stringify(runners), | ||||
|       } | ||||
|     ) | ||||
|       .then((response) => { | ||||
|         if (response.status != "200") { | ||||
|           toast.hideToast(); | ||||
|           Toastify({ | ||||
|             text: $_("pdf-generation-failed"), | ||||
|             duration: 3500, | ||||
|             backgroundColor: | ||||
|               "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)", | ||||
|           }).showToast(); | ||||
|         } else { | ||||
|           return response.blob(); | ||||
|         } | ||||
|       }) | ||||
|       .then((blob) => { | ||||
|         const url = window.URL.createObjectURL(blob); | ||||
|         let a = document.createElement("a"); | ||||
|         a.href = url; | ||||
|         a.download = "Sponsorings_" + teamdata.name + ".pdf"; | ||||
|         document.body.appendChild(a); | ||||
|         a.click(); | ||||
|         a.remove(); | ||||
|         toast.hideToast(); | ||||
|         Toastify({ | ||||
|           text: $_("pdf-successfully-generated"), | ||||
|           duration: 3500, | ||||
|           backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|         }).showToast(); | ||||
|       }) | ||||
|       .catch((err) => {}); | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <ImportRunnerModal | ||||
| @@ -168,64 +114,9 @@ import Teams from "./Teams.svelte"; | ||||
|     <div class="mb-8 text-3xl font-extrabold leading-tight"> | ||||
|       {original.name} | ||||
|       <span data-id="org_actions_${teamdata.id}"> | ||||
|         <div id="sponsoring:dropdown" class="relative inline-block"> | ||||
|           <div> | ||||
|             <button | ||||
|               on:click={() => { | ||||
|                 sponsoring_contracts_download_open = !sponsoring_contracts_download_open; | ||||
|               }} | ||||
|               type="button" | ||||
|               class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-gray-600 text-base font-medium text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500 sm:ml-3 sm:w-auto sm:text-sm inline-flex" | ||||
|               id="options-menu" | ||||
|               aria-haspopup="true" | ||||
|               aria-expanded="true"> | ||||
|               {$_('generate-sponsoring-contracts')} | ||||
|               <svg | ||||
|                 xmlns="http://www.w3.org/2000/svg" | ||||
|                 width="24" | ||||
|                 height="24" | ||||
|                 viewBox="0 0 24 24" | ||||
|                 class="-mr-1 ml-2 h-5 w-5"><path | ||||
|                   fill="none" | ||||
|                   d="M0 0h24v24H0z" /> | ||||
|                 <path | ||||
|                   fill="currentColor" | ||||
|                   d="M3 19h18v2H3v-2zm10-5.83l6.07-6.07 1.42 1.41L12 17 3.52 8.52l1.4-1.42L11 13.17V2h2v11.17z" /></svg> | ||||
|             </button> | ||||
|           </div> | ||||
|           {#if sponsoring_contracts_download_open} | ||||
|             <div | ||||
|               class="origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5" | ||||
|               id="sponsoring:dropdown:menu"> | ||||
|               <div | ||||
|                 class="py-1" | ||||
|                 role="menu" | ||||
|                 aria-orientation="vertical" | ||||
|                 aria-labelledby="options-menu"> | ||||
|                 <span | ||||
|                   class="block w-full text-left px-4 py-2 text-sm text-gray-700">{$_('select-language')}</span> | ||||
|                 <button | ||||
|                   on:click={() => { | ||||
|                     generateSponsoringContract('de'); | ||||
|                   }} | ||||
|                   type="submit" | ||||
|                   class="block w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900 inline-flex" | ||||
|                   role="menuitem"> | ||||
|                   {$_('german')} | ||||
|                 </button> | ||||
|                 <button | ||||
|                   on:click={() => { | ||||
|                     generateSponsoringContract('en'); | ||||
|                   }} | ||||
|                   type="submit" | ||||
|                   class="block w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900 inline-flex" | ||||
|                   role="menuitem"> | ||||
|                   {$_('english')} | ||||
|                 </button> | ||||
|               </div> | ||||
|             </div> | ||||
|           {/if} | ||||
|         </div> | ||||
|         <GenerateSponsoringContracts | ||||
|           bind:sponsoring_contracts_show | ||||
|           bind:generate_teams /> | ||||
|         {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')} | ||||
|           <button | ||||
|             on:click={() => { | ||||
| @@ -367,7 +258,7 @@ import Teams from "./Teams.svelte"; | ||||
|         placeholder={$_('no-contact-selected')} | ||||
|         noOptionsMessage={$_('no-contact-found')} | ||||
|         bind:selectedValue={contact} | ||||
|         on:select={(selectedValue)=> teamdata.contact = selectedValue.detail.value} | ||||
|         on:select={(selectedValue) => (teamdata.contact = selectedValue.detail.value)} | ||||
|         on:clear={() => (teamdata.contact = null)} /> | ||||
|     </div> | ||||
|     <div class="text-sm w-full"> | ||||
| @@ -380,13 +271,15 @@ import Teams from "./Teams.svelte"; | ||||
|             .toLowerCase() | ||||
|             .includes( | ||||
|               filterText.toLowerCase() | ||||
|             ) || option.id.value.toString().startsWith(filterText.toLowerCase())} | ||||
|             ) || option.id.value | ||||
|             .toString() | ||||
|             .startsWith(filterText.toLowerCase())} | ||||
|         items={orgs} | ||||
|         showChevron={true} | ||||
|         placeholder={$_('search-for-an-organization-by-name-or-id')} | ||||
|         noOptionsMessage={$_('no-organizations-found')} | ||||
|         bind:selectedValue={group} | ||||
|         on:select={(selectedValue)=> teamdata.parentGroup = selectedValue.detail.value} | ||||
|         on:select={(selectedValue) => (teamdata.parentGroup = selectedValue.detail.value)} | ||||
|         on:clear={() => (teamdata.parentGroup = null)} /> | ||||
|     </div> | ||||
|   </section> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user