Rene (Diskussion | Beiträge) 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... |
Rene (Diskussion | Beiträge) Neue Version |
||
| Zeile 1: | Zeile 1: | ||
/** | /** | ||
* Project: Vorlagen-Meister, Version: 0. | * 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. | * 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. | 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"><?xml version="1.0" encoding="utf-8"?><TemplateUsage><Group></Group></TemplateUsage></div>'; | // rv.responseText='<div id="template_usage"><?xml version="1.0" encoding="utf-8"?><TemplateUsage><Group></Group></TemplateUsage></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=" + | '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) { | ||
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; | ||
var Xml_dom=null; | |||
var Xsl_dom=null; | |||
var Dummy_div = document.getElementById("tm_dummy_div"); | |||
var Progress_div = document.getElementById("tm_load_progress"); | |||
is_xml_generated = false; | |||
/ | if (usage_text.length == 0) { | ||
oXmlHttpRequest({ | |||
'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 += " | " + | 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")) { | ||
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 += " | " + | 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; | ||
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; | |||
} | } | ||
} | } | ||
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 = " | 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: | ||
} | } | ||
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- | 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); | ||