Jump to content

MediaWiki:RefToolbarConfig.js

From Wikipedia!

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.
/* Sitewide options for the the Cite toolbar button:
* All options should be specified
*
* "date format" sets the date format used for the function to insert the current date
* Current available options:
* date - the day of the month
* zdate - day of the month, zero padded to 2 digits
* monthname - The month name
* month - The numberic month (1-12)
* zmonth - numeric month, zero padded to 2 digits
* year - The full year (4 digits)
*
* "autodate fields" is a list of template fields that should have a button to insert the current date
* 
* "months" is a list of localized month names
*
* "modal" - if true, the dialogs will be modal windows, blocking access to the rest of the window.
* See https://en.wikipedia.org/wiki/Modal_window
* All dialogs in the toolbar are modal by default
*
* "autoparse" - if true, previewing a ref will automatically trigger a preview of the parsed wikitext.
* It is not recommended to set this to true as a global setting as it may slow the script down for
* people with slow connections.
*
* "expandtemplates" - if true, templates and parser functions will be expanded when getting page text
* (templates inside of ref tags will not be expanded). This will allow references inside of templates or
* references using {{#tag:ref}} to be listed in the named refs dialog and searched by error checks.
* This may slow loading the named refs and error check dialogs.
*/

CiteTB.Options = {
	"date format": "<date> <monthname> <year>",
	"autodate fields": ['access-date'],
	"months": ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	"modal": true,
	"autoparse": true,
	"expandtemplates": false
};

// Cite template definitions
new citeTemplate('cite web', 'web',
	[ // Basic fields
		{"field": "last<N>", "autofillprop": "last-incr", 'increment_group': 'author'},
		{"field": "first<N>", "autofillprop": "first-incr", 'increment_group': 'author', 'increment_button': true},
		{"field": "title", "autofillprop": "title"},
		{"field": "url", "autofillid": "url"},
		{"field": "website", "autofillprop": "journal"},
		{"field": "publisher", "autofillprop": "publisher"},
		{"field": "access-date"},
		{"field": "ref", "tooltip": "cite-ref-tooltip"}
	],
	[ // Expanded fields
		{"field": "author<N>", 'increment_group': 'author_alt', 'increment_button': true},
		{
			"field": "author<N>-link",
			"tooltip": "cite-authorlink-tooltip",
			'increment_group': 'authorlink',
			'increment_button': true
		},
		{"field": "archive-url"},
		{"field": "archive-date"},
		{"field": "location"},
		{"field": "page", "tooltip": "cite-page-tooltip"},
		{"field": "pages", "autofillprop": "pages", "tooltip": "cite-pages-tooltip"},
		{"field": "language", "autofillprop": "language"},
		{"field": "format"},
		{"field": "doi", "autofillid": "doi", "autofillprop": "doi"},
		{"field": "date", "autofillprop": "date"},
		{"field": "quote"},
		{"field": "url-status", "tooltip": "cite-urlstatus-tooltip"},
		{"field": "trans-title"},
	]);

new citeTemplate('cite news', 'news',
	[ // Basic fields
		{"field": "last<N>", "autofillprop": "last-incr", 'increment_group': 'author'},
		{"field": "first<N>", "autofillprop": "first-incr", 'increment_group': 'author', 'increment_button': true},
		{"field": "title", "autofillprop": "title"},
		{"field": "url", "autofillid": "url"},
		{"field": "access-date"},
		{"field": "work", "tooltip": "cite-work-tooltip", "autofillprop": "journal"},
		{"field": "agency", "tooltip": "cite-agency-tooltip"},
		{"field": "volume"},
		{"field": "issue"},
		{"field": "publisher", "tooltip": "cite-publisher-tooltip", "autofillprop": "publisher"},
		{"field": "date", "autofillprop": "date"},
		{"field": "ref", "tooltip": "cite-ref-tooltip"}
	],
	[ // Expanded fields
		{"field": "author<N>", 'increment_group': 'author_alt', 'increment_button': true},
		{
			"field": "author<N>-link",
			"tooltip": "cite-authorlink-tooltip",
			'increment_group': 'authorlink',
			'increment_button': true
		},
		{"field": "archive-url"},
		{"field": "archive-date"},
		{"field": "location"},
		{"field": "page", "tooltip": "cite-page-tooltip"},
		{"field": "pages", "autofillprop": "pages", "tooltip": "cite-pages-tooltip"},
		{"field": "language", "autofillprop": "language"},
		{"field": "format"},
		{"field": "doi", "autofillid": "doi", "autofillprop": "doi"},
		{"field": "quote"},
		{"field": "url-status", "tooltip": "cite-urlstatus-tooltip"},
		{"field": "trans-title"}
	]);

