Commit graph

139 commits

Author SHA1 Message Date
alistair3149 1939850369
feat(core): allow multiple search components on the same page
This will allow the search suggestion to hook up to multiple search
boxes with `.citizen-search-box` as container. Do note that the default
Citizen suggestion is hardcoded for the primary search, so it only
works for the old core search suggestion module.

This is also a prereq for implementing the Codex search like the one
from Vector.
2022-12-02 17:35:23 -05:00
alistair3149 9652d4f8ed
refactor(core): ♻️ prepare for heading structure changes 2022-11-24 21:46:23 -05:00
alistair3149 f70d410779
feat(core): reduce scroll up header delay 2022-11-23 14:11:48 -05:00
alistair3149 6b13da3318
feat(core): hide navigation on scroll down 2022-11-21 17:46:09 -05:00
alistair3149 b5ddd26de7
perf(core): ️ only add beforeunload listener once 2022-11-21 17:46:04 -05:00
alistair3149 9c871764c3
style: 🎨 fix some eslint issues 2022-11-21 17:45:50 -05:00
alistair3149 31c43fa33b
refactor(core): ♻️ do not init observer when not needed
Do not init scroll observer if sentinel is set to display:none
2022-11-21 17:45:42 -05:00
github-actions 159bd8a7d2
ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-11-21 17:42:28 -05:00
alistair3149 969cd787d6
feat(core): use different font weight in different themes
The same font weight do not provide the same contrast in different themes.
We should be able to change the scaling
2022-11-21 17:42:26 -05:00
alistair3149 ceaf3ed844
feat(core): tweak responsive layout 2022-11-21 17:42:22 -05:00
alistair3149 a1ce408e43
feat(core): re-implement responsive toc 2022-11-21 17:42:05 -05:00
alistair3149 3eaeaa15f7
refactor(core): ♻️ pre-work to allow Citizen to render ToC 2022-11-21 17:41:40 -05:00
alistair3149 4f651b41ca
feat(pwa): add basic support for service worker
This is super basic and experimental.
It will be expanded upon in the future, but for now it will satisfy the
requirement for PWA
2022-10-23 16:37:43 -04:00
alistair3149 e72d7c00a3
feat(core): add sticky body header 2022-09-29 22:33:06 -04:00
alistair3149 e53afa51dc
fix(core): config CitizenThemeDefault should set theme correctly
Previously the config did set the theme correctly but get overridden by the inline
script to auto, this will fix it.

Closes: #418
2022-06-29 15:29:44 -04:00
alistair3149 eba22354e5
fix(core): run script when DOM is ready
Sometimes the scripts start to run before DOM is fully ready. It causes things
like #475 where the checkbox is not in DOM yet but the script is already asking for it.
2022-06-04 17:44:03 -04:00
alistair3149 da619c793b
refactor(core): remove duplicated auto theme handling
Refactor auto theme handling into inline script since theme.js is basically duplicated code
at this point. Also add the event listener whenever auto theme is set.

