reservierung.svelte 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <script>
  2. export let schueler,
  3. privat,
  4. einstellungen = {};
  5. let reservierung_anzeigen = einstellungen.reservierung_anzeigen;
  6. let reservierung_erlauben = einstellungen.reservierung_erlauben;
  7. let schueler_verbergen;
  8. let anzahl_ipads
  9. $: console.log(reservierung_anzeigen);
  10. const { Pool } = R("pg");
  11. const pool = new Pool({ connectionString: privat.mein_bk_db });
  12. $: anzahl_ipads !== null &&
  13. pool.query(`UPDATE einstellungen SET anzahl_ipads=$1`, [
  14. anzahl_ipads,
  15. ]);
  16. $: reservierung_anzeigen !== null &&
  17. pool.query(`UPDATE einstellungen SET reservierung_anzeigen=$1`, [
  18. reservierung_anzeigen,
  19. ]);
  20. $: reservierung_erlauben !== null &&
  21. pool.query(`UPDATE einstellungen SET reservierung_erlauben=$1`, [
  22. reservierung_erlauben,
  23. ]);
  24. </script>
  25. <h3 class="title">Reservierungen Bibliothek</h3>
  26. <div class="field">
  27. <label class="checkbox">
  28. <input type="checkbox" bind:checked={reservierung_anzeigen} />
  29. Reservierungsseite für Schüler anzeigen
  30. </label>
  31. </div>
  32. {#if reservierung_anzeigen}
  33. <div class="field">
  34. <div class="control">
  35. <label class="label">Verfügbare iPads
  36. <input class="input" type="number" bind:value={anzahl_ipads}>
  37. </label></div>
  38. </div>
  39. <div class="field">
  40. <label class="checkbox">
  41. <input type="checkbox" bind:checked={reservierung_erlauben} />
  42. Reservierungen zulassen
  43. </label>
  44. </div>
  45. {/if}
  46. <div class="field">
  47. <label class="checkbox">
  48. <input type="checkbox" bind:checked={schueler_verbergen} />
  49. Schüler verbergen
  50. </label>
  51. </div>
  52. {#if !schueler_verbergen}
  53. <div class="columns">
  54. <div class="column is-two-thirds">
  55. {#each Object.entries(schueler) as [klasse, schueler]}
  56. <h3 class="title">{klasse}</h3>
  57. <table class="table is-striped">
  58. <thead>
  59. <tr>
  60. <th>Name</th>
  61. <th>Vorname</th>
  62. <th>Auswahlstatus</th>
  63. </tr>
  64. </thead>
  65. <tbody>
  66. {#each schueler as s}
  67. <tr>
  68. <td
  69. >{#if s.age.year < 18}<span class="tag is-danger">18</span
  70. >{/if}-{s.age}-{s.Name}</td
  71. >
  72. <td>{s.Vorname}</td>
  73. <td>
  74. <span
  75. class="tag"
  76. class:is-light={s.reservierung === undefined ||
  77. s.reservierung === null}
  78. class:is-danger={s.reservierung === "abgelehnt"}
  79. class:is-info={s.reservierung === "in Bearbeitung"}
  80. class:is-success={s.reservierung === "abholbereit"}
  81. class:is-warning={s.reservierung === "abholbereit (U18)"}
  82. >{s.reservierung || "–"}</span
  83. >
  84. </td>
  85. </tr>
  86. {/each}
  87. </tbody>
  88. </table>
  89. {/each}
  90. </div>
  91. </div>
  92. {/if}
  93. <style>
  94. @import "./node_modules/bulma-tooltip/dist/css/bulma-tooltip.min.css";
  95. </style>