diff --git a/src/routes/admin/stats/+page.svelte b/src/routes/admin/stats/+page.svelte index 6c8b721..dd90c72 100644 --- a/src/routes/admin/stats/+page.svelte +++ b/src/routes/admin/stats/+page.svelte @@ -1,248 +1,255 @@ - - - -
-
-

สถิติ และ งบประมาณ

-

สถิติ และ งบประมาณ ทั้งหมดของฝ่าย - อบจ.

-
- -
-
- -
- -
- -
-
-
- -
-
เลือกทั้งหมด
- -
- - {#each paginatedDocuments as doc} -
-
- toggleSelectItem(doc.id)} - class="h-4 w-4 rounded border-gray-300" - /> -
-
-
{doc.title}
-
- {new Date(doc.created_at).toLocaleDateString('th-TH')} โดย {doc.author.name} -
-
-
- - {#if activePopoverId === doc.id} -
-
- - -
-
- {/if} -
-
- {/each} - -
-
- แสดง {(currentPage - 1) * itemsPerPage + 1} ถึง {Math.min(currentPage * itemsPerPage, filteredDocuments.length)} จาก {filteredDocuments.length} รายการ -
-
- - {#each Array(pageCount) as _, i} - - {/each} - -
-
-
-
\ No newline at end of file + import { onMount } from 'svelte'; + + interface Document { + id: string; + title: string; + content: string; + user_id: string; + type_id: string; + created_at: Date; + updated_at: Date; + author: { + name: string; + }; + } + + // Mock data - replace with actual data + let documents: Document[] = [ + { + id: 'DOC-09649054', + title: 'เอกสารลับจากดัมเบิลดอร์', + content: 'เนื้อหาของเอกสารลับจากดัมเบิลดอร์', + user_id: '1', + type_id: 'ANNOUNCEMENT', + created_at: new Date(), + updated_at: new Date(), + author: { name: 'Admin User' } + }, + { + id: 'DOC-09649055', + title: 'เอกสารลับจากดัมเบิลดอร์', + content: 'เนื้อหาของเอกสารลับจากดัมเบิลดอร์', + user_id: '1', + type_id: 'ANNOUNCEMENT', + created_at: new Date(), + updated_at: new Date(), + author: { name: 'Admin User' } + }, + { + id: 'DOC-09649056', + title: 'เอกสารลับจากดัมเบิลดอร์', + content: 'เนื้อหาของเอกสารลับจากดัมเบิลดอร์', + user_id: '1', + type_id: 'ANNOUNCEMENT', + created_at: new Date(), + updated_at: new Date(), + author: { name: 'Admin User' } + }, + { + id: 'DOC-09649057', + title: 'เอกสารลับจากดัมเบิลดอร์', + content: 'เนื้อหาของเอกสารลับจากดัมเบิลดอร์', + user_id: '1', + type_id: 'ANNOUNCEMENT', + created_at: new Date(), + updated_at: new Date(), + author: { name: 'Admin User' } + }, + { + id: 'DOC-09649058', + title: 'เอกสารลับจากดัมเบิลดอร์', + content: 'เนื้อหาของเอกสารลับจากดัมเบิลดอร์', + user_id: '1', + type_id: 'ANNOUNCEMENT', + created_at: new Date(), + updated_at: new Date(), + author: { name: 'Admin User' } + } + ]; + + let searchQuery = ''; + let selectedItems: string[] = []; + let currentPage = 1; + let itemsPerPage = 5; + let activePopoverId: string | null = null; + + $: filteredDocuments = documents.filter( + (doc) => + doc.title.toLowerCase().includes(searchQuery.toLowerCase()) || doc.id.includes(searchQuery) + ); + + $: pageCount = Math.ceil(filteredDocuments.length / itemsPerPage); + + $: paginatedDocuments = filteredDocuments.slice( + (currentPage - 1) * itemsPerPage, + currentPage * itemsPerPage + ); + + function toggleSelectAll() { + if (selectedItems.length === paginatedDocuments.length) { + selectedItems = []; + } else { + selectedItems = paginatedDocuments.map((doc) => doc.id); + } + } + + function toggleSelectItem(id: string) { + const index = selectedItems.indexOf(id); + if (index === -1) { + selectedItems = [...selectedItems, id]; + } else { + selectedItems = selectedItems.filter((item) => item !== id); + } + } + + function togglePopover(id: string) { + activePopoverId = activePopoverId === id ? null : id; + } + + function handleClickOutside(event: MouseEvent) { + const target = event.target as HTMLElement; + if (!target.closest('.popover') && !target.closest('.more-options-button')) { + activePopoverId = null; + } + } + + onMount(() => { + document.addEventListener('click', handleClickOutside); + return () => { + document.removeEventListener('click', handleClickOutside); + }; + }); + + + + +
+
+

สถิติ และ งบประมาณ

+

สถิติ และ งบประมาณ ทั้งหมดของฝ่าย - อบจ.

+
+ +
+
+ +
+ +
+ +
+
+
+ +
+
เลือกทั้งหมด
+ +
+ + {#each paginatedDocuments as doc} +
+
+ toggleSelectItem(doc.id)} + class="h-4 w-4 rounded border-gray-300" + /> +
+
+
{doc.title}
+
+ {new Date(doc.created_at).toLocaleDateString('th-TH')} โดย {doc.author.name} +
+
+
+ + {#if activePopoverId === doc.id} +
+
+ + +
+
+ {/if} +
+
+ {/each} + +
+
+ แสดง {(currentPage - 1) * itemsPerPage + 1} ถึง {Math.min( + currentPage * itemsPerPage, + filteredDocuments.length + )} จาก {filteredDocuments.length} รายการ +
+
+ + {#each Array(pageCount) as _, i} + + {/each} + +
+
+
+