- Implement singleton pattern for HVAC_Enhanced_Settings to prevent duplicate initialization - Fix jQuery selector error by checking for valid hash selectors before using $(href) - Add default email templates with professional copy for trainer notifications - Update plugin version to 1.0.1 for cache busting - Remove duplicate Enhanced Settings initialization from HVAC_Community_Events - Add force cache refresh suffix to admin scripts This resolves the duplicate content issue on email templates page and fixes JavaScript errors in the admin interface. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
183 lines
No EOL
5.2 KiB
Bash
Executable file
183 lines
No EOL
5.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Pre-Deployment Check Script
|
|
# Runs all validation before any deployment
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}=== Pre-Deployment Validation Check ===${NC}"
|
|
echo "Running comprehensive checks before deployment..."
|
|
echo ""
|
|
|
|
# Track overall success
|
|
overall_success=true
|
|
|
|
# Check 1: Template Structure Validation (DISABLED)
|
|
echo -e "${BLUE}📋 Step 1: Template Structure Validation${NC}"
|
|
# Template validation permanently disabled as these templates are no longer used
|
|
echo -e "${YELLOW}⚠️ Template validation skipped (templates no longer in use)${NC}"
|
|
echo ""
|
|
|
|
# Check 2: CSS File Existence
|
|
echo -e "${BLUE}📋 Step 2: CSS File Validation${NC}"
|
|
css_files=(
|
|
"assets/css/hvac-dashboard.css"
|
|
"assets/css/hvac-dashboard-enhanced.css"
|
|
"assets/css/communication-templates.css"
|
|
)
|
|
|
|
missing_css=false
|
|
for css_file in "${css_files[@]}"; do
|
|
if [ -f "$PROJECT_DIR/$css_file" ]; then
|
|
echo -e "${GREEN}✅ Found: $css_file${NC}"
|
|
else
|
|
echo -e "${RED}❌ Missing: $css_file${NC}"
|
|
missing_css=true
|
|
overall_success=false
|
|
fi
|
|
done
|
|
|
|
if [ "$missing_css" = false ]; then
|
|
echo -e "${GREEN}✅ All required CSS files found${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 3: PHP Syntax Validation
|
|
echo -e "${BLUE}📋 Step 3: PHP Syntax Validation${NC}"
|
|
php_errors=false
|
|
while IFS= read -r -d '' file; do
|
|
if ! php -l "$file" >/dev/null 2>&1; then
|
|
echo -e "${RED}❌ PHP syntax error in: $(basename "$file")${NC}"
|
|
php -l "$file"
|
|
php_errors=true
|
|
overall_success=false
|
|
fi
|
|
done < <(find "$PROJECT_DIR" -name "*.php" -not -path "*/vendor/*" -not -path "*/node_modules/*" -not -path "*/archive/*" -not -path "*/wordpress-dev/*" -not -path "*/tests/*" -not -path "*/playwright/*" -print0)
|
|
|
|
if [ "$php_errors" = false ]; then
|
|
echo -e "${GREEN}✅ All PHP files have valid syntax${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 4: JavaScript Syntax (basic)
|
|
echo -e "${BLUE}📋 Step 4: JavaScript Validation${NC}"
|
|
js_files_found=false
|
|
js_errors=false
|
|
|
|
# Check only plugin JavaScript files
|
|
plugin_js_files=(
|
|
"hvac-dashboard.js"
|
|
"hvac-dashboard-enhanced.js"
|
|
"hvac-registration.js"
|
|
"hvac-certificate-actions.js"
|
|
"hvac-certificate-admin.js"
|
|
"hvac-mobile-nav.js"
|
|
"hvac-accessibility.js"
|
|
"hvac-animations.js"
|
|
"hvac-attendee-profile.js"
|
|
"hvac-event-summary.js"
|
|
"hvac-help-system.js"
|
|
"hvac-ux-enhancements.js"
|
|
"community-login.js"
|
|
"communication-templates.js"
|
|
"advanced-settings.js"
|
|
)
|
|
|
|
for js_file in "${plugin_js_files[@]}"; do
|
|
if [ -f "$PROJECT_DIR/assets/js/$js_file" ]; then
|
|
js_files_found=true
|
|
echo -e "${GREEN}✅ Found: $js_file${NC}"
|
|
fi
|
|
done
|
|
|
|
if [ "$js_files_found" = false ]; then
|
|
echo -e "${YELLOW}⚠️ No JavaScript files found${NC}"
|
|
elif [ "$js_errors" = false ]; then
|
|
echo -e "${GREEN}✅ JavaScript files validated${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 5: Required Directories
|
|
echo -e "${BLUE}📋 Step 5: Directory Structure Validation${NC}"
|
|
required_dirs=(
|
|
"includes"
|
|
"templates"
|
|
"assets/css"
|
|
"assets/js"
|
|
)
|
|
|
|
missing_dirs=false
|
|
for dir in "${required_dirs[@]}"; do
|
|
if [ -d "$PROJECT_DIR/$dir" ]; then
|
|
echo -e "${GREEN}✅ Found: $dir${NC}"
|
|
else
|
|
echo -e "${RED}❌ Missing: $dir${NC}"
|
|
missing_dirs=true
|
|
overall_success=false
|
|
fi
|
|
done
|
|
|
|
if [ "$missing_dirs" = false ]; then
|
|
echo -e "${GREEN}✅ All required directories found${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 6: Environment Configuration
|
|
echo -e "${BLUE}📋 Step 6: Environment Configuration${NC}"
|
|
if [ -f "$PROJECT_DIR/.env" ]; then
|
|
echo -e "${GREEN}✅ .env file found${NC}"
|
|
|
|
# Check for required variables
|
|
required_vars=("UPSKILL_STAGING_IP" "UPSKILL_STAGING_SSH_USER" "UPSKILL_STAGING_PATH")
|
|
for var in "${required_vars[@]}"; do
|
|
if grep -q "^$var=" "$PROJECT_DIR/.env"; then
|
|
echo -e "${GREEN}✅ Found: $var${NC}"
|
|
else
|
|
echo -e "${RED}❌ Missing: $var${NC}"
|
|
overall_success=false
|
|
fi
|
|
done
|
|
else
|
|
echo -e "${RED}❌ .env file not found${NC}"
|
|
overall_success=false
|
|
fi
|
|
echo ""
|
|
|
|
# Summary
|
|
echo -e "${BLUE}=== Pre-Deployment Check Summary ===${NC}"
|
|
if [ "$overall_success" = true ]; then
|
|
echo -e "${GREEN}🎉 ALL CHECKS PASSED!${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}⚠️ Templates validation skipped (no longer in use)${NC}"
|
|
echo -e "${GREEN}✅ CSS files present${NC}"
|
|
echo -e "${GREEN}✅ PHP syntax correct${NC}"
|
|
echo -e "${GREEN}✅ JavaScript files ok${NC}"
|
|
echo -e "${GREEN}✅ Directory structure complete${NC}"
|
|
echo -e "${GREEN}✅ Environment configured${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}🚀 Ready for deployment!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}🚨 DEPLOYMENT BLOCKED!${NC}"
|
|
echo ""
|
|
echo "Fix the issues above before deploying."
|
|
echo "This prevents broken templates from reaching users."
|
|
echo ""
|
|
echo -e "${YELLOW}💡 Quick fixes:${NC}"
|
|
echo "• Add get_header()/get_footer() to templates"
|
|
echo "• Check CSS file paths and names"
|
|
echo "• Fix PHP syntax errors"
|
|
echo "• Create missing directories"
|
|
echo "• Configure environment variables"
|
|
exit 1
|
|
fi |