MediaWiki:Skin/Frage.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (auch son trailing comma) |
|||
(112 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | var fragenkats = [ | ||
+ | "Beauty & Style", | ||
+ | "Computer & Internetz", | ||
+ | "Essen & Trinken", | ||
+ | "Freizeit", | ||
+ | "Freunde & Familie", | ||
+ | "Gesundheit", | ||
+ | "Haus & Garten", | ||
+ | "Kultur & Gesellschaft", | ||
+ | "Kunst & Unterhaltung", | ||
+ | "Kunst & Unterhaltung", | ||
+ | "Politik", | ||
+ | "Reisen", | ||
+ | "Transport & Verkehr", | ||
+ | "Umwelt", | ||
+ | "Wirtschaft & Finanzen", | ||
+ | "Wissenschaft" | ||
+ | ]; | ||
− | + | ||
− | // | + | function fragenkatsHTML() { |
− | + | var html = '<div id="fragenkats" style="float:right;"><b>Themengebiete</b> (ohne Funktion!)<br />'; | |
+ | |||
+ | for (var i = 0; i < fragenkats.length; i++) { | ||
+ | var kat = fragenkats[i]; | ||
+ | html += "<input type='checkbox' id='fakat_" + i + "' name='fakat_" + i + "'><label for='fakat_" + i + "' style='color:#fff;'>" + kat + "</label><br/>"; | ||
+ | } | ||
+ | |||
+ | html += '</div>'; | ||
+ | return html; | ||
} | } | ||
+ | //funzt net | ||
+ | function fa_fehler() { | ||
+ | jQuery('#mw-js-message').html("Hmm, es ist ein Fehler aufgetreten!"); | ||
+ | jQuery('#mw-js-message').slideDown('fast'); | ||
+ | } | ||
+ | |||
+ | //dependencies | ||
+ | mw.loader.using(['jquery.ui.dialog'], function () { | ||
+ | |||
+ | //abfeuern, wenn document ready | ||
+ | jQuery(document).ready(function () { | ||
+ | // vars wegen unterschiedlicher skins ... | ||
+ | var fa_skin = mw.user.options.get('skin'); | ||
+ | var fa_heading = "#firstHeading"; | ||
+ | var fa_footer = "#catlinks"; | ||
+ | |||
+ | if (fa_skin == "wptouch") { | ||
+ | fa_heading = "h2"; | ||
+ | fa_footer = ".cleared" | ||
+ | } | ||
+ | // Wenn Frage länger als erlaubte Seitentitellänge, dann austauschen den Kram, ansonsten nur den Titel ohne NS | ||
+ | if (jQuery('#fragezulang').text().length > 0) { | ||
+ | jQuery(fa_heading).text(jQuery('#fragezulang').text()); | ||
+ | jQuery('#fragezulang').hide(0); | ||
+ | } else { | ||
+ | jQuery(fa_heading).text(jQuery(fa_heading).text().replace("Frage:", "")); | ||
+ | } | ||
+ | //Hauptseitenlinks verdrehen | ||
+ | if (fa_skin == "vector") { | ||
+ | jQuery('#p-logo').html(jQuery('#p-logo').html().replace('Kamelopedia:Hauptseite', 'Frage:Hauptseite')); | ||
+ | // Zufällige Frage | ||
+ | jQuery('#p-Navigation').html(jQuery('#p-Navigation').html().replace('">Zufällige Seite', '/Frage">Zufällige Frage')); | ||
+ | } | ||
+ | jQuery('#n-Hauptseite').html(jQuery('#n-Hauptseite').html().replace('Kamelopedia:Hauptseite', 'Frage:Hauptseite')); | ||
+ | //temp: sobald NS-Frage fei, dann nur noch Link austauschen | ||
+ | jQuery("#n-KameloNews").before("<li><a href='/index.php/Kamelopedia:Hauptseite'>Kamelopedia</a></li>"); | ||
+ | |||
+ | //Zeuch | ||
+ | //Knöppe & Formular und so nicht auf Diskussionsseite | ||
+ | //temp Namenrum nicht bearbeitbar | ||
+ | //jQuery(fa_heading).before("<div id='fragtmp' style='color:red;text-align:center;'>Dieser Namensraum ist noch eine Baustelle, und kann bisher nur von Kameltreibern bearbeitet werden.</div>"); | ||
+ | if (mw.config.get('wgNamespaceNumber') != 115 && (location.href.indexOf("action=") < 0) && mw.config.get('wgArticleId') != 0) { | ||
+ | var knopptext = "Diese Frage beantworten"; | ||
+ | var formulartext = "Deine Antwort"; | ||
+ | var neuefrage = false; | ||
+ | var summarytext = "Antwort"; | ||
+ | var apiaction = "edit"; | ||
+ | var hinweis = "Denk daran: Dies ist ein Humorwiki.<br/>Keine der hier gestellten Fragen ist ernst gemeint. Das sollte auch für deine Antwort gelten."; | ||
+ | |||
+ | if (mw.config.get('wgPageName') == "Frage:Hauptseite" && (location.href.indexOf("action=") < 0) && mw.config.get('wgArticleId') != 0) { | ||
+ | knopptext = "Eine neue Frage stellen …"; | ||
+ | formulartext = "Deine Frage"; | ||
+ | neuefrage = true; | ||
+ | summarytext = "Neue Frage"; | ||
+ | apiaction = "edit"; | ||
+ | var hinweis = "Denk daran: Dies ist ein Humorwiki.<br/>Wenn du ernsthafte Antworten erwartest, dann frag besser woanders …"; | ||
+ | } | ||
+ | jQuery("#bodyContent").before("<div id='fragnav'><span id='fak' class='fragnavknopp'>" + knopptext + "</span></div>"); | ||
+ | jQuery("#fragnav").after("<div id='fragantwort' style='display:none;'><h5>" + formulartext + "</h5><div class='fragehinweis'>" + hinweis + "</div><form id='fragantwort_form' style='width:90%'><textarea style='height:100px;' /><br/><input type='submit' value='Speichern' /><input id='fragantwort_reset' type='reset' value='abbrechen'></form></div><div id='dialog-modal' title='Das speichere ich nicht!' style='display:none;'><p>Oh wie lustig, eine leere Antwort speichern ... mach ich nicht:P</p></div>"); | ||
+ | //jQuery("#fragantwort_form").before(fragenkatsHTML()); | ||
+ | jQuery("#fragantwort_form").submit(function () { | ||
+ | var wgUserName = mw.config.get('wgUserName'); | ||
+ | if (mw.config.get('wgUserGroups').length == 1) { | ||
+ | var kamelname = "~~" + "~" | ||
+ | } else { | ||
+ | var kamelname = "[[Kamel:" + wgUserName + "|" + wgUserName + "]]" | ||
+ | } | ||
+ | if (jQuery("#fragantwort_form textarea").val() == "") { | ||
+ | jQuery("#dialog-modal").dialog({ | ||
+ | maxWidth: 650, | ||
+ | modal: true | ||
+ | }); | ||
+ | return false; | ||
+ | } | ||
+ | //neue frage oder nicht oder was? | ||
+ | if (neuefrage) { | ||
+ | var frageurl = encodeURIComponent("Frage:" + jQuery("#fragantwort_form textarea").val()); | ||
+ | if (frageurl.length > 240) { | ||
+ | var seitentext = "[[Kategorie:!Frage]]<div id='fragezulang'>" + jQuery("#fragantwort_form textarea").val() + "</div>"; | ||
+ | seitentitel = decodeURIComponent(frageurl.substring(0, 240) + "%E2%80%A6%3F"); | ||
+ | } else { | ||
+ | var seitentext = "[[Kategorie:!Frage]]"; | ||
+ | var seitentitel = "Frage:" + jQuery("#fragantwort_form textarea").val(); | ||
+ | } | ||
+ | |||
+ | } else { | ||
+ | |||
+ | var seitentext = "\n==== " + kamelname + " ====\n" + jQuery("#fragantwort_form textarea").val(); | ||
+ | var seitentitel = mw.config.get('wgPageName'); | ||
+ | } | ||
+ | |||
+ | //gehackte Kat Antwort | ||
+ | if (jQuery('.mw-headline').length == 0) { | ||
+ | seitentext = "\n[[Kategorie:!Antwort]]" + seitentext | ||
+ | } | ||
+ | window.antwortdata = { | ||
+ | url: "/api.php", | ||
+ | data: { | ||
+ | format: 'json', | ||
+ | action: apiaction, | ||
+ | title: seitentitel, | ||
+ | summary: summarytext, | ||
+ | appendtext: seitentext | ||
+ | }, | ||
+ | success: function (data) { | ||
+ | if (data.error && data.error.code !== 'unknownerror') { | ||
+ | switch (data.error.code) { | ||
+ | case 'articleexists': | ||
+ | var fehlermeldung = 'Diese Frage wurde bereits gestellt.'; | ||
+ | break; | ||
+ | case 'blocked': | ||
+ | var fehlermeldung = 'Du kannst keine Fragen stellen oder beantworten, da du gesperrt wurdest.'; | ||
+ | break; | ||
+ | default: | ||
+ | var fehlermeldung = 'Es ist ein Fehler aufgetreten. Die API meldet:<br />' + data.error.code + ': ' + data.error.info; | ||
+ | break; | ||
+ | } | ||
+ | $('#antwortfehler').remove(); | ||
+ | $('#fragantwort .fragehinweis').append('<div class="error" id="antwortfehler">' + fehlermeldung + '</div>'); | ||
+ | return; | ||
+ | } | ||
+ | if (neuefrage) { | ||
+ | window.location = mw.config.get('wgServer') + "/index.php/" + encodeURIComponent(seitentitel); | ||
+ | } else { | ||
+ | location.reload(true); | ||
+ | } | ||
+ | }, | ||
+ | error: fa_fehler, | ||
+ | type: 'POST' | ||
+ | }; | ||
+ | if (neuefrage) { | ||
+ | window.antwortdata.data.createonly = true; | ||
+ | } | ||
+ | jQuery.ajax({ | ||
+ | cache: false, | ||
+ | url: "/api.php", | ||
+ | data: { | ||
+ | format: "xml", | ||
+ | action: "query", | ||
+ | prop: "info", | ||
+ | intoken: "edit", | ||
+ | titles: seitentitel | ||
+ | }, | ||
+ | type: 'GET', | ||
+ | success: function (tr) { | ||
+ | var token = jQuery(tr).find("api query pages page").attr('edittoken'); | ||
+ | antwortdata.data.token = token; | ||
+ | jQuery.ajax(antwortdata); | ||
+ | }, | ||
+ | error: fa_fehler | ||
+ | }); | ||
+ | return false; | ||
+ | }); | ||
+ | jQuery("#fak").click(function () { | ||
+ | //jQuery('.mw-content-ltr').hide('fast'); | ||
+ | //jQuery('.fragnavknopp').hide(); | ||
+ | jQuery("#fragantwort").show(); | ||
+ | jQuery("#fragantwort_form textarea").focus(); | ||
+ | }); | ||
+ | jQuery("#fragantwort_reset").click(function () { | ||
+ | //jQuery('.mw-content-ltr').show(); | ||
+ | //jQuery('.fragnavknopp').show(); | ||
+ | jQuery("#fragantwort").hide(); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | }); | ||
+ | |||
+ | }); |
Aktuelle Version vom 29. Januar 2014, 04:04 Uhr
var fragenkats = [
"Beauty & Style",
"Computer & Internetz",
"Essen & Trinken",
"Freizeit",
"Freunde & Familie",
"Gesundheit",
"Haus & Garten",
"Kultur & Gesellschaft",
"Kunst & Unterhaltung",
"Kunst & Unterhaltung",
"Politik",
"Reisen",
"Transport & Verkehr",
"Umwelt",
"Wirtschaft & Finanzen",
"Wissenschaft"
];
function fragenkatsHTML() {
var html = '<div id="fragenkats" style="float:right;"><b>Themengebiete</b> (ohne Funktion!)<br />';
for (var i = 0; i < fragenkats.length; i++) {
var kat = fragenkats[i];
html += "<input type='checkbox' id='fakat_" + i + "' name='fakat_" + i + "'><label for='fakat_" + i + "' style='color:#fff;'>" + kat + "</label><br/>";
}
html += '</div>';
return html;
}
//funzt net
function fa_fehler() {
jQuery('#mw-js-message').html("Hmm, es ist ein Fehler aufgetreten!");
jQuery('#mw-js-message').slideDown('fast');
}
//dependencies
mw.loader.using(['jquery.ui.dialog'], function () {
//abfeuern, wenn document ready
jQuery(document).ready(function () {
// vars wegen unterschiedlicher skins ...
var fa_skin = mw.user.options.get('skin');
var fa_heading = "#firstHeading";
var fa_footer = "#catlinks";
if (fa_skin == "wptouch") {
fa_heading = "h2";
fa_footer = ".cleared"
}
// Wenn Frage länger als erlaubte Seitentitellänge, dann austauschen den Kram, ansonsten nur den Titel ohne NS
if (jQuery('#fragezulang').text().length > 0) {
jQuery(fa_heading).text(jQuery('#fragezulang').text());
jQuery('#fragezulang').hide(0);
} else {
jQuery(fa_heading).text(jQuery(fa_heading).text().replace("Frage:", ""));
}
//Hauptseitenlinks verdrehen
if (fa_skin == "vector") {
jQuery('#p-logo').html(jQuery('#p-logo').html().replace('Kamelopedia:Hauptseite', 'Frage:Hauptseite'));
// Zufällige Frage
jQuery('#p-Navigation').html(jQuery('#p-Navigation').html().replace('">Zufällige Seite', '/Frage">Zufällige Frage'));
}
jQuery('#n-Hauptseite').html(jQuery('#n-Hauptseite').html().replace('Kamelopedia:Hauptseite', 'Frage:Hauptseite'));
//temp: sobald NS-Frage fei, dann nur noch Link austauschen
jQuery("#n-KameloNews").before("<li><a href='/index.php/Kamelopedia:Hauptseite'>Kamelopedia</a></li>");
//Zeuch
//Knöppe & Formular und so nicht auf Diskussionsseite
//temp Namenrum nicht bearbeitbar
//jQuery(fa_heading).before("<div id='fragtmp' style='color:red;text-align:center;'>Dieser Namensraum ist noch eine Baustelle, und kann bisher nur von Kameltreibern bearbeitet werden.</div>");
if (mw.config.get('wgNamespaceNumber') != 115 && (location.href.indexOf("action=") < 0) && mw.config.get('wgArticleId') != 0) {
var knopptext = "Diese Frage beantworten";
var formulartext = "Deine Antwort";
var neuefrage = false;
var summarytext = "Antwort";
var apiaction = "edit";
var hinweis = "Denk daran: Dies ist ein Humorwiki.<br/>Keine der hier gestellten Fragen ist ernst gemeint. Das sollte auch für deine Antwort gelten.";
if (mw.config.get('wgPageName') == "Frage:Hauptseite" && (location.href.indexOf("action=") < 0) && mw.config.get('wgArticleId') != 0) {
knopptext = "Eine neue Frage stellen …";
formulartext = "Deine Frage";
neuefrage = true;
summarytext = "Neue Frage";
apiaction = "edit";
var hinweis = "Denk daran: Dies ist ein Humorwiki.<br/>Wenn du ernsthafte Antworten erwartest, dann frag besser woanders …";
}
jQuery("#bodyContent").before("<div id='fragnav'><span id='fak' class='fragnavknopp'>" + knopptext + "</span></div>");
jQuery("#fragnav").after("<div id='fragantwort' style='display:none;'><h5>" + formulartext + "</h5><div class='fragehinweis'>" + hinweis + "</div><form id='fragantwort_form' style='width:90%'><textarea style='height:100px;' /><br/><input type='submit' value='Speichern' /><input id='fragantwort_reset' type='reset' value='abbrechen'></form></div><div id='dialog-modal' title='Das speichere ich nicht!' style='display:none;'><p>Oh wie lustig, eine leere Antwort speichern ... mach ich nicht:P</p></div>");
//jQuery("#fragantwort_form").before(fragenkatsHTML());
jQuery("#fragantwort_form").submit(function () {
var wgUserName = mw.config.get('wgUserName');
if (mw.config.get('wgUserGroups').length == 1) {
var kamelname = "~~" + "~"
} else {
var kamelname = "[[Kamel:" + wgUserName + "|" + wgUserName + "]]"
}
if (jQuery("#fragantwort_form textarea").val() == "") {
jQuery("#dialog-modal").dialog({
maxWidth: 650,
modal: true
});
return false;
}
//neue frage oder nicht oder was?
if (neuefrage) {
var frageurl = encodeURIComponent("Frage:" + jQuery("#fragantwort_form textarea").val());
if (frageurl.length > 240) {
var seitentext = "[[Kategorie:!Frage]]<div id='fragezulang'>" + jQuery("#fragantwort_form textarea").val() + "</div>";
seitentitel = decodeURIComponent(frageurl.substring(0, 240) + "%E2%80%A6%3F");
} else {
var seitentext = "[[Kategorie:!Frage]]";
var seitentitel = "Frage:" + jQuery("#fragantwort_form textarea").val();
}
} else {
var seitentext = "\n==== " + kamelname + " ====\n" + jQuery("#fragantwort_form textarea").val();
var seitentitel = mw.config.get('wgPageName');
}
//gehackte Kat Antwort
if (jQuery('.mw-headline').length == 0) {
seitentext = "\n[[Kategorie:!Antwort]]" + seitentext
}
window.antwortdata = {
url: "/api.php",
data: {
format: 'json',
action: apiaction,
title: seitentitel,
summary: summarytext,
appendtext: seitentext
},
success: function (data) {
if (data.error && data.error.code !== 'unknownerror') {
switch (data.error.code) {
case 'articleexists':
var fehlermeldung = 'Diese Frage wurde bereits gestellt.';
break;
case 'blocked':
var fehlermeldung = 'Du kannst keine Fragen stellen oder beantworten, da du gesperrt wurdest.';
break;
default:
var fehlermeldung = 'Es ist ein Fehler aufgetreten. Die API meldet:<br />' + data.error.code + ': ' + data.error.info;
break;
}
$('#antwortfehler').remove();
$('#fragantwort .fragehinweis').append('<div class="error" id="antwortfehler">' + fehlermeldung + '</div>');
return;
}
if (neuefrage) {
window.location = mw.config.get('wgServer') + "/index.php/" + encodeURIComponent(seitentitel);
} else {
location.reload(true);
}
},
error: fa_fehler,
type: 'POST'
};
if (neuefrage) {
window.antwortdata.data.createonly = true;
}
jQuery.ajax({
cache: false,
url: "/api.php",
data: {
format: "xml",
action: "query",
prop: "info",
intoken: "edit",
titles: seitentitel
},
type: 'GET',
success: function (tr) {
var token = jQuery(tr).find("api query pages page").attr('edittoken');
antwortdata.data.token = token;
jQuery.ajax(antwortdata);
},
error: fa_fehler
});
return false;
});
jQuery("#fak").click(function () {
//jQuery('.mw-content-ltr').hide('fast');
//jQuery('.fragnavknopp').hide();
jQuery("#fragantwort").show();
jQuery("#fragantwort_form textarea").focus();
});
jQuery("#fragantwort_reset").click(function () {
//jQuery('.mw-content-ltr').show();
//jQuery('.fragnavknopp').show();
jQuery("#fragantwort").hide();
});
}
});
});