Merge pull request 'Certificate download feature/19-runner_certficates' (#38) from feature/19-runner_certficates into dev
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
Reviewed-on: #38
This commit is contained in:
commit
53eeb6be3d
32
index.html
32
index.html
|
@ -1,17 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Lauf für Kaya! - Selfservice</title>
|
||||
</head>
|
||||
|
||||
<body class="dark:bg-gray-900 text-black dark:text-white p-0">
|
||||
<div id="app"></div>
|
||||
<script src="./env.js"></script>
|
||||
<script defer type="module" src="./src/main.js"></script>
|
||||
</body>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Lauf für Kaya! - Selfservice</title>
|
||||
</head>
|
||||
|
||||
<body class="dark:bg-gray-900 text-black dark:text-white p-0">
|
||||
<div id="app"></div>
|
||||
<script src="/env.js"></script>
|
||||
<script defer type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -16,6 +16,7 @@
|
|||
<button
|
||||
type="button"
|
||||
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg"
|
||||
@click="get_certificate"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
@ -258,6 +259,7 @@ const state = reactive({
|
|||
group: "",
|
||||
activetab: "profile",
|
||||
delete_active: false,
|
||||
fullobject: {}
|
||||
})
|
||||
const toast = useToast();
|
||||
const props = defineProps({
|
||||
|
@ -272,6 +274,7 @@ axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
|
|||
state.middlename = data.middlename;
|
||||
state.lastname = data.lastname;
|
||||
state.group = data.group;
|
||||
state.fullobject = data;
|
||||
}).catch((error) => {
|
||||
toast.error("An error occured while loading your profile data");
|
||||
})
|
||||
|
@ -298,4 +301,38 @@ function delete_me() {
|
|||
toast.error("An error occured while deleting your profile data");
|
||||
});
|
||||
}
|
||||
function get_certificate() {
|
||||
toast("Generation in progress...");
|
||||
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
|
||||
let url = `${config.baseurl}documents/certificates?locale=${browserlocale}&download=true&key=${config.documentserver_key}`;
|
||||
let postdata = Object.assign({}, state.fullobject);
|
||||
postdata.group = {
|
||||
name: postdata.group
|
||||
}
|
||||
postdata = [postdata]
|
||||
axios.post(url, postdata, {
|
||||
responseType: "blob"
|
||||
})
|
||||
.then((response) => {
|
||||
console.log(response)
|
||||
if (response.status != "200") {
|
||||
toast.error("An error occured while generateing your certificate!");
|
||||
} else {
|
||||
var fileURL = window.URL.createObjectURL(new Blob([response.data], { type: 'application/pdf' }));
|
||||
var fileLink = document.createElement('a');
|
||||
|
||||
fileLink.href = fileURL;
|
||||
fileLink.setAttribute('download', 'Certificate.pdf');
|
||||
document.body.appendChild(fileLink);
|
||||
|
||||
fileLink.click();
|
||||
fileLink.remove();
|
||||
toast("Document generated!");
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
toast.error("An error occured while deleting your profile data");
|
||||
});
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue