All notable changes to this project will be documented in this file.
- Update dependencies
- Housekeeping
- Abort early if the user does not have the required permissions
- Security: Added endpoint verification for REST API requests
- Bug fix: Added rest endpoint permission check
- Code improvement: Added strict types declaration
- Code improvement: Added return type declarations
- Remove duplicate code.
REQUIRE PHP 8.0 OR HIGHER
- New Config class to manage plugin constants
- Constructor property promotion for better code organization
- Strict type declarations throughout the codebase
- Increased default search threshold from 2 to 20 sites
- Refactored main class to use modern PHP 8.0+ features
- Improved error handling and null checks
- Better type safety with more specific type declarations
- Simplified plugin initialization
- The Config class now centralizes all plugin constants
- Removed redundant property declarations in favor of constructor property promotion
- Added strict typing for better code reliability
- REST endpoints now use Config class constants
- Fixed search functionality:
- Improved search performance with better indexing
- Added mutation observer to handle dynamically loaded sites
- Fixed event handling for search input
- Added improved error handling for search elements
- Better handling of empty search inputs
- Bump version to trigger a deploy to WordPress.org
- Force deploy to WordPress.org
- Major code refactoring and improvements:
- Added comprehensive JSDoc documentation
- Improved error handling throughout the codebase
- Enhanced IndexedDB implementation with private class fields
- Added debouncing to search functionality
- Improved intersection observer implementations
- Better type checking and null safety
- Modernized class structure and module organization
- Update dependencies
- Update dependencies
- Update dependencies
- Tested with WordPress 6.4
- Tested with WordPress 6.3
- Fix bug in handling the REST API.
- Tested with WordPress 6.0
- Await for the promise
populateDB()
to resolve before continuing.
- Use
@wordpress/api-fetch
to fetch subsite data.
- Use REST instead of AJAX.
- Housekeeping
- Add missing textdomain to translations.
- Update uninstall.php
- Bundle Dexie using wp-scripts
- Housekeeping
- Use @wordpress/i18n to translate JavaScript.
- Fix typo in textdomain.
- Housekeeping
- Update translation file (.pot)
- Don't set dependencies for style.
- Import @wordpress/i18n
- Replace webpack with wp-scripts
- Use correct AJAX URL
- Upgrade Dexie.js to v 3.2.0
- Only load the plugin code if the admin bar is available.
- Force refresh using a site transient.
- Don't list sites that are tagged as archived, deleted, mature or spam.
- Update plugin banner
- Add plugin banner
- Housekeeping
- Remove external dependencies.
- Remove
type=module
from script tag. Not needed anymore since the script and modules are packed.
- Pack JavaScript using webpack.
- Only run if multisite.
- Improved Dexie versioning.
- Pass only one parameter to
plugin_update_local_storage()
- Close db connection when getting version number.
- IndexedDB maintenance, i.e. remove old databases.
- Dexie schema change, bump Dexie version number.
- Make sure the local storage (IndexedDB) is in sync with server changes.
- Refactored JavaScript again, I'm using this plugin to experiment with and to learn JavaScript better.
- Refactor and rename db module.
- Don't display search field if there's less than 20 subsites. The threshold is adjustable using the
all_sites_menu_search_threshold
filter
- Fix load increments bug.
- Housekeeping.
- Add filters to defaults.
- Update IndexedDB when you change a blog name.
- Only change
text/javscript
tomodule
when tag hassrc
attribute
- Refactor
- Split JavaScript into modules
- If empty, populate IndexedDB with sites menu data.
- Adjust the sites menu wrapper height
- Remove
window.hoverintent
, it's slow when you have a lot of sites, useaddEventListener
in capturing mode instead.
- Housekeeping.
- Update IndexedDB when Restricted Site Access is (de)activated.
- Store subsite menu data in IndexedDB (local storage).
- IndexedDB is updated when a site is added / deleted.
- Add search.
- Fix translations.
- Housekeeping.
- Lazy load the subsite menu, using IntersectionObserver and AJAX, loading only 80 subsites at a time.
- Make subsites menu scrollable.
- Initial release.