Certificate download feature/19-runner_certficates #38
							
								
								
									
										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>
 | 
			
		||||
		Reference in New Issue
	
	Block a user