Spaces:
Sleeping
Sleeping
dylanebert
commited on
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} />
|