Compare commits
No commits in common. "f99b7f4bb8f166bb966022ddd10689c082d248f0" and "04494d2a2a542f25f785f3bb23e49e5eb0691c0a" have entirely different histories.
f99b7f4bb8
...
04494d2a2a
@ -1,83 +0,0 @@
|
||||
class DocumentServer {
|
||||
baseUrl: string;
|
||||
apiKey: string;
|
||||
|
||||
constructor(baseUrl: string, apiKey: string){
|
||||
this.baseUrl = baseUrl;
|
||||
this.apiKey = apiKey;
|
||||
}
|
||||
|
||||
async generateCards(cards: any[], locale: string) {
|
||||
const generateCards = new Array<any>();
|
||||
|
||||
for (let i = 0; i < cards.length; i++) {
|
||||
const card = {
|
||||
id: cards[i].id,
|
||||
enabled: cards[i].enabled,
|
||||
code: cards[i].code,
|
||||
runner: {
|
||||
id: cards[i].runner.id,
|
||||
first_name: cards[i].runner.firstname,
|
||||
middle_name: cards[i].runner.middlename,
|
||||
last_name: cards[i].runner.lastname,
|
||||
group: {
|
||||
id: cards[i].runner.group.id,
|
||||
name: cards[i].runner.group.name,
|
||||
}
|
||||
}
|
||||
}
|
||||
generateCards.push(card)
|
||||
|
||||
}
|
||||
|
||||
const response = await fetch(`${this.baseUrl}/v1/pdfs/cards?key=${this.apiKey}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
locale,
|
||||
cards: generateCards,
|
||||
}),
|
||||
});
|
||||
|
||||
const blob = await response.blob();
|
||||
return blob;
|
||||
}
|
||||
|
||||
async generateContracts(runners: any[], locale: string) {
|
||||
const generateRunners = new Array<any>();
|
||||
|
||||
for (let i = 0; i < runners.length; i++) {
|
||||
console.log(runners[i])
|
||||
const card = {
|
||||
id: runners[i].id,
|
||||
first_name: runners[i].firstname,
|
||||
middle_name: runners[i].middlename,
|
||||
last_name: runners[i].lastname,
|
||||
group: {
|
||||
id: runners[i].group.id,
|
||||
name: runners[i].group.name,
|
||||
}
|
||||
}
|
||||
generateRunners.push(card)
|
||||
|
||||
}
|
||||
|
||||
const response = await fetch(`${this.baseUrl}/v1/pdfs/contracts?key=${this.apiKey}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
locale,
|
||||
runners: generateRunners,
|
||||
}),
|
||||
});
|
||||
|
||||
const blob = await response.blob();
|
||||
return blob;
|
||||
}
|
||||
}
|
||||
|
||||
export default DocumentServer;
|
@ -6,11 +6,9 @@
|
||||
RunnerTeamService,
|
||||
} from "@odit/lfk-client-js";
|
||||
import toast from 'svelte-french-toast'
|
||||
import DocumentServer from "./DocumentServer.ts"
|
||||
|
||||
import { init } from "@paralleldrive/cuid2";
|
||||
const createId = init({ length: 10, fingerprint: "lfk-frontend" });
|
||||
const documentServer = new DocumentServer(config.baseurl_documentserver,config.documentserver_key);
|
||||
|
||||
export let cards_show = false;
|
||||
export let generate_cards = [];
|
||||
@ -27,18 +25,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
function download (blob, fileName){
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = fileName;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
toast.dismiss();
|
||||
toast($_("pdf-successfully-generated"));
|
||||
}
|
||||
|
||||
function generateRunnerCards(locale) {
|
||||
cards_dropdown_open = false;
|
||||
|
||||
@ -55,9 +41,34 @@
|
||||
|
||||
function generateCards(locale) {
|
||||
toast.loading($_("generating-pdf"));
|
||||
documentServer.generateCards(generate_cards, locale)
|
||||
fetch(
|
||||
`${config.baseurl_documentserver}/cards?locale=${locale}&download=true&key=${config.documentserver_key}`,
|
||||
{
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(generate_cards),
|
||||
}
|
||||
)
|
||||
.then((response) => {
|
||||
if (response.status != "200") {
|
||||
toast.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("runnercards")}-${locale}-${createId()}.pdf`);
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("runnercards")}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
toast.dismiss();
|
||||
toast($_("pdf-successfully-generated"));
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
@ -77,15 +88,40 @@
|
||||
}
|
||||
cards.push(card);
|
||||
}
|
||||
documentServer.generateCards(cards, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
let fileName = `${$_("runnercards")}-${locale}-${createId()}.pdf`;
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
if (generate_runners.length == 1) {
|
||||
fileName = `${$_("runnercards")}_${generate_runners[0].firstname}_${
|
||||
a.download = `${$_("runnercards")}_${generate_runners[0].firstname}_${
|
||||
generate_runners[0].lastname
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
} else {
|
||||
a.download = `${$_("runnercards")}-${locale}-${createId()}.pdf`;
|
||||
}
|
||||
download(blob, fileName);
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
toast.dismiss();
|
||||
toast($_("pdf-successfully-generated"));
|
||||
})
|
||||
.catch((err) => {});
|
||||
}
|
||||
@ -108,11 +144,39 @@
|
||||
}
|
||||
cards.push(card);
|
||||
}
|
||||
documentServer.generateCards(cards, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("runnercards")}_${
|
||||
count++;
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("runnercards")}_${
|
||||
t.name
|
||||
}-${locale}-${createId()}.pdf`)
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (count === generate_teams.length) {
|
||||
toast.dismiss();
|
||||
toast.success($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
}
|
||||
@ -141,11 +205,38 @@
|
||||
}
|
||||
cards.push(card);
|
||||
}
|
||||
await documentServer.generateCards(cards, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("runnercards")}_${
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("runnercards")}_${
|
||||
o.name
|
||||
}_direct-${locale}-${createId()}.pdf`)
|
||||
}_direct-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (count === o.teams.length && count_orgs === generate_orgs.length) {
|
||||
toast.dismiss();
|
||||
toast.success($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
for (const t of o.teams) {
|
||||
@ -163,11 +254,41 @@
|
||||
}
|
||||
cards.push(card);
|
||||
}
|
||||
await documentServer.generateCards(cards, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("runnercards")}_${o.name}_${
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("runnercards")}_${o.name}_${
|
||||
t.name
|
||||
}-${locale}-${createId()}.pdf`)
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (
|
||||
count === o.teams.length &&
|
||||
count_orgs === generate_orgs.length
|
||||
) {
|
||||
toast.dismiss();
|
||||
toast($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
}
|
||||
|
@ -4,12 +4,10 @@
|
||||
RunnerOrganizationService,
|
||||
RunnerTeamService,
|
||||
} from "@odit/lfk-client-js";
|
||||
import DocumentServer from "./DocumentServer";
|
||||
|
||||
import { init } from "@paralleldrive/cuid2";
|
||||
import toast from "svelte-french-toast";
|
||||
const createId = init({ length: 10, fingerprint: "lfk-frontend" });
|
||||
const documentServer = new DocumentServer(config.baseurl_documentserver,config.documentserver_key);
|
||||
|
||||
|
||||
export let sponsoring_contracts_show = false;
|
||||
export let generate_runners = [];
|
||||
@ -36,17 +34,6 @@
|
||||
generateRunnerContracts(locale);
|
||||
}
|
||||
}
|
||||
function download (blob, fileName){
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = fileName;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
toast.dismiss();
|
||||
toast($_("pdf-successfully-generated"));
|
||||
}
|
||||
|
||||
async function generateTeamContracts(locale) {
|
||||
toast.loading($_("generating-pdfs"));
|
||||
@ -56,11 +43,38 @@
|
||||
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
||||
t.id
|
||||
);
|
||||
documentServer.generateContracts(runners, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("sponsorings")}_${
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("sponsorings")}_${
|
||||
t.name
|
||||
}-${locale}-${createId()}.pdf`)
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (count === generate_teams.length) {
|
||||
toast.dismiss();
|
||||
toast.success($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
}
|
||||
@ -77,11 +91,38 @@
|
||||
o.id,
|
||||
true
|
||||
);
|
||||
await documentServer.generateContracts(runners, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("sponsorings")}_${
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("sponsorings")}_${
|
||||
o.name
|
||||
}_direct-${locale}-${createId()}.pdf`)
|
||||
}_direct-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (count === o.teams.length && count_orgs === generate_orgs.length) {
|
||||
toast.dismiss();
|
||||
toast.success($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
for (const t of o.teams) {
|
||||
@ -89,11 +130,41 @@
|
||||
let runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
||||
t.id
|
||||
);
|
||||
await documentServer.generateContracts(runners, locale)
|
||||
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.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
download(blob, `${$_("sponsorings")}_${o.name}_${
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `${$_("sponsorings")}_${o.name}_${
|
||||
t.name
|
||||
}-${locale}-${createId()}.pdf`)
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
if (
|
||||
count === o.teams.length &&
|
||||
count_orgs === generate_orgs.length
|
||||
) {
|
||||
toast.dismiss();
|
||||
toast($_("pdfs-successfully-generated"));
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
}
|
||||
@ -102,15 +173,39 @@
|
||||
|
||||
function generateRunnerContracts(locale) {
|
||||
toast.loading($_("generating-pdf"));
|
||||
documentServer.generateContracts(generate_runners, locale)
|
||||
fetch(
|
||||
`${config.baseurl_documentserver}/contracts?locale=${locale}&download=true&key=${config.documentserver_key}`,
|
||||
{
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(generate_runners),
|
||||
}
|
||||
)
|
||||
.then((response) => {
|
||||
if (response.status != "200") {
|
||||
toast.dismiss();
|
||||
toast.error($_("pdf-generation-failed"));
|
||||
} else {
|
||||
return response.blob();
|
||||
}
|
||||
})
|
||||
.then((blob) => {
|
||||
let fileName = `${$_("sponsorings")}-${locale}-${createId()}.pdf`
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
if (generate_runners.length == 1) {
|
||||
fileName= `${$_("sponsorings")}_${generate_runners[0].firstname}_${
|
||||
a.download = `${$_("sponsorings")}_${generate_runners[0].firstname}_${
|
||||
generate_runners[0].lastname
|
||||
}-${locale}-${createId()}.pdf`;
|
||||
}
|
||||
download(blob, fileName);
|
||||
a.download = `${$_("sponsorings")}-${locale}-${createId()}.pdf`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
toast.dismiss();
|
||||
toast($_("pdf-successfully-generated"));
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
|
Loading…
x
Reference in New Issue
Block a user