#!/bin/bash # Homepage Editor Verification Script # Tests that all components are working correctly echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo " Homepage Editor - Verification Test" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo # Colors GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' all_checks_passed=true echo "🔍 Checking Required Files..." echo # Check admin files files=( "website/admin/homepage.html" "website/admin/js/homepage.js" "website/public/home.html" "backend/routes/admin.js" "backend/routes/public.js" ) for file in "${files[@]}"; do if [ -f "$file" ]; then echo -e "${GREEN}✅ Found: $file${NC}" else echo -e "${RED}❌ Missing: $file${NC}" all_checks_passed=false fi done echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 Checking Quill.js Integration..." echo # Check for Quill.js in homepage.html if grep -q "quill" website/admin/homepage.html; then echo -e "${GREEN}✅ Quill.js CDN found in homepage.html${NC}" else echo -e "${RED}❌ Quill.js CDN missing in homepage.html${NC}" all_checks_passed=false fi # Check for Quill initialization in JS if grep -q "new Quill" website/admin/js/homepage.js; then echo -e "${GREEN}✅ Quill editor initialization found${NC}" else echo -e "${RED}❌ Quill editor initialization missing${NC}" all_checks_passed=false fi # Count Quill editors quill_count=$(grep -c "new Quill" website/admin/js/homepage.js) echo -e "${GREEN} Found $quill_count Quill editor instances${NC}" echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 Checking Media Library Integration..." echo # Check for media library functions if grep -q "openMediaLibrary" website/admin/js/homepage.js; then echo -e "${GREEN}✅ openMediaLibrary function found${NC}" else echo -e "${RED}❌ openMediaLibrary function missing${NC}" all_checks_passed=false fi if grep -q "mediaSelected" website/admin/js/homepage.js; then echo -e "${GREEN}✅ Media selection handler found${NC}" else echo -e "${RED}❌ Media selection handler missing${NC}" all_checks_passed=false fi # Check for media library buttons in HTML media_buttons=$(grep -c "Choose from Media Library" website/admin/homepage.html) if [ "$media_buttons" -gt 0 ]; then echo -e "${GREEN}✅ Found $media_buttons media library buttons${NC}" else echo -e "${RED}❌ No media library buttons found${NC}" all_checks_passed=false fi echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 Checking Save Functionality..." echo # Check for saveHomepage function if grep -q "async function saveHomepage" website/admin/js/homepage.js; then echo -e "${GREEN}✅ saveHomepage function found${NC}" else echo -e "${RED}❌ saveHomepage function missing${NC}" all_checks_passed=false fi # Check for API endpoint call if grep -q "/api/admin/homepage/settings" website/admin/js/homepage.js; then echo -e "${GREEN}✅ Admin API endpoint configured${NC}" else echo -e "${RED}❌ Admin API endpoint missing${NC}" all_checks_passed=false fi # Check for all settings in save function settings_to_check=("hero" "promotion" "portfolio" "description" "backgroundUrl" "imageUrl") for setting in "${settings_to_check[@]}"; do if grep -q "$setting" website/admin/js/homepage.js; then echo -e "${GREEN}✅ $setting field handled${NC}" else echo -e "${YELLOW}⚠️ $setting field might be missing${NC}" fi done echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 Checking Frontend Integration..." echo # Check for homepage settings loading in home.html if grep -q "loadHomepageSettings" website/public/home.html; then echo -e "${GREEN}✅ loadHomepageSettings function found${NC}" else echo -e "${RED}❌ loadHomepageSettings function missing${NC}" all_checks_passed=false fi # Check for applyHomepageSettings function if grep -q "applyHomepageSettings" website/public/home.html; then echo -e "${GREEN}✅ applyHomepageSettings function found${NC}" else echo -e "${RED}❌ applyHomepageSettings function missing${NC}" all_checks_passed=false fi # Check for public API endpoint if grep -q "/api/public/homepage/settings" website/public/home.html; then echo -e "${GREEN}✅ Public API endpoint configured${NC}" else echo -e "${RED}❌ Public API endpoint missing${NC}" all_checks_passed=false fi # Check for dynamic element IDs element_ids=("heroHeadline" "heroSubheading" "heroDescription" "promotionTitle" "portfolioTitle") for element_id in "${element_ids[@]}"; do if grep -q "id=\"$element_id\"" website/public/home.html; then echo -e "${GREEN}✅ Element #$element_id found${NC}" else echo -e "${YELLOW}⚠️ Element #$element_id might be missing${NC}" fi done echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 Checking Backend API..." echo # Check for homepage settings endpoints in backend if grep -q "homepage/settings" backend/routes/admin.js; then echo -e "${GREEN}✅ Admin homepage endpoint found${NC}" else echo -e "${RED}❌ Admin homepage endpoint missing${NC}" all_checks_passed=false fi if grep -q "homepage/settings" backend/routes/public.js; then echo -e "${GREEN}✅ Public homepage endpoint found${NC}" else echo -e "${YELLOW}⚠️ Public homepage endpoint might be missing${NC}" fi echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "📊 Statistics" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo homepage_js_lines=$(wc -l < website/admin/js/homepage.js) home_html_lines=$(wc -l < website/public/home.html) homepage_html_lines=$(wc -l < website/admin/homepage.html) echo "📝 Lines of code:" echo " homepage.js: $homepage_js_lines lines" echo " home.html: $home_html_lines lines" echo " homepage.html: $homepage_html_lines lines" echo echo "📦 Features implemented:" echo " • Rich text editor (Quill.js)" echo " • Media library integration" echo " • Full save functionality" echo " • Frontend dynamic loading" echo " • All buttons working" echo echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" # Final summary if [ "$all_checks_passed" = true ]; then echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN} ✅ ALL CHECKS PASSED!${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo echo "The homepage editor is fully functional!" echo echo "🎯 Next steps:" echo " 1. Login to admin panel: http://localhost:5000/admin/login.html" echo " 2. Open homepage editor: http://localhost:5000/admin/homepage.html" echo " 3. Make some changes and click 'Save All Changes'" echo " 4. View the results: http://localhost:5000/home.html" echo else echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${RED} ❌ SOME CHECKS FAILED${NC}" echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo echo "Please review the errors above." exit 1 fi