Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

MediaWiki:Gadget-Vorlagenmeister.js: Unterschied zwischen den Versionen

MediaWiki-Schnittstellenseite
Die Seite wurde neu angelegt: /** * Project: Vorlagen-Meister, Version: 0.3.3beta, Date: 2007-06-14 * Copyright (C) 2007 de:Benutzer:Revvar * Released under the GPL license version 2 * http://w...
 
Neue Version
Zeile 1: Zeile 1:
/**
/**
* Project:  Vorlagen-Meister, Version: 0.3.3beta, Date: 2007-06-14
* Project:  Vorlagen-Meister, Version: 0.4.3beta, Date: 2009-10-17
* Copyright (C) 2007 [[de:Benutzer:Revvar]]
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]]
* Released under the GPL license version 2
* Released under the GPL license version 2
* http://www.gnu.org/copyleft/gpl.html
* http://www.gnu.org/copyleft/gpl.html
Zeile 19: Zeile 19:
/*
/*
* Lokalisierung "Deutsch" des Vorlagen-Meister
* Lokalisierung "Deutsch" des Vorlagen-Meister
* Copyright (C) 2007 [[de:Benutzer:Revvar]] <revvar@gmx.de>
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] <revvar@gmx.de>
* Released under the GPL license version 2
* Released under the GPL license version 2
* http://www.gnu.org/copyleft/gpl.html
* http://www.gnu.org/copyleft/gpl.html
Zeile 40: Zeile 40:
locals["Submit"] = "Übernehmen";
locals["Submit"] = "Übernehmen";
locals["Cancel"] = "Abbrechen";
locals["Cancel"] = "Abbrechen";
locals["CreateXML"] = "XML-Beschreibung generieren...";
locals["Progress"] = "wird geladen";
locals["Progress"] = "wird geladen";
locals["sys_load_error"] = "Konnte Vorlage \"$1\" nicht laden.";
locals["sys_load_error"] = "Konnte Vorlage \"$1\" nicht laden.";
Zeile 53: Zeile 54:
locals["sys_question_wait_for_http_response"] = "Der Server benötigt nun schon länger als $1 Sekunden. Wollen sie warten=[Ok]?";
locals["sys_question_wait_for_http_response"] = "Der Server benötigt nun schon länger als $1 Sekunden. Wollen sie warten=[Ok]?";
locals["sys_unknown_parameter"] = "Der Vorlagentext enthält folgende unbekannte Parameter: \"$1\". Gründe: Schreibfehler, z.B. Groß- bzw. Kleinschreibung wurde nicht beachtet, oder die Beschreibung der Vorlage ist unvollständig.";
locals["sys_unknown_parameter"] = "Der Vorlagentext enthält folgende unbekannte Parameter: \"$1\". Gründe: Schreibfehler, z.B. Groß- bzw. Kleinschreibung wurde nicht beachtet, oder die Beschreibung der Vorlage ist unvollständig.";
locals["sys_xml_generated_summary"] = "Automatisch erzeugt mit dem [[Wikipedia:Helferlein/Vorlagen-Meister|Vorlagen-Meister]]";
locals["w2t plugin selection"] = "Bitte wählen sie eine Vorlage, welche mit dem ausgewählten Text ausgefüllt werden soll:";
locals["w2t plugin selection"] = "Bitte wählen sie eine Vorlage, welche mit dem ausgewählten Text ausgefüllt werden soll:";
return locals;
return locals;
Zeile 64: Zeile 66:
'<?xml version="1.0" encoding="utf-8" ?>\n'+
'<?xml version="1.0" encoding="utf-8" ?>\n'+
'<!--\n'+
'<!--\n'+
'* Copyright (C) 2007 [[de:Benutzer:Revvar]] <revvar@gmx.de>\n'+
'* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] <revvar@gmx.de>\n'+
'* Released under the GPL license\n'+
'* Released under the GPL license\n'+
'* http://www.gnu.org/copyleft/gpl.html\n'+
'* http://www.gnu.org/copyleft/gpl.html\n'+
Zeile 72: Zeile 74:
' <xsl:param name="locals_submit" />\n'+
' <xsl:param name="locals_submit" />\n'+
' <xsl:param name="locals_cancel" />\n'+
' <xsl:param name="locals_cancel" />\n'+
' <xsl:param name="locals_createxml" />\n'+
' <xsl:param name="locals_template" />\n'+
' <xsl:param name="locals_template" />\n'+
' <xsl:param name="locals_nohelp" />\n'+
' <xsl:param name="locals_nohelp" />\n'+
Zeile 78: Zeile 81:
'\n'+
'\n'+
' <!-- create basic gui -->\n'+
' <!-- create basic gui -->\n'+
' <div id="tm_main_frame" class="tm_main_frame" tm_output="{@output}">\n'+
' <div id="tm_main_frame" class="tm_main_frame" tm_output="{@output}" tm_max_value_indentation="{@max_value_indentation}">\n'+
' <div id="tm_header" class="tm_header">\n'+
' <div id="tm_header" class="tm_header">\n'+
' <span class="tm_template"><xsl:choose><xsl:when test="$locals_template"><xsl:value-of select="$locals_template" /></xsl:when><xsl:otherwise>locals_template</xsl:otherwise></xsl:choose>: </span>\n'+
' <span class="tm_template"><xsl:choose><xsl:when test="$locals_template"><xsl:value-of select="$locals_template" /></xsl:when><xsl:otherwise>locals_template</xsl:otherwise></xsl:choose>: </span>\n'+
Zeile 204: Zeile 207:
' <button id="tm_submit" class="tm_button" tabindex="5000" disabled="true"><xsl:choose><xsl:when test="$locals_submit"><xsl:value-of select="$locals_submit" /></xsl:when><xsl:otherwise>locals_submit</xsl:otherwise></xsl:choose></button>\n'+
' <button id="tm_submit" class="tm_button" tabindex="5000" disabled="true"><xsl:choose><xsl:when test="$locals_submit"><xsl:value-of select="$locals_submit" /></xsl:when><xsl:otherwise>locals_submit</xsl:otherwise></xsl:choose></button>\n'+
' <button id="tm_cancel" class="tm_button" tabindex="5001" disabled="true"><xsl:choose><xsl:when test="$locals_cancel"><xsl:value-of select="$locals_cancel" /></xsl:when><xsl:otherwise>locals_cancel</xsl:otherwise></xsl:choose></button>\n'+
' <button id="tm_cancel" class="tm_button" tabindex="5001" disabled="true"><xsl:choose><xsl:when test="$locals_cancel"><xsl:value-of select="$locals_cancel" /></xsl:when><xsl:otherwise>locals_cancel</xsl:otherwise></xsl:choose></button>\n'+
' <button id="tm_createxml" class="tm_button" tabindex="5002" disabled="true" style="visibility:hidden"><xsl:choose><xsl:when test="$locals_createxml"><xsl:value-of select="$locals_createxml" /></xsl:when><xsl:otherwise>locals_createxml</xsl:otherwise></xsl:choose></button>\n'+
' </div>\n'+
' </div>\n'+
' </div> <!-- main frame -->\n'+
' </div> <!-- main frame -->\n'+
Zeile 250: Zeile 254:


/*
/*
* Vorlagen-Meister, Version: 0.3.3beta, Date: 2007-06-14
* Vorlagen-Meister, Version: 0.4.3beta, Date: 2009-10-17
* Copyright (C) 2007 [[de:Benutzer:Revvar]] <revvar@gmx.de>
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] <revvar@gmx.de>
* Released under the GPL license version 2
* Released under the GPL license version 2
* http://www.gnu.org/copyleft/gpl.html
* http://www.gnu.org/copyleft/gpl.html
Zeile 285: Zeile 289:
var self=this;
var self=this;
TM_Plugin.call(this);
TM_Plugin.call(this);
 
var type = "Wiki2Template";
var type = "Wiki2Template";
this.opGetType = function() {return type;};
this.opGetType = function() {return type;};
 
this.opTransform = function(wiki_text) {
this.opTransform = function(wiki_text) {
if (!((wiki_text) && (typeof(wiki_text) == "string") && (wiki_text.length>0))) throw("(TMP_Wiki2Template:contructor) Error: Invalid arguments.");
if (!((wiki_text) && (typeof(wiki_text) == "string") && (wiki_text.length>0))) throw("(TMP_Wiki2Template:contructor) Error: Invalid arguments.");
Zeile 304: Zeile 308:
if (document.getElementById("wpTextbox1") == null) return;
if (document.getElementById("wpTextbox1") == null) return;
if (document.getElementById("wpSave") == null) return;
if (document.getElementById("wpSave") == null) return;
// check if editing xml page from this tool
if (url.search(/\/XML&tm_xml_content=/g) > 0) {
var tm_xml_content = decodeURIComponent(url.replace(/^.*\&tm_xml_content=(.*)$/g, "$1"));
var textbox = document.getElementById('wpTextbox1');
textbox.value = tm_xml_content;
return;
}


  // oHTTPRequest  globals
  // oHTTPRequest  globals
Zeile 326: Zeile 338:


// globals
// globals
var VERSION="0.3.3 beta";
var VERSION="0.4.2 beta";
var State = null;
var State = null;
var Template = new Object();
var Template = new Object();
var Tm_box = null;
var Tm_box = null;
var act_view = "EB";
var act_view = "EB";
var is_khtml = navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled );
var is_ie = !(is_gecko || is_opera || is_safari || is_khtml);
var is_ie = !(is_gecko || is_opera || is_safari || is_khtml);
var Act_input = null;
var Act_input = null;
var is_xml_generated = false;
var generated_xml = '';
var max_value_indentation = 32;


var vm_button = cNode(null, "div", "VM", {"id":"tm_switch_button","class":"tm_switch_button"});
var vm_button = cNode(null, "div", "VM", {"id":"tm_switch_button","class":"tm_switch_button"});
Zeile 374: Zeile 390:


/* search if cursor within a template */
/* search if cursor within a template */
 
