MediaWiki:Common.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
/* testing as per https://en.wikipedia.org/w/index.php?title=User_talk:ערן */
/* customize toolbar for wiki editor https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization */
const d = new Date();
var ISODt = d.toISOString().substring(0, 10);
var customizeToolbar = function () {
/* add comment button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Discuss',
type: 'button',
icon: '//wiki.umintmed.ca/images/9/92/DiscussionButton.png',
action: {
type: 'encapsulate',
options: {
pre: "{{Discuss|",
post: " }}"
}
}
}
}
} );
/* add comment button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Discuss Task',
type: 'button',
icon: '//ccmdb.kuality.ca/images/3/3f/Discuss%40task.png',
action: {
type: 'encapsulate',
options: {
pre: "{{DiscussTask|",
post: " }}"
}
}
}
}
} );
/* add comment button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Discuss Allan',
type: 'button',
icon: 'https://ccmdb.kuality.ca/images/thumb/5/50/Poindexter.jpg/40px-Poindexter.jpg',
action: {
type: 'encapsulate',
options: {
pre: "{{DA|",
post: " }}"
}
}
}
}
} );
/* add DT comment button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Discuss Tina',
type: 'button',
icon: '//ccmdb.kuality.ca/images/thumb/1/19/Swiss_Army_Knife.svg/40px-Swiss_Army_Knife.svg.png',
action: {
type: 'encapsulate',
options: {
pre: "{{DT|",
post: " }}"
}
}
}
}
} );
/* add Todo comment button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Todo',
type: 'button',
icon: '//ccmdb.kuality.ca/images/thumb/1/19/Swiss_Army_Knife.svg/40px-Swiss_Army_Knife.svg.png',
action: {
type: 'encapsulate',
options: {
pre: "{{Todo \n | who = Allan, Julie, Pagasa, Tina \n | todo_added = " + ISODt + "\n | todo_action = " + ISODt + "\n | question = \n* ",
post: " }}"
}
}
}
}
} );
/* add Displaytitle button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'DT',
type: 'button',
icon: '//ccmdb.kuality.ca/images/thumb/1/19/Swiss_Army_Knife.svg/40px-Swiss_Army_Knife.svg.png',
action: {
type: 'encapsulate',
options: {
pre: "{{DISPLAYTITLE:",
post: " }}"
}
}
}
}
} );
/* add Legacy button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Legacy',
type: 'button',
icon: 'https://ccmdb.kuality.ca/images/thumb/4/4d/Legacy.svg/30px-Legacy.svg.png',
action: {
type: 'encapsulate',
options: {
pre: "{{LegacyContent \n| explanation=xxx \n| successor=xxx \n| content= ",
post: "}}"
}
}
}
}
} );
/* add collapsable button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Collapsable',
type: 'button',
icon: '//ccmdb.kuality.ca/images/6/61/Coll.png',
action: {
type: 'encapsulate',
options: {
pre: "{{Collapsable | always=<what to always show, eg. title> | full=",
post: " }}"
}
}
}
}
} );
/* add add related items button */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'main',
group: 'insert',
tools: {
"discussion": {
label: 'Related articles',
type: 'button',
icon: '//ccmdb.kuality.ca/images/9/94/Rel.png',
action: {
type: 'encapsulate',
options: {
pre: "== Related articles == \n{{Related Articles}}\n",
post: ""
}
}
}
}
} );
// close function customizeToolbar
};
/* load the dropdown that shows when you manually edit a page and put [[ */
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar ... */
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
//autocompleter: https://en.wikipedia.org/wiki/User:%D7%A2%D7%A8%D7%9F/autocomplete
mw.loader.load('//he.wikipedia.org/w/load.php?modules=ext.gadget.autocomplete');
mw.loader.using( 'user.options' ).then( function () {
// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
$.when(
mw.loader.using( 'ext.wikiEditor' ), $.ready
).then( customizeToolbar );
}
} );
}
/**
* Wrap #firstHeading in a link to itself.
* Works with Vector 2022 navigation reloads.
*/
function wrapHeadingInLink() {
var pageName = mw.config.get('wgPageName');
if (!pageName) return;
var $heading = $('#firstHeading');
if (!$heading.length || $heading.find('a').length) return;
var pageUrl = mw.util.getUrl(pageName);
var headingText = $heading.text().trim();
$heading.empty().append(
$('<a>')
.attr('href', pageUrl)
.attr('title', 'Right-click to copy link')
.css({
textDecoration: 'none',
color: 'inherit'
})
.text(headingText)
);
}
function setupHeadingWatcher() {
wrapHeadingInLink();
// Re-run when navigation completes
if (window.mw && typeof mw.trackSubscribe === 'function') {
// MW 1.39+ (used by Vector 2022) navigation tracker
mw.trackSubscribe('mw.page.ready', wrapHeadingInLink);
} else {
// Fallback for older setups
window.addEventListener('popstate', wrapHeadingInLink);
}
}
// Load dependencies and run
mw.loader.using(['mediawiki.util']).then(setupHeadingWatcher);