MediaWiki:Skin/Artikelbaukasten.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) (puh, ob das klappt...) |
J* (Diskussion | Beiträge) (an aktuelle LÄ angepasst) |
||
| (123 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 6: | Zeile 6: | ||
var ab_opts = {}; | var ab_opts = {}; | ||
var ab_finish = null; | var ab_finish = null; | ||
| + | var ab_redlinks = ""; | ||
| + | var ab_artname = ""; | ||
| + | |||
| + | function ab_entities(text) | ||
| + | { | ||
| + | return jQuery('<div/>').text(text).html(); | ||
| + | } | ||
function ab_prepare() | function ab_prepare() | ||
| Zeile 16: | Zeile 23: | ||
var temp_opts = {}; | var temp_opts = {}; | ||
/* alle wichtigen Daten zuerst auslesen und verarbeiten */ | /* alle wichtigen Daten zuerst auslesen und verarbeiten */ | ||
| − | data = document. | + | var data = document.getElementById("data").innerHTML.replace(/<br( | )*\/?>/g, "<br/>").replace(/(\r|\n|\f)+/g, "\n").split("\n"); |
for (line=0; line<data.length; line++) | for (line=0; line<data.length; line++) | ||
{ | { | ||
| Zeile 23: | Zeile 30: | ||
if ( data[line].indexOf("|") == -1 ) | if ( data[line].indexOf("|") == -1 ) | ||
| − | elements = | + | elements = [ data[line] ]; |
else | else | ||
{ | { | ||
| Zeile 33: | Zeile 40: | ||
continue; | continue; | ||
var pair; | var pair; | ||
| − | pair = elements[element].split("=", | + | pair = elements[element].split("=", 2); |
| − | struct[pair[0]]=pair[1]; | + | struct[pair[0]]=pair[1].replace(/[¦]/g, "|"); |
} | } | ||
} | } | ||
| − | switch elements[0] | + | switch ( elements[0] ) |
{ | { | ||
case "option": | case "option": | ||
| Zeile 47: | Zeile 54: | ||
case "flush": | case "flush": | ||
ab_opts[temp_opts.label.name] = temp_opts; | ab_opts[temp_opts.label.name] = temp_opts; | ||
| − | temp_opts = new | + | temp_opts = new Object; |
| + | break; | ||
| + | case "comment": | ||
| + | break; | ||
| + | case "redlinks": | ||
| + | ab_redlinks += ( ab_redlinks == "" ? "" : "|" ) + ( struct.names != null ? struct.names : "" ); | ||
| + | break; | ||
default: | default: | ||
temp_opts[elements[0]] = struct; | temp_opts[elements[0]] = struct; | ||
| Zeile 63: | Zeile 76: | ||
function ab_init2() | function ab_init2() | ||
{ | { | ||
| + | /* GaGA/HW/... weg */ | ||
| + | if ( document.getElementById("versteckdas") != null ) | ||
| + | document.getElementById("versteckdas").style.display = "none"; | ||
| + | |||
| + | jQuery("#empfohlene-seite-box").hide(0); | ||
| + | |||
/* jetzt Spezial:Artikelbaukasten vortäuschen */ | /* jetzt Spezial:Artikelbaukasten vortäuschen */ | ||
| − | document.getElementById("Artikel").innerHTML="<div id='Vorschau'></div><div id='Assistent'></div>< | + | document.getElementById("Artikel").innerHTML="<div id='Vorschau'></div><div id='Assistent'></div>"; |
| − | ab_generate(" | + | document.getElementById("SuffixButtons").innerHTML = '<form>'+ |
| − | document.getElementsByTagName("H1")[0].innerHTML = " | + | '<input type="button" tabindex="5" value="Speichern, oder doch" onclick="ab_display(ab_save)" /> '+ |
| − | + | '<input type="button" name="wpPreview" tabindex="6" value="erstmal Vorschau zeigen?" onclick="ab_display(ab_preview)" />'+ | |
| + | '</form>'; | ||
| + | ab_generate("default", "0"); | ||
| + | ab_genWindow( "Spezial:Artikelbaukasten", "spezial" ); | ||
| + | } | ||
| + | |||
| + | function ab_generate( labelId, optionId ) | ||
| + | { | ||
| + | lastLabelObj = ab_opts[labelId]; | ||
| + | |||
| + | label = lastLabelObj.options[optionId].next; | ||
| + | |||
| + | switch( lastLabelObj.options[optionId].action ) | ||
| + | { | ||
| + | case "article" : | ||
| + | ab_artname = lastLabelObj.options[optionId].text; | ||
| + | setTimeout("ab_genWindow('Bearbeiten von „"+ab_artname+ | ||
| + | "“', 'edit'); ab_generate2('"+label+"'); document.getElementById('Suffix').style.display = 'block';", 1000); | ||
| + | break; | ||
| + | |||
| + | case "nothing": | ||
| + | ab_generate2( label ); | ||
| + | break; | ||
| + | |||
| + | default: | ||
| + | document.getElementById("TextboxText").innerHTML += lastLabelObj.options[optionId].text + " "; | ||
| + | ab_generate2( label ); | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function ab_genWindow( artName, type ) | ||
| + | { | ||
| + | if ( artName != null ) | ||
| + | { | ||
| + | document.getElementsByTagName("H1")[0].innerHTML = artName; | ||
| + | document.title = artName + " - Kamelopedia"; | ||
| + | } | ||
| + | |||
| + | $maintab = jQuery("#ca-nstab-main"); | ||
| + | if ( ! $maintab ) | ||
| + | $maintab = jQuery("#ca-nstab-user"); //auch im Kamelbau zum Testen solls klappen | ||
| + | $viewtab = jQuery("#ca-view"); | ||
| + | $edittab = jQuery("#ca-edit"); | ||
| + | $discusstab = jQuery("#ca-talk"); | ||
| + | $historytab = jQuery("#ca-history"); | ||
| + | $daumentab = jQuery("#ca-hw"); | ||
| + | |||
| + | switch ( type ) | ||
| + | { | ||
| + | case "edit": | ||
| + | $maintab.find("a").text('Artikel'); | ||
| + | $edittab.addClass('selected'); | ||
| + | $viewtab.removeClass('selected'); | ||
| + | $discusstab.addClass('new'); | ||
| + | $historytab.show(0); | ||
| + | $viewtab.show(0); | ||
| + | $edittab.show(0); | ||
| + | $daumentab.show(0); | ||
| + | $discusstab.show(0); | ||
| + | break; | ||
| + | |||
| + | case "spezial": | ||
| + | $maintab.find("a").text('Spezial'); | ||
| + | $viewtab.hide(0); | ||
| + | $edittab.hide(0); | ||
| + | $historytab.hide(0); | ||
| + | $discusstab.hide(0); | ||
| + | $daumentab.hide(0); | ||
| + | break; | ||
| + | |||
| + | default: | ||
| + | $maintab.find("a").text('Artikel'); | ||
| + | $edittab.removeClass('selected'); | ||
| + | $viewtab.addClass('selected'); | ||
| + | $discusstab.addClass('new'); | ||
| + | $viewtab.show(0); | ||
| + | $edittab.show(0); | ||
| + | $discusstab.show(0); | ||
| + | $historytab.show(0); | ||
| + | $daumentab.show(0); | ||
| + | break; | ||
| + | |||
| + | } | ||
self.scroll(0,0); | self.scroll(0,0); | ||
} | } | ||
| − | function | + | function ab_generate2( label ) |
{ | { | ||
var out; | var out; | ||
out = ( ab_opts[label].label.text == null ? | out = ( ab_opts[label].label.text == null ? | ||
ab_opts["default"].label.text : ab_opts[label].label.text ); | ab_opts["default"].label.text : ab_opts[label].label.text ); | ||
| − | out += "<ul class='"+(ab_opts[label].label.style == null ? | + | if (ab_opts[label].options != null ) |
| + | { | ||
| + | out += "<ul class='"+(ab_opts[label].label.style == null ? | ||
ab_opts["default"].label.style : ab_opts[label].label.style )+"'>"; | ab_opts["default"].label.style : ab_opts[label].label.style )+"'>"; | ||
| − | + | for(opt=0; opt<ab_opts[label].options.length; opt++) | |
| − | + | { | |
| − | + | out += "<li onclick=\"ab_generate('"+label+"', '"+opt+"')\">"+ab_opts[label].options[opt].text+"</li>"; | |
| + | } | ||
| + | out += "</ul>" | ||
} | } | ||
| − | |||
if( ab_opts[label].setfinish != null ) | if( ab_opts[label].setfinish != null ) | ||
| Zeile 89: | Zeile 194: | ||
if ( ab_finish != null ) | if ( ab_finish != null ) | ||
{ | { | ||
| − | out += "<p>"+(ab_finish.text == | + | out += "<p>"+(ab_finish.text == null ? ab_opts["default"].setfinish.text : ab_finish.text).replace(/\[([^\]]+)\]/,"<span class='pseudolink' onclick='ab_generateFinish()'>$1</span>")+"</p>"; |
} | } | ||
if ( label != "start" ) | if ( label != "start" ) | ||
{ | { | ||
| − | out +="<p>"+ab_opts["default"].clear.text.replace(/\[([^\]]+)\]/,"<span onclick=' | + | out +="<p>"+ab_opts["default"].clear.text.replace(/\[([^\]]+)\]/g,"<span class='pseudolink' onclick='ab_clear()'>$1</span>")+"</p>"; |
| + | |||
| + | } | ||
| + | document.getElementById("Assistent").innerHTML = out; | ||
| + | } | ||
| + | |||
| + | function ab_generateFinish() | ||
| + | { | ||
| + | document.getElementById("TextboxText").innerHTML = "{{"+ab_finish.template+"}}<br/>"+ (ab_finish.signature == null ? "" : " " + ab_finish.signature + "<br/>" ) + "<br/>" + document.getElementById("TextboxText").innerHTML; | ||
| + | document.getElementById("Assistent").innerHTML = (ab_finish.text2 == null ? ab_opts["default"].setfinish.text2 : ab_finish.text2); | ||
| + | ab_finish.inserted = ab_finish.template; | ||
| + | } | ||
| + | |||
| + | function ab_clear() | ||
| + | { | ||
| + | ab_finish = null; | ||
| + | document.getElementById('Suffix').style.display = 'none'; | ||
| + | document.getElementById('TextboxText').innerHTML = ''; | ||
| + | ab_init2(); | ||
| + | |||
| + | } | ||
| + | |||
| + | function ab_display( fpt_save_or_preview ) | ||
| + | { | ||
| + | ab_finish.fpt = fpt_save_or_preview; | ||
| + | |||
| + | if ( ab_finish.inserted == null ) | ||
| + | { | ||
| + | ab_finish.html = ""; | ||
| + | setTimeout("ab_finish.fpt();", 1000); | ||
} | } | ||
| + | else | ||
| + | { | ||
| + | jQuery.ajax({ | ||
| + | url: wgServer+wgScript+"/Vorlage:"+ab_finish.inserted, | ||
| + | data: "action=render", | ||
| + | success: function(html) | ||
| + | { | ||
| + | ab_finish.html = html.match(/<(div|table)(.|[\n])*<\/\1>/)[0]; | ||
| + | ab_finish.fpt(); | ||
| + | } | ||
| + | |||
| + | }); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function ab_save() | ||
| + | { | ||
| + | |||
| + | ab_render('Artikel', ab_artname); | ||
| + | document.getElementById('preview').style.display = 'none'; | ||
| + | document.getElementById('Suffix').style.display = 'none'; | ||
| + | document.getElementById('n-Letzte-.C3.84nderungen').childNodes[0].onclick = ab_recentChanges; | ||
| + | } | ||
| + | |||
| + | function ab_preview() | ||
| + | { | ||
| + | ab_render('previewRender'); | ||
| + | document.getElementById('preview').style.display = 'block'; | ||
| + | ab_genWindow( null, "edit" ); | ||
| + | } | ||
| + | |||
| + | function ab_render( into, artname ) | ||
| + | { | ||
| + | out = document.getElementById('TextboxText').innerHTML; | ||
| + | |||
| + | /* Zuerst die Roten */ | ||
| + | out = out.replace( new RegExp("\\[\\[("+ab_redlinks+")\\|([^\[\]|]+)\\]\\](\S*)", "g"), "<a class='new' href='"+wgServer+wgScript+"/$1'>$2$3</a>"); | ||
| + | out = out.replace( new RegExp("\\[\\[("+ab_redlinks+")\\]\\](\S*)", "g"), "<a class='new' href='"+wgServer+wgScript+"/$1'>$1$2</a>"); | ||
| + | |||
| + | out = out.replace(/\[\[([^\[\]|]+)\|([^\[\]|]+)\]\](\S*)/g, "<a href='"+wgServer+wgScript+"/$1'>$2$3</a>"); | ||
| + | out = out.replace(/\[\[([^\[\]|]+)\]\](\S*)/g, "<a href='"+wgServer+wgScript+"/$1'>$1$2</a>"); | ||
| + | |||
| + | |||
| + | sigtime = ab_genSigtime(); | ||
| + | |||
| + | out = out.replace(/<br *?\/?>(.*?)[~]{4}<br *?\/?>/, "<div><pre>$1<a href='"+wgServer+wgScript+"/Kamel:"+wgUserName+"'>Kamel:"+wgUserName+"</a> "+sigtime+"</pre></div>"); | ||
| + | |||
| + | out = out.replace(/\{\{.*\}\}/, ab_finish.html); | ||
| + | document.getElementById(into).innerHTML = out; | ||
| + | ab_genWindow( artname ); | ||
| + | } | ||
| + | |||
| + | function ab_genSigtime() | ||
| + | { | ||
| + | datum = new Date(); | ||
| + | hrs = datum.getHours(); | ||
| + | min = datum.getMinutes(); | ||
| + | hrs_str = ( (hrs < 10) ? "0" + hrs : hrs ); | ||
| + | min_str = ( (min < 10) ? "0" + min : min ); | ||
| + | mon = datum.getMonth(); | ||
| + | day = datum.getDate(); | ||
| + | mon_str = [ "Jan.", "Feb.", "Mär.", "Apr.", "Mai", "Jun.", "Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Dez." ][mon]; | ||
| + | yea = datum.getFullYear(); | ||
| + | return ( hrs_str + ":" + min_str + ", " + day + ". " + mon_str + " " + yea + " (CET)" ); | ||
| + | } | ||
| + | |||
| + | function ab_recentChanges() | ||
| + | { | ||
| + | document.getElementById('n-Letzte-.C3.84nderungen').childNodes[0].onclick = function () { return true; }; | ||
| + | jQuery.ajax({ | ||
| + | url:wgServer+wgScript+"/Spezial:Recentchanges", | ||
| + | data: {limit: 20, useskin: mw.config.get("skin")}, | ||
| + | success: function(html) | ||
| + | { | ||
| + | datum = new Date(); | ||
| + | hrs = datum.getHours(); | ||
| + | min = datum.getMinutes(); | ||
| + | hrs_str = ( (hrs < 10) ? "0" + hrs : hrs ); | ||
| + | min_str = ( (min < 10) ? "0" + min : min ); | ||
| + | chtime = ( hrs_str + ":" + min_str ); | ||
| + | bytes = document.getElementById('TextboxText').innerHTML.length; | ||
| + | |||
| + | sigtime = ab_genSigtime(); | ||
| + | begin = document.getElementById('TextboxText').innerHTML.replace(/<br *\/?>/g, " ").substr(0,150); | ||
| + | begin = begin.replace(/[~]{4}/, "<a href='"+wgServer+wgScript+"/Kamel:"+wgUserName+"'>Kamel:"+wgUserName+"</a> "+sigtime); | ||
| + | |||
| + | changes = '(Unterschied | ' + | ||
| + | '<a href="/index.php?title="'+ab_entities(ab_artname)+'&action=history" title="'+ab_entities(ab_artname)+'">Versionen</a>) . . ' + | ||
| + | '<abbr class="newpage" title="Neue Seite">Neu</abbr> ' + | ||
| + | '<a href="/index.php/'+ab_entities(ab_artname)+'" title="'+ab_entities(ab_artname)+'">'+ab_entities(ab_artname)+'</a>; '+chtime + | ||
| + | '. . <span class="mw-plusminus-pos">(+'+bytes+' Bytes)</span> . . ' + | ||
| + | '<a href="/index.php/Kamel:'+ab_entities(wgUserName)+'" title="Kamel:'+ab_entities(wgUserName)+'">'+ab_entities(wgUserName) + | ||
| + | '</a> (<a href="/index.php/Kamel_Diskussion:'+ab_entities(wgUserName)+'" title="Kamel Diskussion:'+ab_entities(wgUserName)+'">Diskussion</a> ' + | ||
| + | '| <a href="/index.php/Spezial:Beitr%C3%A4ge/'+ab_entities(wgUserName)+'" title="Spezial:Beiträge/'+ab_entities(wgUserName)+'">Beiträge</a>) ' + | ||
| + | '<span class="comment">(Artikelbaukasten-Edit: "'+begin+'...")</span>'; | ||
| + | body_begin = html.indexOf("<body"); | ||
| + | body_begin = html.indexOf(">", body_begin); | ||
| + | body_end = html.indexOf("</body>"); | ||
| + | html = html.substring( body_begin+1, body_end ); | ||
| + | html = html.replace( /(<ul class="special">)/, "$1<li>"+changes+"</li>"); | ||
| + | ab_genWindow("Letzte Änderungen", "spezial"); | ||
| + | |||
| + | content = jQuery(html).find("#bodyContent"); | ||
| + | jQuery("#bodyContent").replaceWith(content); | ||
| + | } | ||
| + | |||
| + | }); | ||
| + | return false; | ||
} | } | ||
Aktuelle Version vom 30. September 2012, 20:33 Uhr
/* Artikelbaukasten */
addOnloadHook(ab_prepare);
/* globale variablen */
var ab_opts = {};
var ab_finish = null;
var ab_redlinks = "";
var ab_artname = "";
function ab_entities(text)
{
return jQuery('<div/>').text(text).html();
}
function ab_prepare()
{
document.getElementById("Startlink").onclick = ab_init;
}
function ab_init()
{
var temp_opts = {};
/* alle wichtigen Daten zuerst auslesen und verarbeiten */
var data = document.getElementById("data").innerHTML.replace(/<br( | )*\/?>/g, "<br/>").replace(/(\r|\n|\f)+/g, "\n").split("\n");
for (line=0; line<data.length; line++)
{
var elements;
var struct = {};
if ( data[line].indexOf("|") == -1 )
elements = [ data[line] ];
else
{
elements = data[line].split("|");
for (element=1; element<elements.length; element++)
{
if ( elements[element].indexOf("=") == -1 )
continue;
var pair;
pair = elements[element].split("=", 2);
struct[pair[0]]=pair[1].replace(/[¦]/g, "|");
}
}
switch ( elements[0] )
{
case "option":
if ( temp_opts["options"] == null )
temp_opts["options"] = [];
temp_opts["options"].push( struct );
break;
case "flush":
ab_opts[temp_opts.label.name] = temp_opts;
temp_opts = new Object;
break;
case "comment":
break;
case "redlinks":
ab_redlinks += ( ab_redlinks == "" ? "" : "|" ) + ( struct.names != null ? struct.names : "" );
break;
default:
temp_opts[elements[0]] = struct;
break;
}
}
/* http-request vortäuschen */
setTimeout("ab_init2()", 1000);
}
function ab_init2()
{
/* GaGA/HW/... weg */
if ( document.getElementById("versteckdas") != null )
document.getElementById("versteckdas").style.display = "none";
jQuery("#empfohlene-seite-box").hide(0);
/* jetzt Spezial:Artikelbaukasten vortäuschen */
document.getElementById("Artikel").innerHTML="<div id='Vorschau'></div><div id='Assistent'></div>";
document.getElementById("SuffixButtons").innerHTML = '<form>'+
'<input type="button" tabindex="5" value="Speichern, oder doch" onclick="ab_display(ab_save)" /> '+
'<input type="button" name="wpPreview" tabindex="6" value="erstmal Vorschau zeigen?" onclick="ab_display(ab_preview)" />'+
'</form>';
ab_generate("default", "0");
ab_genWindow( "Spezial:Artikelbaukasten", "spezial" );
}
function ab_generate( labelId, optionId )
{
lastLabelObj = ab_opts[labelId];
label = lastLabelObj.options[optionId].next;
switch( lastLabelObj.options[optionId].action )
{
case "article" :
ab_artname = lastLabelObj.options[optionId].text;
setTimeout("ab_genWindow('Bearbeiten von „"+ab_artname+
"“', 'edit'); ab_generate2('"+label+"'); document.getElementById('Suffix').style.display = 'block';", 1000);
break;
case "nothing":
ab_generate2( label );
break;
default:
document.getElementById("TextboxText").innerHTML += lastLabelObj.options[optionId].text + " ";
ab_generate2( label );
break;
}
}
function ab_genWindow( artName, type )
{
if ( artName != null )
{
document.getElementsByTagName("H1")[0].innerHTML = artName;
document.title = artName + " - Kamelopedia";
}
$maintab = jQuery("#ca-nstab-main");
if ( ! $maintab )
$maintab = jQuery("#ca-nstab-user"); //auch im Kamelbau zum Testen solls klappen
$viewtab = jQuery("#ca-view");
$edittab = jQuery("#ca-edit");
$discusstab = jQuery("#ca-talk");
$historytab = jQuery("#ca-history");
$daumentab = jQuery("#ca-hw");
switch ( type )
{
case "edit":
$maintab.find("a").text('Artikel');
$edittab.addClass('selected');
$viewtab.removeClass('selected');
$discusstab.addClass('new');
$historytab.show(0);
$viewtab.show(0);
$edittab.show(0);
$daumentab.show(0);
$discusstab.show(0);
break;
case "spezial":
$maintab.find("a").text('Spezial');
$viewtab.hide(0);
$edittab.hide(0);
$historytab.hide(0);
$discusstab.hide(0);
$daumentab.hide(0);
break;
default:
$maintab.find("a").text('Artikel');
$edittab.removeClass('selected');
$viewtab.addClass('selected');
$discusstab.addClass('new');
$viewtab.show(0);
$edittab.show(0);
$discusstab.show(0);
$historytab.show(0);
$daumentab.show(0);
break;
}
self.scroll(0,0);
}
function ab_generate2( label )
{
var out;
out = ( ab_opts[label].label.text == null ?
ab_opts["default"].label.text : ab_opts[label].label.text );
if (ab_opts[label].options != null )
{
out += "<ul class='"+(ab_opts[label].label.style == null ?
ab_opts["default"].label.style : ab_opts[label].label.style )+"'>";
for(opt=0; opt<ab_opts[label].options.length; opt++)
{
out += "<li onclick=\"ab_generate('"+label+"', '"+opt+"')\">"+ab_opts[label].options[opt].text+"</li>";
}
out += "</ul>"
}
if( ab_opts[label].setfinish != null )
ab_finish = ab_opts[label].setfinish;
if ( ab_finish != null )
{
out += "<p>"+(ab_finish.text == null ? ab_opts["default"].setfinish.text : ab_finish.text).replace(/\[([^\]]+)\]/,"<span class='pseudolink' onclick='ab_generateFinish()'>$1</span>")+"</p>";
}
if ( label != "start" )
{
out +="<p>"+ab_opts["default"].clear.text.replace(/\[([^\]]+)\]/g,"<span class='pseudolink' onclick='ab_clear()'>$1</span>")+"</p>";
}
document.getElementById("Assistent").innerHTML = out;
}
function ab_generateFinish()
{
document.getElementById("TextboxText").innerHTML = "{{"+ab_finish.template+"}}<br/>"+ (ab_finish.signature == null ? "" : " " + ab_finish.signature + "<br/>" ) + "<br/>" + document.getElementById("TextboxText").innerHTML;
document.getElementById("Assistent").innerHTML = (ab_finish.text2 == null ? ab_opts["default"].setfinish.text2 : ab_finish.text2);
ab_finish.inserted = ab_finish.template;
}
function ab_clear()
{
ab_finish = null;
document.getElementById('Suffix').style.display = 'none';
document.getElementById('TextboxText').innerHTML = '';
ab_init2();
}
function ab_display( fpt_save_or_preview )
{
ab_finish.fpt = fpt_save_or_preview;
if ( ab_finish.inserted == null )
{
ab_finish.html = "";
setTimeout("ab_finish.fpt();", 1000);
}
else
{
jQuery.ajax({
url: wgServer+wgScript+"/Vorlage:"+ab_finish.inserted,
data: "action=render",
success: function(html)
{
ab_finish.html = html.match(/<(div|table)(.|[\n])*<\/\1>/)[0];
ab_finish.fpt();
}
});
}
}
function ab_save()
{
ab_render('Artikel', ab_artname);
document.getElementById('preview').style.display = 'none';
document.getElementById('Suffix').style.display = 'none';
document.getElementById('n-Letzte-.C3.84nderungen').childNodes[0].onclick = ab_recentChanges;
}
function ab_preview()
{
ab_render('previewRender');
document.getElementById('preview').style.display = 'block';
ab_genWindow( null, "edit" );
}
function ab_render( into, artname )
{
out = document.getElementById('TextboxText').innerHTML;
/* Zuerst die Roten */
out = out.replace( new RegExp("\\[\\[("+ab_redlinks+")\\|([^\[\]|]+)\\]\\](\S*)", "g"), "<a class='new' href='"+wgServer+wgScript+"/$1'>$2$3</a>");
out = out.replace( new RegExp("\\[\\[("+ab_redlinks+")\\]\\](\S*)", "g"), "<a class='new' href='"+wgServer+wgScript+"/$1'>$1$2</a>");
out = out.replace(/\[\[([^\[\]|]+)\|([^\[\]|]+)\]\](\S*)/g, "<a href='"+wgServer+wgScript+"/$1'>$2$3</a>");
out = out.replace(/\[\[([^\[\]|]+)\]\](\S*)/g, "<a href='"+wgServer+wgScript+"/$1'>$1$2</a>");
sigtime = ab_genSigtime();
out = out.replace(/<br *?\/?>(.*?)[~]{4}<br *?\/?>/, "<div><pre>$1<a href='"+wgServer+wgScript+"/Kamel:"+wgUserName+"'>Kamel:"+wgUserName+"</a> "+sigtime+"</pre></div>");
out = out.replace(/\{\{.*\}\}/, ab_finish.html);
document.getElementById(into).innerHTML = out;
ab_genWindow( artname );
}
function ab_genSigtime()
{
datum = new Date();
hrs = datum.getHours();
min = datum.getMinutes();
hrs_str = ( (hrs < 10) ? "0" + hrs : hrs );
min_str = ( (min < 10) ? "0" + min : min );
mon = datum.getMonth();
day = datum.getDate();
mon_str = [ "Jan.", "Feb.", "Mär.", "Apr.", "Mai", "Jun.", "Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Dez." ][mon];
yea = datum.getFullYear();
return ( hrs_str + ":" + min_str + ", " + day + ". " + mon_str + " " + yea + " (CET)" );
}
function ab_recentChanges()
{
document.getElementById('n-Letzte-.C3.84nderungen').childNodes[0].onclick = function () { return true; };
jQuery.ajax({
url:wgServer+wgScript+"/Spezial:Recentchanges",
data: {limit: 20, useskin: mw.config.get("skin")},
success: function(html)
{
datum = new Date();
hrs = datum.getHours();
min = datum.getMinutes();
hrs_str = ( (hrs < 10) ? "0" + hrs : hrs );
min_str = ( (min < 10) ? "0" + min : min );
chtime = ( hrs_str + ":" + min_str );
bytes = document.getElementById('TextboxText').innerHTML.length;
sigtime = ab_genSigtime();
begin = document.getElementById('TextboxText').innerHTML.replace(/<br *\/?>/g, " ").substr(0,150);
begin = begin.replace(/[~]{4}/, "<a href='"+wgServer+wgScript+"/Kamel:"+wgUserName+"'>Kamel:"+wgUserName+"</a> "+sigtime);
changes = '(Unterschied | ' +
'<a href="/index.php?title="'+ab_entities(ab_artname)+'&action=history" title="'+ab_entities(ab_artname)+'">Versionen</a>) . . ' +
'<abbr class="newpage" title="Neue Seite">Neu</abbr> ' +
'<a href="/index.php/'+ab_entities(ab_artname)+'" title="'+ab_entities(ab_artname)+'">'+ab_entities(ab_artname)+'</a>; '+chtime +
'. . <span class="mw-plusminus-pos">(+'+bytes+' Bytes)</span> . . ' +
'<a href="/index.php/Kamel:'+ab_entities(wgUserName)+'" title="Kamel:'+ab_entities(wgUserName)+'">'+ab_entities(wgUserName) +
'</a> (<a href="/index.php/Kamel_Diskussion:'+ab_entities(wgUserName)+'" title="Kamel Diskussion:'+ab_entities(wgUserName)+'">Diskussion</a> ' +
'| <a href="/index.php/Spezial:Beitr%C3%A4ge/'+ab_entities(wgUserName)+'" title="Spezial:Beiträge/'+ab_entities(wgUserName)+'">Beiträge</a>) ' +
'<span class="comment">(Artikelbaukasten-Edit: "'+begin+'...")</span>';
body_begin = html.indexOf("<body");
body_begin = html.indexOf(">", body_begin);
body_end = html.indexOf("</body>");
html = html.substring( body_begin+1, body_end );
html = html.replace( /(<ul class="special">)/, "$1<li>"+changes+"</li>");
ab_genWindow("Letzte Änderungen", "spezial");
content = jQuery(html).find("#bodyContent");
jQuery("#bodyContent").replaceWith(content);
}
});
return false;
}