/* (1) replace syntax chars within nowiki-tags and html-comments */
/* (1) replace syntax chars within nowiki-tags and html-comments */
var x_nowiki = /(<nowiki>.*?)[{|}](.*?<\/nowiki>)/g;
var x_nowiki = /(<nowiki>.*?)[{|}](.*?<\/nowiki>)/g;
Zeile 380: Zeile 396:
var x_htmlcomment = /(<!--.*?)[{|}](.*?-->)/g;
var x_htmlcomment = /(<!--.*?)[{|}](.*?-->)/g;
var source = replace_all(Editbox.value, x_htmlcomment, "$1#$2");
var source = replace_all(Editbox.value, x_htmlcomment, "$1#$2");
 
/* (2) create a list of all remaining template tags */
/* (2) create a list of all remaining template tags */
var tag_list = new Array();
var tag_list = new Array();
Zeile 403: Zeile 419:
}
}
} while (new_pos >= 0);
} while (new_pos >= 0);
 
/* (3) find nearest tag pair (same depth) around the cursor position */
/* (3) find nearest tag pair (same depth) around the cursor position */
var  start = -1, end = -1, act_depth = 0;
var  start = -1, end = -1, act_depth = 0;
Zeile 414: Zeile 430:
} else break;
} else break;
}
}
 
