drop old datatables

This commit is contained in:
Philipp Dormann 2023-04-12 18:29:06 +02:00
parent fbc14fd7b4
commit cb5f2b73d0
Signed by: philipp
GPG Key ID: 3BB9ADD52DCA4314
17 changed files with 273 additions and 325 deletions

View File

@ -45,7 +45,6 @@
"@paralleldrive/cuid2": "^2.2.0", "@paralleldrive/cuid2": "^2.2.0",
"@tanstack/svelte-table": "^8.8.5", "@tanstack/svelte-table": "^8.8.5",
"@tanstack/table-core": "^8.8.5", "@tanstack/table-core": "^8.8.5",
"@vincjo/datatables": "^1.5.2",
"check-password-strength": "2.0.7", "check-password-strength": "2.0.7",
"csvtojson": "2.0.10", "csvtojson": "2.0.10",
"gridjs": "3.4.0", "gridjs": "3.4.0",

7
pnpm-lock.yaml generated
View File

@ -13,9 +13,6 @@ dependencies:
'@tanstack/table-core': '@tanstack/table-core':
specifier: ^8.8.5 specifier: ^8.8.5
version: 8.8.5 version: 8.8.5
'@vincjo/datatables':
specifier: ^1.5.2
version: 1.5.2
check-password-strength: check-password-strength:
specifier: 2.0.7 specifier: 2.0.7
version: 2.0.7 version: 2.0.7
@ -641,10 +638,6 @@ packages:
source-map: 0.6.1 source-map: 0.6.1
dev: true dev: true
/@vincjo/datatables@1.5.2:
resolution: {integrity: sha512-pdpwJ0y/CobZdfIxeujXB1jIARVlaKRf0aGhr6cINdUTuW0Ab0kgpZNy/MdAXnKeE6lBFzBXjI8FcJzkdmN/wg==}
dev: false
/acorn-walk@8.2.0: /acorn-walk@8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}

View File

