<!-- @format -->

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] - 2025-11-05

### Added

-  **Menu Module Redesign**: Complete overhaul of menu management system
   -  Added new database fields for flexible menu items: `item_type`, `item_value`, `slug`, `item_target`, `css_class`, `visible_roles`
   -  Implemented `Menu::getMenuItemsRich()` method for enhanced API responses with nested items and rich icon payloads
   -  Added inline edit capability for menu items with AJAX form handling
   -  New controller actions: `actionGetMenuItem()`, `actionUpdateMenuItem()`, `actionGetRich()`
   -  Enhanced admin UI with drag-and-drop sorting and in-place editing
   -  Migration: `m251104_120000_add_fields_to_menu_rels.php`

### Changed

-  **Menu Assignment Interface**: Modernized menu item creation and management
   -  Unified Add/Update form with inline editing capabilities
   -  Improved AJAX workflows for create, read, update, delete operations
   -  Better error handling and user feedback
   -  Streamlined UI with cleaner form layout and responsive design

### Fixed

-  Code formatting and consistency improvements across multiple files
-  Removed trailing spaces and standardized line endings

## [2025-11-04] - Major Media & CMS Enhancements

### Added

-  **Unified Media System**: Complete media library overhaul

   -  New `MediaLibraryPicker` component for consistent media selection across modules
   -  Advanced image variant system with WebP conversion support
   -  CDN-aware URL generation and srcset support
   -  Migration: `m251103_000000_add_webp_fields_to_media.php`
   -  Migration: `m251103_000001_update_optimization_settings_webp.php`
   -  Migration: `m251103_000002_remove_separate_webp_fields.php`

-  **Global Settings Enhancement**:

   -  Redesigned settings interface with modern UI patterns
   -  Integrated media picker for logo, favicon, and other media settings
   -  In-place preview updates without page reload
   -  Migration: `m251103_190000_update_global_settings_standard_cms.php`
   -  Migration: `m251103_200000_update_social_media_repeater.php`

-  **Advanced Meta Fields**: Enhanced SEO and metadata management

   -  Dynamic meta fields for pages, products, and posts
   -  Social media integration with Open Graph and Twitter Card support
   -  Migration: `m251103_180500_add_advanced_meta_fields.php`

-  **Dynamic Content Fields**: Flexible content management

   -  Dynamic buttons and text fields for enhanced content layouts
   -  Migration: `m251104_000000_add_dynamic_buttons_textfields.php`
   -  Migration: `m251104_100000_add_buttons_textfields_to_gallery.php`
   -  Migration: `m251104_200000_add_buttons_textfields_to_posts.php`

-  **Rich API Endpoints**: Enhanced API responses
   -  Richer image payloads with variants, srcset, and CDN URLs
   -  Support for slug-based endpoints
   -  Category lists and feature blocks for global data
   -  Comprehensive API documentation in `/docs/` directory

### Changed

-  **Editor Integration**: Summernote editor improvements

   -  Bootstrap 5 compatibility enhancements
   -  Fixed dropdown conflicts and improved user experience
   -  Custom styling and initialization scripts
   -  File: `backend/web/resources/js/summernote-init.js`

-  **Admin Interface**: Modernized backend UI

   -  Consistent use of MediaLibraryPicker across all modules
   -  Improved form layouts and responsive design
   -  Enhanced dropdown functionality and fixed Bootstrap conflicts
   -  Updated navigation and branding elements

-  **Media Management**: Streamlined media workflows
   -  Unified media upload and selection process
   -  Improved media library interface with grid view
   -  Better media organization and search capabilities
   -  Enhanced media metadata and variant management

### Fixed

-  **Bootstrap Dropdown Issues**: Resolved conflicts causing double-click requirement

   -  Removed custom dropdown handlers in favor of native Bootstrap behavior
   -  Fixed dropdown menu positioning and interaction issues
   -  Updated Summernote initialization to prevent dropdown interference

-  **Media Upload Issues**: Resolved various upload and preview problems

   -  Fixed image preview updates in Global Settings
   -  Resolved target="\_blank" not working in media library view
   -  Improved error handling and user feedback

-  **Form Validation**: Enhanced form validation and error handling
   -  Better client-side validation feedback
   -  Improved server-side error responses
   -  Consistent validation patterns across modules

### Security

-  **HTML Purification**: Enhanced content sanitization
   -  Updated HTMLPurifier integration across all user inputs
   -  Improved XSS protection for dynamic content
   -  Consistent validation rules for all content fields

## [2025-11-03] - Media Library & Content Management

### Added

-  **Media Library Core**: Foundation for unified media management

   -  Base media models and controllers
   -  Media upload and organization system
   -  Basic variant generation capabilities

-  **Content Module Enhancements**:
   -  Enhanced page, product, and blog post management
   -  Improved category and gallery systems
   -  Better content organization and metadata

### Changed

-  **Database Structure**: Optimized for better performance
   -  Added indexes for commonly queried fields
   -  Improved foreign key relationships
   -  Better data normalization

### Fixed

-  **Post Upload Issues**: Resolved content creation problems
-  **API Fixes**: Various endpoint improvements and bug fixes
-  **Blog Slug Issues**: Fixed URL generation and routing problems

## [2025-10-29] - Foundation Updates

### Added

-  **Image Processing**: Basic image handling improvements
-  **Editor Enhancements**: Summernote integration and fixes
-  **Media Variants**: Initial support for image variations

### Fixed

-  **P Tag Auto-add Issue**: Resolved unwanted paragraph insertion
-  **Summer Note Editor**: Fixed various editor-related bugs
-  **Image Upload**: Resolved basic upload functionality issues

## [2025-10-28] - Initial Enhancements

### Added

-  **Global Settings**: Initial global configuration system
-  **Image Management**: Basic image handling and object-fit controls
-  **Meta Fields**: Initial meta field support for content

### Changed

-  **Navigation**: Improved admin navigation structure
-  **Branding**: Updated logo and branding elements

---

## Statistics Summary

Based on the git history analysis:

-  **Total Commits**: 24+ commits in recent development cycle
-  **Files Changed**: 263 files modified/added
-  **Lines Added**: 15,228+ lines of new code
-  **Lines Removed**: 3,720 lines of old/redundant code
-  **Net Addition**: 11,508+ lines of enhanced functionality

### Key Metrics:

-  **New Migrations**: 10+ database migrations
-  **New Documentation**: 9 comprehensive documentation files
-  **Enhanced Modules**: 8+ core modules improved
-  **New Components**: 5+ new reusable components
-  **API Enhancements**: 20+ new/improved endpoints

## Migration Guide

To apply all changes to your database:

```bash
# Run all pending migrations
php yii migrate/up --migrationPath=@app/../console/migrations

# Specific migrations for menu enhancements
php yii migrate/up m251104_120000_add_fields_to_menu_rels

# Media system migrations
php yii migrate/up m251103_000000_add_webp_fields_to_media
php yii migrate/up m251103_000001_update_optimization_settings_webp
php yii migrate/up m251103_000002_remove_separate_webp_fields

# Global settings and content enhancements
php yii migrate/up m251103_190000_update_global_settings_standard_cms
php yii migrate/up m251103_180500_add_advanced_meta_fields
```

## Documentation

Comprehensive documentation is available in the `/docs/` directory:

-  API Endpoints Documentation
-  Media Library Implementation Guide
-  Global Settings Enhancement Guide
-  WebP Conversion Feature Guide
-  Quick Reference Guides

For detailed implementation guides, see the individual documentation files in the `/docs/` folder.
