diff --git a/frontend_management/components/course/AnnouncementsTab.vue b/frontend_management/components/course/AnnouncementsTab.vue index aa529d46..ab094e2f 100644 --- a/frontend_management/components/course/AnnouncementsTab.vue +++ b/frontend_management/components/course/AnnouncementsTab.vue @@ -449,10 +449,7 @@ const deleteAttachment = async (attachmentId: number) => { } }; -const formatDate = (dateStr: string) => { - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short', year: 'numeric' }); -}; +// Date formatting function is auto-imported from utils/date.ts const formatFileSize = (bytes: number) => { if (bytes < 1024) return bytes + ' B'; diff --git a/frontend_management/components/course/ApprovalHistoryTab.vue b/frontend_management/components/course/ApprovalHistoryTab.vue index f1dd8942..335845b3 100644 --- a/frontend_management/components/course/ApprovalHistoryTab.vue +++ b/frontend_management/components/course/ApprovalHistoryTab.vue @@ -20,7 +20,7 @@ v-for="item in history" :key="item.id" :title="titleMap[item.action] || item.action" - :subtitle="formatDate(item.created_at)" + :subtitle="formatDateTime(item.created_at)" :color="colorMap[item.action] || 'grey'" :icon="iconMap[item.action] || 'circle'" > @@ -91,12 +91,7 @@ const getActorName = (item: ApprovalHistory) => { return actor.username || actor.email || 'Unknown User'; }; -const formatDate = (dateString: string) => { - return new Date(dateString).toLocaleString('th-TH', { - dateStyle: 'medium', - timeStyle: 'short' - }); -}; +// Date formatting function is auto-imported from utils/date.ts onMounted(() => { fetchHistory(); diff --git a/frontend_management/components/course/QuizResultsTab.vue b/frontend_management/components/course/QuizResultsTab.vue index eef37e63..c69ebe97 100644 --- a/frontend_management/components/course/QuizResultsTab.vue +++ b/frontend_management/components/course/QuizResultsTab.vue @@ -450,14 +450,7 @@ const openStudentDetail = async (studentId: number) => { const formatDate = (dateStr: string) => { if (!dateStr) return '-'; - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { - day: 'numeric', - month: 'short', - year: 'numeric', - hour: '2-digit', - minute: '2-digit' - }); + return formatDateTime(dateStr); }; // Lifecycle diff --git a/frontend_management/components/course/StudentsTab.vue b/frontend_management/components/course/StudentsTab.vue index 9a8f4416..1cd742b1 100644 --- a/frontend_management/components/course/StudentsTab.vue +++ b/frontend_management/components/course/StudentsTab.vue @@ -404,8 +404,7 @@ const getStudentStatusLabel = (status: string) => { }; const formatEnrollDate = (dateStr: string) => { - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short', year: 'numeric' }); + return formatDate(dateStr); }; const getLessonTypeIcon = (type: string) => { @@ -436,8 +435,7 @@ const formatVideoTime = (seconds: number) => { const formatCompletedDate = (dateStr: string | null) => { if (!dateStr) return '-'; - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short' }); + return formatDate(dateStr); }; // Fetch on mount diff --git a/frontend_management/pages/admin/audit-log/index.vue b/frontend_management/pages/admin/audit-log/index.vue index 1214298e..8038014e 100644 --- a/frontend_management/pages/admin/audit-log/index.vue +++ b/frontend_management/pages/admin/audit-log/index.vue @@ -136,7 +136,7 @@ @@ -169,7 +169,7 @@
Date & Time
-
{{ formatDate(selectedLog.created_at) }}
+
{{ formatDateTime(selectedLog.created_at) }}
@@ -241,7 +241,7 @@ diff --git a/frontend_management/pages/instructor/profile/index.vue b/frontend_management/pages/instructor/profile/index.vue index 6a602a39..6a36b365 100644 --- a/frontend_management/pages/instructor/profile/index.vue +++ b/frontend_management/pages/instructor/profile/index.vue @@ -301,7 +301,7 @@