/* (b) search */
/* (b) search */
for (var i = 0; i < tag_list.length; i++) {
for (var i = 0; i < tag_list.length; i++) {
Zeile 449: Zeile 465:
} else template_source = null;
} else template_source = null;
}
}
 
switch_view_to();
switch_view_to();
/* dummy main div */
/* dummy main div */
Tm_box = cNode(Editbox.parentNode, "div", null, {"id":"tm_dummy_div","style":"position:absolute;z-index:99;left:"+(Editbox.offsetLeft)+"px;top:"+(Editbox.offsetTop)+"px;width:"+(Editbox.offsetWidth)+"px;height:"+(Editbox.offsetHeight)+"px;"+((is_ie)?"overflow-x:hidden;overflow-y:auto;":"overflow:auto;")});
Tm_box = cNode(Editbox.parentNode, "div", null, {"id":"tm_dummy_div","style":"position:absolute;z-index:99;left:"+(Editbox.offsetLeft)+"px;top:"+(Editbox.offsetTop)+"px;width:"+(Editbox.offsetWidth)+"px;height:"+(Editbox.offsetHeight)+"px;"+((is_ie)?"overflow-x:hidden;overflow-y:auto;":"overflow:auto;")});
 
if ((template_source == null) && (Target["start"] <= Target["end"])) {
if ((template_source == null) && (Target["start"] <= Target["end"])) {
// ask, if the user want to use a Wikisource_To_Template-Plugin
// ask, if the user want to use a Wikisource_To_Template-Plugin
Zeile 488: Zeile 504:
Plugin_div.parentNode.removeChild(Plugin_div);
Plugin_div.parentNode.removeChild(Plugin_div);
show_template(Tm_box,"none", null, Target);
show_template(Tm_box,"none", null, Target);
});  
});
Tm_box.appendChild(Plugin_div);
Tm_box.appendChild(Plugin_div);
}
}
Zeile 512: Zeile 528:
// rv.responseText='<div id="template_usage">&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;TemplateUsage&gt;&lt;Group&gt;&lt;/Group&gt;&lt;/TemplateUsage&gt;</div>';
// rv.responseText='<div id="template_usage">&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;TemplateUsage&gt;&lt;Group&gt;&lt;/Group&gt;&lt;/TemplateUsage&gt;</div>';
rv.responseText='<?xml version="1.0" encoding="utf-8"?><TemplateUsage><Group></Group></TemplateUsage>';
rv.responseText='<?xml version="1.0" encoding="utf-8"?><TemplateUsage><Group></Group></TemplateUsage>';
parseUsage(rv);
parseUsage(rv, '');
return;
return;
}
}
Zeile 522: Zeile 538:
else load_template();
else load_template();
return;
return;
 
