MediaWiki:Gadget-reftools.js

A Wikipédiából, a szabad enciklopédiából

Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.

  • Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
  • Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: Nyomj Ctrl–F5-öt
// TODO:
// Reference errors:
// Multiple refs given same name
// Unclosed ref tags
// Incorrect date format
// multiple refs contain the same content
// Forrás: http://en.wikipedia.org/w/index.php?title=User:Mr.Z-man/refToolbar.js&oldid=209966388
// Szerző: en:User:Mr.Z-man
// Fordította: User:Bdamokos
var numforms = 0;
var wikEdAutoUpdateUrl;

$(function refbuttons() {
  if (mw.toolbar && document.getElementById('toolbar')) {
    button = document.createElement('a');
    button.href = "javascript:easyCiteMain()";
    button.title = "Forráshivatkozás beillesztése";
    buttonimage = document.createElement('img');
    buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png";
    buttonimage.alt = "Forráshivatkozás beillesztése";
    button.appendChild(buttonimage);
    var toolbar = document.getElementById('toolbar');
    if (navigator.userAgent.indexOf('MSIE') == -1) {
      if (toolbar.style != null) {
        toolbar.style.height = 'auto';
      } else {
        toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
      }
      toolbar.appendChild(button);
      citemain = document.createElement('div');
      citemain.style.display = 'none';
      citemain.style.margin = '0.2em 0 -0.2em 0';
      citemain.setAttribute('Id', 'citeselect');
      citemain.appendChild(addOption("citeWeb()", "Web"));
      citemain.appendChild(addOption("citeNews()", "Hír"));
      citemain.appendChild(addOption("citeBook()", "Könyv"));
      citemain.appendChild(addOption("citeJournal()", "Folyóirat"));
      citemain.appendChild(addOption("citeNamedRef()", "Elnevezett hivatkozás"));
      citemain.appendChild(addOption("hideInitial()", "Mégse"));
      toolbar.appendChild(citemain);
    } else {
      toolbar.appendChild(button);
      selection =
        '<div id="citeselect" style="display:none;margin:0.2em 0 -0.2em 0;"><input type="button" value="Web" onclick="citeWeb()" />' +
        '<input type="button" value="Hír" onclick="citeNews()" />' +
        '<input type="button" value="Könyv" onclick="citeBook()" />' +
        '<input type="button" value="Folyóirat" onclick="citeJournal()" />' +
        '<input type="button" value="Elnevezett hivatkozás" onclick="citeNamedRef()" />' +
        '<input type="button" value="Mégse" onclick="hideInitial()" /></div>';
      toolbar.innerHTML = toolbar.innerHTML + selection;
    }
  }
});

function addOption(script, text) {
  option = document.createElement('input');
  option.setAttribute('type', 'button');
  option.setAttribute('onclick', script);
  option.setAttribute("value", text);
  return option;
}

function hideInitial() {
  document.getElementById('citeselect').style.display = 'none';
  oldFormHide();
}

function oldFormHide() {
  if (numforms != 0) {
    document.getElementById('citediv' + numforms).style.display = 'none';
  }
  if (document.getElementById('errorform') != null) {
    document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
  }
}

function easyCiteMain() {
  document.getElementById('citeselect').style.display = '';
}

function getTime() {
  var time = new Date();
  var nowdate = time.getUTCDate();
  if (nowdate < 10) {
    nowdate = "0" + nowdate.toString();
  }
  var nowmonth = time.getUTCMonth() + 1;
  if (nowmonth < 10) {
    nowmonth = "0" + nowmonth.toString();
  }
  var nowyear = time.getUTCFullYear();
  newtime = nowyear + '-' + nowmonth + '-' + nowdate;
  return (newtime);
}

function citeWeb() {
  citeNewsWeb("cite web");
}

function citeNews() {
  citeNewsWeb("cite news");
}

