diff --git a/controllers/headerController.js b/controllers/headerController.js index a237ffb..4d74f5c 100644 --- a/controllers/headerController.js +++ b/controllers/headerController.js @@ -42,6 +42,7 @@ exports.index = async (req, res) => { socialLinks: header.top?.socialLinks || [], }, logo: header.logo?.light || "", + header: header, } : { topbar: { @@ -53,6 +54,7 @@ exports.index = async (req, res) => { socialLinks: [], }, logo: "", + header: null, }; const activeTab = req.query.tab || "topbar"; @@ -172,40 +174,28 @@ exports.update = async (req, res) => { location: parsedData.contactInfo?.location || "", socialLinks: parsedData.socialLinks || [], }; + } catch (parseErr) { + console.error("✗ Error parsing topbarJson:", parseErr); + } + } - if (logo) { - updateData.logo = logoData; - } - - console.log( - "Preparing to update header with data:", - JSON.stringify(updateData, null, 2), - ); - - const updatedHeader = await Header.findByIdAndUpdate( - headerId, - updateData, - { new: true, runValidators: true }, - ); - - if (!updatedHeader) { - console.error("✗ Header not found with ID:", headerId); - return res.status(404).json({ - success: false, - message: "Header not found", - }); - } - res.json({ - success: true, - message: "Header updated successfully", - data: updatedHeader, - }); - } catch (error) { - console.error("✗ Error updating header:", error); - res.status(400).json({ - success: false, - message: error.message, - }); + // Nếu có offcanvasJson, parse nó + const { offcanvasJson } = req.body; + if (offcanvasJson && typeof offcanvasJson === "string") { + try { + const parsedOffcanvas = JSON.parse(offcanvasJson); + console.log("✓ Parsed offcanvasJson successfully:", parsedOffcanvas); + offcanvas = { + description: parsedOffcanvas.description || "", + contactInfo: { + address: parsedOffcanvas.contactInfo?.address || "", + email: parsedOffcanvas.contactInfo?.email || "", + workingHours: parsedOffcanvas.contactInfo?.workingHours || "", + phone: parsedOffcanvas.contactInfo?.phone || "", + }, + }; + } catch (parseErr) { + console.error("✗ Error parsing offcanvasJson:", parseErr); } } diff --git a/views/admin/header/index.ejs b/views/admin/header/index.ejs index 3e868d3..66ec410 100644 --- a/views/admin/header/index.ejs +++ b/views/admin/header/index.ejs @@ -13,6 +13,7 @@
+ @@ -99,6 +100,25 @@ placeholder="69 Street, 5th Avenue LA, United States" />
+
+ + +
+
+ + +
@@ -179,6 +199,7 @@ +