From 01d315afb8bf611dd0721c58201f159fb02b9ce4 Mon Sep 17 00:00:00 2001 From: Wini_Fy Date: Wed, 4 Feb 2026 16:03:28 +0700 Subject: [PATCH] refactor: enhance admin dashboard and layout with blog management links --- models/blog.js | 1 - models/blogCategory.js | 1 - models/blogTag.js | 1 - models/visa.js | 7 ++++--- views/admin/dashboard.ejs | 19 ++++++++++++++++++- views/layouts/admin.ejs | 8 ++++++++ views/layouts/main.ejs | 4 ++++ 7 files changed, 34 insertions(+), 7 deletions(-) diff --git a/models/blog.js b/models/blog.js index 89bf9bb..83b7503 100644 --- a/models/blog.js +++ b/models/blog.js @@ -91,7 +91,6 @@ const blogSchema = new mongoose.Schema({ }); // Indexes -blogSchema.index({ slug: 1 }); blogSchema.index({ status: 1, createdAt: -1 }); blogSchema.index({ category: 1, status: 1 }); blogSchema.index({ isFeatured: 1, status: 1 }); diff --git a/models/blogCategory.js b/models/blogCategory.js index 7e342f1..66d1b6a 100644 --- a/models/blogCategory.js +++ b/models/blogCategory.js @@ -30,7 +30,6 @@ const blogCategorySchema = new mongoose.Schema({ }); // Indexes -blogCategorySchema.index({ slug: 1 }); blogCategorySchema.index({ isActive: 1, name: 1 }); // Remove __v from JSON output diff --git a/models/blogTag.js b/models/blogTag.js index 8db8d9c..9d89ebe 100644 --- a/models/blogTag.js +++ b/models/blogTag.js @@ -26,7 +26,6 @@ const blogTagSchema = new mongoose.Schema({ }); // Indexes -blogTagSchema.index({ slug: 1 }); blogTagSchema.index({ isActive: 1, name: 1 }); // Remove __v from JSON output diff --git a/models/visa.js b/models/visa.js index 6edae4e..60855be 100644 --- a/models/visa.js +++ b/models/visa.js @@ -179,9 +179,10 @@ const DetailedViewSchema = new mongoose.Schema( // Main VisaCountry Schema (Individual country object) const VisaCountrySchema = new mongoose.Schema( { - id: { type: Number, required: true, index: true }, - name: { type: String, required: true, index: true }, - slug: { type: String, required: true, unique: true, index: true }, + // Không dùng `index: true` ở đây vì đã tạo index riêng cho hero.summaryList.* bên dưới + id: { type: Number, required: true }, + name: { type: String, required: true }, + slug: { type: String, required: true, unique: true }, icon: { type: String, default: "" }, services: { type: [String], diff --git a/views/admin/dashboard.ejs b/views/admin/dashboard.ejs index d6a9534..a72f79b 100644 --- a/views/admin/dashboard.ejs +++ b/views/admin/dashboard.ejs @@ -230,7 +230,7 @@ -
+
+
+
+
+
+ +
+
+
Blog
+

Manage blog posts

+
+
+ + Edit + +
+
diff --git a/views/layouts/admin.ejs b/views/layouts/admin.ejs index 7d7e49d..bd5e021 100644 --- a/views/layouts/admin.ejs +++ b/views/layouts/admin.ejs @@ -85,6 +85,14 @@ Camp Location + + diff --git a/views/layouts/main.ejs b/views/layouts/main.ejs index 9409bb2..1ef06fa 100644 --- a/views/layouts/main.ejs +++ b/views/layouts/main.ejs @@ -769,6 +769,10 @@ +