function load_template()
function load_template()
{
{
var Dummy_div = document.getElementById("tm_dummy_div");
var Dummy_div = document.getElementById("tm_dummy_div");
var Progress_div = cNode(Dummy_div, "div", locals["Template"]+ " \"" + template_name+"\" " +locals["Progress"] +" .", {"class":"tm_load_progress", "id":"tm_load_progress"});
var Progress_div = cNode(Dummy_div, "div", locals["Template"]+ " \"" + template_name+"\" " +locals["Progress"] +" .", {"class":"tm_load_progress", "id":"tm_load_progress"});
 
var A_cancel = cNode(Progress_div, "a", locals["Cancel"], {"class":"tm_button tm_v_selector tm_cancel_button"});
var A_cancel = cNode(Progress_div, "a", locals["Cancel"], {"class":"tm_button tm_v_selector tm_cancel_button"});
addEventListener(A_cancel, "click", function(e) {
addEventListener(A_cancel, "click", function(e) {
Zeile 533: Zeile 549:
switch_view_to("EB");
switch_view_to("EB");
});
});
 
var full_name = ((template_name.search(new RegExp(locals["User"]+"( [^:]+){0,1}:"),"")>=0)?(""):(locals["Template"]+":"))+template_name;
 
oXmlHttpRequest({
oXmlHttpRequest({
'method':'GET',
'method':'GET',
'url': wgServer + wgScriptPath + "/index.php?title=" + ((template_name.search(new RegExp(locals["User"]+"( [^:]+){0,1}:"),"")>=0)?(""):(locals["Template"]+":"))+template_name+"/XML&action=raw",
'url': wgServer + wgScriptPath + "/index.php?title=" + full_name +"/XML&action=raw",
'headers':{'User-agent': 'Skript:TM(wp_de_user_Revvar)'},
'headers':{'User-agent': 'Skript:TM(wp_de_user_Revvar)'},
'onload': function(rD) {
'onload': function(rD) {
Dummy_div.removeChild(Progress_div);
parseUsage(rD, full_name);
parseUsage(rD);
},
},
'onerror':function(rD) {
'onerror':function(rD) {
Zeile 553: Zeile 570:
return;
return;
}
}
 
function parseUsage(rv)
function parseUsage(rv, full_name)
{
{
try {
try {
var usage_text = rv.responseText;
var usage_text = rv.responseText;
if (usage_text.lenght == 0) {
var Xml_dom=null;
log_message(locals["sys_no_such_template"].replace("$1", template_name));
var Xsl_dom=null;
switch_view_to("EB");
var Dummy_div = document.getElementById("tm_dummy_div");
return;
var Progress_div = document.getElementById("tm_load_progress");
}
is_xml_generated = false;


/* create document from XML text */
if (usage_text.length == 0) {
var Xml_dom=parseXML(usage_text);
oXmlHttpRequest({
var Xsl_dom=get_xsl_dom();
'method':'GET',
'url': wgServer + wgScriptPath +'/api.php?action=query&prop=revisions&rvprop=content&rvlimit=1&format=json&titles='+encodeURIComponent(full_name),
'headers':{'User-agent': 'Skript:TM(wp_de_user_Revvar)'},
'onload': function(rD) {
try {
if (Dummy_div && Progress_div) Dummy_div.removeChild(Progress_div);


/* load style sheet for the transformation */
var rT = rD.responseText;
// var Xsl_dom = document.implementation.createDocument("", "", null);
var startPos = rT.search('\\[\\{"\\*":"')+7;
// Xsl_dom.addEventListener("load", onload, false);
var endPos = rT.search('"\\}\\]\\}\\}\\},"');
// Xsl_dom.load("http://tools.wikimedia.de/~revvar/tm_formular.xsl");
 
if (endPos < 0) {
log_message(locals["sys_no_such_template"].replace("$1", template_name));
switch_view_to("EB");
return;
}
 
rT = rT.substring(startPos, endPos);
var xVarname = /\{\{\{[\s]*([^\s\|\}]([^\|\}]*[^\s\|\}]){0,1})[\s\|\}]/g;
var names = rT.match(xVarname);
var vars = new Object();
if (names) {
for (var i = 0; i < names.length; i++) {
var tmp = names[i].replace(xVarname, "$1");
tmp = tmp.replace(/<[^>]+>/g, '');
tmp = decodeURI(tmp);
tmp = tmp.replace('\\u00f6', 'ö');
tmp = tmp.replace('\\u00fc', 'ü');
tmp = tmp.replace('\\u00e4', 'ä');
tmp = tmp.replace('\\u00df', 'ß');
tmp = tmp.replace('\\u00d6', 'Ö');
tmp = tmp.replace('\\u00dc', 'Ü');
tmp = tmp.replace('\\u00c4', 'Ä');
vars[tmp] = true;
}
}
usage_text =  '<?xml version="1.0" encoding="utf-8"?>\n';
usage_text += '<?mediawiki "{{XML-Warnung|' + template_name +'}}"?>\n';
 
usage_text += ' <TemplateUsage output="expand">\n';
usage_text += '  <Group>\n';
for (var varname in vars) {
usage_text += '    <Parameter name="' + varname + '">\n';
usage_text += '      <Help></Help>\n';
usage_text += '    </Parameter>\n';
}
usage_text += '  </Group>\n';
usage_text += ' </TemplateUsage>\n';
 
Xml_dom=parseXML(usage_text);
Xsl_dom=get_xsl_dom();
 
is_xml_generated = true;
generated_xml = usage_text;
 
onload();
return;
} catch (e) {
log_message(e.message);
switch_view_to("EB");
return;
}
},
'onerror':function(rD) {
log_message(locals["sys_load_error"].replace("$1", template_name));
switch_view_to("EB");
},
'onreadystatechange':function() {
Progress_div.firstChild.data += ".";
},
'on_cancel': function() {
switch_view_to("EB");
}
});
return;
}
if (Dummy_div && Progress_div) Dummy_div.removeChild(Progress_div);
 
/* create document from XML text */
Xml_dom=parseXML(usage_text);
Xsl_dom=get_xsl_dom();
 
/* load style sheet for the transformation */
// var Xsl_dom = document.implementation.createDocument("", "", null);
// Xsl_dom.addEventListener("load", onload, false);
// Xsl_dom.load("http://tools.wikimedia.de/~revvar/tm_formular.xsl");


/* next step "function onload"*/
/* next step "function onload"*/
Zeile 606: Zeile 703:
result_xml = result_xml.replace("locals_submit", locals["Submit"]);
result_xml = result_xml.replace("locals_submit", locals["Submit"]);
result_xml = result_xml.replace("locals_cancel", locals["Cancel"]);
result_xml = result_xml.replace("locals_cancel", locals["Cancel"]);
result_xml = result_xml.replace("locals_createxml", locals["CreateXML"]);
result_xml = result_xml.replace("locals_template", locals["Template"]);
result_xml = result_xml.replace("locals_template", locals["Template"]);
result_xml = result_xml.replace(new RegExp("locals_nohelp","g"), locals["sys_no_help"]);
result_xml = result_xml.replace(new RegExp("locals_nohelp","g"), locals["sys_no_help"]);
Zeile 622: Zeile 720:
Processor.setParameter(null, "locals_submit", locals["Submit"]);
Processor.setParameter(null, "locals_submit", locals["Submit"]);
Processor.setParameter(null, "locals_cancel", locals["Cancel"]);
Processor.setParameter(null, "locals_cancel", locals["Cancel"]);
Processor.setParameter(null, "locals_createxml", locals["CreateXML"]);
Processor.setParameter(null, "locals_template", locals["Template"]);
Processor.setParameter(null, "locals_template", locals["Template"]);
Processor.setParameter(null, "locals_nohelp",locals["sys_no_help"]);
Processor.setParameter(null, "locals_nohelp",locals["sys_no_help"]);
Zeile 631: Zeile 730:
/* add program logic */
/* add program logic */
completeForm(Result_dom);
completeForm(Result_dom);
 
return Result_dom;
return Result_dom;
} catch(e) {
} catch(e) {
Zeile 638: Zeile 737:
}
}
}
}
 
function attachForm(dom) {
function attachForm(dom) {
/* append formular to root node */
/* append formular to root node */
Zeile 644: Zeile 743:
if (is_ie) Root_node.removeChild(document.getElementById("tm_dummy_ie_div"));
if (is_ie) Root_node.removeChild(document.getElementById("tm_dummy_ie_div"));
Root_node.appendChild(Mf);
Root_node.appendChild(Mf);
 
var Tm_main = document.getElementById("tm_main_frame");
var Tm_main = document.getElementById("tm_main_frame");
var Tm_header=document.getElementById("tm_header");
var Tm_header=document.getElementById("tm_header");
var Tm_form=document.getElementById("tm_form");
var Tm_form=document.getElementById("tm_form");
var Tm_footer=document.getElementById("tm_footer");
var Tm_footer=document.getElementById("tm_footer");
 
/* resize all input boxes*/
/* resize all input boxes*/
var Input_node = null;
var Input_node = null;
Zeile 659: Zeile 758:
}
}


 
/* resize formular */
/* resize formular */
var new_height = Root_node.offsetHeight;
var new_height = Root_node.offsetHeight;
Zeile 666: Zeile 765:
setStyleAttribute(Tm_form, {"height":((new_height + (Root_node.offsetHeight - Tm_main.offsetHeight) )+ "px")});
setStyleAttribute(Tm_form, {"height":((new_height + (Root_node.offsetHeight - Tm_main.offsetHeight) )+ "px")});
}
}
 
function removeForm() {
function removeForm() {
Root_node.removeChild(document.getElementById("tm_main_frame"));
Root_node.removeChild(document.getElementById("tm_main_frame"));
Zeile 682: Zeile 781:
return false;
return false;
}
}
 
function traverse(Parent, name)
function traverse(Parent, name)
{
{
Zeile 696: Zeile 795:
return childs;
return childs;
}
}
 
function mapParameter(Temp_plugin, Temp_real) {
function mapParameter(Temp_plugin, Temp_real) {
var Temp_given = new Object();
var Temp_given = new Object();
Zeile 713: Zeile 812:
}
}
}
}
 
/* append all unknown params */
/* append all unknown params */
for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) Temp_given[pi_id] = Temp_plugin[pi_id];
for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) Temp_given[pi_id] = Temp_plugin[pi_id];
Zeile 730: Zeile 829:
addEventListener(Name_node, "keypress", template_name_changed);
addEventListener(Name_node, "keypress", template_name_changed);
}
}
 
