// perustuu https://sv.wiktionary.orghttps://dictious.com/fi/MediaWiki:Gadget-nytt_uppslag.js
(function(w){
var paLoad = false; // avaktivera prototypartiklar
importScript("MediaWiki:Gadget-headings.js");
window.languages = {
fi: "suomi", en: "englanti", es: "espanja", it: "italia", pt: "portugali", sv: "ruotsi", fr: "ranska", de: "saksa", ru: "venäjä", et: "viro"
};
window.h3 = {
subs: "substantiivi", verbi: "verbi", adj: "adjektiivi", adv: "adverbi", eris: "erisnimi", numeraali: "numeraali", prepositio: "prepositio",
konjunktio: "konjunktio", interjektio: "interjektio", pronomini: "pronomini", artikkeli: "artikkeli", prefiksi: "prefiksi",
suffiksi: "suffiksi"
};
function main($) {
function ucFirst(str) {
return str.charAt(0).toUpperCase() + str.substr(1);
}
function malline_kielelle(kk, sl) {
if ( sr_mallineet == undefined || sr_mallineet == undefined ) {
return sr_o_mallineet + kk;
} else {
return sr_mallineet;
}
}
var h3s; // mindre förvirring
// Kielikohtaiset mallineet, sisältää joka kielelle oman osan joka sisältää sanaluokille omat osat.
// Sanaluokkien lyhenteet on määrätty ]-tiedostossa.
var sr_mallineet = {
fi: { subs: "fi-subs", adj: "fi-adj", adv: "fi-adv", verbi: "fi-verbi" },
es: { verbi: "es-verbi" },
sv: { verbi: "sv-verbi" },
de: { verbi: "de-verbi" },
fr: { verbi: "fr-verbi" },
et: { subs: "et-subs", verbi: "et-verbi" },
it: { verbi: "it-verbi" },
pt: { verbi: "pt-verbi" },
};
// oletusarvot, kun kielelle ei löydy omaa sanaluokkakohtaista mallinetta. Huom. kielikoodi lisätään perään
var sr_o_mallineet = { subs: "substantiivi|", adj: "adjektiivi|", adv: "adverbi|", eris: "erisnimi|" };
var n = window.nytt_uppslag = {
lang: function(lang) {
if (lang) $("#nu_lang").prop("value", languages);
},
h3: function(h3) {
if (h3) $("#nu_h3").prop("value", h3s);
},
generate: function(e) {
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.preventDefault) e.preventDefault();
var lang = $("#nu_lang").prop("value"),
h3 = $("#nu_h3").prop("value"),
definition = $("#nu_definition").prop("value"),
textarea = $("#wpTextbox1"),
summary = $("#wpSummary"),
save = $("#wpSave"),
saveTooltip = $("#nu_saveTooltip");
function getCode(all, chosen) {
chosen = chosen.toLowerCase();
if (all) {
return chosen;
}
for (var i in all) {
if (all == chosen) {
return i;
}
}
return false;
}
lang = getCode(languages, lang);
h3 = getCode(h3s, h3);
definition = definition.replace(/^\s*(.*?)\s*$/, "$1");
if (!lang) {
alert("Et ole antanut oikeaa kieltä. Valitse listasta.");
$("#nu_lang").focus();
return false;
}
if (!h3) {
alert("Et ole antanut oikeaa sanaluokkaa/H3-otsikkoa. Valitse listasta.");
$("#nu_h3").focus();
return false;
}
if (!definition) {
alert("Sinun täytyy kirjoittaa sananselitys.");
$("#nu_definition").focus();
return false;
}
$.cookie( 'edellinen_nu_lang', $('nu_lang').prop("value"), { expires: 1, path: '/' } );
$.cookie( 'edellinen_nu_h3', $('nu_h3').prop("value"), { expires: 1, path: '/' } );
var wikicode = "=="+ucFirst(languages)+"==\n" +
"===" + ucFirst(h3s) + "===\n" +
"{{" + malline_kielelle(lang, h3) + "|{{sub" + "st:auto-aak|" + lang + "|" + wgTitle + "}}" + "}}\n" +
"# " + definition + "\n"
"";
if ( $("#cb_aant").checked ) {
wikicode += "\n" +
"====Ääntäminen====\n" +
"\n";
}
if ( $("#cb_taiv").checked ) {
wikicode += "\n" +
"====Taivutus====\n";
wikicode += "\n";
}
if ( $("#cb_ety").checked ) {
wikicode += "\n" +
"====Etymologia====\n" +
"\n";
}
if ( lang == "fi" ) {
wikicode += "\n" +
"====Käännökset====\n" +
"{{subst" + ":kohta|||\n" +
"*en: \n" +
"*es: \n" +
"*fr: \n" +
"*sv: \n" +
"*de: \n" +
"*ru: \n" +
"*et: \n" +
"|loppu}}\n" +
"\n";
}
if ( $("#cb_liit").checked ) {
wikicode += "\n" +
"====Liittyvät sanat====\n" +
"\n";
}
if ( $("#cb_laht").checked ) {
wikicode += "\n" +
"==Lähteet==\n" +
"\n";
}
$("#nu_definition").prop("value", "");
textarea.prop("value", textarea.prop("value") + (textarea.value?"\n\n":"") + wikicode);
textarea.rows = textarea.prop("value").split("\n", 17).length + 8; // standard: 25
summary.prop("value", summary.prop("value") + (summary.value?"; ":"") + "uusi artikkeli ("+languages+")");
saveTooltip.css("display", "block");
save.focus();
return false;
},
fadeSaveTooltip: function() {
var s = $("#nu_saveTooltip").css();
s.css("opacity", s.css("opacity") - 0.1);
if (s.css("opacity") > 0) {
setTimeout(nytt_uppslag.fadeSaveTooltip, 80);
} else {
s.css("display", "none");
s.css("opacity", 1);
}
},
init: function() {
console.log("init");
if (typeof avaktivera_nytt_uppslag != "undefined" && avaktivera_nytt_uppslag) {
//return;
console.log("avaktiverad");
}
h3s = window.h3;
var i,
langs = window.languages, // bägge från ]
container = $("#nytt_uppslag"),
def_input = $("#nu_definition_input"),
lang_input = $("#nu_language_input"),
h3_input = $("#nu_h3_input"),
tips = $("#nu_tips"),
submit = $("#nu_submit_button"),
help_link = $("#nu_help_link");
mo_input = $("#muut_otsikot_input");
if (!container) {
return;
}
var showLangs, showH3s;
if (typeof window.nyttUppslagSprak == "undefined") {
showLangs = $("#nu_language_input").html();
} else {
showLangs = window.nyttUppslagSprak;
}
if (typeof window.nyttUppslagH3 == "undefined") {
showH3s = $("#nu_h3_input").html();
} else {
showH3s = window.nyttUppslagH3;
}
showLangs = showLangs.split(",");
showH3s = showH3s.split(",");
// för språk och ordklass
function multipleChoice(o) {
var i, links = , select = , show_flip = {},
show = o.show, // länkar som visas direkt
all = o.all; // i <select>
for (i = 0; i < show.length; i++) {
links.push("<a href=\"\" onclick=\"nytt_uppslag."+o.func+"('" + show + "'); return false;\">" + all] + "</a> - ");
show_flip ] = true;
}
links = links.join("");
for (i in all) {
if (!show_flip) { // lägg inte till den dubbelt
select.push('<option value="' + i + '">' + all + '</option>\n');
}
}
select = '<select style="display:inline; size: small;" onchange="nytt_uppslag.'+o.func+'(this.value);">' +
"<option value=''>" + o.selectTitle + "</option>" +
select.join("") +
"</select>";
var valittu = all]; if ( o.prev ) valittu = o.prev;
return '<input type="text" id="' + o.id + '" value="' + valittu + '" tabindex="1"/> <span>' + links + select + '</span>';
}
var lang = multipleChoice({
show: showLangs,
all: langs,
func: "lang",
id: "nu_lang",
prev: $.cookie( 'edellinen_nu_lang'),
selectTitle: "Lisää kieliä..."
});
var h3 = multipleChoice({
show: showH3s,
all: h3s,
func: "h3",
id: "nu_h3",
prev: $.cookie( 'edellinen_nu_h3'),
selectTitle: "Lisää H3-otsikoita..."
});
// sätt en <form> runt alltihop
var form = document.createElement("form");
//addHandler(form, "submit", n.generate);
$(form).bind("submit", n.generate);
$(container).wrap(form);
$('infoteksti').html('Huom! Poissa käytöstä. Merkintöjen generoiminen on rikkoutunut.');
// tips
var new_tips = $(tips).clone(true);
new_tips.prop("id", "nu_tips_new");
new_tips.prop("className", "");
$("#nu_tips_position").append(new_tips);
$(tips).remove();
def_input.html('<input type="text" id="nu_definition" tabindex="1"/>');
submit.html('<button type="submit" tabindex="1">' + submit.html() + '</button>');
$(help_link).first().prop("target", "_blank"); // hjälplänken öppnas i nytt fönster
lang_input.html(lang);
h3_input.html(h3);
mo_input.html(' <input type="checkbox" id="cb_aant" tabindex="1"/> Ääntäminen <input type="checkbox" id="cb_taiv" tabindex="1"/> Taivutus <input type="checkbox" id="cb_ety" tabindex="1"/> Etymologia <input type="checkbox" id="cb_liit" tabindex="1" /> Liittyvät sanat <input type="checkbox" id="cb_laht" tabindex="1"/> Lähteet');
container.className = "enabled";
var width = 750; // viewport width
// för alla vanliga webbläsare
if (typeof window.innerWidth != 'undefined') {
width = window.innerWidth;
// IE6
} else if (typeof document.documentElement != 'undefined'
&& typeof document.documentElement.clientWidth != 'undefined'
&& document.documentElement.clientWidth != 0) {
width = document.documentElement.clientWidth;
} // annars uråldrig, ännu äldre IE - vi struntar i dem
if (width < 750) {
container.className += " smallscreen";
}
var save = $("#wpSave"),
saveTooltip = $("#nu_saveTooltip");
$(saveTooltip).bind("mouseout", function() {
if (saveTooltip.css("opacity")) {
setTimeout(n.fadeSaveTooltip, 500);
} else {
setTimeout(function(){saveTooltip.css("display", "none")}, 500);
}
});
$(save).insertBefore(saveTooltip);
}
};
console.log("halojaa");
n.init();
}
if ((wgAction == "edit" || wgAction == "submit") && wgNamespaceNumber == 0) {
jQuery(document).ready(main);
}
})(window);