function citeNewsWeb(templatename) {
  oldFormHide();
  template = templatename;
  var legend;
  if (template == "cite web") {
    legend = "Internetes forrásra hivatkozás";
  } else {
    legend = "Hírforrásra hivatkozás";
  }
  newtime = getTime();
  numforms++;
  form = '<div id="citediv' + numforms + '">' +
    '<fieldset><legend>' + legend + '</legend>' +
    '<table cellspacing="5">' +
    '<input type="hidden" value="' + template + '" id="template">' +
    '<tr><td width="120"><label for="url">&nbsp;URL: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="url"></td>' +
    '<td width="120"><label for="title">&nbsp;Cím: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="title"></td></tr>' +
    '<tr><td width="120"><label for="last">&nbsp;Családnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="last"></td>' +
    '<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
    '<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
    '<td width="120"><label for="date">&nbsp;Kiadás dátuma: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="date"></td></tr>' +
    '<tr><td width="120"><label for="work">&nbsp;Munka: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="work"></td>' +
    '<td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="publisher"></td></tr>' +
    '<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
    '<td width="120"><label for="language">&nbsp;Nyelv: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="language"></td></tr>' +
    '<tr><td width="120"><label for="accessdate">&nbsp;Elérés: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="accessdate" value="' + newtime + '"></td>' +
    '<td width="120"><label for="refname">&nbsp;Hivatkozás neve: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
    '</table>' +
    '<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
    '</fieldset></div>';
  document.getElementById('citeselect').innerHTML += form;
}

function citeBook() {
  oldFormHide();
  template = "cite book";
  numforms++;
  form = '<div id="citediv' + numforms + '">' +
    '<fieldset><legend>Könyvre hivatkozás</legend>' +
    '<table cellspacing="5">' +
    '<input type="hidden" value="' + template + '" id="template">' +
    '<tr><td width="120"><label for="last">&nbsp;Családnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="last"></td>' +
    '<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
    '<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
    '<td width="120"><label for="others">&nbsp;Mások: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="others"></td></tr>' +
    '<tr><td width="120"><label for="title">&nbsp;Cím: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="title"></td>' +
    '<td width="120"><label for="editor">&nbsp;Szerkesztő: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="editor"></td></tr>' +
    '<tr><td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="publisher"></td>' +
    '<td width="120"><label for="location">&nbsp;Kiadás helye: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="location"></td></tr>' +
    '<tr><td width="120"><label for="date">&nbsp;Kiadás dátuma: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="date"></td>' +
    '<td width="120"><label for="edition">&nbsp;Kiadás: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="edition"></td></tr>' +
    '<tr><td width="120"><label for="series">&nbsp;Sorozat: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="series"></td>' +
    '<td width="120"><label for="volume">&nbsp;Kötet: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="volume"></td></tr>' +
    '<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
    '<td width="120"><label for="chapter">&nbsp;Fejezet: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="chapter"></td></tr>' +
    '<tr><td width="120"><label for="isbn">&nbsp;ISBN: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="isbn"></td>' +
    '<td width="120"><label for="oclc">&nbsp;OCLC: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="oclc"></td></tr>' +
    '<tr><td width="120"><label for="url">&nbsp;URL: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="url"></td>' +
    '<td width="120"><label for="accessdate">&nbsp;Elérés: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="accessdate"></td></tr>' +
    '<tr><td width="120"><label for="language">&nbsp;Nyelv: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="language"></td>' +
    '<td width="120"><label for="refname">&nbsp;Hivatkozás neve: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
    '</table>' +
    '<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
    '</fieldset></div>';
  document.getElementById('citeselect').innerHTML += form;
}