var is_changed = false;
var is_changed = false;
function template_name_changed(e)
function template_name_changed(e)
Zeile 748: Zeile 847:
show_template(Root_node, new_name, null, Target);
show_template(Root_node, new_name, null, Target);
}
}
 
/* fix an ie width problem for the group divs */
/* fix an ie width problem for the group divs */
  if (is_ie) {
  if (is_ie) {
Zeile 814: Zeile 913:
if ((name !=null) && (name.length) && (name.length>0)) Temp_real[name] = true;
if ((name !=null) && (name.length) && (name.length>0)) Temp_real[name] = true;
}
}
 
Template_given = mapParameter(Template_given, Temp_real);
Template_given = mapParameter(Template_given, Temp_real);
}
}
 
/* fill the formular with the given template and add resize handler */
/* fill the formular with the given template and add resize handler */
var Template_used = new Object();
var Template_used = new Object();
Zeile 854: Zeile 953:
}
}
}
}
 
/* add function for the group selection button */
/* add function for the group selection button */
var Group_selector = dom.getElementById("tm_group_selector");
var Group_selector = dom.getElementById("tm_group_selector");
Zeile 886: Zeile 985:
var Button_cancel = dom.getElementById("tm_cancel");
var Button_cancel = dom.getElementById("tm_cancel");
addEventListener(Button_cancel, "click", cancelTemplate);
addEventListener(Button_cancel, "click", cancelTemplate);
if ((is_xml_generated) && (!is_opera)) {
var Button_createxml = dom.getElementById("tm_createxml");
setStyleAttribute(Button_createxml, {'visibility':'visible'});
Button_createxml.removeAttribute("disabled");
if (Button_createxml) addEventListener(Button_createxml, "click", createXML);
}
 
