Skip to content

Commit def27b3

Browse files
committed
refactor: update backup and restore scripts to improve user experience with English messages and consistent behavior for expanded panels
1 parent c014cbf commit def27b3

3 files changed

Lines changed: 41 additions & 49 deletions

File tree

backup.sh

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,42 @@
11
#!/bin/bash
22

3-
# Docker 備份腳本
4-
# 使用方法: ./backup.sh
3+
# PastExam docker backup script
4+
# Usage: ./backup.sh
55

66
set -e
77

8-
# 設定變數
98
BACKUP_DIR="./backup"
109
DATE=$(date +%Y%m%d-%H%M%S)
1110
PROJECT_NAME="pastexam"
1211

13-
# 創建備份目錄
1412
mkdir -p $BACKUP_DIR
1513

16-
echo "開始備份 Docker 容器資料..."
17-
echo "備份時間: $DATE"
14+
echo "Starting Docker container data backup..."
15+
echo "Backup time: $DATE"
1816

19-
# 停止容器以確保資料一致性
20-
echo "停止容器以確保備份資料一致性..."
17+
echo "Stopping containers to ensure backup data consistency..."
2118
docker compose -f docker/docker-compose.yml down
2219

23-
# 備份 Volume 資料
24-
echo "備份 Docker Volumes..."
20+
echo "Backing up Docker Volumes..."
2521

26-
# PostgreSQL Volume 備份
22+
# PostgreSQL Volume backup
2723
if docker volume ls --format "{{.Name}}" | grep -q "pastexam-postgres-data"; then
28-
echo "備份 PostgreSQL volume..."
24+
echo "Backing up PostgreSQL volume..."
2925
docker run --rm -v pastexam-postgres-data:/data -v $(pwd)/$BACKUP_DIR:/backup alpine tar czf /backup/postgres-volume-$DATE.tar.gz -C /data .
30-
echo "PostgreSQL volume 備份完成"
26+
echo "PostgreSQL volume backup completed"
3127
fi
3228

33-
# MinIO Volume 備份
29+
# MinIO Volume backup
3430
if docker volume ls --format "{{.Name}}" | grep -q "pastexam-minio-data"; then
35-
echo "備份 MinIO volume..."
31+
echo "Backing up MinIO volume..."
3632
docker run --rm -v pastexam-minio-data:/data -v $(pwd)/$BACKUP_DIR:/backup alpine tar czf /backup/minio-volume-$DATE.tar.gz -C /data .
37-
echo "MinIO volume 備份完成"
33+
echo "MinIO volume backup completed"
3834
fi
3935

40-
echo "所有備份已完成!備份檔案位於: $BACKUP_DIR"
41-
echo "備份檔案列表:"
36+
echo "All backups completed! Backup files located at: $BACKUP_DIR"
37+
echo "Backup file list:"
4238
ls -la $BACKUP_DIR/*$DATE*
4339

44-
echo "重新啟動容器..."
40+
echo "Restarting containers..."
4541
docker compose -f docker/docker-compose.yml up -d
4642

frontend/src/views/Archive.vue

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,8 @@ function filterBySubject(course) {
760760
filters.value.professor = "";
761761
filters.value.year = "";
762762
filters.value.type = "";
763+
// Reset expanded panels when switching subjects
764+
expandedPanels.value = [];
763765
fetchArchives();
764766
}
765767
@@ -928,18 +930,14 @@ watch(
928930
() => groupedArchives.value,
929931
(newGroups) => {
930932
if (newGroups.length) {
931-
// Only set default expanded panels if no panels are currently expanded
932-
if (expandedPanels.value.length === 0) {
933-
expandedPanels.value = newGroups
934-
.slice(0, 3)
935-
.map((group) => group.year.toString());
936-
} else {
937-
// Keep existing expanded panels that are still valid
938-
const validYears = newGroups.map((group) => group.year.toString());
939-
expandedPanels.value = expandedPanels.value.filter((panel) =>
940-
validYears.includes(panel)
941-
);
942-
}
933+
// Always set default expanded panels to first 3 years when switching subjects
934+
// This ensures consistent behavior regardless of previous state
935+
expandedPanels.value = newGroups
936+
.slice(0, 3)
937+
.map((group) => group.year.toString());
938+
} else {
939+
// Clear expanded panels if no groups available
940+
expandedPanels.value = [];
943941
}
944942
},
945943
{ immediate: true }

restore.sh

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,45 @@
11
#!/bin/bash
22

3-
# Docker 還原腳本
4-
# 使用方法: ./restore.sh [backup_date]
5-
# 例如: ./restore.sh 20241225-143022
3+
# PastExam docker backup restore script
4+
# Usage: ./restore.sh [backup_date]
5+
# Example: ./restore.sh 20241225-143022
66

77
set -e
88

99
BACKUP_DIR="./backup"
1010
BACKUP_DATE=$1
1111

1212
if [ -z "$BACKUP_DATE" ]; then
13-
echo "使用方法: $0 [backup_date]"
14-
echo "可用的備份:"
13+
echo "Usage: $0 [backup_date]"
14+
echo "Available backups:"
1515
ls -la $BACKUP_DIR/ | grep -E "\.(sql|tar\.gz)$" | head -10
1616
exit 1
1717
fi
1818

19-
echo "開始還原 Docker 容器資料..."
20-
echo "還原日期: $BACKUP_DATE"
19+
echo "Starting Docker container data restore..."
20+
echo "Restore date: $BACKUP_DATE"
2121

22-
# 確保容器停止
23-
echo "停止容器..."
22+
echo "Stopping containers..."
2423
docker compose -f docker/docker-compose.yml down
2524

26-
# 還原 Volume 資料
27-
echo "還原 Docker Volumes..."
25+
echo "Restoring Docker Volumes..."
2826

29-
# 還原 PostgreSQL Volume
27+
# Restore PostgreSQL Volume
3028
if [ -f "$BACKUP_DIR/postgres-volume-$BACKUP_DATE.tar.gz" ]; then
31-
echo "還原 PostgreSQL volume..."
29+
echo "Restoring PostgreSQL volume..."
3230
docker volume rm pastexam-postgres-data 2>/dev/null || true
3331
docker volume create pastexam-postgres-data
3432
docker run --rm -v pastexam-postgres-data:/data -v $(pwd)/$BACKUP_DIR:/backup alpine tar xzf /backup/postgres-volume-$BACKUP_DATE.tar.gz -C /data
35-
echo "PostgreSQL volume 還原完成"
33+
echo "PostgreSQL volume restore completed"
3634
fi
3735

38-
# 還原 MinIO Volume
36+
# Restore MinIO Volume
3937
if [ -f "$BACKUP_DIR/minio-volume-$BACKUP_DATE.tar.gz" ]; then
40-
echo "還原 MinIO volume..."
38+
echo "Restoring MinIO volume..."
4139
docker volume rm pastexam-minio-data 2>/dev/null || true
4240
docker volume create pastexam-minio-data
4341
docker run --rm -v pastexam-minio-data:/data -v $(pwd)/$BACKUP_DIR:/backup alpine tar xzf /backup/minio-volume-$BACKUP_DATE.tar.gz -C /data
44-
echo "MinIO volume 還原完成"
42+
echo "MinIO volume restore completed"
4543
fi
4644

47-
echo "還原完成!現在可以啟動服務"
45+
echo "Restore completed! You can now start the services"

0 commit comments

Comments
 (0)