Compare commits

..

No commits in common. "56556bad6e9bde31f779d7250920acc5d48519a3" and "84430854df8581b43eb48a153b52030cb1b384f1" have entirely different histories.

4 changed files with 24 additions and 49 deletions

View File

@ -1,6 +1,5 @@
<script> <script>
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import { tracks as tracksstore } from "../store.js";
let trackname_input; let trackname_input;
let trackname_input_value; let trackname_input_value;
let tracklength; let tracklength;
@ -21,18 +20,13 @@
name: trackname_input_value, name: trackname_input_value,
}) })
.then((result) => { .then((result) => {
console.log(result);
Toastify({ Toastify({
text: $_("track-added"), text: $_("track-added"),
duration: 500, duration: 500,
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast(); }).showToast();
modal_open = false; modal_open = false;
let storeval = [];
tracksstore.subscribe((val) => {
storeval = val;
});
storeval.push(result);
tracksstore.set(storeval);
}) })
.catch((err) => { .catch((err) => {
// //
@ -107,7 +101,7 @@
<div class="mt-1 flex rounded-md shadow-sm"> <div class="mt-1 flex rounded-md shadow-sm">
<input <input
bind:value={tracklength} bind:value={tracklength}
type="number" type="tel"
name="track_length_m" name="track_length_m"
class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-r-md sm:text-sm border-gray-300" class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-r-md sm:text-sm border-gray-300"
placeholder="1000" /> placeholder="1000" />

View File

@ -6,28 +6,11 @@
import { getlang } from "./datatable_i18n"; import { getlang } from "./datatable_i18n";
import { Grid, html } from "gridjs"; import { Grid, html } from "gridjs";
import "gridjs/dist/theme/mermaid.css"; import "gridjs/dist/theme/mermaid.css";
import { tracks as tracksstore } from "../store.js"; //
let trackscache = [];
let table; let table;
let datatable;
let datatable_inited = false;
let initial_load_done = false;
tracks_promise.then((data) => { tracks_promise.then((data) => {
tracksstore.set(data);
tracksstore.subscribe((val) => {
trackscache = val;
if (initial_load_done === false) {
initial_load_done = true;
}
setTimeout(() => {
renderdatatable();
}, 100);
});
table_visible = true;
});
function renderdatatable() {
let tabledata = []; let tabledata = [];
trackscache.forEach((track) => { data.forEach((track) => {
tabledata.push([ tabledata.push([
track.name, track.name,
track.distance, track.distance,
@ -37,24 +20,23 @@
`), `),
]); ]);
}); });
if (datatable_inited === false) { const datatable = new Grid({
datatable = new Grid({ columns: [$_("track-name"), $_("track-length-in-m"), "Action"],
columns: [$_("track-name"), $_("track-length-in-m"), "Action"], language: getlang($json("datatable")),
language: getlang($json("datatable")), sort: true,
sort: true, search: { enabled: true },
search: { enabled: true }, data: tabledata,
data: tabledata, pagination: {
pagination: { enabled: true,
enabled: true, limit: 25,
limit: 25, summary: false,
summary: false, },
}, });
}).render(table); table_visible = true;
datatable_inited = true; setTimeout(() => {
} else { datatable.render(table);
datatable.updateConfig({ data: tabledata }).forceRender(); }, 10);
} });
}
let table_visible = false; let table_visible = false;
</script> </script>
@ -65,8 +47,8 @@
<div <div
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2" class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
role="alert"> role="alert">
<p class="font-bold">{$_('track-data-is-being-loaded')}</p> <p class="font-bold">track data is being loaded...</p>
<p class="text-sm">{$_('this-might-take-a-moment')}</p> <p class="text-sm">This might take a moment 👀</p>
</div> </div>
{:then tracks} {:then tracks}
{#if tracks.length > 0} {#if tracks.length > 0}

View File

@ -17,7 +17,7 @@
Create Track Create Track
</button> </button>
</span> </span>
<p class="mb-8 text-lg text-gray-500"> <p class="mb-16 text-lg text-gray-500">
configure the tracks/ min-max lap times configure the tracks/ min-max lap times
</p> </p>
<Tracks /> <Tracks />

View File

@ -1,6 +1,5 @@
import { writable } from 'svelte/store'; import { writable } from 'svelte/store';
export let tracks = writable([]);
const store = () => { const store = () => {
const state = { const state = {
access_token: undefined, access_token: undefined,