/* last op (possible race condition!): enable Template_name node and buttons */
/* last op (possible race condition!): enable Template_name node and buttons */
Name_node.removeAttribute("disabled");
Name_node.removeAttribute("disabled");
Button_cancel.removeAttribute("disabled");
Button_cancel.removeAttribute("disabled");
if (template_name != "none") Button_submit.removeAttribute("disabled");
if (template_name != "none") Button_submit.removeAttribute("disabled");
 
return true;
return true;
}
}
Zeile 898: Zeile 1.003:
{
{
if (!is_ie) e.preventDefault();
if (!is_ie) e.preventDefault();
 
/* read all results and correct them if necessary */
/* read all results and correct them if necessary */
var success = true;
var success = true;
Zeile 931: Zeile 1.036:
}
}
}
}
 
/* verify values */
/* verify values */
var node_success = true;
var node_success = true;
Zeile 966: Zeile 1.071:
var output = document.getElementById("tm_main_frame");
var output = document.getElementById("tm_main_frame");
if (output != null) {
if (output != null) {
if (output.getAttribute("tm_max_value_indentation")) {
max_value_indentation = 0+output.getAttribute("tm_max_value_indentation");
}
output = ((""+output.getAttribute("tm_output")).search(/^expand$/)==0);
output = ((""+output.getAttribute("tm_output")).search(/^expand$/)==0);
} else output=false;
} else output=false;
Zeile 972: Zeile 1.080:
var group_template = "";
var group_template = "";
var group_showempty = false;
var group_showempty = false;
// get max parameter length
var max_parameter_length = 0;
for (id in Template_new) if (id.search(/^(source|template_name)$/) < 0) {
if ((output || ((""+Template_new[id].tm_value).length > 0)) && ((id.search("tm_comment_") < 0))) {
var tmp_param = (""+id).replace(x_param,"$1");
if (max_parameter_length < tmp_param.length) max_parameter_length = tmp_param.length;
}
}
var parameter_space = "";
var xNumber = /^[0-9]+$/g;
var prevEmptyNumbers = '';
for (var i = 0; i < ((max_parameter_length > max_value_indentation) ? max_value_indentation : max_parameter_length); i++) parameter_space += " ";
for (id in Template_new) if (id.search(/^(source|template_name)$/) < 0) {
for (id in Template_new) if (id.search(/^(source|template_name)$/) < 0) {
var tmp_param = (""+id).replace(x_param,"$1");
if (output == true) {
if (output == true) {
if (id.search("tm_comment_") == 0) {
if (id.search("tm_comment_") == 0) {
Zeile 981: Zeile 1.105:
//  group_template += Template_new[id].value;
//  group_template += Template_new[id].value;
} else {
} else {
group_template += " | " + (""+id).replace(x_param,"$1");
if (tmp_param.length < parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);
if (tmp_param.search(xNumber) == 0) {
group_template += "|";
} else {
group_template += "| " + tmp_param;
}
if (((""+Template_new[id].tm_value).length > 0) || (Template_new[id].getAttribute("tm_predefined") == "false")) {
if (((""+Template_new[id].tm_value).length > 0) || (Template_new[id].getAttribute("tm_predefined") == "false")) {
group_template += "= " + Template_new[id].tm_value;
if (tmp_param.search(xNumber) == 0) {
group_template += Template_new[id].tm_value;
} else {
group_template += "= " + Template_new[id].tm_value;
}
}
}
group_template += "\n";
group_template += "\n";
Zeile 989: Zeile 1.122:
}
}
} else if (((""+Template_new[id].tm_value).length > 0) && ((id.search("tm_comment_") < 0))) {
} else if (((""+Template_new[id].tm_value).length > 0) && ((id.search("tm_comment_") < 0))) {
new_template += " | " + (""+id).replace(x_param,"$1") + "= " + Template_new[id].tm_value;
if (tmp_param.length < parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);
}
new_template += prevEmptyNumbers;
prevEmptyNumbers = '';
if (tmp_param.search(xNumber) == 0) {
new_template += "|"+ Template_new[id].tm_value;
} else {
new_template += "| "+ tmp_param + "= " + Template_new[id].tm_value;
}
} else if (tmp_param.search(xNumber) == 0) prevEmptyNumbers += '|';
}
}
if (output == true) if ((group_count > 0) || (group_showempty == true)) new_template += group_template;
if (output == true) if ((group_count > 0) || (group_showempty == true)) new_template += group_template;
if (output == false) new_template += " ";
new_template += "}}";
new_template += "}}";


