Commit graph

491 commits

Author SHA1 Message Date
alistair3149 bc246ecf27
refactor(core): ♻️ drop contentNavigationUrls fallback 2022-11-21 17:40:32 -05:00
alistair3149 2acb154164
refactor(core): ♻️ drop Action API fallback 2022-11-21 17:40:30 -05:00
alistair3149 81f3810a7e
refactor: ♻️ drop runOnSkinTemplateNavigationHooks fallback 2022-11-21 17:40:29 -05:00
alistair3149 04808c9abe
refactor: ♻️ do not manually specify templateDirectory
There is no need in 1.39 anymore
2022-11-21 17:40:27 -05:00
alistair3149 b89873d99c
feat(fonts): add Noto Sans CJK font support
This is by default disabled since it is only used for wikis with CJK language,
and also it adds around 100kb to the startup stylesheet. The fonts are subsetted
with Google Fonts slicing pattern, so it should be performance friendly
2022-10-27 16:53:12 -04:00
alistair3149 bc8d1a320f
feat(pwa): use standalone mode
Now with the loading indicator back in, we can use standalone mode
2022-10-23 14:00:51 -04:00
github-actions 2c3db10bb9 ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-10-23 17:38:49 +00:00
alistair3149 56005ae627
feat(pwa): use wgLogos instead 2022-10-23 13:38:05 -04:00
alistair3149 72dfe31667
fix(pwa): 🐛 missing services variable 2022-10-22 18:59:26 -04:00
github-actions ca244f0bbf ci: 👷 lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-10-22 21:37:34 +00:00
alistair3149 ffb4e34443
feat(pwa): add helpful shortcuts to manifest 2022-10-22 17:36:58 -04:00
alistair3149 4c655a2b32
refactor(pwa): ♻️ move icons into separate function 2022-10-22 17:05:19 -04:00
alistair3149 5e2be1d974
feat(pwa): define scope parameter
So that /w/ path will not throw you out of the PWA
2022-10-22 16:49:56 -04:00
alistair3149 d80b91a4a8
refactor(pwa): ♻️ sort parameter by W3 draft
https://www.w3.org/TR/appmanifest/
2022-10-22 16:30:34 -04:00
alistair3149 b51b0c2332
feat(core): use minimal-ui instead of standalone in webapp manifest
This will allow minimal navigation UI for easier navigation
2022-10-22 15:43:55 -04:00
alistair3149 bf66c60f3d
feat(core): tweak body footer styles 2022-10-01 19:36:09 -04:00
alistair3149 aaad2bb92a
feat(core): move footer info into body footer
They are related to the article/page instead of the whole site
2022-10-01 17:25:20 -04:00
alistair3149 5be20a256c
feat(core): add jump to top link to sticky header 2022-09-30 11:24:06 -04:00
CosmicAlpha 6384d02b74
feat: use loose comparison for checking if CitizenShowPageTools is true (#497) 2022-08-02 19:08:00 -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 00e1f57bad
feat(core): add config to use numberformatter without disabling sitestats
Add the ability to disable numberformatter independently from sitestats
Due to an upstream issue, numberforrmatter can throw an exception in some
instances (#474). This will help to mitigate the issue.
2022-06-14 15:56:03 -04:00
alistair3149 a20e0dc5b2
fix(core): define template path in constructor instead
1.35 seems to not like relative path inside skin.json
2022-06-02 11:07:55 -04:00
alistair3149 681f4fd9fa
refactor(core): only get user-related stats when user is registered 2022-06-02 10:46:14 -04:00
alistair3149 756e398242
fix(core): check if user is registered before getting edit count
getEditCount() throws an exception if the user is not registered before 1.37
2022-06-02 10:37:31 -04:00
github-actions da03fa550a ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-28 18:30:36 +00:00
alistair3149 0a68a178cc
refactor(core): use array_merge to get sidebar for toolbox
Spread syntax is not supported before PHP 7.4
2022-05-28 14:26:32 -04:00
alistair3149 53ef5f0543
refactor(core): use core responsive mode for MW 1.36+
Use core responsive mode for MW 1.36+, and polyfill for MW 1.35
2022-05-26 18:12:08 -04:00
alistair3149 c49b8a8594
refactor(core): define templateDirectory in skin.json instead 2022-05-26 18:05:21 -04:00
github-actions ba8f4fa865 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-26 21:59:04 +00:00
alistair3149 11c50a5669
refactor(core): remove redundant message keys 2022-05-26 17:57:57 -04:00
alistair3149 4d7fecc299
refactor(core): clean up polyfilled Mustache template data
Clean up Mustache-related polyfill for 1.35 against 1.39,
in preparation of the 1.39 refactor
2022-05-26 17:33:59 -04:00
github-actions 52d6e0afd5 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-26 21:00:50 +00:00
alistair3149 58d85ff426 refactor(core): normalize PHP namespaces used in Citizen
Related: T303102
2022-05-26 16:58:14 -04:00
alistair3149 320b28c6d9
fix(core): call to member function null in user tagline 2022-05-24 18:18:23 -04:00
alistair3149 21633dcd3c
feat(core): separate header from personal menu list 2022-05-23 16:10:14 -04:00
alistair3149 eaad65fc3c
feat(core): decorate personal menu for anon users 2022-05-23 15:26:04 -04:00
github-actions c2bde2e6ed ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-22 19:13:26 +00:00
alistair3149 97282a30ba
docs: address various phpcs warnings and errors 2022-05-22 15:12:05 -04:00
github-actions 0256103668 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-22 19:08:18 +00:00
alistair3149 cb6795de0a
refactor(core): clean up inconsistent use of partial variables 2022-05-22 15:06:49 -04:00
github-actions f13bb2ebef ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-21 20:27:46 +00:00
alistair3149 1df970eb41
feat(core): intergrate firstHeading changes from MW 1.39
* It is a temporary backport until we move to minimum 1.39
* Add support for blanking title introduced from 1.38
2022-05-21 16:24:35 -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
github-actions 8c0819c276 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-19 18:50:30 +00:00
alistair3149 c0cae44d41
feat(core): improve handling of number formatter for site stats
* The lack of PECL intl would not trigger an excpetion anymore,
instead it will default back to the regular PHP number format
* NumberFormatter will be based on user locale now instead of en_US
2022-05-19 14:46:35 -04:00
alistair3149 851356f3d9
feat(core): rename $wgCitizenPortalAttach to $wgCitizenSiteToolsPortlet
The previous name was not self-explanatory.
2022-05-18 19:54:08 -04:00
alistair3149 148f2eeefd
docs: add missing param doc 2022-05-18 19:47:52 -04:00
github-actions 0fbac154a7 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-18 23:45:19 +00:00
alistair3149 082b70f7e5
refactor(core): clean up drawer code
* 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
2022-05-18 19:43:50 -04:00
alistair3149 d4c7131c9f
fix(core): call to undefined method RequestContext::getAction()
Bug: #459
2022-05-18 19:15:51 -04:00
alistair3149 1df223abfa
feat(core): update menu to be more inlined with MW core
* Use label instead of h3 for menu headings
* Rename portals to portlets according to core
* Replace label-class with heading-class
* Use has-label to hide labels instead of adding screen reader class
2022-05-18 17:14:24 -04:00
github-actions 5411a9e81a ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-18 18:23:24 +00:00
alistair3149 bbf7fa8b34
fix(core): don't use getActionName < MW 1.38
getActionName does not exist before MW 1.38, use getAction instead

Bug: #459
2022-05-18 14:20:51 -04:00
alistair3149 176adba1fb
fix(core): decoratePersonalMenu should only return array 2022-05-18 02:56:15 -04:00
alistair3149 2ec20bae5d
fix(core): header function can return null (#459) 2022-05-18 02:54:16 -04:00
alistair3149 59607905be
fix(core): incorrect folder name for PSR-4 autoloader
The folder `Api` was not renamed correctly in previous commit, causing webapp
manifest to fail because MW can't locate the correct class.
2022-05-17 22:20:22 -04:00
alistair3149 4710d1e59a
refactor(core): remove MW version check for ULS
The selector is present in MLEB builds that supports 1.35. So we don't need
to exclude 1.35 anymore.
2022-05-17 09:54:31 -04:00
alistair3149 73c61e9b37
feat(core): use ULS for interwiki language menu if possible 2022-05-17 09:42:34 -04:00
github-actions 9ef2aab8b4 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-17 02:53:14 +00:00
alistair3149 93087a4fbe
refactor(core): clean up personal menu implementation 2022-05-16 22:52:04 -04:00
github-actions a24d6daa85 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-17 01:45:15 +00:00
alistair3149 d030c22810
fix(core): add missing SkinAfterPorlet hook 2022-05-16 21:44:11 -04:00
github-actions 29cd22fd7c ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-16 23:32:53 +00:00
alistair3149 9926140281
feat(core): add language count badge
Now the language button will have a badge indicating avaliable languages for the page
2022-05-16 19:31:11 -04:00
github-actions b8976790e5 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-16 04:53:33 +00:00
alistair3149 442f241641
feat(core): add language menu to page tools
In other language menu and language variant menu are merged into a singular menu
with a toggle in page tools. This is the first step towards having better language
handling in the skin.
2022-05-16 00:50:00 -04:00
github-actions e725efa531 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-16 01:39:00 +00:00
alistair3149 7756c3447f
refactor(core): clean up SkinMustache polyfill for 1.35 2022-05-15 21:37:39 -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
alistair3149 5614d2abdf
refactor(core): make api/ directory to use PSR-4 autoloading
Also make use of the correct namespace
2022-05-11 18:34:25 -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 44f9bc0a7c
feat(core): style parenthesis text in FirstHeading differently
Parenthesis text in FirstHeading are commonly used for disambiguation purposes
Therefore it does not have to be as prominent as the title
2022-05-07 00:45:51 -04:00
alistair3149 76a84d9e00 feat(core): add ARIA support to collaspible sections
* Also renamed toggle to indicator since it is misleading. The whole heading is the toggle itself.
2022-04-30 14:48:09 -04:00
Lens0021 2787d49a96
fix: find toolbox explicitly (#448)
The last item in the sidebar is not always the toolbox in some wikis, as result, a wrong portlet is displayed.
2022-04-30 02:54:13 -04:00
alistair3149 8eaaecf957
feat: do not format body content if MobileFrontend is active (#409)
MobileFrontend formats body content to enable features such as collasible headers.
Citizen should not attempt to format it as it will break features in MF.
2022-04-27 15:58:16 -04:00
alistair3149 2c79c061c4 feat: pass styles as style element instead of inline 2022-04-25 20:34:40 -04:00
alistair3149 7dbbc6b777
fix: add null check for user tagline
$editCount can return as null sometimes and throw an error
2022-04-25 02:03:13 -04:00
alistair3149 f05295195a feat: move discussion to the top of the more menu
Also clean up some related-styles
2022-04-24 01:53:47 -04:00
github-actions 2cd9efa4d9 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-04-24 00:27:06 +00:00
alistair3149 3c729928d2
feat: sitestats should show exact number when it is <10000 2022-04-23 20:26:05 -04:00
github-actions 673445c718 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-04-23 05:32:12 +00:00
alistair3149 a8485ac76a
fix: remove unused debug code 2022-04-23 01:31:22 -04:00
alistair3149 6efff7f5da feat: revamp drawer header
* wgLogo is always visible in the drawer
* Increase the size of wiki name
* Sitestats will now format large numbers into human readable formats (e.g. 12.2K, 3M, etc.)
* Sitestats now use icons instead of text as labels
* Remove wordmark for now, will revisit later
2022-04-23 01:30:02 -04:00
alistair3149 f770e250df
refactor: remove unused method 2022-04-19 18:20:06 -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
Lens0021 cebc35fd4b
feat: show footer desc and tagline in the content language (#444) 2022-04-17 12:23:43 -04:00
Lens0021 449278f0be
feat: use template data for page tools if available (#440)
* 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>
2022-04-14 00:30:33 -04:00
github-actions 0c6f22b10d ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-03-05 23:14:48 +00:00
Jon Robson 3e6a240c48 buildContentNavigationUrls is deprecated
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
2022-02-23 00:49:34 -05:00
alistair3149 42df59f2b4
refactor!: drop security header support 2021-08-31 13:20:51 -04:00
alistair3149 f5a2a831d1
feat: add user customizable line height 2021-08-05 11:24:52 -04:00
github-actions 446faaf7f4 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-07-30 02:49:04 +00:00
alistair3149 d6968e9383
fix: undefined userPage variable 2021-06-22 11:23:42 -04:00
github-actions c0ce609cd4 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-06-20 06:04:43 +00:00
alistair3149 bc59fb82aa
refactor: clean up footer functions 2021-06-20 02:03:43 -04:00
alistair3149 0fa725ad77
refactor: do not load ToC styles when not needed 2021-06-09 13:56:32 -04:00
alistair3149 5fcba674ba feat: avoid loading unnessecary features 2021-06-09 13:49:55 -04:00
alistair3149 82d48ac4e8 refactor: depreciate User->isLoggedIn (T270450) 2021-06-09 13:48:16 -04:00
alistair3149 c43e5279dd feat: remove lazyload modules
It is replaced by the core config `$wgNativeImageLazyLoading`
2021-05-17 16:55:11 -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 57ff42abcf
feat: do not call HtmlFormatter when the page is not collapsible (#384) 2021-05-13 09:44:34 -04:00
alistair3149 1a636e788a
fix: inline script should not be loaded on other skins (#376) 2021-05-08 12:41:59 -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 e722cd0560
feat: add shortcut key to page title tooltip 2021-04-26 11:50:04 -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 2cec33906e
refactor: integrate skins.citizen.scripts.theme into core scripts 2021-04-20 23:42:45 -04:00
alistair3149 013cfbb259
feat: add support for Permissions Policy 2021-04-19 14:17:23 -04:00
alistair3149 8aafb50886
fix: load ToC module when ToC present but not a content page 2021-04-17 21:24:08 -04:00
github-actions ec4b3fa5b4 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-04-17 03:42:35 +00:00
alistair3149 607d87a4f6
doc: add missing documentation 2021-04-16 23:41:41 -04:00
alistair3149 1fe399cd85 feat: add user edit count as user page tagline 2021-04-16 23:35:59 -04:00
github-actions 59b90fb202 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-04-17 02:40:47 +00:00
alistair3149 d89f44a76e
feat: allow tagline to be defined for custom namespaces 2021-04-16 22:39:49 -04:00
alistair3149 2a93a292c7
feat: add contextual tagline for different namespaces 2021-04-12 17:09:35 -04:00
alistair3149 670641e903
feat: use slash as shortcut for search 2021-04-12 15:09:28 -04:00
github-actions 4ee628dde4 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-04-09 17:08:41 +00:00
alistair3149 fccf312e7e
refactor: remove the unnecessary usage of array_merge
also move skin features out of construct
2021-04-09 13:08:01 -04:00
github-actions cb8fb498ab ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-04-09 15:48:47 +00:00
alistair3149 bd3eac63bb
refactor: move Mustache templates to root directory 2021-04-09 11:47:48 -04:00
H. C. Kruse 0e63bb6aef
bug: fix changing theme through UPO (#340) 2021-04-06 08:40:15 -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 f8dbbe01a8
fix: move inline theme script into hook
Co-authored-by: Hannes Kruse <hannes@octofox.de>
2021-04-05 09:56:44 -04:00
alistair3149 83c6735cda
bug: fix parsing raw html (#334)
Co-authored-by: Hannes Kruse <hannes@octofox.de>
2021-04-04 11:39:57 -04:00
alistair3149 bc1c1c9001
Merge pull request #329 from octfx/dev
refactor: Don't create sections if they are disabled
2021-03-26 08:36:00 -04:00
Hannes 88912f71b3
refactor: Don't create sections if they are disabled 2021-03-26 08:00:14 +01:00
alistair3149 41a0793ae1
refactor: use isRegistered instead of isLoggedIn
isLoggedIn is depreciated in 1.36
2021-03-25 15:06:54 -04:00
alistair3149 88aed73f5c
feat: format sitestats with separators 2021-03-23 10:38:30 -04:00
github-actions ad899801ff ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-03-22 21:01:56 +00:00
alistair3149 bbbcaba94d
feat: add site stats to drawer 2021-03-22 17:01:08 -04:00
github-actions 373ba3b50c ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-03-18 16:36:39 +00:00
alistair3149 fd931a13d5
feat: add debug styles 2021-03-18 12:35:18 -04:00
alistair3149 2bed65ee2c
fix: missing doc and file from previous commit 2021-03-16 13:10:54 -04:00
alistair3149 65a7ffd927
feat: add short description support 2021-03-16 13:08:47 -04:00
alistair3149 5ee951c1f8
feat: support wikitext in footer description and tagline 2021-03-13 13:15:41 -05:00
alistair3149 062cdd91a1
feat: add option to use REST API as search suggestion source
Co-authored-by: Hannes <hannes@octofox.de>
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
2021-03-12 14:25:32 -05:00
alistair3149 4fb5005bd0 feat: move ULS button back to personal menu 2021-03-11 21:09:43 -05:00
github-actions 1a72f99dd5 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2021-03-12 01:44:25 +00:00
alistair3149 b0f7acd6f0
fix: missing edit count for users without expllict groups 2021-03-11 20:43:36 -05:00
alistair3149 77edd0145a
feat: add experimental caching for search suggestion 2021-03-11 20:26:01 -05:00
alistair3149 582776f0cd
refactor: replace addHeadItem with addInlineScript
Use included method in OutputPage as addHeadItem is not specific and does not support nonce
https://doc.wikimedia.org/mediawiki-core/REL1_35/php/classOutputPage.html#ab87aa6f446da87bdf143998ee0ca5297
2021-03-10 20:35:40 -05:00
alistair3149 112ff9a4b5
feat: add user edit count to personal menu 2021-03-09 15:04:48 -05:00
alistair3149 8971eed653
refactor: rename sitelogo to siteinfo 2021-03-05 11:47:58 -05:00
alistair3149 852bcf8b85
feat: tweak header and drawer logo styles 2021-03-05 11:37:27 -05:00
alistair3149 ae9ab0a8d1
bug: fix null pointer
Authored-by: H. C. Kruse <6594492+octfx@users.noreply.github.com>
2021-03-04 16:50:42 -05:00
alistair3149 b8fc3018ff
feat: implement wordmark in header 2021-03-04 15:08:32 -05:00
Hannes 82f220ec64
refactor: Convert html entitie
And only run collapse on content pages
2021-03-03 09:44:18 +01:00
H. C. Kruse 49f6916195
fix: collapsible section issues (#283)
* fix: DOMDocument parser warnings

* minor: Run phpcbf

* minor: Remove linter warnings

* bug: Fix section.js script name
2021-03-03 03:05:13 -05:00
alistair3149 624d896d73
refactor: rename variables and modules 2021-03-02 19:28:54 -05:00