Okay, so.
There is a file called [mediawiki/core]/resources/jquery/jquery.collapsibleTabs.js. It's unused in core, as far as I could find: there is only a jquery.collapsibleTabs module defined for it, and for some bizarre reason it also greps in /tests/selenium/data/SimpleSeleniumTestDB.sql. Nothing else.
Then there's a file called [mediawiki/extensions/Vector]/modules/ext.vector.collapsibleTabs.js. This one is used all right, and depends on the other one.
And there's at least four things wrong with these two:
- ext.vector one *overwrites* two internal functions of $.collapsibleTabs, just like that. You were using that in your own extension, buddy? Tough luck.
- ext.vector also changes two default settings of the jquery one. Which is fine, except that Vector's ones differ by explicitly handling directionality (which the core version doesn't do). This seems like a bug in core, or dead code in Vector.
- ext.vector depends on h5 headers in the navigation portlets, which were ages ago changed to h3s. I guess this is dead code if nobody noticed during all this time on all Wikimedia wikis, but I'm afraid to clean this up myself.
- And last but not least, why do *two* files for this exist? If this is used only in Vector skin/extension, it should be moved entirely to one place. (And personally I couldn't care less whether this would be the skin (thus core) or the extension. Just plese clean this up.)
I was trying to figure out why are things this way, but the commit that creates this file in Vector has a cryptic message of "Ported JavaScript from UsabiltyIntiative/Vector" [sic], so I gave up.
I came upon this trying to fix bug 20234.
Version: unspecified
Severity: major
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=46513