Page MenuHomeMiraheze

Citizen skin preferences panel is missing preferences
Closed, ResolvedPublic

Description

Wiki URLmeta.miraheze.org, rainverse.wiki, and probably more

List of steps to reproduce (step by step, including full links if applicable):

What happens?:
An empty preferences panel is shown:

What should have happened instead?:
A preferences panel with settings should've been shown

Browser information, screenshots and other applicable information:
Example from https://tilde.wiki/wiki/Main_Page (expected result):

2024-05-31_17-35.png (505×391 px, 38 KB)

Example from https://meta.miraheze.org/wiki/?useskin=citizen (unexpected result):

2024-05-31_17-44.png (116×238 px, 7 KB)

Event Timeline

BlankEclair renamed this task from Citizen skin preferencs panel is missing preferences to Citizen skin preferences panel is missing preferences.Fri, May 31, 07:50

It appears that Miraheze is simultaneously running a newer version of Citizen (one with rewritten preference code), but also an older version of i18n text. To mostly copy what I found on Citizen's issue tracker:

I was unable to reproduce the lack of preferences on a test server running MediaWiki commit 5498056 and Citizen commit dcd569f (same versions as what is reported by Special:Version on Miraheze, but it can be a bit flaky since it reports older versions from the cache).

It appears that this condition is running all the time (link):

const labelMsg = getFeatureLabelMsg( featureName );
// If the user is not debugging messages and no language exists,
// exit as its a hidden client preference.
if ( !labelMsg.exists() && mw.config.get( 'wgUserLanguage' ) !== 'qqx' ) {
	return;

MediaWiki:Citizen-feature-custom-font-size-name on my test server outputs "Text", but that same page on Miraheze says that there is currently no text on that page. Additionally, adding uselang=qqx shows preferences.

Miraheze is at least running commit a741639085d70c22a9f49890542a142a223bf981, since https://meta.miraheze.org/w/load.php?debug=1&modules=skins.citizen.preferences includes the line if ( !labelMsg.exists() && mw.config.get( 'wgUserLanguage' ) !== 'qqx' )

However, it is also not running i18n strings from that commit, since Miraheze has https://meta.miraheze.org/wiki/MediaWiki:Prefs-citizen-theme-label (a key removed since that commit).

It appears that Citizen was updated using mwdeploy without specifying --l10n (source), so the localisation cache was never updated.

From reading the documentation and code, someone (ideally with mwtask* access) needs to run something like mwdeploy --versions=1.41 --l10n

OrangeStar claimed this task.

Thanks Claire for figuring it all out! And thanks OrangeStar for trying to resolve it so quickly.

Since the change, nothing positive seems to have happened on my wiki sadly. I notice the fix did work for https://meta.miraheze.org/wiki/?useskin=citizen and https://rainverse.wiki/wiki/Template:Documentation?useskin=citizen but my preference panel - when I can see it - is the same. Also, the icons (except for the user icon) are now blank and (including the user icon) are no longer interactive when I click them. This changes however when I go to https://www.rothwell-leeds.co.uk/wiki/Main_Page?mobileaction=toggle_view_mobile or https://www.rothwell-leeds.co.uk/wiki/Main_Page?mobileaction=toggle_view_desktop

I thought this was maybe just a browser cache issue but, even after clearing them and trying several browsers (including one I downloaded just to test this), nothing has changed. Though if it is just me, my apologies! Could anyone offer guidance on why it is that my wiki is like thus or how I can fix it?

Edit: I've noticed this is only when I'm logged out and when on the main page. I think maybe the missing icons could be explained by some bad CSS I might have written. But regardless, the preferences icon still doesn't work for me.

In regards to missing icons on rothwellwiki, what happens when you're logged out and try the main page with random gibberish added at the end (like ?wubefqbfe)? If it no longer breaks, then the cause is probably Varnish. I've partially written about it here.

In regards to preferences still not appearing on rothwellwiki, weird. So far, I can tell that rothwellwiki is missing strings from the script (but not when accessing the i18n pages?). For reference, rainversewiki has the i18n strings in the script.

I'm kinda stuck about the missing i18n strings for rothwellwiki (static and partially dynamic analysis as an outsider can only get you so far). Specifying ?uselang=ja or ?uselang=qqx for a page makes it work again. Specifying &lang=ja or even &lang=biwfeibf for the link that loads the module makes it output the strings. What happens if someone kicks it by deleting and/or regenerating the CDB file for en on rothwellwiki?

Thanks again Claire. Either somebody saw what you wrote and fixed it for me or it just sorted itself out because it's all resolved now. I think you were right about the icons too as they came back a couple days after.