* Make it a bit more readable
* Define function return type
* Change default of CitizenPortalAttach to an empty string
* Site tools now attach to the first portlet when CitizenPortalAttach is empty
Since somewhere around MW 1.37, buildSkinFeatures() no longer have access to OutputPage.
That causes $out->isTOCenabled always return null, which makes ToC
broken for any wikis since 1.37. This should fix the issue for now.
More optimizations on the loading behavior will come soon.
* Use template data for page tools if available
* ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
* emptyPortlet class is added by the core
* ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
* Update PageTools.php
* Set toolbox to always valid data
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
Using runOnSkinTemplateNavigationHooks as a short term fix.
On the long term, we're hoping to empower skins to have more
control over menus which will hopefully mean a lot of the code
in Citizen can be simplified.
Fixes: #422
* feat: rewrite search module (WIP)
There are some caveats because it is a WIP
- Messages are not i18n yet
- Missing placeholder suggestion thumbnail
- Only REST mode works
- Missing greeting message when there is no search query
- Code might look like a mess (I learned JS not long ago)
* refactor: remove old search module
* feat: clean up search suggestion styles
* feat: hide overflow for suggestion text
* feat: add action API and various cleanup
* feat: re-add abort controller
* feat: add message support and tweaks
* feat: use virtual config instead of ResourceLoader hook
* fix: missing comma in const definition
* feat: add ARIA attributes
* bug: Fix display of theme toggle button if set to auto
* feat: Add subsearch script to drawer
An input in the drawer allows to search portal headings and links for matching text
- Hides all portals / links based on the search value
Feature can be enabled by setting `$wgCitizenEnableDrawerSubSearch = true;` in LocalSettings.
* bug: Fix subsearch