parent
48ddc62192
commit
f37ba1dbf7
@ -1,5 +1,6 @@
|
|||||||
<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;
|
||||||
@ -20,13 +21,18 @@
|
|||||||
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) => {
|
||||||
//
|
//
|
||||||
@ -101,7 +107,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="tel"
|
type="number"
|
||||||
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" />
|
||||||
|
@ -6,11 +6,28 @@
|
|||||||
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 = [];
|
||||||
data.forEach((track) => {
|
trackscache.forEach((track) => {
|
||||||
tabledata.push([
|
tabledata.push([
|
||||||
track.name,
|
track.name,
|
||||||
track.distance,
|
track.distance,
|
||||||
@ -20,23 +37,24 @@
|
|||||||
`),
|
`),
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
const datatable = new Grid({
|
if (datatable_inited === false) {
|
||||||
columns: [$_("track-name"), $_("track-length-in-m"), "Action"],
|
datatable = new Grid({
|
||||||
language: getlang($json("datatable")),
|
columns: [$_("track-name"), $_("track-length-in-m"), "Action"],
|
||||||
sort: true,
|
language: getlang($json("datatable")),
|
||||||
search: { enabled: true },
|
sort: true,
|
||||||
data: tabledata,
|
search: { enabled: true },
|
||||||
pagination: {
|
data: tabledata,
|
||||||
enabled: true,
|
pagination: {
|
||||||
limit: 25,
|
enabled: true,
|
||||||
summary: false,
|
limit: 25,
|
||||||
},
|
summary: false,
|
||||||
});
|
},
|
||||||
table_visible = true;
|
}).render(table);
|
||||||
setTimeout(() => {
|
datatable_inited = true;
|
||||||
datatable.render(table);
|
} else {
|
||||||
}, 10);
|
datatable.updateConfig({ data: tabledata }).forceRender();
|
||||||
});
|
}
|
||||||
|
}
|
||||||
let table_visible = false;
|
let table_visible = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -47,8 +65,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}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user