|
|
| Řádek 1: |
Řádek 1: |
| | | | |
| − |
| |
| − | var MediaWikiGadgetCitacePRO = (function() {
| |
| − | var xml;
| |
| − | var server = "http://www.citacepro.com/";
| |
| − |
| |
| − | var init = function() {
| |
| − | $('#wpTextbox1').wikiEditor('addToToolbar', {
| |
| − | 'section': 'main',
| |
| − | 'group': 'insert',
| |
| − | 'tools': {
| |
| − | 'CitacePRO': {
| |
| − | label: "Vložit citaci",
| |
| − | type: "button",
| |
| − | icon: "//www.citacepro.com/citace22.png",
| |
| − | action: {type: 'callback', execute: vytvoritCitaci}
| |
| − | }
| |
| − | }
| |
| − | });
| |
| − | }
| |
| − |
| |
| − | function vytvoritCitaci() {
| |
| − | $dialog = $('<p>Zadejte ISBN, DOI, název nebo URL:<br/><input type="text" name="citace" value="" id="hledanyText" style="width: 640px; margin-top: 10px;"/></p>');
| |
| − | $dialog.dialog({
| |
| − | autoOpen: true, title: 'Vložení citace', width: '700px', modal: true,
| |
| − | buttons: {
| |
| − | "Dohledat": function(e) {
| |
| − | prehledCitaci($("#hledanyText").val());
| |
| − | },
| |
| − | "Nový": function(e) {
| |
| − | pouzitCitaci("Kniha");
| |
| − | }
| |
| − | },
| |
| − | close: function() {
| |
| − | $(this).dialog('destroy').remove();
| |
| − | }
| |
| − | });
| |
| − | }
| |
| − |
| |
| − | var prehledCitaci = function(text) {
| |
| − | $dialog.html('');
| |
| − | var nacitani = $('<div id="nacitani">Načítání...</div>');
| |
| − | $dialog.append(nacitani);
| |
| − | var $seznam = $('<ul></ul>');
| |
| − | $.get(server + "xml/naseptavac-dohledani.php?text=" + text, function(data) {
| |
| − | var i = 0;
| |
| − | xml = data;
| |
| − | $(data).find('dokument').each(function() {
| |
| − | var $li = $('<li></li>');
| |
| − | var $odkaz = $('<a class="nalezenaCitace" style="cursor: pointer;" id="citace' + i + '">' + $(this).find("citace").text() + '</a>');
| |
| − | $odkaz.click(function() {
| |
| − | pouzitCitaci($(this).attr("id").substring(6));
| |
| − | });
| |
| − | $li.append($odkaz);
| |
| − | $seznam.append($li);
| |
| − | i++;
| |
| − | });
| |
| − | $("#nacitani").html(i > 0 ? "Zvolte citaci:" : "Nenalezena žádná citace.");
| |
| − | });
| |
| − | $dialog.append($seznam);
| |
| − | //$dialog.dialog('option', 'buttons', "");
| |
| − | $dialog.dialog('option', 'buttons', {"Nový": function(e) {
| |
| − | pouzitCitaci("Kniha");
| |
| − | }});
| |
| − | };
| |
| − |
| |
| − | var zmenaDruhu = function(druh, forma) {
| |
| − | if (druh == 12 || druh == 19) {
| |
| − | forma = true;
| |
| − | }
| |
| − |
| |
| − | $("#radekAutori").css("display", druh != 12 ? "table-row" : "none");
| |
| − | $("#radekPodnazev").css("display", druh != 12 ? "table-row" : "none");
| |
| − | $("#radekVydani").css("display", druh == 1 || druh == 18 ? "table-row" : "none");
| |
| − | $("#radekMisto").css("display", druh != 9 ? "table-row" : "none");
| |
| − | $("#radekVydavatel").css("display", druh == 1 || druh == 18 || druh == 19 || druh == 12 ? "table-row" : "none");
| |
| − | //$("#radekAutoriCelku").css("display", druh == 18 ? "table-row" : "none");
| |
| − | $("#radekNazevCasopisu").css("display", druh == 9 || druh == 18 || druh == 19 || druh == 12 ? "table-row" : "none");
| |
| − | $("#radekRocnik").css("display", druh == 9 ? "table-row" : "none");
| |
| − | $("#radekCislo").css("display", druh == 9 ? "table-row" : "none");
| |
| − | $("#radekPocetStran").css("display", druh == 1 || druh == 5 ? "table-row" : "none");
| |
| − | $("#radekRozsahStran").css("display", druh == 9 || druh == 18 ? "table-row" : "none");
| |
| − | $("#radekISBN").css("display", druh == 1 || druh == 18 ? "table-row" : "none");
| |
| − | $("#radekDOI").css("display", druh == 9 && forma ? "table-row" : "none");
| |
| − | $("#radekSkola").css("display", druh == 5 ? "table-row" : "none");
| |
| − | $("#radekDruhPrace").css("display", druh == 5 ? "table-row" : "none");
| |
| − | $("#radekVedouci").css("display", druh == 5 ? "table-row" : "none");
| |
| − | $("#radekNosic").css("display", forma ? "table-row" : "none");
| |
| − | if (forma && $("#nosic").val() == "") {
| |
| − | $("#nosic").val("on-line");
| |
| − | }
| |
| − |
| |
| − | $("#formy").css("display", druh == 12 || druh == 19 ? "none" : "inline-block");
| |
| − | $("#online").attr("checked", forma);
| |
| − | };
| |
| − |
| |
| − | var pouzitCitaci = function(pouzitaCitace) {
| |
| − | var druhID = 1;
| |
| − | if ("Kniha" != pouzitaCitace) {
| |
| − | $(xml).find('dokument').eq(pouzitaCitace).each(function() {
| |
| − | druhID = $(this).find("druh").text();
| |
| − | });
| |
| − | }
| |
| − | var genre = "book";
| |
| − |
| |
| − | $dialog.html('');
| |
| − | var druhForma = $('<td></td>');
| |
| − | var $druh = $('<select name="druh" id="druh" style="font-size: 14px;"></select>');
| |
| − | $druh.append($("<option" + (druhID == 1 ? ' selected="selected"' : '') + ' value="1">Kniha</option>'));
| |
| − | $druh.append($("<option" + (druhID == 9 ? ' selected="selected"' : '') + ' value="9">Článek</option>'));
| |
| − | $druh.append($("<option" + (druhID == 18 ? ' selected="selected"' : '') + ' value="18">Příspěvek ve sborníku</option>'));
| |
| − | $druh.append($("<option" + (druhID == 12 ? ' selected="selected"' : '') + ' value="12">Webová stránka</option>'));
| |
| − | $druh.append($("<option" + (druhID == 19 ? ' selected="selected"' : '') + ' value="19">Příspěvek na webu</option>'));
| |
| − | $druh.append($("<option" + (druhID == 5 ? ' selected="selected"' : '') + ' value="5">Akademická práce</option>'));
| |
| − | $druh.change(function() {
| |
| − | zmenaDruhu($("#druh").val(), $("#online").is(":checked"));
| |
| − | });
| |
| − | druhForma.append($druh);
| |
| − | var tisteny = $('<input type="radio" id="tisteny" name="forma" value="0" checked="checked"/>');
| |
| − | tisteny.click(function() {
| |
| − | zmenaDruhu($("#druh").val(), false);
| |
| − | });
| |
| − | var online = $('<input type="radio" id="online" name="forma" value="1"/>');
| |
| − | online.click(function() {
| |
| − | zmenaDruhu($("#druh").val(), true);
| |
| − | });
| |
| − | var forma = $('<span id="formy"></span>');
| |
| − | forma.append(tisteny);
| |
| − | forma.append('<label for="tisteny">Tištěný</label>');
| |
| − | forma.append(online);
| |
| − | forma.append('<label for="online">On-line</label>');
| |
| − | druhForma.append(forma);
| |
| − | var $tabulka = $('<table></table>');
| |
| − | $tabulka.append($("<tr></tr>").append($("<th>Druh: </th>")).append(druhForma));
| |
| − | if ("Kniha" == pouzitaCitace) {
| |
| − | $tabulka.append($('<tr id="radekAutori"><th>Autoři:</th><td><input type="text" name="autoriText" id="autoriText" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNazev"><th>Název:</th><td><input type="text" name="nazev" id="nazev" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekPodnazev"><th>Podnázev:</th><td><input type="text" name="podnazev" id="podnazev" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVydani"><th>Vydání:</th><td><input type="text" name="vydani" id="vydani" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekMisto"><th>Místo vydání:</th><td><input type="text" name="misto_vydani" id="misto_vydani" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVydavatel"><th>Vydavatel:</th><td><input type="text" name="nakladatelstvi" id="nakladatelstvi" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNazevCasopisu"><th>Název celku:</th><td><input type="text" name="celekNazev" id="celekNazev" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRok"><th>Rok:</th><td><input type="text" name="datum_vydani" id="datum_vydani" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekPocetStran"><th>Počet stran:</th><td><input type="text" name="pocet_stran" id="pocet_stran" value=""/></td></tr>'));
| |
| − | //$tabulka.append($('<tr id="radekAutoriCelku"><th>Autoři sborníku:</th><td><input type="text" name="autoriText" id="autoriText" value="' + $(this).find("autoriCelekTextCely").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRocnik"><th>Ročník:</th><td><input type="text" name="rocnikPeriodika" id="rocnikPeriodika" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekCislo"><th>Číslo:</th><td><input type="text" name="cisloPeriodika" id="cisloPeriodika" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRozsahStran"><th>Rozsah stran:</th><td><input type="text" name="rozsah_stran" id="rozsah_stran" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekISBN"><th>ISBN:</th><td><input type="text" name="isbn" id="isbn" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr><th>URL:</th><td><input type="text" name="url" id="url" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNosic"><th>Nosič:</th><td><input type="text" name="nosic" id="nosic" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekDOI"><th>DOI:</th><td><input type="text" name="doi" id="doi" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekSkola"><th>Škola:</th><td><input type="text" name="skola" id="skola" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekDruhPrace"><th>Druh práce:</th><td><input type="text" name="druh_prace" id="druh_prace" value=""/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVedouci"><th>Vedoucí práce:</th><td><input type="text" name="vedouci_prace" id="vedouci_prace" value=""/></td></tr>'));
| |
| − | } else {
| |
| − | $(xml).find('dokument').eq(pouzitaCitace).each(function() {
| |
| − | $tabulka.append($('<tr id="radekAutori"><th>Autoři:</th><td><input type="text" name="autoriText" id="autoriText" value="' + $(this).find("autoriTextCely").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNazev"><th>Název:</th><td><input type="text" name="nazev" id="nazev" value="' + $(this).find("nazev").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekPodnazev"><th>Podnázev:</th><td><input type="text" name="podnazev" id="podnazev" value="' + $(this).find("podnazev").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVydani"><th>Vydání:</th><td><input type="text" name="vydani" id="vydani" value="' + $(this).find("vydani").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekMisto"><th>Místo vydání:</th><td><input type="text" name="misto_vydani" id="misto_vydani" value="' + $(this).find(druhID == 12 || druhID == 18 || druhID == 19 ? "celekMistoVydani" : "misto_vydani").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVydavatel"><th>Vydavatel:</th><td><input type="text" name="nakladatelstvi" id="nakladatelstvi" value="' + $(this).find(druhID == 12 || druhID == 18 || druhID == 19 ? "celekNakladatelstvi" : "nakladatelstvi").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNazevCasopisu"><th>Název celku:</th><td><input type="text" name="celekNazev" id="celekNazev" value="' + $(this).find("celekNazev").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRok"><th>Rok:</th><td><input type="text" name="datum_vydani" id="datum_vydani" value="' + $(this).find(druhID == 12 || druhID == 18 || druhID == 19 ? "celekDatumVydani" : "datum_vydani").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekPocetStran"><th>Počet stran:</th><td><input type="text" name="pocet_stran" id="pocet_stran" value="' + $(this).find("pocet_stran").text() + '"/></td></tr>'));
| |
| − | //$tabulka.append($('<tr id="radekAutoriCelku"><th>Autoři sborníku:</th><td><input type="text" name="autoriText" id="autoriText" value="' + $(this).find("autoriCelekTextCely").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRocnik"><th>Ročník:</th><td><input type="text" name="rocnikPeriodika" id="rocnikPeriodika" value="' + $(this).find("celekRocnikPeriodika").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekCislo"><th>Číslo:</th><td><input type="text" name="cisloPeriodika" id="cisloPeriodika" value="' + $(this).find("celekCisloPeriodika").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekRozsahStran"><th>Rozsah stran:</th><td><input type="text" name="rozsah_stran" id="rozsah_stran" value="' + $(this).find("rozsah_stran").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekISBN"><th>ISBN:</th><td><input type="text" name="isbn" id="isbn" value="' + $(this).find("isbn").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr><th>URL:</th><td><input type="text" name="url" id="url" value="' + $(this).find("url").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekNosic"><th>Nosič:</th><td><input type="text" name="nosic" id="nosic" value="' + $(this).find("nosic").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekDOI"><th>DOI:</th><td><input type="text" name="doi" id="doi" value="' + $(this).find("doi").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekSkola"><th>Škola:</th><td><input type="text" name="skola" id="skola" value="' + $(this).find("skola").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekDruhPrace"><th>Druh práce:</th><td><input type="text" name="druh_prace" id="druh_prace" value="' + $(this).find("druh_prace").text() + '"/></td></tr>'));
| |
| − | $tabulka.append($('<tr id="radekVedouci"><th>Vedoucí práce:</th><td><input type="text" name="vedouci_prace" id="vedouci_prace" value="' + $(this).find("vedouci_prace").text() + '"/></td></tr>'));
| |
| − | });
| |
| − | }
| |
| − |
| |
| − | $dialog.append($tabulka);
| |
| − | if (druhID == 9) {
| |
| − | genre = "article";
| |
| − | zmenaDruhu(9, true);
| |
| − | } else if (druhID == 18) {
| |
| − | genre = "proceeding";
| |
| − | zmenaDruhu(18, true);
| |
| − | } else if (druhID == 19) {
| |
| − | genre = "wikipedia";
| |
| − | zmenaDruhu(19, true);
| |
| − | } else if (druhID == 12) {
| |
| − | genre = "web";
| |
| − | zmenaDruhu(12, true);
| |
| − | } else if (druhID == 5) {
| |
| − | genre = "thesis";
| |
| − | zmenaDruhu(5, false);
| |
| − | } else {
| |
| − | zmenaDruhu(1, false);
| |
| − | }
| |
| − |
| |
| − | $dialog.dialog('option', 'buttons', {"Vložit citaci": function(e) {
| |
| − | var url = server + "vygenerovat-citaci?genre=" + genre
| |
| − | + (druhID != 12 ? "&authors=" + $("#autoriText").val() : "")
| |
| − | + (druhID == 1 || druhID == 5 || druhID == 12 ? "&title=" + $("#nazev").val() + (":" + $("#podnazev").val()) : "")
| |
| − | + (druhID == 9 || druhID == 18 || druhID == 19 ? "&atitle=" + $("#nazev").val() + (":" + $("#podnazev").val()) : "")
| |
| − | + (druhID == 9 || druhID == 18 || druhID == 19 ? "&title=" + $("#celekNazev").val() : "")
| |
| − | + (druhID == 1 || druhID == 18 ? "&edition=" + $("#vydani").val() : "")
| |
| − | + (druhID != 19 ? "&place=" + $("#misto_vydani").val() : "")
| |
| − | + (druhID == 1 || druhID == 18 || druhID == 19 || druhID == 12 ? "&publisher=" + $("#nakladatelstvi").val() : "")
| |
| − | + "&year=" + $("#datum_vydani").val()
| |
| − | + (druhID == 9 ? "&volume=" + $("#rocnikPeriodika").val() : "")
| |
| − | + (druhID == 9 ? "&issue=" + $("#cisloPeriodika").val() : "")
| |
| − | + (druhID == 1 || druhID == 5 ? "&pages=" + $("#pocet_stran").val() : "")
| |
| − | + (druhID == 9 || druhID == 18 ? "&pages=" + $("#rozsak_stran").val() : "")
| |
| − | + (druhID == 1 || druhID == 18 ? "&isbn=" + $("#isbn").val() : "")
| |
| − | + "&url=" + $("#url").val()
| |
| − | + (druhID == 9 && $("#online").is(":checked") ? "&doi=" + $("#doi").val() : "")
| |
| − | + (druhID == 5 ? "&school=" + $("#skola").val() + "&supervisor=" + $("#vedouci_prace").val() : "");
| |
| − | $.get(url, function(data) {
| |
| − | //alert(data);
| |
| − | $('#wpTextbox1').textSelection('encapsulateSelection', {pre: "<ref>", peri: data, post: "</ref>"});
| |
| − | $dialog.dialog("close");
| |
| − | });
| |
| − | }});
| |
| − | };
| |
| − |
| |
| − | return {
| |
| − | init: init
| |
| − | };
| |
| − | })();
| |
| − |
| |
| − | // Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . .
| |
| − | if ($.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
| |
| − | mw.loader.using( 'user.options', function () {
| |
| − | if (mw.user.options.get('usebetatoolbar') && mw.user.options.get( 'showtoolbar' ) ) {
| |
| − | mw.loader.using( 'ext.wikiEditor.toolbar', function () {
| |
| − | $(document).ready(MediaWikiGadgetCitacePRO.init);
| |
| − | });
| |
| − | }
| |
| − | });
| |
| − | }
| |