|
@@ -2,9 +2,9 @@
|
|
|
<div class="container">
|
|
|
<h1 class="title">Mein BK</h1>
|
|
|
<div>
|
|
|
- <span class="tag is-success" class:is-danger={!diff(schueler_lokal, schueler_entfernt)} style="cursor: pointer;">
|
|
|
- {diff(schueler_lokal, schueler_entfernt) ? `${schueler_lokal.length} Schüler in der Datenbank` : 'Schülerdaten müssen aktualisiert werden'}
|
|
|
- </span>
|
|
|
+ <span class="tag is-success" on:click={()=>hole_lokale_schueler()} style="cursor: pointer;">
|
|
|
+ {schueler_lokal.length} Schüler in der Datenbank
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<br>
|
|
|
<div class="field">
|
|
@@ -23,7 +23,7 @@
|
|
|
<li class:is-active={active === SVWahl}><a on:click={() => active=SVWahl}>SV-Wahl</a></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
- <svelte:component this={active} schueler={schueler_filter} {privat} {einstellungen}/>
|
|
|
+ <svelte:component this={active} schueler={schueler_filter} {privat} {einstellungen} {knexConfig}/>
|
|
|
</div>
|
|
|
</section>
|
|
|
|
|
@@ -46,10 +46,14 @@
|
|
|
const mysql = R('mysql')
|
|
|
let schueler_entfernt = [], schueler_lokal = []
|
|
|
let einstellungen
|
|
|
- const pool = new Pool({ connectionString: privat.mein_bk_db})
|
|
|
- pool.query(`SELECT * FROM einstellungen`).then(res => einstellungen = res.rows[0])
|
|
|
- if (!einstellungen) pool.query(`INSERT INTO einstellungen DEFAULT VALUES RETURNING *`).then(res => einstellungen = res.rows[0])
|
|
|
- pool.query(`SELECT schueler.*,
|
|
|
+ const postgres = new Pool({ connectionString: privat.mein_bk_db})
|
|
|
+ postgres.query(`SELECT * FROM einstellungen`)
|
|
|
+ .then(res => {
|
|
|
+ einstellungen = res.rows[0]
|
|
|
+ einstellungen || postgres.query(`INSERT INTO einstellungen DEFAULT VALUES RETURNING *`)
|
|
|
+ .then(res => einstellungen = res.rows[0])
|
|
|
+ })
|
|
|
+ postgres.query(`SELECT schueler.*,
|
|
|
wlan.voucher,
|
|
|
wahlen.*
|
|
|
FROM schueler
|
|
@@ -58,25 +62,21 @@
|
|
|
.then(resp => {
|
|
|
schueler_entfernt = resp.rows
|
|
|
})
|
|
|
- const connection = mysql.createConnection(knexConfig.connection)
|
|
|
- connection.connect()
|
|
|
- connection.query(`SELECT ID AS id, Name, Vorname, Klasse
|
|
|
- FROM schueler
|
|
|
- WHERE Status = 2 AND Geloescht = "-" AND Gesperrt = "-"
|
|
|
- ORDER BY Klasse, Name ASC`,
|
|
|
- (e, res) => {
|
|
|
- schueler_lokal = res
|
|
|
- })
|
|
|
- connection.end()
|
|
|
- function diff (eins, zwei) {
|
|
|
- let a = new Set(eins);
|
|
|
- let b = new Set(zwei);
|
|
|
- return new Set(
|
|
|
- [...a].filter(x => !b.has(x)));
|
|
|
+ const mysql_connection = mysql.createConnection(knexConfig.connection)
|
|
|
+ mysql_connection.connect()
|
|
|
+ function hole_lokale_schueler () {
|
|
|
+ mysql_connection.query(`SELECT ID AS id, Name, Vorname, Klasse,
|
|
|
+ CONCAT (LOWER (Vorname), ' ', LOWER (Name)) AS vollname
|
|
|
+ FROM schueler
|
|
|
+ WHERE Status = 2 AND Geloescht = "-" AND Gesperrt = "-"
|
|
|
+ ORDER BY Klasse, Name ASC`,
|
|
|
+ (e, res) => {
|
|
|
+ schueler_lokal = res
|
|
|
+ })
|
|
|
}
|
|
|
+ hole_lokale_schueler()
|
|
|
$: merged = schueler_lokal.map(itm => ({
|
|
|
...schueler_entfernt.find((item) => (item.id === itm.id) && item),
|
|
|
...itm}))
|
|
|
- $: schueler_filter = _.groupBy(merged.filter(s => s.Vorname.startsWith(suche) || s.Name.startsWith(suche)), 'Klasse')
|
|
|
- function update_db () {}
|
|
|
+ $: schueler_filter = _.groupBy(merged.filter(s => s.vollname.includes(suche.toLowerCase())), 'Klasse')
|
|
|
</script>
|