@ -1,6 +1,5 @@
<script> <script>
import "toastify-js/src/toastify.css"; import "toastify-js/src/toastify.css";
import "gridjs/dist/theme/mermaid.css";
import { Route, router } from "tinro"; import { Route, router } from "tinro";
router.subscribe((routeInfo) => { router.subscribe((routeInfo) => {
window.scrollTo(0, 0); window.scrollTo(0, 0);

View File

@ -3,7 +3,6 @@
import { RunnerCardService } from "@odit/lfk-client-js"; import { RunnerCardService } from "@odit/lfk-client-js";
import store from "../../store"; import store from "../../store";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import { DataHandler, Datatable, Th, ThFilter } from "@vincjo/datatables";
import CardsEmptyState from "./CardsEmptyState.svelte"; import CardsEmptyState from "./CardsEmptyState.svelte";
import CardDetailModal from "./CardDetailModal.svelte"; import CardDetailModal from "./CardDetailModal.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
@ -89,8 +88,7 @@
Toastify({ Toastify({
text: $_("cards-deleted"), text: $_("cards-deleted"),
duration: 3500, duration: 3500,
backgroundColor: backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
"linear-gradient(to right, #00b09b, #96c93d)",
}).showToast(); }).showToast();
//TODO: Delete cards from table //TODO: Delete cards from table
}} }}
@ -114,138 +112,131 @@
{/if} {/if}
<GenerateRunnerCards bind:cards_show bind:generate_cards /> <GenerateRunnerCards bind:cards_show bind:generate_cards />
</div> </div>
<Datatable {handler}> <table>
<table> <thead>
<thead> <tr>
<th style="border-bottom: 1px solid #ddd;">
<input
type="checkbox"
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
checked={generate_cards.length == current_cards.length}
on:click={() => {
if (generate_cards.length != current_cards.length) {
generate_cards = current_cards;
} else {
generate_cards = [];
}
}}
/>
</th>
<Th {handler} orderBy="code">{$_("code")}</Th>
<Th {handler} orderBy="runner">{$_("runner")}</Th>
<Th {handler} orderBy="status">{$_("status")}</Th>
<th style="border-bottom: 1px solid #ddd;">{$_("action")}</th>
</tr>
<tr>
<th style="border-bottom: 1px solid #ddd;" />
<ThFilter {handler} filterBy="code" />
<ThFilterRunner {handler} />
<ThFilterStatus {handler} />
<th style="border-bottom: 1px solid #ddd;" />
</tr>
</thead>
<tbody>
{#each $rows as row}
<tr> <tr>
<th style="border-bottom: 1px solid #ddd;"> <td>
<input <input
type="checkbox" type="checkbox"
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
checked={generate_cards.length == current_cards.length} checked={generate_cards.filter((i) => i.id == row.id).length >
0}
on:click={() => { on:click={() => {
if (generate_cards.length != current_cards.length) { if (generate_cards.findIndex((i) => i.id == row.id) == -1) {
generate_cards = current_cards; generate_cards.push(row);
generate_cards = generate_cards;
} else { } else {
generate_cards = []; generate_cards = generate_cards.filter(
(r) => r.id != row.id
);
} }
console.log(generate_cards);
}} }}
/> />
</th> </td>
<Th {handler} orderBy="code">{$_("code")}</Th> <td>{row.code}</td>
<Th {handler} orderBy="runner">{$_("runner")}</Th> <td>
<Th {handler} orderBy="status">{$_("status")}</Th> {#if row.runner}
<th style="border-bottom: 1px solid #ddd;">{$_("action")}</th> <a
</tr> href="../runners/{row.runner.id}"
<tr> class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
<th style="border-bottom: 1px solid #ddd;" /> >{row.runner.firstname}
<ThFilter {handler} filterBy="code" /> {row.runner.middlename || ""}
<ThFilterRunner {handler} /> {row.runner.lastname}</a
<ThFilterStatus {handler} /> >
<th style="border-bottom: 1px solid #ddd;" /> {:else}{$_("non-blanko")}{/if}
</tr> </td>
</thead> <td>
<tbody> {#if row.enabled}
{#each $rows as row} <span
<tr> class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"
<td> >{$_("enabled")}</span
<input >
type="checkbox" {:else}
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" <span
checked={generate_cards.filter((i) => i.id == row.id) class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800"
.length > 0} >{$_("disabled")}</span
>
{/if}
</td>
<td>
{#if active_deletes[row.id] === true}
<button
on:click={() => { on:click={() => {
if ( active_deletes[row.id] = false;
generate_cards.findIndex((i) => i.id == row.id) == -1
) {
generate_cards.push(row);
generate_cards = generate_cards;
} else {
generate_cards = generate_cards.filter(
(r) => r.id != row.id
);
}
console.log(generate_cards);
}} }}
/> tabindex="0"
</td> class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer"
<td>{row.code}</td> >{$_("cancel-delete")}</button
<td> >
{#if row.runner} <button
<a on:click={() => {
href="../runners/{row.runner.id}" RunnerCardService.runnerCardControllerRemove(row.id, true)
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800" .then((resp) => {
>{row.runner.firstname} current_cards = current_cards.filter(
{row.runner.middlename || ""} (obj) => obj.id !== row.id
{row.runner.lastname}</a );
> })
{:else}{$_("non-blanko")}{/if} .catch((err) => {});
</td> }}
<td> tabindex="0"
{#if row.enabled} class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
<span >{$_("confirm-delete")}</button
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800" >
>{$_("enabled")}</span {:else}
> <button
{:else} on:click={() => {
<span open_edit_modal(row);
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800" }}
>{$_("disabled")}</span class="text-indigo-600 hover:text-indigo-900"
> >{$_("details")}</button
{/if} >
</td> {#if store.state.jwtinfo.userdetails.permissions.includes("CARD:DELETE")}
<td>
{#if active_deletes[row.id] === true}
<button <button
on:click={() => { on:click={() => {
active_deletes[row.id] = false; active_deletes[row.id] = true;
}}
tabindex="0"
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer"
>{$_("cancel-delete")}</button
>
<button
on:click={() => {
RunnerCardService.runnerCardControllerRemove(
row.id,
true
)
.then((resp) => {
current_cards = current_cards.filter(
(obj) => obj.id !== row.id
);
})
.catch((err) => {});
}} }}
tabindex="0" tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer" class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("confirm-delete")}</button >{$_("delete")}</button
> >
{:else}
<button
on:click={() => {
open_edit_modal(row);
}}
class="text-indigo-600 hover:text-indigo-900"
>{$_("details")}</button
>
{#if store.state.jwtinfo.userdetails.permissions.includes("CARD:DELETE")}
<button
on:click={() => {
active_deletes[row.id] = true;
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("delete")}</button
>
{/if}
{/if} {/if}
</td> {/if}
</tr> </td>
{/each} </tr>
</tbody> {/each}
</table> </tbody>
</Datatable> </table>
{/if} {/if}
{:catch error} {:catch error}
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500"> <div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">

View File

@ -31,7 +31,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -49,7 +49,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -51,7 +51,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -30,7 +30,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -51,7 +51,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div class="h-12"> <div class="h-12">
<GenerateSponsoringContracts <GenerateSponsoringContracts
bind:sponsoring_contracts_show bind:sponsoring_contracts_show

View File

@ -1,30 +0,0 @@
<script>
import { _, json } from "svelte-i18n";
import { getlang } from "./datatable_i18n";
import { Grid } from "gridjs";
//
let table;
const datatable = new Grid({
columns: ["Name", "Email", "Phone Number"],
language: getlang($json("datatable")),
sort: true,
search: { enabled: true },
data: [
["John", "john@example.com", "(353) 01 222 3333"],
["Mark", "mark@gmail.com", "(01) 22 888 4444"],
["Eoin", "eoin@gmail.com", "0097 22 654 00033"],
["Sarah", "sarahcdd@gmail.com", "+322 876 1233"],
["Afshin", "afshin@mail.com", "(353) 22 87 8356"],
],
pagination: {
enabled: true,
limit: 2,
summary: false,
},
});
setTimeout(() => {
datatable.render(table);
}, 0);
</script>
<div bind:this={table} />

View File

@ -1,6 +1,5 @@
<script> <script>
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import { DataHandler, Datatable, Th, ThFilter } from "@vincjo/datatables";
import { ScanService, TrackService } from "@odit/lfk-client-js"; import { ScanService, TrackService } from "@odit/lfk-client-js";
import store from "../../store"; import store from "../../store";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
@ -57,169 +56,167 @@
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll" class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"
> >
<Datatable {handler}> <table class="divide-y divide-gray-200 w-full">
<table class="divide-y divide-gray-200 w-full"> <thead class="bg-gray-50">
<thead class="bg-gray-50"> <tr>
<tr> <Th {handler} orderBy="id">ID</Th>
<Th {handler} orderBy="id">ID</Th> <Th {handler}>
<Th {handler}> {$_("runner")}
{$_("runner")} </Th>
</Th> <Th {handler}>
<Th {handler}> {$_("distance")}
{$_("distance")} </Th>
</Th> <Th {handler}>
<Th {handler}> {$_("track")}
{$_("track")} </Th>
</Th> <Th {handler}>
<Th {handler}> {$_("laptime")}
{$_("laptime")} </Th>
</Th> <Th {handler}>
<Th {handler}> {$_("status")}
{$_("status")} </Th>
</Th> <th
<th scope="col"
scope="col" class="relative px-6 py-3"
class="relative px-6 py-3" style="border-bottom: 1px solid #ddd;"
style="border-bottom: 1px solid #ddd;" >
> {$_("action")}
{$_("action")} </th>
</th> </tr>
</tr> <tr>
<tr> <ThFilter {handler} filterBy="id" />
<ThFilter {handler} filterBy="id" /> <ThFilterRunner {handler} />
<ThFilterRunner {handler} /> <th style="border-bottom: 1px solid #ddd;" />
<th style="border-bottom: 1px solid #ddd;" /> <ThFilterTrack tracks={allTracks} {handler} />
<ThFilterTrack tracks={allTracks} {handler} /> <!-- <th style="border-bottom: 1px solid #ddd;" /> -->
<!-- <th style="border-bottom: 1px solid #ddd;" /> --> <th style="border-bottom: 1px solid #ddd;" />
<th style="border-bottom: 1px solid #ddd;" /> <th style="border-bottom: 1px solid #ddd;" />
<th style="border-bottom: 1px solid #ddd;" /> <!-- TODO: filter status -->
<!-- TODO: filter status --> <th style="border-bottom: 1px solid #ddd;" />
<th style="border-bottom: 1px solid #ddd;" /> </tr>
</tr> </thead>
</thead> <tbody class="divide-y divide-gray-200">
<tbody class="divide-y divide-gray-200"> {#each $rows as scan}
{#each $rows as scan} <tr data-rowid="scan_{scan.id}">
<tr data-rowid="scan_{scan.id}"> <td class="px-6 py-4 whitespace-nowrap text-left">
<td class="px-6 py-4 whitespace-nowrap text-left"> <div class="text-sm font-medium text-gray-900">
<div class="text-sm font-medium text-gray-900"> {scan.id}
{scan.id} </div>
</div> </td>
</td> <td class="px-6 py-4 whitespace-nowrap">
<td class="px-6 py-4 whitespace-nowrap"> <div class="flex items-center">
<div class="flex items-center"> <a
<a href="../runners/{scan.runner.id}"
href="../runners/{scan.runner.id}" class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800" >{scan.runner.firstname}
>{scan.runner.firstname} {scan.runner.middlename || ""}
{scan.runner.middlename || ""} {scan.runner.lastname}</a
{scan.runner.lastname}</a
>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-left">
<div class="text-sm font-medium text-gray-900">
{#if scan.distance < 1000}
{scan.distance}m
{:else}{scan.distance / 1000}km{/if}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-left">
<div class="text-sm font-medium text-gray-900">
{#if scan.track}
<a
href="../tracks"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
>{scan.track.name}
</a>
{/if}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-left">
{#if scan.responseType === "TRACKSCAN"}
<div class="text-sm font-medium text-gray-900">
{format_laptime(scan.lapTime)}
</div>
{:else}
<div class="text-sm font-medium text-gray-900">
{$_("scan-with-fixed-distance")}
</div>
{/if}
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
{#if scan.valid}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"
>{$_("valid")}</span
>
{:else}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800"
>{$_("invalid")}</span
>
{/if}
</div>
</td>
{#if active_deletes[scan.id] === true}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
> >
<button </div>
on:click={() => { </td>
active_deletes[scan.id] = false; <td class="px-6 py-4 whitespace-nowrap text-left">
}} <div class="text-sm font-medium text-gray-900">
tabindex="0" {#if scan.distance < 1000}
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer" {scan.distance}m
>{$_("cancel-delete")}</button {:else}{scan.distance / 1000}km{/if}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-left">
<div class="text-sm font-medium text-gray-900">
{#if scan.track}
<a
href="../tracks"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
>{scan.track.name}
</a>
{/if}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-left">
{#if scan.responseType === "TRACKSCAN"}
<div class="text-sm font-medium text-gray-900">
{format_laptime(scan.lapTime)}
</div>
{:else}
<div class="text-sm font-medium text-gray-900">
{$_("scan-with-fixed-distance")}
</div>
{/if}
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
{#if scan.valid}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"
>{$_("valid")}</span
> >
{:else}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800"
>{$_("invalid")}</span
>
{/if}
</div>
</td>
{#if active_deletes[scan.id] === true}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
>
<button
on:click={() => {
active_deletes[scan.id] = false;
}}
tabindex="0"
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer"
>{$_("cancel-delete")}</button
>
<button
on:click={() => {
ScanService.scanControllerRemove(scan.id, false).then(
(resp) => {
current_scans = current_scans.filter(
(obj) => obj.id !== scan.id
);
Toastify({
text: "Scan deleted",
duration: 500,
backgroundColor:
"linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
}
);
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("confirm-delete")}</button
>
</td>
{:else}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
>
<a
href="./{scan.id}"
class="text-indigo-600 hover:text-indigo-900"
>{$_("details")}</a
>
{#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:DELETE")}
<button <button
on:click={() => { on:click={() => {
ScanService.scanControllerRemove(scan.id, false).then( active_deletes[scan.id] = true;
(resp) => {
current_scans = current_scans.filter(
(obj) => obj.id !== scan.id
);
Toastify({
text: "Scan deleted",
duration: 500,
backgroundColor:
"linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
}
);
}} }}
tabindex="0" tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer" class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("confirm-delete")}</button >{$_("delete")}</button
> >
</td> {/if}
{:else} </td>
<td {/if}
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium" </tr>
> {/each}
<a </tbody>
href="./{scan.id}" </table>
class="text-indigo-600 hover:text-indigo-900"
>{$_("details")}</a
>
{#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:DELETE")}
<button
on:click={() => {
active_deletes[scan.id] = true;
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("delete")}</button
>
{/if}
</td>
{/if}
</tr>
{/each}
</tbody>
</table>
</Datatable>
</div> </div>
{/if} {/if}
{:catch error} {:catch error}

View File

@ -41,7 +41,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -41,7 +41,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
<table class="divide-y divide-gray-200 w-full"> <table class="divide-y divide-gray-200 w-full">

View File

@ -57,7 +57,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<div class="h-12"> <div class="h-12">
<GenerateSponsoringContracts <GenerateSponsoringContracts
bind:sponsoring_contracts_show bind:sponsoring_contracts_show

View File

@ -57,9 +57,9 @@
.querySelector(`[data-id="triggered_table_actions_${trackid}"]`) .querySelector(`[data-id="triggered_table_actions_${trackid}"]`)
.classList.add("hidden"); .classList.add("hidden");
// //
elem.childNodes[0].innerHTML = `<td data-column-id="trackName" class="gridjs-td">${elem.childNodes[0].childNodes[0].value}</td>`; elem.childNodes[0].innerHTML = `<td data-column-id="trackName">${elem.childNodes[0].childNodes[0].value}</td>`;
elem.childNodes[1].innerHTML = `<td data-column-id="trackName" class="gridjs-td">${elem.childNodes[1].childNodes[0].value}</td>`; elem.childNodes[1].innerHTML = `<td data-column-id="trackName">${elem.childNodes[1].childNodes[0].value}</td>`;
elem.childNodes[2].innerHTML = `<td data-column-id="trackName" class="gridjs-td">${elem.childNodes[2].childNodes[0].value}</td>`; elem.childNodes[2].innerHTML = `<td data-column-id="trackName">${elem.childNodes[2].childNodes[0].value}</td>`;
}) })
.catch((err) => {}); .catch((err) => {});
} }

View File

@ -36,7 +36,7 @@
bind:value={searchvalue} bind:value={searchvalue}
placeholder={$_('datatable.search')} placeholder={$_('datatable.search')}
aria-label={$_('datatable.search')} aria-label={$_('datatable.search')}
class="gridjs-input gridjs-search-input mb-4" /> class="mb-4" />
<!-- {/if} --> <!-- {/if} -->
<!-- <button <!-- <button
on:click={() => { on:click={() => {

View File

@ -1,6 +1,5 @@
import './style.css'; import './style.css';
import "toastify-js/src/toastify.css"; import "toastify-js/src/toastify.css";
import "gridjs/dist/theme/mermaid.css";
import App from './App.svelte'; import App from './App.svelte';
const app = new App({ const app = new App({