elearning/Frontend-Learner/pages/dashboard/announcements.vue

142 lines
8 KiB
Vue

<script setup lang="ts">
/**
* @file announcements.vue
* @description Page displaying system and course-related announcements.
* Uses the default layout and requires authentication.
*/
// Define page metadata: usage of 'default' layout and 'auth' middleware
definePageMeta({
layout: 'default',
middleware: 'auth'
})
// Set page title for SEO
useHead({
title: 'ประกาศ - e-Learning'
})
</script>
<template>
<div class="page-container">
<!-- Page Header -->
<h1 class="text-3xl font-black mb-10 text-slate-900 dark:text-white">ประกาศ</h1>
<!--
Main Layout: 12-column Grid
- Left Column (span-8): Main announcements content
- Right Column (span-4): Categories/Filter sidebar
-->
<div class="grid-12">
<!-- ==========================================
MAIN CONTENT AREA (Left)
========================================== -->
<div class="col-span-8">
<!-- Feature 1: Critical System Announcement -->
<div class="card mb-6">
<div class="flex items-center gap-2 mb-2">
<span class="status-pill status-warning">สำค</span>
<span class="text-sm text-slate-600 dark:text-slate-400">24 .. 2024</span>
</div>
<h2 class="text-xl font-bold mb-4 text-slate-900 dark:text-white">แจงปดปรบปรงระบบ</h2>
<p class="mb-4">เราจะทำการปดปรบปรงระบบในวนท 25 .. เวลา 02:00 - 04:00 . ขออภยในความไมสะดวก</p>
<!-- Attachment Block -->
<div class="flex items-center gap-2 p-3 rounded" style="background: var(--neutral-50); border: 1px solid var(--border-color); width: fit-content;">
<span>📎</span> <span class="text-sm font-bold">ตารางการปดปรบปร.pdf</span>
</div>
</div>
<!-- Announcement: UX/UI Course Update -->
<div class="card mb-4" style="border-left: 4px solid var(--primary);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">เบองตนการออกแบบ UX/UI</span>
<h3 class="font-bold text-slate-900 dark:text-white">เรมเปดหลกสตรเดอนมกราคมแล!</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">23 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">กเรยนทลงทะเบยนไว สามารถเรมเขาเรยนบทนำไดงแตนนเปนตนไป...</p>
<NuxtLink to="/browse/discovery" class="text-sm" style="color: var(--primary);">รายละเอยดคอร</NuxtLink>
</div>
<!-- Announcement: Accessibility (WCAG) Material -->
<div class="card mb-4" style="border-left: 4px solid var(--success);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">การเขาถงเว (WCAG)</span>
<h3 class="font-bold text-slate-900 dark:text-white">ดาวนโหลดเอกสารประกอบการเรยนไดแล</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">22 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เราไดเพมไฟล PDF สรปเกณฑ WCAG 2.2 ในสวนของเอกสารประกอบการเรยนแล...</p>
<!-- Small Attachment -->
<div class="flex items-center gap-2 p-2 rounded mt-2" style="background: var(--neutral-50); border: 1px dotted var(--border-color); width: fit-content;">
<span>📄</span> <span class="text-xs">WCAG_2.2_Summary.pdf</span>
</div>
</div>
<!-- Announcement: React Course Update -->
<div class="card mb-4" style="border-left: 4px solid var(--warning);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">ปแบบ React นส</span>
<h3 class="font-bold text-slate-900 dark:text-white">ปเดตบทเรยนใหม: React Server Components</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">21 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เพมเนอหาการใชงาน RSC และการจดการ State ใน Next.js 14...</p>
<NuxtLink to="/classroom/learning" class="btn btn-secondary text-sm" style="width: fit-content;">เขาสบทเรยน</NuxtLink>
</div>
<!-- Announcement: General New Course -->
<div class="card mb-4">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<h3 class="font-bold text-slate-900 dark:text-white">คอรสใหม: Advanced Python</h3>
<span class="text-sm text-slate-600 dark:text-slate-400">20 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">พบกบคอรสใหมาส เรยนรโครงสรางขอม Python...</p>
<a href="#" class="text-sm" style="color: var(--primary);">านเพมเต</a>
</div>
<!-- Announcement: Platform Update -->
<div class="card mb-4">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<h3 class="font-bold text-slate-900 dark:text-white">นดอนรบสไซนใหม!</h3>
<span class="text-sm text-slate-600 dark:text-slate-400">15 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เราปรบโฉมใหมไฉไลกวาเด เพอการใชงานทงข...</p>
<a href="#" class="text-sm" style="color: var(--primary);">านเพมเต</a>
</div>
</div>
<!-- ==========================================
SIDEBAR (Right)
Category Filters
========================================== -->
<div class="col-span-4">
<div class="card">
<h3 class="font-bold mb-4 text-slate-900 dark:text-white">หมวดหม</h3>
<ul class="flex flex-col gap-2">
<!-- Filter Option: All -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer" style="background: var(--neutral-50);">
<span>งหมด</span>
<span class="text-muted">15</span>
</li>
<!-- Filter Option: System Updates -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer">
<span>ปเดตระบบ</span>
<span class="text-muted">3</span>
</li>
<!-- Filter Option: Course News -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer">
<span>าวสารคอร</span>
<span class="text-muted">11</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</template>