MediaWiki:Skin/Frage.js
Version vom 19. Januar 2014, 03:36 Uhr von Nachteule (Diskussion | Beiträge)
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
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();
});
}
});
});