Commit graph

142 commits

Author SHA1 Message Date
alistair3149 a741639085
feat(core): move theme preferences to clientPrefs
Since clientPrefs and other related features are not avaliable until MW 1.42,
many of them are backported as polyfill. Instead of using cookies, the polyfill
are using localStorage only like Citizen in the past.

There are many changes behind the scene, but the most important one being that
`skin-citizen-*` theme classes are now soft-deprecated, and replaced by the
standardized `skin-theme-clientpref-*` classes. There will be sufficient
time before the hard deprecation.

Related: #780
2024-04-24 20:23:54 -04:00
alistair3149 30ee7c1dd1
refactor(core): ♻️ use ResourceLoader to minify inline JS 2024-04-24 17:47:33 -04:00
alistair3149 d9675ebd60
fix(core): 🐛 round scrollLeft to integer
Fractional pixels from scrollLeft prevent Citizen from detecting overflow state properly.
2024-04-24 16:19:29 -04:00
alistair3149 cd21fd05f3
fix(core): 🐛 make ToC tracking work for non-content pages
Since MW 1.40, ToC has been enabled on all pages including non-content page.
By generating a list of elements to track through the ToC instead of targeting
specific classes, it should be more resilient and will work for non-content pages.
2024-04-20 01:32:37 -04:00
alistair3149 21ce85a320
fix(core): 🐛 remove loading indicator when page is unloaded
Closes: #811
2024-03-19 18:49:35 -04:00
github-actions 96171236d7 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2024-01-27 02:51:04 +00:00
alistair3149 22addebe77
refactor(search): ♻️ start cleaning up search suggestion functions 2024-01-26 21:50:21 -05:00
github-actions dc3ca54d43 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-12-13 22:10:24 +00:00
alistair3149 eee044d145
feat(core): use CSS variable for language-specific fonts 2023-12-13 17:09:57 -05:00
alistair3149 201a38f93f
fix(core): 🐛 hide loading indicator when user clicks back button on browser
Closes: #718
2023-10-26 17:41:21 -04:00
alistair3149 2f40541bc4
feat(core): prefix citizen section classes 2023-09-10 19:00:52 -04:00
alistair3149 325f22f0dd
fix(core): 🐛 fire input event when search query is cleared 2023-08-28 18:36:51 -07:00
alistair3149 29d0f4b1ff
fix(core): 🐛 incorrect value for aria-controls 2023-08-04 17:31:11 -04:00
alistair3149 e866edc3a5
fix(toc): 🐛 add null check for link 2023-07-30 19:44:34 -04:00
alistair3149 739fa8504c
fix(core): 🐛 enter key should not clear search input
Use span instead of button element. As button element will make
enter key triggering the clear button.
2023-07-16 16:48:14 -04:00
alistair3149 1aba52b870
fix(core): 🐛 inconsistent search focus behavior 2023-07-16 03:50:43 -04:00
alistair3149 aef94e31cb
fix(toc): 🐛 init observer only when there are headlines 2023-07-11 22:01:04 -04:00
alistair3149 0b65a05556
refactor(core): ♻️ break down main function in skin.js 2023-07-11 21:44:34 -04:00
alistair3149 6cddf85131
feat(search): add clear button to search box 2023-07-10 16:23:48 -04:00
沈澄心 2891d042cc
fix(core): skin preference support for Safari on iOS < 12.2 (#680)
* Update skins.citizen.preferences.js

* Update skins.citizen.preferences.js

* Update inline.js

* Update SkinHooks.php

* Update skins.citizen.preferences.less

* Update variables.less

* Update theme.less

* Update theme.less

* Update skins.citizen.preferences.js

* Update skins.citizen.preferences.js

* Update skins.citizen.preferences.js

* Update skin.js
2023-07-03 08:48:41 -04:00
H. C. Kruse a1139e7797
fix(Tables): Check if element.parentNode is null (#681)
Happened on the recent changes table. While the added line in TableNowrapClasses also fixes this, I've left it in as a safeguard.
2023-07-03 08:48:15 -04:00
沈澄心 89a9957cd4
refactor(core): avoid using ES2020+ methods (#669)
Replace ??, ?., and replaceChildren() for better compatibility; hide pref panel in unsupported browsers 

* Update mixins.less

* Update Sections.less

* Update TableOfContents.less

* Update interface-edit-section-links.less

* Update mixins.less

* Update Sections.less

* Update TableOfContents.less

* Update interface-edit-section-links.less

* Update sections.js

* Update tableOfContents.js

* Update mwRestApi.js

* Update mwRestApi.js

* Update skins.citizen.preferences.js

* Update mwActionApi.js

* Update typeahead.js
2023-06-21 14:30:45 -04:00
github-actions 14db25faac ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-06-20 18:30:08 +00:00
沈澄心 07d7a730b8
fix(core): prevent propagation of click event on .mw-editsection, .mw-editsection-like (#667)
* Update sections.js

* Update sections.js
2023-06-20 14:29:37 -04:00
Simon Stier a7b99d11f0
feat(core): add config var 'wgCitizenTableNowrapClasses' (#621)
* add config var 'wgCitizenTableNowrapClasses'
* refactor: load config via require
2023-05-18 13:53:58 -04:00
alistair3149 09ffed668d
fix(core): 🐛 ensure loading indicator is removed when script is loaded 2023-05-06 17:51:41 -04:00
alistair3149 cd93b3d679
feat(core): ignore cargo dynamic table for table wrapper 2023-05-02 01:09:54 -04:00
alistair3149 79daca474a
feat(core): ignore dataTable for table wrapper
It seems that dataTable collide with the wrapper for some reason.
Looking for help on this one if anyone knows.
2023-05-02 00:32:07 -04:00
alistair3149 661fbf0b8f
feat(core): do not wrap changelist tables 2023-05-01 23:34:18 -04:00
alistair3149 587cea1ee9
feat(core): check parent container for table nowrap class 2023-05-01 14:50:48 -04:00
alistair3149 3d14f9cf0b
feat(core): do not wrap nested tables 2023-05-01 14:45:08 -04:00
alistair3149 c10dd046c3
refactor(core): ♻️ minor variable name cleanup 2023-05-01 03:08:08 -04:00
github-actions 8d044aea95 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-05-01 06:38:27 +00:00
alistair3149 81affb88f1
feat(core): ignore infobox class for table wrapper 2023-05-01 02:37:32 -04:00
github-actions 8bd678a180 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-05-01 06:24:37 +00:00
alistair3149 d1d49e62d5
feat(core): inherit float classes to table wrapper
So that table would have the correct float style
2023-05-01 02:23:40 -04:00
github-actions ee90992a89 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-05-01 06:06:54 +00:00
alistair3149 b2eaf0a41a
feat(core): add HTML class to disable table wrapper
Adding the class `.citizen-table-nowrap` will stop Citizen from adding wrapper to the table
2023-05-01 02:05:58 -04:00
alistair3149 e45af9bbbe
feat(core): add scroll affordance to tables 2023-04-30 19:54:31 -04:00
alistair3149 ce9963467d
refactor(core): ♻️ load content scripts using wikipage.content hook 2023-04-30 18:01:53 -04:00
github-actions 1945988d6f ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2023-04-30 21:02:42 +00:00
alistair3149 8c888a7e1f
feat(core): make tables responsive without breaking table layout
Instead of a CSS solution used previously, switch to a JS solution to wrap tables.
This should ensure the table renders correctly and also scrollable.
This lays the groundwork for making table more user-friendly in the future.
2023-04-30 17:01:29 -04:00
alistair3149 90890de53f
feat(core): add config flag to disable preferences menu 2023-03-27 14:08:38 -04:00
alistair3149 015b1e1b9a
fix(core): 🐛 respect config flag for default theme
This should fix the issue where CitizenThemeDefault is not working
2023-03-20 12:21:46 -04:00
alistair3149 e06ed54c83
feat(search): support MW default search shortcut key
It is added as an alternative of the slash key shortcut.

Closes: #582
2023-02-15 16:08:39 -05:00
alistair3149 ee4a7eda4f
refactor(core): ♻️ rename mw-checkbox-hack class to citizen-menu-checkbox 2023-01-25 20:25:40 -05:00
alistair3149 ef955c28a0
feat(core): use MW core checkboxHack instead
We no longer need to emulate the same feature when it is in core
2023-01-25 19:40:52 -05:00
alistair3149 a7406d8e32
fix(core): 🐛 default to auto theme unless set 2023-01-20 20:18:58 -05:00
alistair3149 685a3ad1c4
refactor(core): ♻️ reduce the number of RL modules
It will improve the performance in module registration and also caching
2022-12-09 14:48:17 -05:00
alistair3149 48cb80aaa3
refactor(search): ♻️ make renderSuggestions more digestible 2022-12-03 13:42:01 -05:00