Compare commits
	
		
			21 Commits
		
	
	
		
			ef81b8adf9
			...
			0.14.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9c5fc6b61c | |||
| 302caf015f | |||
| e11296071a | |||
| 112eb29f93 | |||
| c6c97516b3 | |||
| 03676b2894 | |||
| 9ca57fac2e | |||
| 18f151c1fb | |||
| e90e56d8b2 | |||
| d241ca5698 | |||
| b512cf8667 | |||
| a24d2923c6 | |||
| 467808abef | |||
| 861f1f2216 | |||
| 509b22bea0 | |||
| 7447b2f4c1 | |||
| fef14b6e4f | |||
| 01d2a7e6aa | |||
| ac586fec5a | |||
| 5476808683 | |||
| 331d737796 | 
@@ -27,7 +27,7 @@ name: build:dev
 | 
				
			|||||||
steps:
 | 
					steps:
 | 
				
			||||||
  - name: run full license export
 | 
					  - name: run full license export
 | 
				
			||||||
    depends_on: ["clone"]
 | 
					    depends_on: ["clone"]
 | 
				
			||||||
    image: node:alpine
 | 
					    image: registry.odit.services/hub/library/node:alpine
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - yarn
 | 
					      - yarn
 | 
				
			||||||
      - yarn licenses:export
 | 
					      - yarn licenses:export
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										44
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -2,8 +2,52 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
					All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.14.0](https://git.odit.services/lfk/frontend/compare/0.13.1...0.14.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Merge pull request 'added donor receipt list download to DonorsOverview' (#134) from feature/132-export-donors-receipt-list into dev [`#132`](https://git.odit.services/lfk/frontend/issues/132)
 | 
				
			||||||
 | 
					- Sorted translations 🌎 [`c6c9751`](https://git.odit.services/lfk/frontend/commit/c6c97516b3981ef580d620c0c8a6fcc42f26facd)
 | 
				
			||||||
 | 
					- Fixed typos in translations [`03676b2`](https://git.odit.services/lfk/frontend/commit/03676b2894892c3559118b93e969c063b53b081e)
 | 
				
			||||||
 | 
					- added donor receipt list download to DonorsOverview [`d241ca5`](https://git.odit.services/lfk/frontend/commit/d241ca569838abbe9581fbd319f7f3b563cb7dcc)
 | 
				
			||||||
 | 
					- ⏫ general version bump [`18f151c`](https://git.odit.services/lfk/frontend/commit/18f151c1fb878a74c3d1a2c2a2debf7913739417)
 | 
				
			||||||
 | 
					- new license file version [CI SKIP] [`302caf0`](https://git.odit.services/lfk/frontend/commit/302caf015f88f77e2b2ae2b67680e79f987ad81e)
 | 
				
			||||||
 | 
					- Switched to selfhosted images [`112eb29`](https://git.odit.services/lfk/frontend/commit/112eb29f932cd936f1d6c2308dcaeaf8cb642490)
 | 
				
			||||||
 | 
					- ⏫ bump @odit/lfk-client-js@0.11.0 [`9ca57fa`](https://git.odit.services/lfk/frontend/commit/9ca57fac2eeabbf25142a507fb9c0fa3c90b4e74)
 | 
				
			||||||
 | 
					- replace donationAmount with paidDonationAmount [`e90e56d`](https://git.odit.services/lfk/frontend/commit/e90e56d8b26aef23aba2bbb0c3942ba4d7feb224)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.13.1](https://git.odit.services/lfk/frontend/compare/0.13.0...0.13.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 11 April 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀RELEASE v0.13.1 [`b512cf8`](https://git.odit.services/lfk/frontend/commit/b512cf86674f1c60b5ac790985ededdfd6554185)
 | 
				
			||||||
 | 
					- 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)
 | 
					#### [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)
 | 
					- 🚑 [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)
 | 
					#### [0.12.3](https://git.odit.services/lfk/frontend/compare/0.12.2...0.12.3)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
  <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.12.4-RELEASE_INFO</span>
 | 
					  <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.14.0-RELEASE_INFO</span>
 | 
				
			||||||
  <noscript>You need to enable JavaScript to run this app.</noscript>
 | 
					  <noscript>You need to enable JavaScript to run this app.</noscript>
 | 
				
			||||||
  <script src="/env.js"></script>
 | 
					  <script src="/env.js"></script>
 | 
				
			||||||
  <script type="module" src="/src/main.js"></script>
 | 
					  <script type="module" src="/src/main.js"></script>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"name": "@odit/lfk-frontend",
 | 
						"name": "@odit/lfk-frontend",
 | 
				
			||||||
	"version": "0.12.4",
 | 
						"version": "0.14.0",
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
		"i18n-order": "node order.js",
 | 
							"i18n-order": "node order.js",
 | 
				
			||||||
		"dev": "vite",
 | 
							"dev": "vite",
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
	"license": "CC-BY-NC-SA-4.0",
 | 
						"license": "CC-BY-NC-SA-4.0",
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"check-password-strength": "2.0.2",
 | 
							"check-password-strength": "2.0.2",
 | 
				
			||||||
		"@odit/lfk-client-js": "0.10.1",
 | 
							"@odit/lfk-client-js": "0.11.0",
 | 
				
			||||||
		"@odit/license-exporter": "0.0.11",
 | 
							"@odit/license-exporter": "0.0.11",
 | 
				
			||||||
		"@sveltejs/vite-plugin-svelte": "1.0.0-next.6",
 | 
							"@sveltejs/vite-plugin-svelte": "1.0.0-next.6",
 | 
				
			||||||
		"@types/html-minifier": "4.0.0",
 | 
							"@types/html-minifier": "4.0.0",
 | 
				
			||||||
@@ -21,8 +21,8 @@
 | 
				
			|||||||
		"gridjs": "3.4.0",
 | 
							"gridjs": "3.4.0",
 | 
				
			||||||
		"html-minifier": "4.0.0",
 | 
							"html-minifier": "4.0.0",
 | 
				
			||||||
		"localforage": "1.9.0",
 | 
							"localforage": "1.9.0",
 | 
				
			||||||
		"marked": "2.0.1",
 | 
							"marked": "2.0.3",
 | 
				
			||||||
		"release-it": "14.5.1",
 | 
							"release-it": "14.6.1",
 | 
				
			||||||
		"svelte": "3.37.0",
 | 
							"svelte": "3.37.0",
 | 
				
			||||||
		"svelte-focus-trap": "1.2.0",
 | 
							"svelte-focus-trap": "1.2.0",
 | 
				
			||||||
		"svelte-i18n": "3.3.9",
 | 
							"svelte-i18n": "3.3.9",
 | 
				
			||||||
@@ -33,7 +33,7 @@
 | 
				
			|||||||
		"toastify-js": "1.10.0",
 | 
							"toastify-js": "1.10.0",
 | 
				
			||||||
		"validator": "13.5.2",
 | 
							"validator": "13.5.2",
 | 
				
			||||||
		"vite": "2.1.5",
 | 
							"vite": "2.1.5",
 | 
				
			||||||
		"vite-plugin-windicss": "0.12.5",
 | 
							"vite-plugin-windicss": "0.14.0",
 | 
				
			||||||
		"xlsx": "0.16.9"
 | 
							"xlsx": "0.16.9"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"release-it": {
 | 
						"release-it": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
const config = {
 | 
					const config = {
 | 
				
			||||||
	baseurl: 'http://localhost:4010',
 | 
						baseurl: 'http://localhost:4010',
 | 
				
			||||||
 | 
						baseurl_documentserver: 'http://localhost:4010/documents',
 | 
				
			||||||
	documentserver_key: 'NqZSYTy5AFQ7MppbLW5moqpTk7u7YrNUHKYhKYuThnnya2WpCOIU694hIZT1FzYe',
 | 
						documentserver_key: 'NqZSYTy5AFQ7MppbLW5moqpTk7u7YrNUHKYhKYuThnnya2WpCOIU694hIZT1FzYe',
 | 
				
			||||||
	// optional
 | 
						// optional
 | 
				
			||||||
	default_username: 'demo',
 | 
						default_username: 'demo',
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -77,7 +77,7 @@
 | 
				
			|||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
          }).showToast();
 | 
					          }).showToast();
 | 
				
			||||||
          fetch(
 | 
					          fetch(
 | 
				
			||||||
            `${config.baseurl}/documents/cards?&download=true&key=${config.documentserver_key}`,
 | 
					            `${config.baseurl_documentserver}/cards?&download=true&key=${config.documentserver_key}`,
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              method: "POST",
 | 
					              method: "POST",
 | 
				
			||||||
              headers: {
 | 
					              headers: {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,31 @@
 | 
				
			|||||||
        {$_('add-donor')}
 | 
					        {$_('add-donor')}
 | 
				
			||||||
      </button>
 | 
					      </button>
 | 
				
			||||||
    {/if}
 | 
					    {/if}
 | 
				
			||||||
 | 
					    {#if store.state.jwtinfo.userdetails.permissions.includes('DONOR:GET')}
 | 
				
			||||||
 | 
					      <button
 | 
				
			||||||
 | 
					        on:click={() => {
 | 
				
			||||||
 | 
					          const data = (current_donors.filter(d=>d.receiptNeeded===true)).map(function (d) {
 | 
				
			||||||
 | 
					            d.address.address2=d.address.address2===""?"":" "+d.address.address2;
 | 
				
			||||||
 | 
					            const address=`${d.address.address1}${d.address.address2}, ${d.address.postalcode} ${d.address.city}, ${d.address.country}`;
 | 
				
			||||||
 | 
					            return [d.firstname,d.middlename,d.lastname,d.paidDonationAmount,address];
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          let csv = `${$_('csv_import__firstname')};${$_('csv_import__middlename')};${$_('csv_import__lastname')};${$_('total_donation_amount_in_eur')};${$_('address')}\n`;
 | 
				
			||||||
 | 
					    data.forEach(function(row) {
 | 
				
			||||||
 | 
					            csv += row.join(';');
 | 
				
			||||||
 | 
					            csv += "\n";
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    let hiddenElement = document.createElement('a');
 | 
				
			||||||
 | 
					    hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
 | 
				
			||||||
 | 
					    hiddenElement.target = '_blank';
 | 
				
			||||||
 | 
					    hiddenElement.download = `${$_('filename_sponsoringquittungsliste')}.csv`;
 | 
				
			||||||
 | 
					    hiddenElement.click();
 | 
				
			||||||
 | 
					    hiddenElement.remove();
 | 
				
			||||||
 | 
					        }}
 | 
				
			||||||
 | 
					        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">
 | 
				
			||||||
 | 
					        {$_('sponsoring-quittungs-liste_herunterladen')}
 | 
				
			||||||
 | 
					      </button>
 | 
				
			||||||
 | 
					    {/if}
 | 
				
			||||||
  </span>
 | 
					  </span>
 | 
				
			||||||
  <DonorsOverview bind:current_donors />
 | 
					  <DonorsOverview bind:current_donors />
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
  import { getLocaleFromNavigator, _ } from "svelte-i18n";
 | 
					  import { _ } from "svelte-i18n";
 | 
				
			||||||
  import { DonationService, DonorService } from "@odit/lfk-client-js";
 | 
					  import { DonationService, DonorService } from "@odit/lfk-client-js";
 | 
				
			||||||
  import store from "../../store";
 | 
					  import store from "../../store";
 | 
				
			||||||
  import DonorsEmptyState from "./DonorsEmptyState.svelte";
 | 
					  import DonorsEmptyState from "./DonorsEmptyState.svelte";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@
 | 
				
			|||||||
  $: active_deletes = [];
 | 
					  $: active_deletes = [];
 | 
				
			||||||
  $: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true);
 | 
					  $: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true);
 | 
				
			||||||
  $: cards_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(
 | 
					  $: certificates_show = current_organizations.some(
 | 
				
			||||||
    (r) => r.is_selected === true
 | 
					    (r) => r.is_selected === true
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@
 | 
				
			|||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
        fetch(
 | 
					        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",
 | 
					                method: "POST",
 | 
				
			||||||
                headers: {
 | 
					                headers: {
 | 
				
			||||||
@@ -101,7 +101,7 @@
 | 
				
			|||||||
            cards.push(card);
 | 
					            cards.push(card);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        fetch(
 | 
					        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",
 | 
					                method: "POST",
 | 
				
			||||||
                headers: {
 | 
					                headers: {
 | 
				
			||||||
@@ -169,7 +169,7 @@
 | 
				
			|||||||
                cards.push(card);
 | 
					                cards.push(card);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            fetch(
 | 
					            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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -216,15 +216,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    async function generateOrgCards(locale) {
 | 
					    async function generateOrgCards(locale) {
 | 
				
			||||||
        const toast = Toastify({
 | 
					        const toast = Toastify({
 | 
				
			||||||
            text: $_("generating-pdf"),
 | 
					            text: $_("generating-pdfs"),
 | 
				
			||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
        let count = 0;
 | 
					 | 
				
			||||||
        const current_cards = await RunnerCardService.runnerCardControllerGetAll();
 | 
					        const current_cards = await RunnerCardService.runnerCardControllerGetAll();
 | 
				
			||||||
 | 
					        let count = 0;
 | 
				
			||||||
 | 
					        let count_orgs =0;
 | 
				
			||||||
        for (const o of generate_orgs) {
 | 
					        for (const o of generate_orgs) {
 | 
				
			||||||
            const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
 | 
					            count_orgs++;
 | 
				
			||||||
                o.id
 | 
					            let count = 0;
 | 
				
			||||||
            );
 | 
					            let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true)
 | 
				
			||||||
            let cards = [];
 | 
					            let cards = [];
 | 
				
			||||||
            for (let runner of runners) {
 | 
					            for (let runner of runners) {
 | 
				
			||||||
                let card = current_cards.find((c) => c.runner?.id == runner.id);
 | 
					                let card = current_cards.find((c) => c.runner?.id == runner.id);
 | 
				
			||||||
@@ -235,8 +236,8 @@
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                cards.push(card);
 | 
					                cards.push(card);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            fetch(
 | 
					            await 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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -245,39 +246,97 @@
 | 
				
			|||||||
                    body: JSON.stringify(cards),
 | 
					                    body: JSON.stringify(cards),
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
                .then((response) => {
 | 
					            .then((response) => {
 | 
				
			||||||
                    if (response.status != "200") {
 | 
					                if (response.status != "200") {
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdf-generation-failed"),
 | 
					                        text: $_("pdf-generation-failed"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
					                            "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    } else {
 | 
					                } else {
 | 
				
			||||||
                        return response.blob();
 | 
					                    return response.blob();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .then((blob) => {
 | 
					            .then((blob) => {
 | 
				
			||||||
                    count++;
 | 
					                const url = window.URL.createObjectURL(blob);
 | 
				
			||||||
                    const url = window.URL.createObjectURL(blob);
 | 
					                let a = document.createElement("a");
 | 
				
			||||||
                    let a = document.createElement("a");
 | 
					                a.href = url;
 | 
				
			||||||
                    a.href = url;
 | 
					                a.download = `${$_('runnercards')}_${o.name}_direct-${locale}.pdf`;
 | 
				
			||||||
                    a.download = `${$_('runnercards')}_${o.name}-${locale}.pdf`;
 | 
					                document.body.appendChild(a);
 | 
				
			||||||
                    document.body.appendChild(a);
 | 
					                a.click();
 | 
				
			||||||
                    a.click();
 | 
					                a.remove();
 | 
				
			||||||
                    a.remove();
 | 
					                if (count === o.teams.length && count_orgs === generate_orgs.length) {
 | 
				
			||||||
                    if (count === generate_orgs.length) {
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    console.log("here")
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdfs-successfully-generated"),
 | 
					                        text: $_("pdfs-successfully-generated"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(to right, #00b09b, #96c93d)",
 | 
					                        "linear-gradient(to right, #00b09b, #96c93d)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .catch((err) => {});
 | 
					            .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>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,14 +37,14 @@
 | 
				
			|||||||
            text: $_("generating-pdf"),
 | 
					            text: $_("generating-pdf"),
 | 
				
			||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
        const current_donations = await DonationService.donationControllerGetAll();
 | 
					        const current_donations = (await DonationService.donationControllerGetAll()) || [];
 | 
				
			||||||
        let certificateRunners = [];
 | 
					        let certificateRunners = [];
 | 
				
			||||||
        for (let runner of generate_runners) {
 | 
					        for (let runner of generate_runners) {
 | 
				
			||||||
            runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
 | 
					            runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
 | 
				
			||||||
            certificateRunners.push(runner);
 | 
					            certificateRunners.push(runner);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        fetch(
 | 
					        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",
 | 
					                method: "POST",
 | 
				
			||||||
                headers: {
 | 
					                headers: {
 | 
				
			||||||
@@ -96,7 +96,7 @@
 | 
				
			|||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
        let count = 0;
 | 
					        let count = 0;
 | 
				
			||||||
        const current_donations = await DonationService.donationControllerGetAll();
 | 
					        const current_donations = (await DonationService.donationControllerGetAll()) || [];
 | 
				
			||||||
        for (const t of generate_teams) {
 | 
					        for (const t of generate_teams) {
 | 
				
			||||||
            const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
 | 
					            const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
 | 
				
			||||||
                t.id
 | 
					                t.id
 | 
				
			||||||
@@ -107,7 +107,7 @@
 | 
				
			|||||||
                certificateRunners.push(runner);
 | 
					                certificateRunners.push(runner);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            fetch(
 | 
					            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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -154,22 +154,23 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    async function generateOrgCertificates(locale) {
 | 
					    async function generateOrgCertificates(locale) {
 | 
				
			||||||
        const toast = Toastify({
 | 
					        const toast = Toastify({
 | 
				
			||||||
            text: $_("generating-pdf"),
 | 
					            text: $_("generating-pdfs"),
 | 
				
			||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
 | 
					        const current_donations = (await DonationService.donationControllerGetAll()) || [];
 | 
				
			||||||
        let count = 0;
 | 
					        let count = 0;
 | 
				
			||||||
        const current_donations = await DonationService.donationControllerGetAll();
 | 
					        let count_orgs =0;
 | 
				
			||||||
        for (const o of generate_orgs) {
 | 
					        for (const o of generate_orgs) {
 | 
				
			||||||
            const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
 | 
					            count_orgs++;
 | 
				
			||||||
                o.id
 | 
					            let count = 0;
 | 
				
			||||||
            );
 | 
					            let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true)
 | 
				
			||||||
            let certificateRunners = [];
 | 
					            let certificateRunners = [];
 | 
				
			||||||
            for (let runner of runners) {
 | 
					            for (let runner of runners) {
 | 
				
			||||||
                runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
 | 
					                runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
 | 
				
			||||||
                certificateRunners.push(runner);
 | 
					                certificateRunners.push(runner);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            fetch(
 | 
					            await 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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -178,39 +179,92 @@
 | 
				
			|||||||
                    body: JSON.stringify(certificateRunners),
 | 
					                    body: JSON.stringify(certificateRunners),
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
                .then((response) => {
 | 
					            .then((response) => {
 | 
				
			||||||
                    if (response.status != "200") {
 | 
					                if (response.status != "200") {
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdf-generation-failed"),
 | 
					                        text: $_("pdf-generation-failed"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
					                            "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    } else {
 | 
					                } else {
 | 
				
			||||||
                        return response.blob();
 | 
					                    return response.blob();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .then((blob) => {
 | 
					            .then((blob) => {
 | 
				
			||||||
                    count++;
 | 
					                const url = window.URL.createObjectURL(blob);
 | 
				
			||||||
                    const url = window.URL.createObjectURL(blob);
 | 
					                let a = document.createElement("a");
 | 
				
			||||||
                    let a = document.createElement("a");
 | 
					                a.href = url;
 | 
				
			||||||
                    a.href = url;
 | 
					                a.download = `${$_('certificates')}_${o.name}_direct-${locale}.pdf`;
 | 
				
			||||||
                    a.download = `${$_('certificates')}_${o.name}-${locale}.pdf`;
 | 
					                document.body.appendChild(a);
 | 
				
			||||||
                    document.body.appendChild(a);
 | 
					                a.click();
 | 
				
			||||||
                    a.click();
 | 
					                a.remove();
 | 
				
			||||||
                    a.remove();
 | 
					                if (count === o.teams.length && count_orgs === generate_orgs.length) {
 | 
				
			||||||
                    if (count === generate_orgs.length) {
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    console.log("here")
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdfs-successfully-generated"),
 | 
					                        text: $_("pdfs-successfully-generated"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(to right, #00b09b, #96c93d)",
 | 
					                        "linear-gradient(to right, #00b09b, #96c93d)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .catch((err) => {});
 | 
					            .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>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,7 +43,7 @@
 | 
				
			|||||||
                t.id
 | 
					                t.id
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            fetch(
 | 
					            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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -92,12 +92,13 @@
 | 
				
			|||||||
            text: $_("generating-pdf"),
 | 
					            text: $_("generating-pdf"),
 | 
				
			||||||
            duration: -1,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
 | 
					        let count_orgs =0;
 | 
				
			||||||
        for (const o of generate_orgs) {
 | 
					        for (const o of generate_orgs) {
 | 
				
			||||||
            const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
 | 
					            count_orgs++;
 | 
				
			||||||
                o.id
 | 
					            let count = 0;
 | 
				
			||||||
            );
 | 
					            let runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(o.id, true)
 | 
				
			||||||
            fetch(
 | 
					            await 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",
 | 
					                    method: "POST",
 | 
				
			||||||
                    headers: {
 | 
					                    headers: {
 | 
				
			||||||
@@ -106,39 +107,87 @@
 | 
				
			|||||||
                    body: JSON.stringify(runners),
 | 
					                    body: JSON.stringify(runners),
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
                .then((response) => {
 | 
					            .then((response) => {
 | 
				
			||||||
                    if (response.status != "200") {
 | 
					                if (response.status != "200") {
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdf-generation-failed"),
 | 
					                        text: $_("pdf-generation-failed"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
					                            "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    } else {
 | 
					                } else {
 | 
				
			||||||
                        return response.blob();
 | 
					                    return response.blob();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .then((blob) => {
 | 
					            .then((blob) => {
 | 
				
			||||||
                    count++;
 | 
					                const url = window.URL.createObjectURL(blob);
 | 
				
			||||||
                    const url = window.URL.createObjectURL(blob);
 | 
					                let a = document.createElement("a");
 | 
				
			||||||
                    let a = document.createElement("a");
 | 
					                a.href = url;
 | 
				
			||||||
                    a.href = url;
 | 
					                a.download = `${$_('sponsorings')}_${o.name}_direct-${locale}.pdf`;
 | 
				
			||||||
                    a.download = `${$_('sponsorings')}_${o.name}-${locale}.pdf`;
 | 
					                document.body.appendChild(a);
 | 
				
			||||||
                    document.body.appendChild(a);
 | 
					                a.click();
 | 
				
			||||||
                    a.click();
 | 
					                a.remove();
 | 
				
			||||||
                    a.remove();
 | 
					                if (count === o.teams.length && count_orgs === generate_orgs.length) {
 | 
				
			||||||
                    if (count === generate_orgs.length) {
 | 
					                    toast.hideToast();
 | 
				
			||||||
                        toast.hideToast();
 | 
					                    console.log("here")
 | 
				
			||||||
                        Toastify({
 | 
					                    Toastify({
 | 
				
			||||||
                            text: $_("pdfs-successfully-generated"),
 | 
					                        text: $_("pdfs-successfully-generated"),
 | 
				
			||||||
                            duration: 3500,
 | 
					                        duration: 3500,
 | 
				
			||||||
                            backgroundColor:
 | 
					                        backgroundColor:
 | 
				
			||||||
                                "linear-gradient(to right, #00b09b, #96c93d)",
 | 
					                        "linear-gradient(to right, #00b09b, #96c93d)",
 | 
				
			||||||
                        }).showToast();
 | 
					                    }).showToast();
 | 
				
			||||||
                    }
 | 
					                }
 | 
				
			||||||
                })
 | 
					            })
 | 
				
			||||||
                .catch((err) => {});
 | 
					            .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,
 | 
					            duration: -1,
 | 
				
			||||||
        }).showToast();
 | 
					        }).showToast();
 | 
				
			||||||
        fetch(
 | 
					        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",
 | 
					                method: "POST",
 | 
				
			||||||
                headers: {
 | 
					                headers: {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -183,6 +183,7 @@
 | 
				
			|||||||
    "everything-concerning-your-profile": "Alles zu deinem Profil",
 | 
					    "everything-concerning-your-profile": "Alles zu deinem Profil",
 | 
				
			||||||
    "everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃♂️🏃♀️🏃♂️",
 | 
					    "everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃♂️🏃♀️🏃♂️",
 | 
				
			||||||
    "faq": "FAQ",
 | 
					    "faq": "FAQ",
 | 
				
			||||||
 | 
					    "filename_sponsoringquittungsliste": "SponsoringQuittungsListe",
 | 
				
			||||||
    "filter-by-organization-team": "Filtern nach Organisation / Team",
 | 
					    "filter-by-organization-team": "Filtern nach Organisation / Team",
 | 
				
			||||||
    "first-name": "Vorname",
 | 
					    "first-name": "Vorname",
 | 
				
			||||||
    "first-name-is-required": "Vorname muss angegeben werden",
 | 
					    "first-name-is-required": "Vorname muss angegeben werden",
 | 
				
			||||||
@@ -354,6 +355,7 @@
 | 
				
			|||||||
    "settings": "Einstellungen",
 | 
					    "settings": "Einstellungen",
 | 
				
			||||||
    "settings-for-your-profile": "Die Einstellungen deines Accounts",
 | 
					    "settings-for-your-profile": "Die Einstellungen deines Accounts",
 | 
				
			||||||
    "something-about-the-group": "Infos zur Gruppe",
 | 
					    "something-about-the-group": "Infos zur Gruppe",
 | 
				
			||||||
 | 
					    "sponsoring-quittungs-liste_herunterladen": "Sponsoring-Quittungs-Liste herunterladen",
 | 
				
			||||||
    "sponsorings": "Sponsoringerklaerungen",
 | 
					    "sponsorings": "Sponsoringerklaerungen",
 | 
				
			||||||
    "stats-are-being-loaded": "Die Statistiken werden geladen...",
 | 
					    "stats-are-being-loaded": "Die Statistiken werden geladen...",
 | 
				
			||||||
    "status": "Status",
 | 
					    "status": "Status",
 | 
				
			||||||
@@ -386,6 +388,7 @@
 | 
				
			|||||||
    "total-donation-amount": "Gesamtbetrag",
 | 
					    "total-donation-amount": "Gesamtbetrag",
 | 
				
			||||||
    "total-donations": "Spendensumme",
 | 
					    "total-donations": "Spendensumme",
 | 
				
			||||||
    "total-scans": "gesamte Scans",
 | 
					    "total-scans": "gesamte Scans",
 | 
				
			||||||
 | 
					    "total_donation_amount_in_eur": "Gesamtbetrag in €",
 | 
				
			||||||
    "track": "Track",
 | 
					    "track": "Track",
 | 
				
			||||||
    "track-added": "Track hinzugefügt",
 | 
					    "track-added": "Track hinzugefügt",
 | 
				
			||||||
    "track-data-is-being-loaded": "Trackdaten werden geladen",
 | 
					    "track-data-is-being-loaded": "Trackdaten werden geladen",
 | 
				
			||||||
@@ -395,6 +398,7 @@
 | 
				
			|||||||
    "track-name": "Trackname",
 | 
					    "track-name": "Trackname",
 | 
				
			||||||
    "track-name-must-not-be-empty": "Der Name muss angegeben werden",
 | 
					    "track-name-must-not-be-empty": "Der Name muss angegeben werden",
 | 
				
			||||||
    "tracks": "Tracks",
 | 
					    "tracks": "Tracks",
 | 
				
			||||||
 | 
					    "update-card": "Karte aktualisieren",
 | 
				
			||||||
    "update-password": "Passwort ändern",
 | 
					    "update-password": "Passwort ändern",
 | 
				
			||||||
    "updated-contact": "Kontakt aktualisiert!",
 | 
					    "updated-contact": "Kontakt aktualisiert!",
 | 
				
			||||||
    "updated-donor": "Sponsor:in wurde aktualisiert",
 | 
					    "updated-donor": "Sponsor:in wurde aktualisiert",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@
 | 
				
			|||||||
    "active": "Active",
 | 
					    "active": "Active",
 | 
				
			||||||
    "add-card": "Add Card",
 | 
					    "add-card": "Add Card",
 | 
				
			||||||
    "add-donation": "Add donation",
 | 
					    "add-donation": "Add donation",
 | 
				
			||||||
    "add-donor": "add donor",
 | 
					    "add-donor": "Add donor",
 | 
				
			||||||
    "add-scan": "Add scan",
 | 
					    "add-scan": "Add scan",
 | 
				
			||||||
    "add-the-first-scanstation": "Add your first scanstation.",
 | 
					    "add-the-first-scanstation": "Add your first scanstation.",
 | 
				
			||||||
    "add-user-group": "Add User Group",
 | 
					    "add-user-group": "Add User Group",
 | 
				
			||||||
@@ -183,6 +183,7 @@
 | 
				
			|||||||
    "everything-concerning-your-profile": "Everything concerning your profile",
 | 
					    "everything-concerning-your-profile": "Everything concerning your profile",
 | 
				
			||||||
    "everything-is-more-fun-together": "everything is more fun together 🏃♂️🏃♀️🏃♂️",
 | 
					    "everything-is-more-fun-together": "everything is more fun together 🏃♂️🏃♀️🏃♂️",
 | 
				
			||||||
    "faq": "FAQ",
 | 
					    "faq": "FAQ",
 | 
				
			||||||
 | 
					    "filename_sponsoringquittungsliste": "DonorReceiptList",
 | 
				
			||||||
    "filter-by-organization-team": "Filter by Organization/ Team",
 | 
					    "filter-by-organization-team": "Filter by Organization/ Team",
 | 
				
			||||||
    "first-name": "First name",
 | 
					    "first-name": "First name",
 | 
				
			||||||
    "first-name-is-required": "First Name is required",
 | 
					    "first-name-is-required": "First Name is required",
 | 
				
			||||||
@@ -354,6 +355,7 @@
 | 
				
			|||||||
    "settings": "Settings",
 | 
					    "settings": "Settings",
 | 
				
			||||||
    "settings-for-your-profile": "Settings for your profile",
 | 
					    "settings-for-your-profile": "Settings for your profile",
 | 
				
			||||||
    "something-about-the-group": "Something about the group...",
 | 
					    "something-about-the-group": "Something about the group...",
 | 
				
			||||||
 | 
					    "sponsoring-quittungs-liste_herunterladen": "Download donor receipt list",
 | 
				
			||||||
    "sponsorings": "Sponsorings",
 | 
					    "sponsorings": "Sponsorings",
 | 
				
			||||||
    "stats-are-being-loaded": "stats are being loaded...",
 | 
					    "stats-are-being-loaded": "stats are being loaded...",
 | 
				
			||||||
    "status": "Status",
 | 
					    "status": "Status",
 | 
				
			||||||
@@ -386,6 +388,7 @@
 | 
				
			|||||||
    "total-donation-amount": "total donation amount",
 | 
					    "total-donation-amount": "total donation amount",
 | 
				
			||||||
    "total-donations": "total donations",
 | 
					    "total-donations": "total donations",
 | 
				
			||||||
    "total-scans": "total scans",
 | 
					    "total-scans": "total scans",
 | 
				
			||||||
 | 
					    "total_donation_amount_in_eur": "Total donation amount in €",
 | 
				
			||||||
    "track": "Track",
 | 
					    "track": "Track",
 | 
				
			||||||
    "track-added": "Track added",
 | 
					    "track-added": "Track added",
 | 
				
			||||||
    "track-data-is-being-loaded": "Track data is being loaded",
 | 
					    "track-data-is-being-loaded": "Track data is being loaded",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user