new citeTemplate('cite book', 'book',
	[ // Basic fields
		{"field": "last<N>", "autofillprop": "last-incr", 'increment_group': 'author'},
		{"field": "first<N>", "autofillprop": "first-incr", 'increment_group': 'author', 'increment_button': true},
		{"field": "title", "autofillprop": "title"},
		{"field": "date", "autofillprop": "date"},
		{"field": "publisher", "autofillprop": "publisher"},
		{"field": "location", "autofillprop": "location"},
		{"field": "isbn", "autofillid": "isbn", "autofillprop": "isbn"},
		{"field": "page", "tooltip": "cite-page-tooltip"},
		{"field": "pages", "autofillprop": "pages", "tooltip": "cite-pages-tooltip"},
		{"field": "edition", "autofillprop": "edition"},
		{"field": "url", "autofillid": "url"},
		{"field": "access-date"},
		{"field": "ref", "tooltip": "cite-ref-tooltip"},
	],
	[ // Expanded fields
		{"field": "author<N>", 'increment_group': 'author_alt', 'increment_button': true},
		{
			"field": "author<N>-link",
			"tooltip": "cite-authorlink-tooltip",
			'increment_group': 'authorlink',
			'increment_button': true
		},
		{"field": "editor<N>-last", "increment_group": "editor"},
		{"field": "editor<N>-first", "increment_group": "editor", "increment_button": true},
		{"field": "editor<N>-link", 'increment_group': 'editorlink', 'increment_button': true},
		{"field": "archive-url"},
		{"field": "archive-date"},
		{"field": "language", "autofillprop": "language"},
		{"field": "format"},
		{"field": "chapter", "autofillprop": "chapter"},
		{"field": "quote"},
		{"field": "url-status", "tooltip": "cite-urlstatus-tooltip"},
		{"field": "trans-title"}
	]);

new citeTemplate('cite journal', 'journal',
	[ // Basic fields
		{"field": "last<N>", "autofillprop": "last-incr", 'increment_group': 'author'},
		{"field": "first<N>", "autofillprop": "first-incr", 'increment_group': 'author', 'increment_button': true},
		{"field": "title", "autofillprop": "title"},
		{"field": "journal", "autofillprop": "journal"},
		{"field": "date", "autofillprop": "date"},
		{"field": "volume", "autofillprop": "volume"},
		{"field": "issue", "autofillprop": "issue"},
		{"field": "page", "tooltip": "cite-page-tooltip"},
		{"field": "pages", "autofillprop": "pages", "tooltip": "cite-pages-tooltip"},
		{"field": "doi", "autofillid": "doi", "autofillprop": "doi"},
		{"field": "pmid", "autofillid": "pmid"},
		{"field": "url", "autofillid": "url"},
		{"field": "access-date"},
		{"field": "ref", "tooltip": "cite-ref-tooltip"},
	],
	[ // Expanded fields
		{"field": "author<N>", 'increment_group': 'author_alt', 'increment_button': true},
		{
			"field": "author<N>-link",
			"tooltip": "cite-authorlink-tooltip",
			'increment_group': 'authorlink',
			'increment_button': true
		},
		{"field": "editor<N>-last", "increment_group": "editor"},
		{"field": "editor<N>-first", "increment_group": "editor", "increment_button": true},
		{"field": "editor<N>-link", 'increment_group': 'editorlink', 'increment_button': true},
		{"field": "series"},
		{"field": "at", "tooltip": "cite-at-tooltip"},
		{"field": "trans-title"},
		{"field": "publisher", "autofillprop": "publisher"},
		{"field": "location"},
		{"field": "language", "autofillprop": "language"},
		{"field": "format"},
		{"field": "issn", "autofillprop": "issn"},
		{"field": "pmc"},
		{"field": "oclc"},
		{"field": "bibcode"},
		{"field": "id"},
		{"field": "quote"},
		{"field": "postscript", "tooltip": "cite-postscript-tooltip"},
		{"field": "url-status", "tooltip": "cite-urlstatus-tooltip"}
	]);

new citeErrorCheck({
		'type': 'reflist', 'testname': 'samecontent', 'desc': 'cite-samecontent-desc',
		'func': function (reflist) {
			var errors = [];
			var refs2 = [];
			for (var i = 0; i < reflist.length; i++) {
				if (!reflist[i].shorttag) {
					if ($.inArray(reflist[i].content, refs2) != -1) {
						if ($.inArray(reflist[i].content, errors) == -1) {
							errors.push(reflist[i].content);
						}
					} else {
						refs2.push(reflist[i].content);
					}
				}
			}
			ret = [];
			for (var j = 0; j < errors.length; j++) {
				ret.push({'msg': 'cite-samecontent-error', 'err': errors[j]});
			}
			return ret;
		}
	}
);

new citeErrorCheck({
		'type': 'reflist', 'testname': 'repeated', 'desc': 'cite-repeated-desc',
		'func': function (reflist) {
			var errors = [];
			var refs2 = [];
			for (var i = 0; i < reflist.length; i++) {
				if (!reflist[i].shorttag && reflist[i].refname) {
					if ($.inArray(reflist[i].refname, refs2) != -1) {
						if ($.inArray(reflist[i].refname, errors) == -1) {
							errors.push(reflist[i].refname);
						}
					} else {
						refs2.push(reflist[i].refname);
					}
				}
			}
			ret = [];
			for (var j = 0; j < errors.length; j++) {
				ret.push({'msg': 'cite-repeated-error', 'err': errors[j]});
			}
			return ret;
		}
	}
);

new citeErrorCheck({
		'type': 'reflist', 'testname': 'undefined', 'desc': 'cite-undefined-desc',
		'func': function (reflist) {
			var errors = [];
			var longrefs = [];
			for (var i = 0; i < reflist.length; i++) {
				if (!reflist[i].shorttag && reflist[i].refname) {
					longrefs.push(reflist[i].refname);
				}
			}
			for (var j = 0; i < reflist.length; j++) {
				if (reflist[i].shorttag && $.inArray(reflist[i].refname, errors) == -1 && $.inArray(reflist[i].refname, longrefs) == -1) {
					errors.push(reflist[i].refname);
				}
			}
			ret = [];
			for (var j = 0; j < errors.length; j++) {
				ret.push({'msg': 'cite-undefined-error', 'err': errors[j]});
			}
			return ret;
		}
	}
);

CiteTB.init();