MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
Add a primary Membership pill and bring sidebar navigation into compact secondary pills |
Move Club Home into the shared staging navigation |
||
| Line 28: | Line 28: | ||
nav.setAttribute('aria-label', 'SELOC staging sites'); | nav.setAttribute('aria-label', 'SELOC staging sites'); | ||
for (const [name, href] of [ | for (const [name, href] of [ | ||
['Club Home', 'https://f.seloc.club/w691/'], | |||
['Forums', 'https://forumsug.seloc.org/'], | ['Forums', 'https://forumsug.seloc.org/'], | ||
['TechWiki', home], | ['TechWiki', home], | ||
| Line 69: | Line 70: | ||
['Technical subjects', home + '#Technical_Pages'], | ['Technical subjects', home + '#Technical_Pages'], | ||
['Resources', home + '#Non_Technical_Pages'], | ['Resources', home + '#Non_Technical_Pages'], | ||
['A–Z articles', '/a/Special:AllPages | ['A–Z articles', '/a/Special:AllPages'] | ||
]) { | ]) { | ||
const link = document.createElement('a'); | const link = document.createElement('a'); | ||
Revision as of 11:56, 6 November 2026
/* Staging TechWiki navigation and native search. */
(function () {
'use strict';
if (location.hostname !== 'wikiug.seloc.org' || mw.config.get('wgAction') !== 'view') return;
$(function () {
const content = document.querySelector('#content');
if (!content || document.querySelector('.seloc-wiki-shell')) return;
const home = '/a/SELOC_TechWiki';
const shell = document.createElement('div');
shell.className = 'seloc-wiki-shell';
const brand = document.createElement('a');
brand.className = 'seloc-wiki-brand';
brand.href = home;
const logo = document.querySelector('#p-logo a');
if (logo) {
const artwork = getComputedStyle(logo).backgroundImage;
if (artwork && artwork !== 'none') {
const mark = document.createElement('span');
mark.className = 'seloc-wiki-mark';
mark.style.backgroundImage = artwork;
mark.setAttribute('aria-hidden', 'true');
brand.append(mark);
}
}
brand.append(document.createTextNode('LOTUS Enthusiasts Club'));
const nav = document.createElement('nav');
nav.className = 'seloc-wiki-primary';
nav.setAttribute('aria-label', 'SELOC staging sites');
for (const [name, href] of [
['Club Home', 'https://f.seloc.club/w691/'],
['Forums', 'https://forumsug.seloc.org/'],
['TechWiki', home],
['Gallery', 'https://forumsug.seloc.org/cp_gallery.php'],
['Classifieds', 'https://classifiedsug.seloc.org/'],
['Advertisers', 'https://f.seloc.club/w691/index.php/advertisers/'],
['Membership', 'https://f.seloc.club/w691/index.php/membership/']
]) {
const link = document.createElement('a');
link.href = href;
link.textContent = name;
if (name === 'TechWiki') link.setAttribute('aria-current', 'true');
nav.append(link);
}
const form = document.createElement('form');
form.action = mw.config.get('wgScript');
form.method = 'get';
form.setAttribute('role', 'search');
form.setAttribute('aria-label', 'TechWiki articles');
for (const [name, value] of [['title', 'Special:Search'], ['fulltext', '1']]) {
const field = document.createElement('input');
field.type = 'hidden'; field.name = name; field.value = value;
form.append(field);
}
const query = document.createElement('input');
query.type = 'search'; query.name = 'search'; query.required = true;
query.placeholder = 'Search models, parts or jobs';
query.setAttribute('aria-label', 'Search TechWiki articles');
const submit = document.createElement('button');
submit.type = 'submit'; submit.textContent = 'Search';
const index = document.createElement('a');
index.href = '/a/Special:AllPages'; index.textContent = 'A–Z articles';
form.append(query, submit, index);
const techForum = document.querySelector('#n-SELOC-Tech-Forum a');
if (techForum) techForum.href = 'https://forumsug.seloc.org/forumdisplay.php?fid=35';
const browse = document.createElement('nav');
browse.className = 'seloc-wiki-secondary';
browse.setAttribute('aria-label', 'Browse TechWiki');
for (const [name, href] of [
['Models', home + '#Lotus_Cars'],
['Technical subjects', home + '#Technical_Pages'],
['Resources', home + '#Non_Technical_Pages'],
['A–Z articles', '/a/Special:AllPages']
]) {
const link = document.createElement('a');
link.href = href;
link.textContent = name;
browse.append(link);
}
const sidebar = document.querySelector('#p-navigation ul');
if (sidebar) {
for (const link of sidebar.querySelectorAll('li:not(#n-mainpage) > a')) {
browse.append(link.cloneNode(true));
}
}
const toolbox = document.querySelector('#p-tb ul');
if (toolbox && toolbox.children.length) {
const tools = document.createElement('details');
tools.className = 'seloc-wiki-tools';
const label = document.createElement('summary');
label.textContent = 'Wiki tools';
tools.append(label, toolbox.cloneNode(true));
browse.append(tools);
}
if (sidebar) document.body.classList.add('seloc-wiki-compact-nav');
index.remove();
shell.append(brand, nav, browse);
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') shell.append(form);
content.prepend(shell);
content.classList.add('seloc-wiki-enhanced');
document.body.classList.add('seloc-wiki-themed');
if (mw.config.get('wgNamespaceNumber') === 0 && !mw.config.get('wgIsMainPage')) {
content.classList.add('seloc-wiki-article');
}
});
}());