Järjestelmäviesti:Gadget-Artikkelipohjaus-mini.js

Wikisanakirjasta

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Paina Ctrl-F5.
(function(w){
    function main($) {
        var api, 
        $container, 
        $ph_inp_def, 
        $ph_inp_lang, 
        $ph_inp_generate, 
        $ph_inp_usetemplate, 
        $inp_def, 
        $inp_lang, 
        $inp_generate, 
	$tr_pohja,
        $lnk_pohjatitle, 
        $textbox;

	console.log("versio: 20141214204550 ");
	console.log("main");

        function generate() {
            var wikicode, 
            pohjaartikkeli;

            pohjaartikkeli = $lnk_pohjatitle.html();
            wikicode = "{{sub" + "st:" + pohjaartikkeli + "|" + $inp_def.val() + "}}";
	    
	    jQuery.cookie( 'edellinen_nu_lang', $inp_lang.value, { expires: 1,  path: '/' } );

            api.get({
                action: 'parse',
                onlypst: true,
                text: wikicode,
                prop: 'text', 
                contentmodel: 'wikitext'
            }).done(function (data) {
                var pageText = wikicode;

                console.log("artikkelipohjan lataus onnistui");

                if ( data.parse && data.parse.text ) {
                    pageText = data.parse.text['*'];
                }
                //jQuery('#wpTextbox1').html(JSON.stringify(data, undefined, 2));
                $textbox.html($textbox.html() + pageText + "\n");
                //$nu_definition.val("");

            }).fail(function () {
                console.log("Virhe: sivun " + pohjaartikkeli + " lataus epäonnistui");
                $textbox.html($textbox + wikicode + "\n");
            });
        }

        function etsi_artikkelipohjaa() {
            var kieli = $inp_lang.val();
            if ( !kieli ) return;

            $tr_pohja.hide();
            $inp_generate.hide();

            api.get({
                action: 'query',
                titles: "Wikisanakirja:Artikkelipohjat/" + kieli + "/" + mw.config.get('wgTitle')
            }).done(function (data) {
                console.log("artikkelipohja haku onnistui");
                if ( data.query && data.query.pages ) {
                    var page = data.query.pages[Object.keys(data.query.pages)[0]];
                    if (page && typeof (page.missing) == 'undefined' && page.title) {
                        $lnk_pohjatitle.html(page.title);
                        $tr_pohja.show();
                        $inp_generate.show();
			console.log("tulos: löytyi");
			return;
                    }
		    console.log("tulos: ei löytynyt");
                }
            }).fail(function () {
                console.log("Virhe: sivun " + pohjaartikkeli + " lataus epäonnistui");
            });
        }

        function init() {
	    console.log("init");
            api = new mw.Api();
            $container = $("#nytt_uppslag");
            $ph_inp_def = $("#nu_definition_input");
            $ph_inp_lang = $("#nu_language_input");
            $ph_inp_generate = $("#nu_submit_button");
            $textbox = $("#wpTextbox1");
	    $tr_pohja = $('#nu_tr_pohja');

            if ( $container.length === 0 || $ph_inp_def.length === 0 || $ph_inp_lang.length === 0 
		 || $ph_inp_generate.length === 0 || $tr_pohja.length === 0 || $textbox.length === 0 ) {
		console.log("Virhe: Nappulanpaikkoja ei ole.");
                return;
            }
            $inp_def = $('<input type="text" id="nu_definition" />');
            $ph_inp_def.html($inp_def);

            $inp_lang = $('<input type="text" id="nu_language" />');
            $ph_inp_lang.html($inp_lang);
            $inp_lang.val($.cookie('edellinen_nu_lang'));

            $inp_generate = $('<input type="button" value="Tuo artikkelipohja" >');
            $inp_generate.click(generate);
            $inp_generate.hide();
            $ph_inp_generate.html($inp_generate);
            
            $lnk_pohjatitle = $('<a href=""></a>');
            $tr_pohja.children('td').html(["Sanalle on artikkelipohja sivulla ", $lnk_pohjatitle, "."]);

	    $inp_lang.on('change', etsi_artikkelipohjaa);
	    $container.addClass("enabled");

	    $tr_pohja.hide();
	    $tr_pohja.children('th').html("Artikkelipohja");

	    $('.nu_ei_pohja').hide();

        }; init();

    }

    if ( (mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "submit") && mw.config.get('wgNamespaceNumber') === 0 ) {
	console.log("juuri");
        jQuery(document).ready(main);
    }

})(window);