MediaWiki:RefToolbarConfig.js

From BIONICLEsector01

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: 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('GregCitation', 'greg',
[ // Basic fields
{"field": "page"},
{"field": "post"},
{"field": "lines"}
],
[ // Expanded fields
// Extra options for Farshtey Feed (code FF) are not included
// here since it behaves so differently from the other codes;
// users should enter FF citations manually
]);

new citeTemplate('BZPowerCitation', 'bzpower',
[ // Basic fields
{"field": "section"},
{"field": "archiveurl"},
],
[ // Expanded fields
{"field": "originalurl"},
{"field": "brokenurl"},
]);

new citeTemplate('BionicleStoryWebsiteCitation', 'bioniclestorycom',
[ // Basic fields
{"field": "pagetitle"},
{"field": "archiveurl"},
],
[ // Expanded fields
{"field": "brokenurl"},
]);

new citeTemplate('BionicleWebsiteCitation', 'bioniclecom',
[ // Basic fields
{"field": "pagetitle"},
{"field": "archiveurl"},
],
[ // Expanded fields
{"field": "brokenurl"},
]);

new citeTemplate('TTVCitation', 'ttv',
[ // Basic fields
{"field": "pagetitle"},
{"field": "archiveurl"},
],
[ // Expanded fields
{"field": "originalurl"},
{"field": "brokenurl"},
]);

new citeTemplate('WebsiteCitation', 'website',
[ // Basic fields
{"field": "websitetitle"},
{"field": "pagetitle"},
{"field": "archiveurl"},
],
[ // Expanded fields
{"field": "originalurl"},
{"field": "brokenurl"},
]);

new citeTemplate('BookCitation', 'book',
[ // Basic fields
{"field": "code"},
{"field": "page"},
],
[ // Expanded fields
{"field": "startpage"},
{"field": "endpage"},

{"field": "chaptername"},
{"field": "nochapternameperiod"},
{"field": "chapternumber"},
{"field": "chaptertype"},

{"field": "entryname"},
{"field": "noentrynameperiod"},
{"field": "entrynumber"},
]);

new citeTemplate('ComicCitation', 'comic',
[ // Basic fields
{"field": "code"},
{"field": "page"},
],
[ // Expanded fields
{"field": "startpage"},
{"field": "endpage"},

{"field": "entryname"},
{"field": "noentrynameperiod"},
{"field": "entrynumber"},
]);

new citeTemplate('OnlineCitation', 'online',
[ // Basic fields
{"field": "code"},
{"field": "chapternumber"},
{"field": "chaptername"},
],
[ // Expanded fields
{"field": "nochapternameperiod"},
{"field": "chaptertype"},
]);

new citeTemplate('MediaCitation', 'media',
[ // Basic fields
{"field": "code"},
{"field": "episodenumber"},
{"field": "episodename"},
],
[ // Expanded fields
{"field": "noepisodenameperiod"},
{"field": "episodetype"},
{"field": "time"},
{"field": "starttime"},
{"field": "endtime"},
]);

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();