Variable säubern, um gültigen Template-Dateinamen zu erzeugen

Damit ein Template richtig erzeugt werden kann, muss ein gültiger Dateiname vergeben werden. Windows verbietet hier /, *, :, <, >, \ und ?. Außerdem werden ä, ö, ü und ß in TIM nicht richtig dargestellt.

Falls nun aber eine Variable für den Dateinamen verwendet wird, ist es möglich, dass eines dieser ungültigen Zeichen darin vorkommt. Deshalb wird eine weitere Prozessvariable (..._clean) angelegt, welche nur für den Dateinamen des Templates verwendet wird:

In der Webform oder Smartform (je nachdem, in welcher die Variable befüllt wird) ein verstecktes Textfeld anlegen, dadurch wird die Prozessvariable befüllt. ID und Name muss angepasst werden:

<input type="text" style="display:none" id="text_bezeichnung_clean" name="text_bezeichnung_clean"/>

In der Webform- oder Smartform-JavaScript-Datei (je nachdem, in welcher die Variable befüllt wird) in die onsubmit- oder onchange-Methode folgendes einfügen:

// slashes und umlaute aus bezeichnung rausfiltern, da diese für den pdf-dateinamen verwendet wird var dirty = $("#text_bezeichnung")[0].value; dirty = dirty.replace(/\\/g, " ").replace(/\//g, " ").replace(/\:/g, " ").replace(/\*/g, " ").replace(/\?/g, " ").replace(/\"/g, " ").replace(/\'/g, " ").replace(/\</g, " ").replace(/\>/g, " ").replace(/\|/g, " ").replace(/\ä/g, "ae").replace(/\ö/g, "oe").replace(/\ü/g, "ue").replace(/\ß/g, "ss").replace(/\./g, " ").replace(/\;/g, " "); $("#text_bezeichnung_clean")[0].value = dirty;

Den Dateinamen des Templates ändern (von ${text_bezeichnung} in ${text_bezeichnung_clean}).

Im Prozess den Parameter des ActionHandlers anpassen (neuen Dateinamen des Templates angeben).

Neu deployen.

Cache löschen und testen.