teams.svelte 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <script>
  2. export let schueler, privat, einstellungen;
  3. let schueler_verbergen;
  4. let lehrer = []
  5. const { Pool } = R("pg");
  6. const pool = new Pool({ connectionString: privat.mein_bk_db });
  7. const query = `SELECT * from lehrer`;
  8. pool.query(query).then(res => lehrer = res.rows)
  9. async function update_teams () {
  10. pool.query(`UPDATE einstellungen SET teams_anzeigen=$1`, [!einstellungen.teams_anzeigen])
  11. einstellungen.teams_anzeigen = !einstellungen.teams_anzeigen
  12. }
  13. async function update_lehrer (l) {
  14. await pool.query(`UPDATE lehrer SET konto=$1 WHERE id=$2`, [!l.konto, l.id])
  15. l.konto = !l.konto
  16. lehrer = lehrer
  17. }
  18. async function update_schueler (s) {
  19. await pool.query(`UPDATE schueler SET konto=$1 WHERE id=$2`, [!s.konto, s.id])
  20. s.konto = !s.konto
  21. schueler = schueler
  22. }
  23. </script>
  24. <h3 class="title">Einverständniserklärungen Teams</h3>
  25. <div class="field">
  26. <label class="checkbox">
  27. <input type="checkbox" bind:checked={einstellungen.teams_anzeigen} on:click={update_teams} />
  28. Teams-Seite für Schüler anzeigen
  29. </label>
  30. </div>
  31. <div class="field">
  32. <label class="checkbox">
  33. <input type="checkbox" bind:checked={schueler_verbergen} />
  34. Schüler verbergen
  35. </label>
  36. </div>
  37. {#if !schueler_verbergen}
  38. <div class="columns">
  39. <div class="column is-two-thirds">
  40. {#each Object.entries(schueler) as [klasse, schueler]}
  41. <h3 class="title">{klasse}</h3>
  42. <table class="table is-striped">
  43. <thead>
  44. <tr>
  45. <th>Name</th>
  46. <th>Vorname</th>
  47. <th>Auswahlstatus</th>
  48. </tr>
  49. </thead>
  50. <tbody>
  51. {#each schueler as s}
  52. <tr>
  53. <td>{s.Name}</td>
  54. <td>{s.Vorname}</td>
  55. <td class="is-clickable">
  56. <span
  57. class="tag"
  58. on:click={_=>update_schueler(s)}
  59. class:is-warning={s.konto === undefined || s.konto === null}
  60. class:is-danger={s.konto === false}
  61. class:is-success={s.konto}>Konto</span>
  62. </td>
  63. </tr>
  64. {/each}
  65. </tbody>
  66. </table>
  67. {/each}
  68. </div>
  69. </div>
  70. {/if}
  71. {#if lehrer}
  72. <div class="columns">
  73. <div class="column is-two-thirds">
  74. <h3 class="title">Lehrer</h3>
  75. <table class="table is-striped">
  76. <thead>
  77. <tr>
  78. <th>Name</th>
  79. <th>Auswahlstatus</th>
  80. </tr>
  81. </thead>
  82. <tbody>
  83. {#each lehrer as l}
  84. <tr>
  85. <td>{l.name}</td>
  86. <td class="is-clickable">
  87. <span
  88. class="tag"
  89. on:click={_=>update_lehrer(l)}
  90. class:is-warning={l.konto === undefined || l.konto === null}
  91. class:is-danger={l.konto === false}
  92. class:is-success={l.konto}>Konto</span>
  93. </td>
  94. </tr>
  95. {/each}
  96. </tbody>
  97. </table>
  98. </div>
  99. </div>
  100. {/if}