Closes: #461
2022-05-20 17:33:10 -04:00
alistair3149 9d711d4ee2
refactor(core): use scroll-padding-top for top margin 2022-05-17 15:35:04 -04:00
alistair3149 1be7f5faaf refactor(core): rewrite ToC scrollspy based on Vector 2022-05-17 15:11:16 -04:00
alistair3149 c978bb1320
refactor(core): rename title hidden class 2022-05-13 00:30:46 -04:00
alistair3149 d59ca5c83a
refactor(core): move intersection observer into a module
* We will likely use it for other things in the future
* Based on Vector's implementation
* Also do not get toc element twice
2022-05-13 00:26:53 -04:00
alistair3149 23795e05e3
chore(ci): disable mediawiki/class-doc 2022-05-13 00:20:05 -04:00
alistair3149 13a2b710ea
refactor(core): remove duplicated check for ToC 2022-05-12 23:24:32 -04:00
alistair3149 194c73d5bb
style(core): use arrow function 2022-05-12 22:44:17 -04:00
alistair3149 86150d492d
refactor(core): clean up checkboxHack implementation
Mostly based on Vector 2022. Now we target checkbox hacks by the HTML classes
.mw-checkbox-hack-TYPE instead of defining each individually, which would
make it more scalable.
2022-05-12 22:37:28 -04:00
alistair3149 508c96ae9d
refactor(core): merge ToC script into core scripts 2022-05-12 17:18:39 -04:00
alistair3149 e0d5eb9657
feat(core): set toc-enabled through Mustache template
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.
2022-05-12 17:01:01 -04:00
github-actions a2577db3c8 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-12 01:41:40 +00:00
alistair3149 b73357cf7c
feat(core): update checkboxHack API 2022-05-11 21:32:36 -04:00
alistair3149 da26d4bc7f
refactor(core): add null check search button checkbox 2022-05-11 19:08:51 -04:00
alistair3149 cae7deb945
refactor(core): clean up header icon styles 2022-05-10 11:59:43 -04:00
alistair3149 6e35212007 refactor(core): clean up search box implementation
* Clean up DOM structure
* Clean up HTML classes
* Use relative units
* Remove unnessecary CSS
2022-05-10 10:52:36 -04:00
alistair3149 5ccfbcfdeb refactor(core): clean up drawer implementation
This is a part of the site header refactor
* Use relative units
* Add title to toggle button
* Remove unnessecary CSS
* Rewrite HTML classes
* Temporary remove drawer subsearch, it will be re-explored in a later patch
2022-05-10 10:52:36 -04:00
alistair3149 96013bb126
feat: deprecate --background-color-dp-XX in favor of --color-surface-X
--background-color-dp-XX is now fully deprecated in favor of a simpler 4 color surface system. It can be accessed through the --color-surface-X CSS var.
2022-04-25 22:27:52 -04:00
alistair3149 fed5369847
fix: add null check for checkboxObj.target
It should no longer throw an exception which causes other script to fail

