Compare commits
	
		
			25 Commits
		
	
	
		
			ee4e8655b8
			...
			0.13.1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b512cf8667 | |||
| a24d2923c6 | |||
| 467808abef | |||
| 861f1f2216 | |||
| 509b22bea0 | |||
| 7447b2f4c1 | |||
| fef14b6e4f | |||
| 01d2a7e6aa | |||
| ac586fec5a | |||
| 5476808683 | |||
| 331d737796 | |||
| ef81b8adf9 | |||
| 8a7d635cef | |||
| 4c259c1eef | |||
| 5b4ede5e2f | |||
| d0ab3dda78 | |||
| d9cf51b4bb | |||
| aa17f24220 | |||
| cf60edf7d4 | |||
| ffbc243194 | |||
| b6b07cf30c | |||
| 495a6b22bd | |||
| 0acaffbdfa | |||
| 6043bc4517 | |||
| e6ed066e3f | 
							
								
								
									
										59
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -2,8 +2,67 @@ | ||||
|  | ||||
| All notable changes to this project will be documented in this file. Dates are displayed in UTC. | ||||
|  | ||||
| #### [0.13.1](https://git.odit.services/lfk/frontend/compare/0.13.0...0.13.1) | ||||
|  | ||||
| - For await fix [`a24d292`](https://git.odit.services/lfk/frontend/commit/a24d2923c6e6da90d610c05183d29d47eaf2ed30) | ||||
|  | ||||
| #### [0.13.0](https://git.odit.services/lfk/frontend/compare/0.12.5...0.13.0) | ||||
|  | ||||
| > 11 April 2021 | ||||
|  | ||||
| - 🚀RELEASE v0.13.0 [`467808a`](https://git.odit.services/lfk/frontend/commit/467808abefe127dac66a2837fcce3197dddb140f) | ||||
| - Merge pull request 'Better org pdf generation feature/130-org_doc_splitting' (#131) from feature/130-org_doc_splitting into dev [`861f1f2`](https://git.odit.services/lfk/frontend/commit/861f1f221653283e7586aa2c67b205337fd44398) | ||||
| - Org card generation now runs in sequence [`fef14b6`](https://git.odit.services/lfk/frontend/commit/fef14b6e4fb47ad92da61de91fedce96aea26b2c) | ||||
| - Org certificate generation now runs in sequence [`509b22b`](https://git.odit.services/lfk/frontend/commit/509b22bea0dd3e4446e6ecc37d27644e9bf2ad50) | ||||
| - Org contract generation now runs in sequence [`01d2a7e`](https://git.odit.services/lfk/frontend/commit/01d2a7e6aa709b3f2d71575f705fc962e97e2742) | ||||
| - Emergency document server url change [`5476808`](https://git.odit.services/lfk/frontend/commit/5476808683a919bc34dbaea1f1ed276d49750096) | ||||
| - Fixed const -> let [`7447b2f`](https://git.odit.services/lfk/frontend/commit/7447b2f4c134a585905db6733093eab13e6f7c47) | ||||
| - Hotfix: Org * generation🐞 [`ac586fe`](https://git.odit.services/lfk/frontend/commit/ac586fec5abd324d590ba99cdfe8ddddefbf95e6) | ||||
|  | ||||
| #### [0.12.5](https://git.odit.services/lfk/frontend/compare/0.12.4...0.12.5) | ||||
|  | ||||
| > 8 April 2021 | ||||
|  | ||||
| - 🚀RELEASE v0.12.5 [`331d737`](https://git.odit.services/lfk/frontend/commit/331d737796c82454b1c19fa1840ccc20e36d2626) | ||||
| - Merge pull request 'Added runner team's parentorg name to runenr overciew' (#129) from feature/128-runner_orgs into dev [`ef81b8a`](https://git.odit.services/lfk/frontend/commit/ef81b8adf9bef685a55936d7544bf645c0d6ecbe) | ||||
| - Switched to html entity [`8a7d635`](https://git.odit.services/lfk/frontend/commit/8a7d635cef2d465e70c84e1f7a7b90b98a8dbab1) | ||||
| - Added runner team's parentorg name to runenr overciew [`4c259c1`](https://git.odit.services/lfk/frontend/commit/4c259c1eef2b0166ce6a8493d0c9e9d5ede11146) | ||||
|  | ||||
| #### [0.12.4](https://git.odit.services/lfk/frontend/compare/0.12.3...0.12.4) | ||||
|  | ||||
| > 8 April 2021 | ||||
|  | ||||
| - 🚀RELEASE v0.12.4 [`5b4ede5`](https://git.odit.services/lfk/frontend/commit/5b4ede5e2f6a26b475a7a4b430a4146d21fb9671) | ||||
| - 🚑 [HOTFIX] - drop "svelte-infinite-loading" [`d0ab3dd`](https://git.odit.services/lfk/frontend/commit/d0ab3dda78bbad2cea18a2491056530897d56607) | ||||
|  | ||||
| #### [0.12.3](https://git.odit.services/lfk/frontend/compare/0.12.2...0.12.3) | ||||
|  | ||||
| > 8 April 2021 | ||||
|  | ||||
| - Merge pull request 'fix' (#126) from bugfix/125-mobile into dev [`#125`](https://git.odit.services/lfk/frontend/issues/125) | ||||
| - almost fixed... [`495a6b2`](https://git.odit.services/lfk/frontend/commit/495a6b22bd8036593f390bdb862d325524cefbcc) | ||||
| - 🐞 bugfix for svelte x tailwind class names [`b6b07cf`](https://git.odit.services/lfk/frontend/commit/b6b07cf30cc6533bd5dbfec1f813c16fde85634d) | ||||
| - fix [`0acaffb`](https://git.odit.services/lfk/frontend/commit/0acaffbdfa359e52654a5afe2788aa59fe6f9036) | ||||
| - 🚀RELEASE v0.12.3 [`d9cf51b`](https://git.odit.services/lfk/frontend/commit/d9cf51b4bbc2136594a03c5d0eeb8cb3f3440b2a) | ||||
| - custom css fix for collapsed_navigation [`ffbc243`](https://git.odit.services/lfk/frontend/commit/ffbc243194c7faeb4fe61c12711a1c441c3994ef) | ||||
| - new license file version [CI SKIP] [`aa17f24`](https://git.odit.services/lfk/frontend/commit/aa17f242209f7e7cecff774ace7a35b581adec1f) | ||||
|  | ||||
| #### [0.12.2](https://git.odit.services/lfk/frontend/compare/0.12.1...0.12.2) | ||||
|  | ||||
| > 7 April 2021 | ||||
|  | ||||
| - 🚀RELEASE v0.12.2 [`6043bc4`](https://git.odit.services/lfk/frontend/commit/6043bc45174d51ab110b0ed10a8679d96127ab87) | ||||
| - Merge pull request 'feature/110-virtual_list' (#124) from feature/110-virtual_list into dev [`e6ed066`](https://git.odit.services/lfk/frontend/commit/e6ed066e3ffabba6519f94d801d21a27819d0492) | ||||
| - wip on virtuallist [`6304116`](https://git.odit.services/lfk/frontend/commit/6304116edb7f5e3c7b67c15e0b1740d34c513155) | ||||
| - fixed height table [`4cad86c`](https://git.odit.services/lfk/frontend/commit/4cad86cf852468428d77103d052c6974b17c34c3) | ||||
| - pre-merge fixes [`37970d2`](https://git.odit.services/lfk/frontend/commit/37970d2be6b6502701914e41e5bfe2c418438480) | ||||
| - updated virtual scroll list [`1376788`](https://git.odit.services/lfk/frontend/commit/1376788016e767f006661f8c9e6747781f2dce55) | ||||
|  | ||||
| #### [0.12.1](https://git.odit.services/lfk/frontend/compare/0.12.0...0.12.1) | ||||
|  | ||||
| > 6 April 2021 | ||||
|  | ||||
| - 🚀RELEASE v0.12.1 [`834ff8f`](https://git.odit.services/lfk/frontend/commit/834ff8fa63178f36dcacf931c128ba67a3e7bd1b) | ||||
| - Merge pull request 'ImportRunnerModal Cancel Button feature/122-import_cancel' (#123) from feature/112-import_cancel into dev [`1f428a5`](https://git.odit.services/lfk/frontend/commit/1f428a535e3ae619cbf8db51d04255aac8dd8614) | ||||
| - Added cancel button for the first stage of runner import [`0c40966`](https://git.odit.services/lfk/frontend/commit/0c409669700d3a8096cc04716154b0fdca458fe5) | ||||
| - Escape now triggers foll modal close (including reset) instead of just hiding th modal [`9da071f`](https://git.odit.services/lfk/frontend/commit/9da071fe9ba067160334682bf00163e3630fe919) | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|   <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.12.1-RELEASE_INFO</span> | ||||
|   <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.13.1-RELEASE_INFO</span> | ||||
|   <noscript>You need to enable JavaScript to run this app.</noscript> | ||||
|   <script src="/env.js"></script> | ||||
|   <script type="module" src="/src/main.js"></script> | ||||
|   | ||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| { | ||||
| 	"name": "@odit/lfk-frontend", | ||||
| 	"version": "0.12.1", | ||||
| 	"version": "0.13.1", | ||||
| 	"scripts": { | ||||
| 		"i18n-order": "node order.js", | ||||
| 		"dev": "vite", | ||||
| @@ -13,7 +13,7 @@ | ||||
| 		"check-password-strength": "2.0.2", | ||||
| 		"@odit/lfk-client-js": "0.10.1", | ||||
| 		"@odit/license-exporter": "0.0.11", | ||||
| 		"@sveltejs/vite-plugin-svelte": "1.0.0-next.5", | ||||
| 		"@sveltejs/vite-plugin-svelte": "1.0.0-next.6", | ||||
| 		"@types/html-minifier": "4.0.0", | ||||
| 		"auto-changelog": "2.2.1", | ||||
| 		"autoprefixer": "10.2.5", | ||||
| @@ -28,12 +28,12 @@ | ||||
| 		"svelte-i18n": "3.3.9", | ||||
| 		"svelte-preprocess": "4.7.0", | ||||
| 		"svelte-select": "3.17.0", | ||||
| 		"tailwindcss": "2.0.4", | ||||
| 		"tailwindcss": "2.1.1", | ||||
| 		"tinro": "0.6.1", | ||||
| 		"toastify-js": "1.10.0", | ||||
| 		"validator": "13.5.2", | ||||
| 		"vite": "2.1.5", | ||||
| 		"vite-plugin-windicss": "0.12.2", | ||||
| 		"vite-plugin-windicss": "0.12.5", | ||||
| 		"xlsx": "0.16.9" | ||||
| 	}, | ||||
| 	"release-it": { | ||||
| @@ -53,4 +53,4 @@ | ||||
| 			"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node versionbuilder.js  && git add index.html && node order.js  && git add src/locales" | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| const config = { | ||||
| 	baseurl: 'http://localhost:4010', | ||||
| 	baseurl_documentserver: 'http://localhost:4010/documents', | ||||
| 	documentserver_key: 'NqZSYTy5AFQ7MppbLW5moqpTk7u7YrNUHKYhKYuThnnya2WpCOIU694hIZT1FzYe', | ||||
| 	// optional | ||||
| 	default_username: 'demo', | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -77,7 +77,7 @@ | ||||
|             duration: -1, | ||||
|           }).showToast(); | ||||
|           fetch( | ||||
|             `${config.baseurl}/documents/cards?&download=true&key=${config.documentserver_key}`, | ||||
|             `${config.baseurl_documentserver}/cards?&download=true&key=${config.documentserver_key}`, | ||||
|             { | ||||
|               method: "POST", | ||||
|               headers: { | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| <script> | ||||
|   import { getLocaleFromNavigator, json, _ } from "svelte-i18n"; | ||||
|   import InfiniteLoading from 'svelte-infinite-loading'; | ||||
|   import { _ } from "svelte-i18n"; | ||||
|   import { RunnerCardService } from "@odit/lfk-client-js"; | ||||
|   import store from "../../store"; | ||||
|   import Toastify from "toastify-js"; | ||||
|   | ||||
| @@ -12,11 +12,21 @@ | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
|   .collapsed_navigation { | ||||
|     transform: translateX(-100%); | ||||
|   } | ||||
|   @media (min-width: 768px) { | ||||
|     .collapsed_navigation { | ||||
|       transform: translateX(0px); | ||||
|     } | ||||
|   } | ||||
| </style> | ||||
|  | ||||
| <section class="min-h-screen bg-gray-50"> | ||||
|   <nav | ||||
|     class:-translate-x-full={!navOpen} | ||||
|     class:translate-x-0={navOpen} | ||||
|     class="select-none fixed top-0 left-0 z-20 h-full pb-10 overflow-x-hidden overflow-y-auto transition origin-left transform border-r w-60 md:translate-x-0 bg-gray-50"> | ||||
|   <div | ||||
|     class:collapsed_navigation={!navOpen} | ||||
|     class="select-none fixed top-0 left-0 z-20 h-full pb-10 overflow-x-hidden overflow-y-auto transition origin-left transform border-r w-60 bg-gray-50"> | ||||
|     <a href="/" class="flex items-center px-4 py-5"> | ||||
|       <img src="/lfk-logo.png" alt="Logo" class="h-10" /> | ||||
|       <h3 class="text-lg">Lauf für Kaya! Admin</h3> | ||||
| @@ -297,14 +307,15 @@ | ||||
|         <span>{$_('logout')}</span> | ||||
|       </span> | ||||
|     </nav> | ||||
|   </nav> | ||||
|   </div> | ||||
|   <div class="ml-0 transition md:ml-60"> | ||||
|     <header | ||||
|       on:click={() => { | ||||
|         navOpen = true; | ||||
|       }} | ||||
|       class="flex items-center justify-between w-full px-4 bg-white border-b h-14 md:hidden"> | ||||
|       <button class="block btn btn-light md:hidden"> | ||||
|       <button | ||||
|         on:click={() => { | ||||
|           navOpen = true; | ||||
|         }} | ||||
|         class="block btn btn-light md:hidden"> | ||||
|         <span class="sr-only">Menu</span><svg | ||||
|           class="w-4 h-4" | ||||
|           xmlns="http://www.w3.org/2000/svg" | ||||
| @@ -318,10 +329,13 @@ | ||||
|       <NoComponentLoaded /> | ||||
|     </slot> | ||||
|   </div> | ||||
|   <div | ||||
|     on:click={() => { | ||||
|       navOpen = false; | ||||
|     }} | ||||
|     class:hidden={!navOpen} | ||||
|     class="fixed inset-0 z-10 w-screen h-screen bg-black bg-opacity-25 md:hidden" /> | ||||
|   {#if navOpen === true} | ||||
|     <div | ||||
|       on:click={() => { | ||||
|         navOpen = false; | ||||
|         console.log({ navOpen }); | ||||
|       }} | ||||
|       class:hidden={!navOpen} | ||||
|       class="fixed inset-0 z-10 w-screen h-screen bg-black bg-opacity-25 md:hidden" /> | ||||
|   {/if} | ||||
| </section> | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
|   $: active_deletes = []; | ||||
|   $: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true); | ||||
|   $: cards_show = current_organizations.some((r) => r.is_selected === true); | ||||
|   $: generate_orgs = current_organizations.some((r) => r.is_selected === true); | ||||
|   $: generate_orgs = current_organizations.filter((r) => r.is_selected === true); | ||||
|   $: certificates_show = current_organizations.some( | ||||
|     (r) => r.is_selected === true | ||||
|   ); | ||||
|   | ||||
| @@ -41,7 +41,7 @@ | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         fetch( | ||||
|             `${config.baseurl}/documents/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             `${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             { | ||||
|                 method: "POST", | ||||
|                 headers: { | ||||
| @@ -101,7 +101,7 @@ | ||||
|             cards.push(card); | ||||
|         } | ||||
|         fetch( | ||||
|             `${config.baseurl}/documents/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             `${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             { | ||||
|                 method: "POST", | ||||
|                 headers: { | ||||
| @@ -169,7 +169,7 @@ | ||||
|                 cards.push(card); | ||||
|             } | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 `${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -216,15 +216,16 @@ | ||||
|  | ||||
|     async function generateOrgCards(locale) { | ||||
|         const toast = Toastify({ | ||||
|             text: $_("generating-pdf"), | ||||
|             text: $_("generating-pdfs"), | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         let count = 0; | ||||
|         const current_cards = await RunnerCardService.runnerCardControllerGetAll(); | ||||
|         let count = 0; | ||||
|         let count_orgs =0; | ||||
|         for (const o of generate_orgs) { | ||||
|             const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners( | ||||
|                 o.id | ||||
|             ); | ||||
|             count_orgs++; | ||||
|             let count = 0; | ||||
|             let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true) | ||||
|             let cards = []; | ||||
|             for (let runner of runners) { | ||||
|                 let card = current_cards.find((c) => c.runner?.id == runner.id); | ||||
| @@ -235,8 +236,8 @@ | ||||
|                 } | ||||
|                 cards.push(card); | ||||
|             } | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -245,39 +246,97 @@ | ||||
|                     body: JSON.stringify(cards), | ||||
|                 } | ||||
|             ) | ||||
|                 .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) => { | ||||
|                     count++; | ||||
|                     const url = window.URL.createObjectURL(blob); | ||||
|                     let a = document.createElement("a"); | ||||
|                     a.href = url; | ||||
|                     a.download = `${$_('runnercards')}_${o.name}-${locale}.pdf`; | ||||
|                     document.body.appendChild(a); | ||||
|                     a.click(); | ||||
|                     a.remove(); | ||||
|                     if (count === generate_orgs.length) { | ||||
|                         toast.hideToast(); | ||||
|                         Toastify({ | ||||
|                             text: $_("pdfs-successfully-generated"), | ||||
|                             duration: 3500, | ||||
|                             backgroundColor: | ||||
|                                 "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                         }).showToast(); | ||||
|                     } | ||||
|                 }) | ||||
|                 .catch((err) => {}); | ||||
|             .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 = `${$_('runnercards')}_${o.name}_direct-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     console.log("here") | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                         "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             for (const t of o.teams) { | ||||
|                 count++; | ||||
|                 let runners = await RunnerTeamService.runnerTeamControllerGetRunners( | ||||
|                     t.id | ||||
|                 ); | ||||
|             let cards = []; | ||||
|             for (let runner of runners) { | ||||
|                 let card = current_cards.find((c) => c.runner?.id == runner.id); | ||||
|                 if (!card) { | ||||
|                     card = await RunnerCardService.runnerCardControllerPost({ | ||||
|                         runner: runner.id, | ||||
|                     }); | ||||
|                 } | ||||
|                 cards.push(card); | ||||
|             } | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
|                         "Content-Type": "application/json", | ||||
|                     }, | ||||
|                     body: JSON.stringify(cards), | ||||
|                 } | ||||
|             ) | ||||
|             .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 = `${$_('runnercards')}_${o.name}_${t.name}-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                             "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| </script> | ||||
|   | ||||
| @@ -37,14 +37,14 @@ | ||||
|             text: $_("generating-pdf"), | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         const current_donations = await DonationService.donationControllerGetAll(); | ||||
|         const current_donations = (await DonationService.donationControllerGetAll()) || []; | ||||
|         let certificateRunners = []; | ||||
|         for (let runner of generate_runners) { | ||||
|             runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || []; | ||||
|             certificateRunners.push(runner); | ||||
|         } | ||||
|         fetch( | ||||
|             `${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             `${config.baseurl_documentserver}/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             { | ||||
|                 method: "POST", | ||||
|                 headers: { | ||||
| @@ -96,7 +96,7 @@ | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         let count = 0; | ||||
|         const current_donations = await DonationService.donationControllerGetAll(); | ||||
|         const current_donations = (await DonationService.donationControllerGetAll()) || []; | ||||
|         for (const t of generate_teams) { | ||||
|             const runners = await RunnerTeamService.runnerTeamControllerGetRunners( | ||||
|                 t.id | ||||
| @@ -107,7 +107,7 @@ | ||||
|                 certificateRunners.push(runner); | ||||
|             } | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 `${config.baseurl_documentserver}/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -154,22 +154,23 @@ | ||||
|  | ||||
|     async function generateOrgCertificates(locale) { | ||||
|         const toast = Toastify({ | ||||
|             text: $_("generating-pdf"), | ||||
|             text: $_("generating-pdfs"), | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         const current_donations = (await DonationService.donationControllerGetAll()) || []; | ||||
|         let count = 0; | ||||
|         const current_donations = await DonationService.donationControllerGetAll(); | ||||
|         let count_orgs =0; | ||||
|         for (const o of generate_orgs) { | ||||
|             const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners( | ||||
|                 o.id | ||||
|             ); | ||||
|             count_orgs++; | ||||
|             let count = 0; | ||||
|             let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true) | ||||
|             let certificateRunners = []; | ||||
|             for (let runner of runners) { | ||||
|                 runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || []; | ||||
|                 certificateRunners.push(runner); | ||||
|             } | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -178,39 +179,92 @@ | ||||
|                     body: JSON.stringify(certificateRunners), | ||||
|                 } | ||||
|             ) | ||||
|                 .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) => { | ||||
|                     count++; | ||||
|                     const url = window.URL.createObjectURL(blob); | ||||
|                     let a = document.createElement("a"); | ||||
|                     a.href = url; | ||||
|                     a.download = `${$_('certificates')}_${o.name}-${locale}.pdf`; | ||||
|                     document.body.appendChild(a); | ||||
|                     a.click(); | ||||
|                     a.remove(); | ||||
|                     if (count === generate_orgs.length) { | ||||
|                         toast.hideToast(); | ||||
|                         Toastify({ | ||||
|                             text: $_("pdfs-successfully-generated"), | ||||
|                             duration: 3500, | ||||
|                             backgroundColor: | ||||
|                                 "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                         }).showToast(); | ||||
|                     } | ||||
|                 }) | ||||
|                 .catch((err) => {}); | ||||
|             .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 = `${$_('certificates')}_${o.name}_direct-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     console.log("here") | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                         "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             for (const t of o.teams) { | ||||
|                 count++; | ||||
|                 let runners = await RunnerTeamService.runnerTeamControllerGetRunners( | ||||
|                     t.id | ||||
|                 ); | ||||
|                 let certificateRunners = []; | ||||
|             for (let runner of runners) { | ||||
|                 runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || []; | ||||
|                 certificateRunners.push(runner); | ||||
|             } | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
|                         "Content-Type": "application/json", | ||||
|                     }, | ||||
|                     body: JSON.stringify(certificateRunners), | ||||
|                 } | ||||
|             ) | ||||
|             .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 = `${$_('certificates')}_${o.name}_${t.name}-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                             "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| </script> | ||||
|   | ||||
| @@ -43,7 +43,7 @@ | ||||
|                 t.id | ||||
|             ); | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 `${config.baseurl_documentserver}/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -92,12 +92,13 @@ | ||||
|             text: $_("generating-pdf"), | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         let count_orgs =0; | ||||
|         for (const o of generate_orgs) { | ||||
|             const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners( | ||||
|                 o.id | ||||
|             ); | ||||
|             fetch( | ||||
|                 `${config.baseurl}/documents/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             count_orgs++; | ||||
|             let count = 0; | ||||
|             let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true) | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|                 { | ||||
|                     method: "POST", | ||||
|                     headers: { | ||||
| @@ -106,39 +107,87 @@ | ||||
|                     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) => { | ||||
|                     count++; | ||||
|                     const url = window.URL.createObjectURL(blob); | ||||
|                     let a = document.createElement("a"); | ||||
|                     a.href = url; | ||||
|                     a.download = `${$_('sponsorings')}_${o.name}-${locale}.pdf`; | ||||
|                     document.body.appendChild(a); | ||||
|                     a.click(); | ||||
|                     a.remove(); | ||||
|                     if (count === generate_orgs.length) { | ||||
|                         toast.hideToast(); | ||||
|                         Toastify({ | ||||
|                             text: $_("pdfs-successfully-generated"), | ||||
|                             duration: 3500, | ||||
|                             backgroundColor: | ||||
|                                 "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                         }).showToast(); | ||||
|                     } | ||||
|                 }) | ||||
|                 .catch((err) => {}); | ||||
|             .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')}_${o.name}_direct-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     console.log("here") | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                         "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             for (const t of o.teams) { | ||||
|                 count++; | ||||
|                 let runners = await RunnerTeamService.runnerTeamControllerGetRunners( | ||||
|                     t.id | ||||
|                 ); | ||||
|             await fetch( | ||||
|                 `${config.baseurl_documentserver}/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')}_${o.name}_${t.name}-${locale}.pdf`; | ||||
|                 document.body.appendChild(a); | ||||
|                 a.click(); | ||||
|                 a.remove(); | ||||
|                 if (count === o.teams.length && count_orgs === generate_orgs.length) { | ||||
|                     toast.hideToast(); | ||||
|                     Toastify({ | ||||
|                         text: $_("pdfs-successfully-generated"), | ||||
|                         duration: 3500, | ||||
|                         backgroundColor: | ||||
|                             "linear-gradient(to right, #00b09b, #96c93d)", | ||||
|                     }).showToast(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => {}); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -148,7 +197,7 @@ | ||||
|             duration: -1, | ||||
|         }).showToast(); | ||||
|         fetch( | ||||
|             `${config.baseurl}/documents/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             `${config.baseurl_documentserver}/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`, | ||||
|             { | ||||
|                 method: "POST", | ||||
|                 headers: { | ||||
|   | ||||
| @@ -197,7 +197,7 @@ | ||||
|                       {#if runner.group.responseType === 'RUNNERTEAM'} | ||||
|                         <a | ||||
|                           href="../teams/{runner.group.id}" | ||||
|                           class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{runner.group.name}</a> | ||||
|                           class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{runner.group.parentGroup.name} > {runner.group.name}</a> | ||||
|                       {/if} | ||||
|                       {#if runner.group.responseType === 'RUNNERORGANIZATION'} | ||||
|                         <a | ||||
|   | ||||
		Reference in New Issue
	
	Block a user