136 lines
6.2 KiB
HTML
136 lines
6.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>教师个人主页</title>
|
||
<link rel="stylesheet" href="/static/css/teacherboard.css">
|
||
<link rel="stylesheet" href="/static/css/dashboard.css">
|
||
<link rel="stylesheet" href="/static/css/teacher_course_setting.css">
|
||
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||
</head>
|
||
<body onload="onTeacherboardPageLoad()">
|
||
|
||
{% include 'navbar.html' %} <!-- 引入navbar.html -->
|
||
|
||
<!-- 主页主体部分 -->
|
||
<div class="teacherboard">
|
||
<h2 class="teacherboard-title">—— 我的课程 ——</h2>
|
||
<div class="course-cards" id="course-cards">
|
||
<!-- 每个课程的卡片 -->
|
||
<div class="course-card" onclick="openCourseDetails('algorithm')">
|
||
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="course-image">
|
||
<div class="course-info">
|
||
<h3 class="course-name">算法分析与设计</h3>
|
||
<p class="course-description">学习基本的算法知识概念,与算法实现。</p>
|
||
</div>
|
||
</div>
|
||
<!-- 继续添加其他课程卡片 -->
|
||
<div class="course-card" onclick="openCourseDetails('data-structures')">
|
||
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="course-image">
|
||
<div class="course-info">
|
||
<h3 class="course-name">数据结构与算法</h3>
|
||
<p class="course-description">深入学习数据结构和算法设计。</p>
|
||
</div>
|
||
</div>
|
||
<!-- 动态加载课程卡片 -->
|
||
{% for course in materials %}
|
||
<div class="course-card" onclick="openCourseDetails('{{ course._id }}')">
|
||
<img src="{{ course.image_url }}" alt="课程封面" class="course-image">
|
||
<div class="course-info">
|
||
<h3 class="course-name">{{ course.name }}</h3>
|
||
<p class="course-description">{{ course.description }}</p>
|
||
</div>
|
||
<div class="course-date">
|
||
<p class="course-date-text">创建时间:{{ course.created_at.strftime('%Y-%m-%d %H:%M:%S') }}</p>
|
||
<p class="course-date-text">更新时间:{{ course.updated_at.strftime('%Y-%m-%d %H:%M:%S') }}</p>
|
||
</div>
|
||
</div>
|
||
{% endfor %}
|
||
<div class="course-card add-course-card" onclick="openAddCourseModal()">
|
||
<div class="add-course-button">
|
||
<span>+</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 右侧滑出的课程目录 -->
|
||
<div id="courseDetails" class="course-details">
|
||
<div class="details-header">
|
||
<span id="course-title"></span>
|
||
<button class="close-btn" onclick="closeCourseDetails()">×</button>
|
||
</div>
|
||
<div class="details-content" id="details-content"></div>
|
||
<h3>课程章节列表:
|
||
<button id="toggle-reorder" class="reorder-btn" title="设置章节顺序" aria-pressed="false">
|
||
<i class="fa-solid fa-arrow-up-short-wide"></i>
|
||
</button>
|
||
</h3>
|
||
<ul id="chapter-list">
|
||
<div id="loading-message">
|
||
<p>加载中...</p> <!-- 加载中效果 -->
|
||
</div>
|
||
</ul>
|
||
<button class="add-chapter-btn" onclick="showInputForNewChapter()">新增章节</button>
|
||
|
||
</div>
|
||
|
||
<!-- 编辑章节或课时弹窗 -->
|
||
<div id="editModal" class="edit-modal">
|
||
<div class="edit-modal-content">
|
||
<h3>编辑章节/课时</h3>
|
||
<form id="edit-form">
|
||
<label for="edit-title">标题:</label>
|
||
<input type="text" id="edit-title" name="title" required><br>
|
||
<label for="edit-description">描述:</label>
|
||
<textarea id="edit-description" name="description"></textarea><br>
|
||
<button type="submit">保存</button>
|
||
<button type="button" onclick="closeEditModal()">取消</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 新建课程的浮窗 -->
|
||
<div id="add-course-modal" class="modal">
|
||
<div class="modal-content">
|
||
<h2>新建课程</h2>
|
||
<div class="cover-image-container">
|
||
<div id="cover-image" class="cover-image-placeholder">
|
||
<span class="plus-sign">+</span>
|
||
<input type="file" id="cover-image-input" style="display: none;" accept="image/*" />
|
||
</div>
|
||
<img id="cover-preview" src="" alt="封面预览" style="display: none;" />
|
||
</div>
|
||
|
||
<form id="add-course-form">
|
||
<!-- 选择课程或新建课程的下拉框 -->
|
||
<label for="course-selection">从课程创建或新建课程:</label>
|
||
<select id="course-selection">
|
||
<option value="new">新建课程</option>
|
||
{% for course in courses %}
|
||
<option value="{{ course.id }}">{{ course.name }}</option>
|
||
{% endfor %}
|
||
</select>
|
||
<br><br>
|
||
|
||
<!-- 课程名称输入框 -->
|
||
<label for="course-name">课程名称:</label>
|
||
<input type="text" id="course-name" name="course-name" required><br><br>
|
||
<label for="course-description">课程描述:</label>
|
||
<textarea id="course-description" name="course-description"></textarea><br><br>
|
||
<div class="modal-buttons">
|
||
<button type="button" onclick="closeAddCourseModal()">取消</button>
|
||
<button type="submit">确认</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<script src="/static/js/course_current.js"></script>
|
||
<script src="/static/js/teacherboard.js"></script>
|
||
<script src="/static/js/teacher_course_setting.js"></script>
|
||
|
||
</body>
|
||
</html>
|