Benutzer:D/Edittools.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
D (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
D (Diskussion | Beiträge) aOnloadFunctions durch addOnloadHook ersetzt, window-namespace-verschmutzung reduziert |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
//<pre><nowiki> | //<pre><nowiki> | ||
//Diese Seite wird von [[MediaWiki:Monobook.js]] aus geladen, sobald eine Seite bearbeitet wird | //Diese Seite wird von [[MediaWiki:Monobook.js]] aus geladen, sobald eine Seite bearbeitet wird | ||
/** bastelt die Edittools-Box */ | /** bastelt die Edittools-Box */ | ||
function | addOnloadHook(function() { | ||
//-------------------------------------------------------------------------------- | //-------------------------------------------------------------------------------- | ||
// | // konfiguration | ||
var sonderzeichen = [ | |||
[ 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü' ], | |||
[ 'ß', ['„','“'], '’', [ '‚','‘'], '–' ], | |||
[ ['«','»'], '°', '′', '″' ], | |||
[ '…', '€', '†', '§', '™', '•' ], | |||
[ '·', '×', '÷', '±', '−', '‰' ], | |||
[ '²', '³', '½', '¼', '¾', '‣' ], | |||
[ '≈', '≠', '≙', '≤', '≥', '∑' ], | |||
[ '→', '←', '↔', '⇝', '⇒', '⇔' ], | |||
[ '☛', '†', '☠', '☢', '☣', '☭' ], | |||
[ 'ſ', 'Œ', 'œ', 'Ç', 'ç' ], | |||
[ 'İ', 'ı', 'Ğ', 'ğ', 'Ş', 'ş' ], | |||
[ ['[[',']]'], '|', '&nbsp;' ], | |||
[ ['{{','}}'], '~~~~' ], | |||
]; | |||
var kategorieNamen = [ | var kategorieNamen = [ | ||
| Zeile 203: | Zeile 220: | ||
"Zusammenrottung" | "Zusammenrottung" | ||
]; | ]; | ||
//-------------------------------------------------------------------------------- | |||
// GUI | |||
function editTool() { | |||
var sonderzeichenEditor = contentFrame( | |||
headerText("Sonderzeichen"), | |||
helpLink("/index.php/Hilfe:Edittools", "Hilfe (in neuem Fenster)"), | |||
sonderzeichenContent()); | |||
var kategorienEditor = contentFrame( | |||
headerText("Klick-Kategorien"), | |||
null, | |||
categoriesContent()); | |||
var editor = document.createElement("div"); | |||
editor.id = 'cat_editor'; // TODO id und CSS benutzen | |||
editor.style.background = "none"; | |||
editor.style.border = "none"; | |||
editor.style.height = "400px"; | |||
editor.style.width = "13%"; | |||
editor.style.fontSize = "8pt"; | |||
editor.style.padding = "3px"; | |||
editor.style.lineHeight = "1.3em"; | |||
editor.style.overflow = "auto"; | |||
editor.style.cssFloat = "right"; | |||
editor.appendChild(sonderzeichenEditor); | |||
editor.appendChild(kategorienEditor); | |||
return editor; | |||
} | |||
function categoriesContent() { | function categoriesContent() { | ||
| Zeile 224: | Zeile 271: | ||
} | } | ||
function sonderzeichenContent() { | function sonderzeichenContent() { | ||
var | var table = document.createElement("table"); | ||
for (var i=0; i<sonderzeichen.length; i++) { | |||
var line = sonderzeichen[i]; | |||
var tr = document.createElement("tr"); | |||
for (var j=0; j<line.length; j++) { | |||
var cell = line[j]; | |||
var td = document.createElement("td"); | |||
bar knob = cell.constructor == Array | |||
? klammerLink(cell[0], cell[1]) | |||
: zeichenLink(cell); | |||
td.appendChild(knob); | |||
tr.appendChild(td); | |||
} | |||
table.appendChild(tr); | |||
} | |||
return table; | |||
return | |||
} | } | ||
| Zeile 351: | Zeile 324: | ||
} | } | ||
function | function headerText(text) { | ||
var | var h = document.createElement("h5"); // TODO h1 und CSS? | ||
h.textContent = text; | |||
return h; | |||
} | |||
function helpLink(target, title) { | |||
var a = document.createElement("a"); | |||
a.href = target; | |||
a.title = title; | |||
a.innerHTML = "<sup>?</sup>"; | |||
return a; | |||
} | |||
function contentFrame(headerText, helpLink, contentElement) { | |||
var switch = switchLink(contentElement); | var switch = switchLink(contentElement); | ||
var frame = document.createElement("div"); | var frame = document.createElement("div"); | ||
frame.appendChild( | if (headerText) frame.appendChild(headerText); | ||
if (helpLink) frame.appendChild(helpLink); | |||
frame.appendChild(switch); | frame.appendChild(switch); | ||
frame.appendChild(contentElement); | frame.appendChild(contentElement); | ||
return frame; | return frame; | ||
} | } | ||
//-------------------------------------------------------------------------------- | //-------------------------------------------------------------------------------- | ||
// init | |||
var editform = document.getElementById('editform'); | var editform = document.getElementById('editform'); | ||
var wpScrolltop = document.getElementById('wpScrolltop'); | var wpScrolltop = document.getElementById('wpScrolltop'); | ||
wpScrolltop.parentNode.insertBefore(div, | wpScrolltop.parentNode.insertBefore(div, editTool()); | ||
// Leerzeilen am Ende des Artikeltextes entfernen | // Leerzeilen am Ende des Artikeltextes entfernen | ||
var wpTextbox1 = editform.wpTextbox1; | var wpTextbox1 = editform.wpTextbox1; | ||
wpTextbox1.value = wpTextbox1.value.replace(/\s+$/, ""); | wpTextbox1.value = wpTextbox1.value.replace(/\s+$/, ""); | ||
}); | |||
//</pre></nowiki></pre> | //</pre></nowiki></pre> | ||
Aktuelle Version vom 26. November 2007, 22:09 Uhr
//<pre><nowiki>
//Diese Seite wird von [[MediaWiki:Monobook.js]] aus geladen, sobald eine Seite bearbeitet wird
/** bastelt die Edittools-Box */
addOnloadHook(function() {
//--------------------------------------------------------------------------------
// konfiguration
var sonderzeichen = [
[ 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü' ],
[ 'ß', ['„','“'], '’', [ '‚','‘'], '–' ],
[ ['«','»'], '°', '′', '″' ],
[ '…', '€', '†', '§', '™', '•' ],
[ '·', '×', '÷', '±', '−', '‰' ],
[ '²', '³', '½', '¼', '¾', '‣' ],
[ '≈', '≠', '≙', '≤', '≥', '∑' ],
[ '→', '←', '↔', '⇝', '⇒', '⇔' ],
[ '☛', '†', '☠', '☢', '☣', '☭' ],
[ 'ſ', 'Œ', 'œ', 'Ç', 'ç' ],
[ 'İ', 'ı', 'Ğ', 'ğ', 'Ş', 'ş' ],
[ ['[[',']]'], '|', '&nbsp;' ],
[ ['{{','}}'], '~~~~' ],
];
var kategorieNamen = [
"Abkürzung",
"Ägypten",
"Aliens",
"Alkohol",
"Amphibien",
"Anatomie",
"Architektur",
"Artikel, die wo so aussehen, wie die Dinge, die sie beschreiben tun",
"Artikel und Kamele mit eigenem Skin",
"Astronomie",
"Ausgestorben",
"Auto",
"Bahn",
"Bären",
"Baum",
"Beruf",
"Bildung",
"Biographie",
"Biologie",
"Böses Kamel",
"Botanik",
"Brauchtum",
"Chamäleons",
"Chemie",
"China",
"Computer",
"Denkmal",
"Deutschland",
"Dienstleistung",
"Drogen",
"Eier",
"Elektrotechnik",
"Enten",
"Eulen",
"Fabelwesen",
"Fäkalien",
"Farben",
"Feminismus",
"Film",
"Fische",
"Fleisch",
"Fluss",
"Freizeit",
"Frisuren",
"Gastronomie",
"Gebäck",
"Gebirge",
"Geheim",
"Geistlicher",
"Genie & Wahnsinn",
"Geographie",
"Geologie",
"Geschichte",
"Gesellschaft",
"Getränk",
"Gewässer",
"Gilden",
"Götter",
"Grammatik",
"Häh?",
"Helden",
"Hunde",
"Hygiene",
"Indianisch",
"Industrie",
"Insekten",
"Inseln",
"Jahrestag",
"Japan",
"Kalender",
"Kamele",
"Kamelkunde",
"Kamelopedia",
"Kasusativ",
"Katzen",
"Kleidung",
"Komische Kamele",
"Komische Typen",
"Kommunikation",
"Kosmetik",
"Krabbeltiere",
"Krankheiten",
"Krieg",
"Kulinarik",
"Kulturgut",
"Kunst",
"Land & Leute",
"Landschaften",
"Landwirtschaft",
"Listen",
"Literatur",
"Löcher",
"Logik",
"Luft & Raumfahrt",
"Lyrik",
"Märchen",
"Maschinen",
"Maßeinheit",
"Mathematik",
"Medien",
"Medizin",
"Microsoft",
"Mikroben",
"Milch & Käse",
"Mischwesen",
"Möbel",
"Mode",
"Musik",
"Musikrichtungen",
"Mythologie",
"Nachrichten",
"Nah dran",
"Name",
"Natur",
"Nichtkamele",
"Oberflächliches",
"Obst & Gemüse",
"Optik & Lichttechnik",
"Organisationen",
"Ort",
"Pferde & Esel",
"Philosophie",
"Physik",
"Pilze",
"Planeten",
"Plem-Plem",
"Politik",
"Projekt",
"Psychologie",
"Pyramiden",
"Raubtier",
"Re(h)kursion",
"Recht",
"Religion",
"Religionen",
"Rezepte",
"Rindviecher",
"Sammelartikel",
"Saurier",
"Schach",
"Schafe",
"ScheibchenWelt",
"Schifffahrt",
"Schlangen",
"Schnecken",
"Schöner Wohnen",
"Schule",
"Schweine",
"Schweiz",
"Sexualität",
"Soziologie",
"Spezies",
"Spiel",
"Sport",
"Sprache",
"Sprachwissenschaft",
"Staat",
"Stadt",
"Stuchbabe",
"Süßigkeiten",
"Suppe",
"Technik",
"Theorie",
"Tiger",
"Tisch",
"Touristik",
"Umfrage",
"Unterwasser",
"Verkehr",
"Verkehrsmittel",
"Verpackung",
"Verschwörungstheorien",
"Verwechslungen",
"Vögel",
"Waffen",
"Wale",
"Weiß der Kuckuck",
"Werbung",
"Werkzeuge & Geräte",
"Wetter",
"Wikipedia",
"Wirtschaft",
"Wissenschaft",
"Wortsinn & Tiefsinn",
"WTF-8",
"Würmer",
"Wüste",
"Wurst",
"Zahl",
"Zauberei",
"Zeit",
"Zeitanzeigegeräte",
"Zeitgeschehen",
"Zusammenrottung"
];
//--------------------------------------------------------------------------------
// GUI
function editTool() {
var sonderzeichenEditor = contentFrame(
headerText("Sonderzeichen"),
helpLink("/index.php/Hilfe:Edittools", "Hilfe (in neuem Fenster)"),
sonderzeichenContent());
var kategorienEditor = contentFrame(
headerText("Klick-Kategorien"),
null,
categoriesContent());
var editor = document.createElement("div");
editor.id = 'cat_editor'; // TODO id und CSS benutzen
editor.style.background = "none";
editor.style.border = "none";
editor.style.height = "400px";
editor.style.width = "13%";
editor.style.fontSize = "8pt";
editor.style.padding = "3px";
editor.style.lineHeight = "1.3em";
editor.style.overflow = "auto";
editor.style.cssFloat = "right";
editor.appendChild(sonderzeichenEditor);
editor.appendChild(kategorienEditor);
return editor;
}
function categoriesContent() {
var content = document.createElement("ul");
for (var i=0; i<kategorieNamen.length; i++ ) {
var name = kategorieNamen[i];
var link = categoryAddLink(name);
var item = document.createElement("li");
item.appendChild(link);
content.appendChild(item);
}
return content;
}
function categoryAddLink(categoryName) {
var a = document.createElement("a");
a.textContent = categoryName;
a.onclick = function() {
document.editform.wpTextbox1.value += '\n[[Kategorie:' + categoryName + ']]';
};
}
function sonderzeichenContent() {
var table = document.createElement("table");
for (var i=0; i<sonderzeichen.length; i++) {
var line = sonderzeichen[i];
var tr = document.createElement("tr");
for (var j=0; j<line.length; j++) {
var cell = line[j];
var td = document.createElement("td");
bar knob = cell.constructor == Array
? klammerLink(cell[0], cell[1])
: zeichenLink(cell);
td.appendChild(knob);
tr.appendChild(td);
}
table.appendChild(tr);
}
return table;
}
function zeichenLink(text) {
var a = document.createElement("a");
a.textContent = text;
a.onclick = function() {
insertTags(text, "", "");
};
}
function klammerLink(open, close) {
var a = document.createElement("a");
a.textContent = open + close;
a.onclick = function() {
insertTags(open, close, "");
};
}
//--------------------------------------------------------------------------------
// hilfsfunktionen
function switchLink(targetElement) {
var visible = true;
var a = document.createElement("a");
a.onclick = function() {
visible = !visible;
update();
};
function update() {
a.textContent = visible ? "[verbergen]" : "[anzeigen"];
targetElement.style.display = visible ? null : "none";
}
update();
return a;
}
function headerText(text) {
var h = document.createElement("h5"); // TODO h1 und CSS?
h.textContent = text;
return h;
}
function helpLink(target, title) {
var a = document.createElement("a");
a.href = target;
a.title = title;
a.innerHTML = "<sup>?</sup>";
return a;
}
function contentFrame(headerText, helpLink, contentElement) {
var switch = switchLink(contentElement);
var frame = document.createElement("div");
if (headerText) frame.appendChild(headerText);
if (helpLink) frame.appendChild(helpLink);
frame.appendChild(switch);
frame.appendChild(contentElement);
return frame;
}
//--------------------------------------------------------------------------------
// init
var editform = document.getElementById('editform');
var wpScrolltop = document.getElementById('wpScrolltop');
wpScrolltop.parentNode.insertBefore(div, editTool());
// Leerzeilen am Ende des Artikeltextes entfernen
var wpTextbox1 = editform.wpTextbox1;
wpTextbox1.value = wpTextbox1.value.replace(/\s+$/, "");
});
//</pre></nowiki></pre>