|
|
Line 1: |
Line 1: |
| /* Sitewide options for the the Cite toolbar button:
| | ( function ( mw, $ ) { |
| * All options should be specified
| | 'use strict'; |
| *
| | function initializeRefTools() { |
| * "date format" sets the date format used for the function to insert the current date
| | if( window.refToolbarInstalled || $( '#wpTextbox1[readonly]' ).length ){ |
| * Current available options:
| | return; |
| * date - the day of the month
| | } |
| * zdate - day of the month, zero padded to 2 digits
| | if ( mw.user.options.get( 'usebetatoolbar' ) ) { |
| * monthname - The month name
| | // Enhanced editing toolbar is on. Going to load RefToolbar 2.0. |
| * month - The numberic month (1-12)
| | $.getScript( '//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-refToolbarBase.js&action=raw&ctype=text/javascript', function() { |
| * zmonth - numeric month, zero padded to 2 digits
| | mw.loader.using( [ 'ext.wikiEditor' ], function () { |
| * year - The full year (4 digits)
| | mw.loader.load( '//en.wikipedia.org/w/index.php?title=MediaWiki:RefToolbar.js&action=raw&ctype=text/javascript' ); |
| *
| | } ); |
| * "autodate fields" is a list of template fields that should have a button to insert the current date
| | } ); |
| *
| | } else if ( mw.user.options.get( 'showtoolbar' ) ) { |
| * "months" is a list of localized month names
| | // Enhanced editing toolbar is off. Loading RefToolbar 1.0. (legacy) |
| *
| | mw.loader.load( '//en.wikipedia.org/w/index.php?title=MediaWiki:RefToolbarLegacy.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400' ); |
| * "modal" - if true, the dialogs will be modal windows, blocking access to the rest of the window.
| | } else { |
| * See http://en.wikipedia.org/wiki/Modal_window
| | return; |
| * All dialogs in the toolbar are modal by default
| | } |
| *
| | window.refToolbarInstalled = true; |
| * "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.
| | if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) { |
| *
| | // Double check if user.options is loaded, to prevent errors when copy pasted accross installations |
| * "expandtemplates" - if true, templates and parser functions will be expanded when getting page text
| | $.when( mw.loader.using( ['user.options'] ), $.ready ).done( initializeRefTools ); |
| * (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.
| | }( mediaWiki, jQuery ) ); |
| */
| |
| | |
| 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"}
| |
| ]);
| |
| | |
| 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": "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"}
| |
| ]);
| |
| | |
| 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"}
| |
| ]);
| |
| | |
| 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"}
| |
| ]);
| |
| | |
| 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();
| |