MediaWiki:KontrolaEditace.js

Z WikiSkript

Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.

  • Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
  • Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
  • Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
  • Opera: Stiskněte Ctrl-F5.
/**
 * Úpravy editačního rozhraní WikiSkript
 *
 * @file Úpravy editačního rozhraní a editoru WikiSkript
 * @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
 */

var upravyEditace = {

    /**
     * Uživatelská tlačítka
     */
     uzivatelskaTlacitka: function() {

        // tlačítko "Literatura na konci článku"
        $('#wpTextbox1').wikiEditor('addToToolbar', {
            'section': 'main',
            'group': 'insert',
            'tools': {
                'literaturebutton': {
                    label: 'Literatura na konci článku',
                    type: 'button',
                    icon: 'http://upload.wikimedia.org/wikipedia/commons/8/8d/Wikieditor-references.png',
                    action: {
                        type: 'encapsulate',
                        options: {
                            pre: "<noinclude>\n== Odkazy ==\n=== Související články ===\n=== Externí odkazy ===\n=== Převzato z ===\n=== Použitá literatura ===\n=== Reference ===\n<references />\n</noinclude>\n"
                        }
                    }
                }
            }
        });
 
        // tlačítko "Vložit šablonu"
        $('#wpTextbox1').wikiEditor('addToToolbar', {
            'section': 'advanced',
            'group': 'insert',
            'tools': {
                'templatebutton': {
                    label: 'Vložit šablonu',
                    type: 'button',
                    icon: 'http://upload.wikimedia.org/wikipedia/commons/4/4a/Norwegian_template_sign.png',
                    action: {
                        type: 'encapsulate',
                        options: {
                            pre: "{{",
                            peri: "Šablona",
                            post: "}}"
                        }
                    }
                }
            }
        });
 
        // tlačítko "Vložený článek"
        $('#wpTextbox1').wikiEditor('addToToolbar', {
            'section': 'advanced',
            'group': 'insert',
            'tools': {
                'insertbutton': {
                    label: 'Tento článek je součástí jiného článku',
                    type: 'button',
                    icon: 'http://upload.wikimedia.org/wikipedia/commons/a/a1/Toolbaricon_insert_reference_plus.png',
                action: {
                        type: 'encapsulate',
                        options: {
                            pre: "{{subst:Vlož" + "ený článek}}"
                        }
                    }
                }
            }
        });
    },

    /**
     * Nástroj "Citace"
     */
    citace: function() {
        mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Citace.js&action=raw&ctype=text/javascript");
    },

    /**
     * Nástroj "Pahýl"
     */
    pahyl: function() {
        mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Pahyl.js&action=raw&ctype=text/javascript");
    },
 
    /**
     * Nástroj "Redakční tlačítka"
     */
    redakce: function() {
        mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Redakce.js&action=raw&ctype=text/javascript");
    },

    /**
     * Nástroj "Tlačítka pro pedagogy"
     */
    ucitel: function() {
        mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Ucitel.js&action=raw&ctype=text/javascript");
    },

    /**
     * Nástroj "Ukládací tlačítka"
     */
    ukladaciTlacitka: function() {

        // kontrola editace
        if (mw.config.get("wgUserName") === null) return;
        if (!document.getElementById("wpTextbox1")) return;

        // vytvoření tlačítka "Uložit jako rozpracované"
        tlacitko = document.createElement("input");
        tlacitko.type = "submit";
        tlacitko.value = "Uložit jako rozpracované";

        // tlačítko bude mít funkci vložení šablony a následné převelení na "Uložit změny"
        tlacitko.onclick = function() {
            clanek = document.getElementById("wpTextbox1").value;

            if (clanek.indexOf("{{Pracuje se}}") == -1) {
                clanek = "{{Pracuje se}}\n\n" + clanek;
                document.getElementById("wpTextbox1").value = clanek;
            }

            window.alert("Tento článek bude označen jako rozpracovaný.\n\nDo článku Vám po dobu jednoho měsíce nebude nikdo zasahovat. Pokud na článek zapomenete, kontaktuje Vás redakce WikiSkript.\n\nJestliže máte jakýkoli dotaz či problém, neváhejte se obrátit na redakci WikiSkript nebo požádat o pomoc na adrese info@wikiskripta.eu.");

            document.forms["editform"].elements["wpSave"].click();
        };

        // vložení tlačítka za ostatní tlačítka
        document.getElementById("wpDiff").parentNode.insertBefore(tlacitko, document.getElementById("wpDiff").nextSibling);

        // Tlačítko UKÁZAT ZMĚNY
        // příprava
        buttonShowChanges = document.createElement("span");
        editButtonsRow = $(".editButtons")[0];
        editButtonsRow.appendChild(buttonShowChanges);

        // tlačítko ukázat změny
        bscChanges = document.createElement("a");
        bscChanges.href = "#";

        bscChanges.onclick = function() {
            document.forms["editform"].elements["wpDiff"].click();
            return false;
        };

        bscChanges.appendChild(document.createTextNode("Ukázat změny"));
        buttonShowChanges.appendChild(document.createTextNode(" | "));
        buttonShowChanges.appendChild(bscChanges);
    },

    /**
     * Nástroj upravující důvody smazání stránky
     */
    duvodySmazani: function() {

        // bez mazání ani nezačínat s funkcí
        if (mw.config.get("wgAction") != "delete") return;

        // smazání důvodů
        wpReason = document.getElementById("wpReason");
        if (!wpReason) return;

        // obvyklé důvody
        obvykleDuvody = /(obsah byl|stránka byla prázdná|obsah před vyprázdněním byl)/i;

        // pomocný řetězec
        wpReasonMale = wpReason.value.toLowerCase();

        // zpracování důvodu
        if (obvykleDuvody.test(wpReasonMale)) {
            if((wpReasonMale.indexOf("{{smazat|") != -1) && (wpReasonMale.indexOf("}}") != -1)) {
                indexStart = wpReasonMale.indexOf("{{smazat|") + 9;
                indexEnd = wpReasonMale.indexOf("}}");
                wpReason.value = wpReason.value.substring(indexStart, indexEnd);
            } else {
            wpReason.value = "";
            }
        }
    },

     /**
      * Start funkcí
      */
    start: function() {

        /* uživatelská tlačítka */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
        	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(upravyEditace.uzivatelskaTlacitka);
			            });
		            }
	            });
            }
        }

        /* ukládací tlačítka */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
        	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(upravyEditace.ukladaciTlacitka);
			            });
		            }
	            });
            }
        }

        /* nástroj citace */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) upravyEditace.citace();

        /* nástroj pahýl */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) upravyEditace.pahyl();

        /* nástroje pro redakci */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mwGetUserRight("editor")) upravyEditace.redakce();

        /* nástroje pro učitele */
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mwGetUserRight("pedagogue")) upravyEditace.ucitel();

        /* upravit důvody smazání stránky */
        if (mw.config.get("wgAction") === "delete") upravyEditace.duvodySmazani();

        /* přidání editačních klávesových zkratek */
        if ($.inArray(mw.config.get("wgAction"), ["edit", "submit"]) !== -1) mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:EditacniKlavesoveZkratky.js&action=raw&ctype=text/javascript");
    }
}

/**
 * nastartovat funkce při načtení stránky
 */
$(upravyEditace.start());