Zeile 1.010: Zeile 1.149:
Target["Editbox"].selectionStart = Target["cursor"];
Target["Editbox"].selectionStart = Target["cursor"];
Target["Editbox"].selectionEnd = Target["cursor"];
Target["Editbox"].selectionEnd = Target["cursor"];
  Target["Editbox"].scrollTop = scroll_top;
Target["Editbox"].scrollTop = scroll_top;
}
}
}
}
 
function cancelTemplate(e)
function cancelTemplate(e)
{
{
if (!is_ie) e.preventDefault();
if (!is_ie) e.preventDefault();
switch_view_to("EB");
switch_view_to("EB");
}
function createXML(e) {
if (!is_ie) e.preventDefault();
var full_name = ((template_name.search(new RegExp(locals["User"]+"( [^:]+){0,1}:"),"")>=0)?(""):(locals["Template"]+":"))+template_name;
var xml_window = window.open(wgServer + wgScriptPath + '/index.php?action=edit&summary=' + encodeURIComponent(locals["sys_xml_generated_summary"]) + '&title=' + encodeURIComponent(full_name) + '/XML');
xml_window.focus();
var textbox = xml_window.document.getElementById('wpTextbox1');
if (textbox) textbox.value = generated_xml;
else {
addEventListener(xml_window, 'load', function (e) {
var textbox = xml_window.document.getElementById('wpTextbox1');
if (textbox) textbox.value = generated_xml;
});
}
}
}
}
}
Zeile 1.074: Zeile 1.229:
var Tm_footer=document.getElementById("tm_footer");
var Tm_footer=document.getElementById("tm_footer");
var new_height = Tm_main.parentNode.offsetHeight;
var new_height = Tm_main.parentNode.offsetHeight;
 
