Spaces:
Running
Running
Commit
·
369f59c
1
Parent(s):
e06f17f
bind sorting
Browse files- viewer/src/routes/+page.svelte +20 -23
viewer/src/routes/+page.svelte
CHANGED
@@ -305,6 +305,9 @@
|
|
305 |
let overrideSelection = false;
|
306 |
let searchValue = "";
|
307 |
|
|
|
|
|
|
|
308 |
$: {
|
309 |
if (searchValue !== "") {
|
310 |
selection = { Name: searchValue };
|
@@ -317,8 +320,20 @@
|
|
317 |
}
|
318 |
}
|
319 |
|
320 |
-
|
321 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
});
|
323 |
|
324 |
async function newEntry() {
|
@@ -328,29 +343,11 @@
|
|
328 |
}
|
329 |
|
330 |
function handleRowUpdated(event: Event) {
|
331 |
-
|
332 |
-
const rowIndex = rows.findIndex(
|
333 |
-
(row) =>
|
334 |
-
row.Code === updatedRow.Code || row.Paper === updatedRow.Paper || row.Project === updatedRow.Project
|
335 |
-
);
|
336 |
-
if (rowIndex !== -1) {
|
337 |
-
rows[rowIndex] = updatedRow;
|
338 |
-
} else {
|
339 |
-
console.error("Row not found");
|
340 |
-
}
|
341 |
}
|
342 |
|
343 |
function handleRowDeleted(event: Event) {
|
344 |
-
|
345 |
-
const rowIndex = rows.findIndex(
|
346 |
-
(row) =>
|
347 |
-
row.Code === deletedRow.Code || row.Paper === deletedRow.Paper || row.Project === deletedRow.Project
|
348 |
-
);
|
349 |
-
if (rowIndex !== -1) {
|
350 |
-
rows = [...rows.slice(0, rowIndex), ...rows.slice(rowIndex + 1)];
|
351 |
-
} else {
|
352 |
-
console.error("Row not found");
|
353 |
-
}
|
354 |
}
|
355 |
|
356 |
let fetching = false;
|
@@ -383,7 +380,7 @@
|
|
383 |
<!--spacer-->
|
384 |
<div style="height: 1rem;" />
|
385 |
|
386 |
-
<SvelteTable {columns} {rows} sortBy
|
387 |
{/if}
|
388 |
|
389 |
<EditModal bind:isOpen={isModalOpen} on:rowUpdated={handleRowUpdated} on:rowDeleted={handleRowDeleted} />
|
|
|
305 |
let overrideSelection = false;
|
306 |
let searchValue = "";
|
307 |
|
308 |
+
let sortBy: string = "Date";
|
309 |
+
let sortOrder: 1 | -1 | 0 = -1;
|
310 |
+
|
311 |
$: {
|
312 |
if (searchValue !== "") {
|
313 |
selection = { Name: searchValue };
|
|
|
320 |
}
|
321 |
}
|
322 |
|
323 |
+
async function refreshRows() {
|
324 |
+
fetching = true;
|
325 |
+
try {
|
326 |
+
const fetchedRows = await fetchRows();
|
327 |
+
rows = fetchedRows || [];
|
328 |
+
} catch (error) {
|
329 |
+
console.error(error);
|
330 |
+
} finally {
|
331 |
+
fetching = false;
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
onMount(() => {
|
336 |
+
refreshRows();
|
337 |
});
|
338 |
|
339 |
async function newEntry() {
|
|
|
343 |
}
|
344 |
|
345 |
function handleRowUpdated(event: Event) {
|
346 |
+
refreshRows();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
}
|
348 |
|
349 |
function handleRowDeleted(event: Event) {
|
350 |
+
refreshRows();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
}
|
352 |
|
353 |
let fetching = false;
|
|
|
380 |
<!--spacer-->
|
381 |
<div style="height: 1rem;" />
|
382 |
|
383 |
+
<SvelteTable {columns} {rows} bind:sortBy bind:sortOrder bind:filterSelections={selection} />
|
384 |
{/if}
|
385 |
|
386 |
<EditModal bind:isOpen={isModalOpen} on:rowUpdated={handleRowUpdated} on:rowDeleted={handleRowDeleted} />
|