From 35a9aa40cbbb86bd004cf18792951dd3f81fc859 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Tue, 5 Jan 2021 18:31:26 +0100 Subject: [PATCH] =?UTF-8?q?basic=20track=20deletion=20working=20=E2=9C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #11 --- src/components/Tracks.svelte | 65 +++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/src/components/Tracks.svelte b/src/components/Tracks.svelte index ccacf79b..ca09781c 100644 --- a/src/components/Tracks.svelte +++ b/src/components/Tracks.svelte @@ -23,8 +23,25 @@ renderdatatable(); }, 100); }); - table_visible = true; + if (trackscache.length > 0) { + table_visible = true; + } }); + window.track__delete_handler = () => { + const trackid = parseInt(window.event.target.getAttribute("data-trackid")); + // const track = trackscache.find((e) => e.id == trackid); + // console.log(track); + // ----- + // TODO: modal or double click confirmation? + TrackService.trackControllerRemove(trackid) + .then((resp) => { + const newStoreVal = trackscache.filter((obj) => obj.id !== trackid); + tracksstore.set(newStoreVal); + }) + .catch((err) => { + console.log(err); + }); + }; function renderdatatable() { let tabledata = []; trackscache.forEach((track) => { @@ -34,31 +51,33 @@ track.minimumLapTime || 0, html(` - + `), ]); }); - if (datatable_inited === false) { - datatable = new Grid({ - columns: [ - $_("track-name"), - $_("track-length-in-m"), - $_("minimum-lap-time-in-s"), - $_("action"), - ], - language: getlang($json("datatable")), - sort: true, - search: { enabled: true }, - data: tabledata, - pagination: { - enabled: true, - limit: 25, - summary: false, - }, - }).render(table); - datatable_inited = true; - } else { - datatable.updateConfig({ data: tabledata }).forceRender(); + if (trackscache.length > 0) { + if (datatable_inited === false) { + datatable = new Grid({ + columns: [ + $_("track-name"), + $_("track-length-in-m"), + $_("minimum-lap-time-in-s"), + $_("action"), + ], + language: getlang($json("datatable")), + sort: true, + search: { enabled: true }, + data: tabledata, + pagination: { + enabled: true, + limit: 25, + summary: false, + }, + }).render(table); + datatable_inited = true; + } else { + datatable.updateConfig({ data: tabledata }).forceRender(); + } } } let table_visible = false;