Kurs.svelte 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <script>
  2. import { ipcRenderer } from "electron";
  3. import { onMount } from "svelte";
  4. import { schueler, medien, titel, configData } from "./../../stores.js";
  5. import { chunk } from "./../../helpers.js";
  6. const runner = (_) => {
  7. const d = new Date().getTime();
  8. const pdf_name = `${$schueler[0].klasse}_${$schueler[0].kurs || ""}_${$schueler[0].jahr}_${d}.pdf`;
  9. $configData.gruppe_print_dialog && ipcRenderer.send("print");
  10. $configData.gruppe_auto_pdf && ipcRenderer.send("pdf", pdf_name);
  11. };
  12. onMount(() => {
  13. setTimeout(runner, 500);
  14. });
  15. const anzahl = 30;
  16. </script>
  17. {#each chunk($schueler, anzahl) as slice, i}
  18. <div class="page grid" orientation="portrait" size="A4">
  19. <div class="main">
  20. <h2 class="subtitle">
  21. {$schueler[0].klasse} – {$schueler[0].kurs} – {$schueler[0].kurs_lehrer}
  22. – {new Date().toLocaleDateString('de', {
  23. day: '2-digit',
  24. month: '2-digit',
  25. year: 'numeric',
  26. })}
  27. </h2>
  28. <h2 class="subtitle">{$titel || ''}</h2>
  29. <table class="table">
  30. <thead>
  31. <tr>
  32. <th />
  33. <th>Name</th>
  34. <th>Vorname</th>
  35. <th>Barcode</th>
  36. <th>Unterschrift</th>
  37. </tr>
  38. </thead>
  39. <tbody>
  40. {#each slice as s, ii}
  41. <tr>
  42. <td>{i * anzahl + ii + 1}</td>
  43. <td>{s.name}</td>
  44. <td>{s.vorname}</td>
  45. <td>{s.gesperrt ? '– gesperrt –' : ''}{$medien[s.id] || ''}</td>
  46. <td />
  47. </tr>
  48. {/each}
  49. </tbody>
  50. </table>
  51. </div>
  52. <div class="grid-footer">
  53. {$schueler[0].klasse} – {$schueler[0].kurs} – {$schueler[0].kurs_lehrer} –
  54. {new Date().toLocaleDateString('de', {
  55. day: '2-digit',
  56. month: '2-digit',
  57. year: 'numeric',
  58. })}
  59. </div>
  60. </div>
  61. {/each}