document.getElementById("tm_state").firstChild.data = text;
document.getElementById("tm_state").firstChild.data = text;
 
new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;
new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;
setStyleAttribute(Tm_form, {"height":(new_height+ "px")});
setStyleAttribute(Tm_form, {"height":(new_height+ "px")});
Zeile 1.128: Zeile 1.283:
var x_comment = /<!--.*?-->/g;
var x_comment = /<!--.*?-->/g;
source = replace_all(source, x_comment, "");
source = replace_all(source, x_comment, "");
 
/* replace split chars within nowiki segments and nested templates */
/* replace split chars within nowiki segments and nested templates */
var x_nowiki_1 = /(<nowiki>.*?)[|](.*?<\/nowiki>)/g;
var x_nowiki_1 = /(<nowiki>.*?)[|](.*?<\/nowiki>)/g;
Zeile 1.151: Zeile 1.306:
var first_equal_char = parameter[i].search("=");
var first_equal_char = parameter[i].search("=");
if (first_equal_char < 0) {
if (first_equal_char < 0) {
parameter_name = "tm_form_parameter_" + i;
parameter_name = "tm_form_" + i;
parameter_value = parameter[i];
parameter_value = parameter[i];
} else {
} else {
Zeile 1.289: Zeile 1.444:
function fRetry(text)
function fRetry(text)
{
{
if (data.silent) return;  
if (data.silent) return;
var bRetry=confirm(text+" "+locals["sys_question_repeat_http_request"]);
var bRetry=confirm(text+" "+locals["sys_question_repeat_http_request"]);
if (bRetry==false) {
if (bRetry==false) {
Zeile 1.333: Zeile 1.488:
}
}
var xmlHttp = sajax_init_object();// gets the XMLHttpRequest object (depends on ajax.js)
var xmlHttp = sajax_init_object();// gets the XMLHttpRequest object (depends on ajax.js)
 
xmlHttp.open(req.method, req.url, true);
xmlHttp.open(req.method, req.url, true);
xmlHttp.onreadystatechange = function () {
xmlHttp.onreadystatechange = function () {
Zeile 1.360: Zeile 1.515:
oInputBox.tm_org_size = oInputBox.size; // save orginal size
oInputBox.tm_org_size = oInputBox.size; // save orginal size
}
}
 
if (oInputBox.tm_org_size >= oInputBox.value.length)  {
if (oInputBox.tm_org_size >= oInputBox.value.length)  {
resize_mutex = false;
resize_mutex = false;
Zeile 1.438: Zeile 1.593:
}
}


//tm_init();
hookEvent("load", tm_init);
hookEvent("load", tm_init);


//## File: tm_w2t_infobox_schienenfahrzeug.js #################
//## File: tm_w2t_infobox_schienenfahrzeug.js #################
Zeile 1.463: Zeile 1.618:
var self = this;
var self = this;
TM_P_Wiki2Template.call(this);
TM_P_Wiki2Template.call(this);
 
var name = "Infobox Schienenfahrzeug";
var name = "Infobox Schienenfahrzeug";
this.opGetName = function() {return name;};
this.opGetName = function() {return name;};
 
var template = "Infobox Schienenfahrzeug";
var template = "Infobox Schienenfahrzeug";
this.opGetTemplate = function() {return template;};
this.opGetTemplate = function() {return template;};
 
var super_opTransform = this.opTransform;
var super_opTransform = this.opTransform;
this.opTransform = function(wiki_text) {
this.opTransform = function(wiki_text) {
Zeile 1.482: Zeile 1.637:
var x_wikilink = /\[\[[^|]+\|([^\]]+)\]\]/;
var x_wikilink = /\[\[[^|]+\|([^\]]+)\]\]/;
if (entry[0].search(x_wikilink) >= 0) entry[0] = entry[0].replace(x_wikilink, "$1");
if (entry[0].search(x_wikilink) >= 0) entry[0] = entry[0].replace(x_wikilink, "$1");
entry[0] = entry[0].replace(/^\s*\|\s*/g, "").replace(/^\s*(\S.*\S)\s*$/g,"$1").replace(/[^a-zA-ZäüöÄÜÖß0-9_]/g,"");
entry[0] = entry[0].replace(/^\s*\|\s*/g, "").replace(/^\s*(\S.*\S)\s*$/g,"$1").replace(/[^a-zA-ZäöüÄÖÜß0-9_]/g,"");
entry[1] = entry[1].replace(/^\s*(\S.*\S)\s*$/g,"$1");
entry[1] = entry[1].replace(/^\s*(\S.*\S)\s*$/g,"$1");
if (entry[1].charAt(0) == "|") entry[1] = entry[1].substring(1);
if (entry[1].charAt(0) == "|") entry[1] = entry[1].substring(1);