Closes #432
2022-04-25 21:48:52 -04:00
alistair3149 2c79c061c4 feat: pass styles as style element instead of inline 2022-04-25 20:34:40 -04:00
alistair3149 047f830d1a
fix: FOUC of light theme when user is using auto theme and prefer dark
The prefer-dark script was previously deferred which causes a delay to detect and switch theme for the user. It is now inlined to prevent the delay.
2022-04-19 18:17:53 -04:00
alistair3149 7ecf3a81eb
feat: depreciate theme preferences in MW user preferences
Just local storage is good enough
2022-04-19 17:31:23 -04:00
alistair3149 f5c5c996fa
fix: fix eslint no-shadow error 2021-12-15 22:19:39 -05:00
alistair3149 f7e73cf171
feat: add security header deprecation message for upcoming version 2021-08-05 11:41:31 -04:00
alistair3149 f5a2a831d1
feat: add user customizable line height 2021-08-05 11:24:52 -04:00
alistair3149 7dc0d14c70
feat: simplify background color variables in core styles
--background-color-dp-XX is soft depreciated, please use --color-surface-X instead
2021-07-25 19:16:05 -04:00
alistair3149 63d21cf318 fix: add additional check for ToC elements
that should fix the null querySelector bug:
2021-07-12 15:11:11 -04:00
alistair3149 5f168f03ee
feat: add page load progress bar 2021-06-12 09:54:47 -04:00
alistair3149 19119f2b5d
feat: add auto theme to preferences 2021-06-09 14:40:44 -04:00
alistair3149 b2bd79196d
feat: rework search module (#386)
* 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
2021-05-17 16:34:14 -04:00
alistair3149 3202c1d9e6
fix: prevent Firefox quickfind overriding the search toggle shortcut 2021-05-10 13:36:44 -04:00
github-actions fef76149d1 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-05-10 17:27:36 +00:00
alistair3149 74873da01f
refactor: better detection for slash toggle 2021-05-10 13:26:39 -04:00
alistair3149 e79e707ce3
fix: disable search shortcut when VE is activated 2021-04-30 13:28:51 -04:00
alistair3149 51ac47691e feat: implement reading preferences
allow visitor to adjust theme, font size, and page width
2021-04-27 13:51:03 -04:00
alistair3149 e2b4a4e49a
feat: show page title on header after scroll
The page header also acts as a jump to top link
2021-04-26 11:39:27 -04:00
alistair3149 4bbb59f978
refactor: improve search loading indicator behavior 2021-04-22 12:09:14 -04:00
alistair3149 546fa36d33
refactor: drop dependency for mediawiki.page.ready 2021-04-22 11:44:48 -04:00
alistair3149 38882334c8
refactor: use checkboxHack module for search script 2021-04-21 18:47:03 -04:00
alistair3149 8129ca0e5b
feat: use MW core checkboxHack scripts instead
Cloned and tweaked to a local file as the core file can be different across MW builds
2021-04-21 16:45:52 -04:00
alistair3149 f44aaa4e4c
refactor: refactor skins.citizen.scripts to ES6 2021-04-21 13:44:28 -04:00
alistair3149 117d839f00
doc: fix lettercase for Window and Document object 2021-04-21 11:32:44 -04:00
alistair3149 c4c607d154
fix: theme toggle button not appearing in initial load 2021-04-20 23:54:32 -04:00
alistair3149 2cec33906e
refactor: integrate skins.citizen.scripts.theme into core scripts 2021-04-20 23:42:45 -04:00
github-actions 3f9117a2cd ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-04-17 04:07:47 +00:00
alistair3149 ad78883461
fix: search shortcut being triggered in textarea 2021-04-17 00:06:57 -04:00
alistair3149 8ef0e927f8
refactor: simplify search key handler 2021-04-12 16:22:16 -04:00
alistair3149 5a3b64252d
feat: tweak search shortcut key behavior 2021-04-12 15:55:59 -04:00
alistair3149 670641e903
feat: use slash as shortcut for search 2021-04-12 15:09:28 -04:00
alistair3149 abffe590b5
refactor: remove cookie theme for local storage
Co-authored-by: H. C. Kruse <6594492+octfx@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
2021-04-05 14:24:18 -04:00
alistair3149 4a0f7af3e0
doc: add missing param document 2021-03-13 12:45:03 -05:00
alistair3149 1b3fff4170
fix: CSS animation flash on page load on Chromium 2021-03-13 12:43:28 -05:00
alistair3149 09b399ccf0
feat: collapse ToC when clicked outside
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
2021-03-08 14:32:29 -05:00
alistair3149 00448a095d
feat: add drawer subsearch part 2 2021-02-03 15:47:32 -05:00
H. C. Kruse 407d367e37 feat: add drawer subsearch (#264)
* 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
2021-02-03 15:01:50 -05:00
alistair3149 6633f89033
fix: fix display of theme toggle button if set to auto (#261)
Co-authored-by: Hannes <hannes@octofox.de>
2021-01-31 12:38:37 -05:00
Hannes 1769510dae
refactor: Move ESC handler 2021-01-29 19:50:20 +01:00
Hannes b901ac7891
refactor: Hide drawer on esc and outside click 2021-01-29 19:02:09 +01:00
alistair3149 2836831335
fix: allow checkbox button to uncheck when clicked 2021-01-21 21:43:20 -05:00
alistair3149 3ba3a0cb8d
feat: hide menu when clicked outside 2021-01-21 21:08:55 -05:00
alistair3149 56de894f6e
refactor: convert skin.citizen.scripts to packagedFiles 2021-01-16 17:01:58 -05:00
alistair3149 25822463a0
fix: incorrect selector in search toggle script 2021-01-16 16:35:23 -05:00
H. C. Kruse b4488f8ddb
fix: fix theme switcher logic (#202)
* refactor: Fix switching theme

* ci: lint code to MediaWiki standards

Check commit and GitHub actions for more details

Co-authored-by: github-actions <github-actions@users.noreply.github.com>
2021-01-11 17:13:01 -05:00
H. C. Kruse e30e6ce52c
feat: implement theme toggle (#201) 2021-01-11 12:13:59 -05:00
alistair3149 2110aa8d55
Add search loading indicator 2020-10-16 15:23:15 -04:00
github-actions ac343ce893 Make a dinner reservation - MediaWiki CI
I clean up code to MediaWiki standards
2020-08-12 12:59:57 -04:00
alistair3149 0398f5f9f6 Contain scripts inside functions 2020-08-12 12:59:57 -04:00
github-actions 57cf0cd5c8 Make a dinner reservation - MediaWiki CI
I clean up code to MediaWiki standards
2020-07-05 21:07:36 +00:00
alistair3149 9045398201
Add documentation to Citizen scripts 2020-06-16 23:16:45 -04:00
alistair3149 6ba5f41470
Use module name for stylesheets and scripts 2020-06-16 23:03:28 -04:00
alistair3149 32a0af35d4
Separate ToC from core module 2020-06-15 22:32:55 -04:00
alistair3149 d2845859c7
Open search when shortcut key is pressed 2020-06-09 00:30:24 -04:00
alistair3149 4ab77674e4
Reorganized file structure for a few ResourceLoader modules 2020-06-07 15:02:52 -04:00