function citeJournal() {
  oldFormHide();
  template = "cite journal";
  numforms++;
  form = '<div id="citediv' + numforms + '">' +
    '<fieldset><legend>Folyóiratra hivatkozás</legend>' +
    '<table cellspacing="5">' +
    '<input type="hidden" value="' + template + '" id="template">' +
    '<tr><td width="120"><label for="last">&nbsp;Családnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="last"></td>' +
    '<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
    '<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
    '<td width="120"><label for="date">&nbsp;Kiadás dátuma: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="date"></td></tr>' +
    '<tr><td width="120"><label for="title">&nbsp;Cím: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="title"></td>' +
    '<td width="120"><label for="journal">&nbsp;Folyóirat: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="journal"></td></tr>' +
    '<tr><td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="publisher"></td>' +
    '<td width="120"><label for="location">&nbsp;Kiadás helye: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="location"></td></tr>' +
    '<tr><td width="120"><label for="volume">&nbsp;Évfolyam: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="volume"></td>' +
    '<td width="120"><label for="issue">&nbsp;Szám: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="issue"></td></tr>' +
    '<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
    '<td width="120"><label for="issn">&nbsp;ISSN: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="issn"></td></tr>' +
    '<tr><td width="120"><label for="oclc">&nbsp;OCLC: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="oclc"></td>' +
    '<td width="120"><label for="language">&nbsp;Nyelv: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="language"></td></tr>' +
    '<tr><td width="120"><label for="url">&nbsp;URL: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="url"></td>' +
    '<td width="120"><label for="accessdate">&nbsp;Elérés: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="accessdate"></td></tr>' +
    '<tr><td width="120"><label for="refname">&nbsp;Hivatkozás neve: </label></td>' +
    '<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
    '</table>' +
    '<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
    '</fieldset></div>';
  document.getElementById('citeselect').innerHTML += form;
}

function addcites(template) {
  cites = document.getElementById('citediv' + numforms).getElementsByTagName('input');
  var citebegin = '<ref';
  var citename = '';
  var citeinner = '';
  for (var i = 0; i < cites.length - 1; i++) {
    if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id != "template") {
      citeinner += "|" + cites[i].id + "=" + cites[i].value;
    } else if (cites[i].value != '' && cites[i].id == "refname" && cites[i].id != "template") {
      citebegin += ' name="' + cites[i].value + '"';
    } else if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id == "template") {
      citename = '>{{' + cites[i].value;
    }
  }
  cite = citebegin + citename + citeinner + "}}</ref>";
  insertTags(cite, '', '');
  document.getElementById('citediv' + numforms).style.display = 'none';
}

function getNamedRefs(calls) {
  if (typeof (wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
      WikEdUpdateTextarea();
    }
  }
  text = document.getElementById('wpTextbox1').value;
  var regex;
  if (calls) {
    regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?\/ *?>/gi //'
  } else {
    regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //'
  }
  var namedrefs = new Array();
  var i = 0;
  var nr = true;
  do {
    ref = regex.exec(text);
    if (ref != null) {
      if (ref[5]) {
        namedrefs[i] = ref[5];
      } else if (ref[3]) {
        namedrefs[i] = ref[3];
      } else {
        namedrefs[i] = ref[6];
      }
      i++;
    } else {
      nr = false;
    }
  } while (nr == true);
  return namedrefs;
}

function citeNamedRef() {
  namedrefs = getNamedRefs(false);
  if (namedrefs == '') {
    oldFormHide();
    numforms++;
    out = '<div id="citediv' + numforms + '"><fieldset>' +
      '<legend>Hivatkozások a szövegben</legend>Nincsenek elnevezett hivatkozások (<tt>&lt;ref name="Név"&gt;</tt>) a szövegben</fieldset></div>';
    document.getElementById('citeselect').innerHTML += out;
  } else {
    oldFormHide();
    numforms++;
    form = '<div id="citediv' + numforms + '">' +
      '<fieldset><legend>Hivatkozások a szócikkben</legend>' +
      '<table cellspacing="5">' +
      '<tr><td><label for="namedrefs">&nbsp;Elnevett hivatkozások a szócikkben</label></td>' +
      '<td><select name="namedrefs" id="namedrefs">';
    for (var i = 0; i < namedrefs.length; i++) {
      form += '<option value="' + namedrefs[i] + '">' + namedrefs[i] + '</option>';
    }
    form += '</select>' +
      '</td></tr></table>' +
      '<input type="button" value="Hivatkozás hozzáadása" onClick="addnamedcite()">' +
      '</fieldset></div>';
    document.getElementById('citeselect').innerHTML += form;
  }
}

function addnamedcite() {
  name = document.getElementById('citediv' + numforms).getElementsByTagName('select')[0].value;
  ref = '<ref name="' + name + '" />';
  insertTags(ref, '', '');
  document.getElementById('citediv' + numforms).style.display = 'none';
}