Browse Source

Neues Template

master
Daniel Quathamer 4 weeks ago
parent
commit
248316ef05
  1. 109
      src-modules/module/kb/etl/wiki2html/mwtools.js
  2. 184
      src-modules/module/kb/etl/wiki2html/parser_stuerzt_ab_wg_zellattributen_und_zwei_Bindestrichen_in_leerer_Zelle.txt
  3. 26
      src-modules/module/kb/etl/wiki2html/wiki2html.kjb
  4. 637
      src-modules/module/kb/etl/wiki2html/wiki2xhtml_nodownload.ktr
  5. 152
      src-modules/module/kb/etl/xml2html/createBodyPrintversion.ktr
  6. 46
      src-modules/module/kb/etl/xml2html/mwTemplates.xsl
  7. 180
      src-modules/module/kb/etl/xml2html/publishOutputProject.ktr
  8. 179
      src-modules/module/kb/etl/xml2html/replaceBody.ktr
  9. 547
      src-modules/module/kb/etl/xml2html/writeDocumentHtml.ktr
  10. 124
      src-modules/module/kb/etl/xml2html/writePrintVersion.ktr
  11. 614
      src-modules/module/kb/etl/xml2html/xml2html.kjb
  12. 2
      src-modules/module/kb/schluesseltabellen/sichten_fuellen.sql
  13. 222
      superx/edit/kb/kb_chunk_view.jsp
  14. 227
      superx/edit/kb/kb_chunk_view_detail.jsp
  15. 125
      superx/edit/kb/kb_chunk_view_list.jsp
  16. 230
      superx/edit/kb/kb_chunk_view_public_list.jsp

109
src-modules/module/kb/etl/wiki2html/mwtools.js

@ -179,6 +179,69 @@ this.renderTemplate = function () {
internalHyperlinks.push(newLink); internalHyperlinks.push(newLink);
} }
break;
case "CardWithImgHeaderandFooter":
ret+="<CardWithImgHeaderandFooter>";
for(var i=0; i < templateOptionName.length;i++)
{
if(templateOptionName[i]=="imgsrc")
{
ret+="<imgsrc>"+templateOptionValue[i].trim();
ret+="</imgsrc>";
}
if(templateOptionName[i]=="link")
{
ret+="<link>";
ret+=wikiLink2Xml(templateOptionValue[i],internalHyperlinks);
ret+="</link>";
}
if(templateOptionName[i]=="title")
{
ret+="<title>";
ret+=templateOptionValue[i];
ret+="</title>";
}
if(templateOptionName[i]=="subtitle")
{
ret+="<subtitle>";
ret+=templateOptionValue[i];
ret+="</subtitle>";
}
/*if(templateOptionName[i]=="link1")
{
ret+="<link1>";
ret+=templateOptionValue[i];
ret+="</link1>";
}
if(templateOptionName[i]=="link2")
{
ret+="<link2>";
ret+=templateOptionValue[i];
ret+="</link2>";
}*/
if(templateOptionName[i]=="content")
{
ret+="<content>";
ret+=templateOptionValue[i];
ret+="</content>";
}
}
ret+="</CardWithImgHeaderandFooter>";
//register the image src:
//var newLink = new internalHyperlink("","image", templateOptionValue[0], "", templateOptionValue[0],internalHyperlinks);
//internalHyperlinks.push(newLink);
break; break;
default: default:
if(templateName.indexOf(" ") > -1) if(templateName.indexOf(" ") > -1)
@ -1900,6 +1963,8 @@ function getHrefEnd(str,foundPos)
return hrefEnd; return hrefEnd;
} }
/* find searchstr in str, but not inside [[...]] /* find searchstr in str, but not inside [[...]]
*/ */
function getCharposOutsideLinks(str,searchstr) function getCharposOutsideLinks(str,searchstr)
@ -1930,3 +1995,47 @@ function stringStartsWith(str,lookfor)
function stringEndsWith(str, lookfor) { function stringEndsWith(str, lookfor) {
return str.indexOf(lookfor, str.length - lookfor.length) !== -1; return str.indexOf(lookfor, str.length - lookfor.length) !== -1;
} }
function wikiLink2Xml(str,internalHyperlinks)
{
var ret="";
var href="Link";
var linkTypeExternal=true;
var linkTagLength=1;
if(stringStartsWith(str,"[["))
{
linkTypeExternal=false;
linkTagLength=2;
}
var linkContentLeft=str.substr(linkTagLength);
var linkContentRight=linkContentLeft.substring(0,linkContentLeft.length-linkTagLength);
var firstBlankPos=linkContentRight.indexOf(" ");
ret+="<href>";
if(firstBlankPos >0)
{
href=linkContentRight.substring(0,firstBlankPos);
ret+=href;
}
else
ret+=linkContentRight;
ret+="</href>";
var linkName="";
ret+="<name>";
if(firstBlankPos>1)
{
linkName=linkContentRight.substr(firstBlankPos);
ret+=linkName.trim();
}
ret+="</name>";
if(!linkTypeExternal)
{
//interne Links verarbeiten
var newLink = new internalHyperlink("","", href.trim(), "", linkName,internalHyperlinks);
internalHyperlinks.push(newLink);
}
return ret;
}

184
src-modules/module/kb/etl/wiki2html/parser_stuerzt_ab_wg_zellattributen_und_zwei_Bindestrichen_in_leerer_Zelle.txt

@ -0,0 +1,184 @@
<bs:pageaccess groups="Memtext" />
'''Modul-Beschreibungen'''
Jedes SuperX-Modul verfügt über eine eigene '''Modul-Homepage''' mit ausführlicher Modulbeschreibung, die
* Informationen über dessen Nutzen, Verfügbarkeit, Erstinstallation, Update und Versionen sowie
* Zugänge zu den Handbüchern über dessen Bedienung, Konfiguration/Administration, Datenbankstruktur und Schnittstellendetails umfasst.
Über die folgende Tabelle gelangen Sie rasch zu den modulspezifischen Artikeln, indem Sie das Link-Symbol [[Image:link.svg|20px]] in der betreffenden Zelle anklicken.
==SuperX-Module: Campus-Management==
{| class="wikitable"
|-
! Homepage
! Highlights
! Handbücher
! Installation
! Versionen
|-
| [[Image:Kern_small.png|100px]] [[Moduldokumentation Kernmodul|'''Kern''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kern_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kern_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kern_modul/f_Versionshistorie.htm]]
|-
| [[Image:APP_small.png|100px]] [[Moduldokumentation Bewerbung_Zulassung|'''Bewerbungen, Zulassungen''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/zul_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/zul_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/zul_modul/f_Versionshistorie.htm]]
|-
| [[image: StudPruef4_small.png|100px]] [[Moduldokumentation Studierende_Pruefungen|'''Studierende, Prüfungen''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sos_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sos_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sos_modul/f_Versionshistorie.htm]]
|-
| [[Image:Erfolg_small.png|100px]] [[Moduldokumentation Studienerfolg|'''Studienerfolg''']]
|
* [[Studienerfolg_Akkreditierungsberichte|Akkreditierungsberichte]]
* [[Studienerfolg Bachelor-Master Übergang|Bachelor-Master Übergang]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/erfolg_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/erfolg_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/erfolg_modul/f_Versionshistorie.htm]]
|-
| [[Image:Gang_small.png|100px]] [[Moduldokumentation Studiengaenge|'''Studiengänge''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/gang_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/gang_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/gang_modul/f_Versionshistorie.htm]]
|-
| [[Image:COSTAGE.png|100px]] [[Moduldokumentation COSTAGE| '''COStage (TU Graz CampusOnline)''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/costage_modul/f_DokumentationundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/costage_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/costage_modul/f_Versionshistorie.htm]]
|}
==SuperX-Module: Ressourcen-Management==
{| class="wikitable zebra"
|-
! Homepage
! Highlights
! Handbücher
! Installation
! Versionen
|-
| [[Image:SVA2.png|100px]] [[Moduldokumentation Personal,_Stellen|'''Personal, Stellen''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sva_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sva_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/sva_modul/f_Versionshistorie.htm]]
|-
| [[Image:FIN2_small.png|100px]] [[Moduldokumentation Finanzrechnung|'''Finanzen (kam., kfm.)''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/fin_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/fin_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/fin_modul/f_Versionshistorie.htm]]
|-
| [[Image:KLR2_small.png|100px]] [[Moduldokumentation Kostenrechnung|'''Kostenrechnung''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/cob_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/cob_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/cob_modul/f_Versionshistorie.htm]]
|-
| [[Image:IVS2_small.png|100px]] [[Moduldokumentation Inventar|'''Inventar''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/ivs_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/ivs_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/ivs_modul/f_Versionshistorie.htm]]
|-
| [[Image:BAU2_small.png|100px]] [[Moduldokumentation Bau|'''Flächen, Räume''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/bau_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/bau_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/bau_modul/f_Versionshistorie.htm]]
|-
| [[Image:GXstage_small.png|100px]] [[Moduldokumentation GXStage|'''GXStage (SAP kameral)''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/gxstage_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/gxstage_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|--
|}
==SuperX-Module: Campus-Ressourcen-Übergreifend==
{| class="wikitable zebra"
! Homepage
! Highlights
! Handbücher
! Installation
! Versionen
|-
| [[Image:MAN2_small.png|100px]] [[Moduldokumentation Managementkennzahlen|'''Managementkennzahlen''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/man_modul/f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/man_modul/f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/man_modul/f_Versionshistorie.htm]]
|-
| [[Image:KENN2_small.png|100px]] [[Moduldokumentation Grunddaten_und_Kennzahlen|'''Landeskennzahlen''']]
|
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kenn_modul//f_HandbcherundRessourcen.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kenn_modul//f_Installation.htm]]
| style="text-align: center;" data-mce-style="text-align: center;"|[[Image:link.svg|20px|link=https://super-ics.de/superx/doku/kenn_modul//f_Versionshistorie.htm]]
|-
| [[Image:WB_small.png|100px]] [[Moduldokumentation Wissensbasis|'''Wissensbasis''']]
| Zugang: [[Image:link.svg|20px|link=http://wissensbasis.superx-projekt.de/]]
| style="text-align: center;" data-mce-style="text-align: center;"|--
| style="text-align: center;" data-mce-style="text-align: center;"|--
| style="text-align: center;" data-mce-style="text-align: center;"|--
|}
<!--
==SuperX.Kern==
* [[Moduldokumentation Kernmodul|Kernmodul]]
==SuperX.Campus-Management==
* [[Moduldokumentation Bewerbung_Zulassung|Bewerbungen, Zulassungen]]
** [[Leitfaden Bewerberstammdaten]]
* [[Moduldokumentation Studierende_Pruefungen|Studierende, Prüfungen]]
** [[Auswertungsuebersicht_Bereich_Studierende_Pruefungen | Auswertungsübersicht]]
** [[Anwendungshandbuch Studierende]]
** [[Anwendungshandbuch Pruefungen|Anwendungshandbuch Prüfungen]]
* [[Moduldokumentation Studienerfolg|Studienerfolg]]--><!--** [[ERFOLG Nutzung_Akkreditierungs-Berichte|Akkreditierungs-Berichte Nutzungshandbuch]]--><!--
** [[Studienerfolg_Akkreditierungsberichte|Akkreditierungsberichte]]
** [[Studienerfolg Bachelor-Master Übergang|Bachelor-Master Übergang]]
* [[Moduldokumentation Leistungsmonitoring|Leistungsmonitoring]]
** [[Konfigurationshanbuch Leistungsmonitoring|Leistungsmonitoring Konfigurationshandbuch]]
** [[Nutzungshandbuch Leistungsmonitoring|Leistungsmonitoring Nutzungshandbuch]]
* [[Moduldokumentation Studiengaenge|Studiengänge]]
* [[Moduldokumentation COSTAGE| COStage (TU Graz CampusOnline)]]
**[[Modul_COSTAGE_Administrationshandbuch|Konfigurationshandbuch]]
==SuperX.Ressourcen-Management==
* [[Moduldokumentation Personal, Stellen|Personal, Stellen]]
* [[Moduldokumentation Finanzrechnung|Finanzen]]
* [[Moduldokumentation Kostenrechnung|Kostenrechnung]]
* [[Moduldokumentation Inventar|Inventar]]
* [[Moduldokumentation Bau|Flächen, Räume]]
* [[Moduldokumentation GXStage|GXStage]]
==SuperX.Campus-Ressourcen-Übergreifend==
* [[Moduldokumentation Managementkennzahlen|Managementkennzahlen]]
* [[Moduldokumentation Grunddaten und Kennzahlen|Landeskennzahlen]]
* [[Moduldokumentation Wissensbasis|Wissensbasis]]
-->

26
src-modules/module/kb/etl/wiki2html/wiki2html.kjb

@ -321,7 +321,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>${Internal.Job.Filename.Directory}/wiki2xhtml.ktr</filename> <filename>${Internal.Job.Filename.Directory}/wiki2xhtml_nodownload.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -1155,5 +1155,27 @@ Authentication Method: ${authentication_method}</logmessage>
<unconditional>N</unconditional> <unconditional>N</unconditional>
</hop> </hop>
</hops> </hops>
<notepads/> <notepads>
<notepad>
<note>Provisorisch _nodownload.ktr</note>
<xloc>96</xloc>
<yloc>224</yloc>
<width>201</width>
<heigth>27</heigth>
<fontname/>
<fontsize>-1</fontsize>
<fontbold>N</fontbold>
<fontitalic>N</fontitalic>
<fontcolorred>0</fontcolorred>
<fontcolorgreen>0</fontcolorgreen>
<fontcolorblue>0</fontcolorblue>
<backgroundcolorred>255</backgroundcolorred>
<backgroundcolorgreen>205</backgroundcolorgreen>
<backgroundcolorblue>112</backgroundcolorblue>
<bordercolorred>100</bordercolorred>
<bordercolorgreen>100</bordercolorgreen>
<bordercolorblue>100</bordercolorblue>
<drawshadow>Y</drawshadow>
</notepad>
</notepads>
</job> </job>

637
src-modules/module/kb/etl/wiki2html/wiki2xhtml_nodownload.ktr

@ -0,0 +1,637 @@
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>wiki2xhtml_nodownload</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
<default_value>68</default_value>
<description/>
</parameter>
</parameters>
<log>
<trans-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
<subject/>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
<subject/>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
<subject/>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
<subject/>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
<subject/>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
<subject/>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</trans-log-table>
<perf-log-table>
<connection/>
<schema/>
<table/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>SEQ_NR</id>
<enabled>Y</enabled>
<name>SEQ_NR</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>INPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>INPUT_BUFFER_ROWS</name>
</field>
<field>
<id>OUTPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>OUTPUT_BUFFER_ROWS</name>
</field>
</perf-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<step-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
</step-log-table>
<metrics-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>METRICS_DATE</id>
<enabled>Y</enabled>
<name>METRICS_DATE</name>
</field>
<field>
<id>METRICS_CODE</id>
<enabled>Y</enabled>
<name>METRICS_CODE</name>
</field>
<field>
<id>METRICS_DESCRIPTION</id>
<enabled>Y</enabled>
<name>METRICS_DESCRIPTION</name>
</field>
<field>
<id>METRICS_SUBJECT</id>
<enabled>Y</enabled>
<name>METRICS_SUBJECT</name>
</field>
<field>
<id>METRICS_TYPE</id>
<enabled>Y</enabled>
<name>METRICS_TYPE</name>
</field>
<field>
<id>METRICS_VALUE</id>
<enabled>Y</enabled>
<name>METRICS_VALUE</name>
</field>
</metrics-log-table>
</log>
<maxdate>
<connection/>
<table/>
<field/>
<offset>0.0</offset>
<maxdiff>0.0</maxdiff>
</maxdate>
<size_rowset>10000</size_rowset>
<sleep_time_empty>50</sleep_time_empty>
<sleep_time_full>50</sleep_time_full>
<unique_connections>N</unique_connections>
<feedback_shown>Y</feedback_shown>
<feedback_size>50000</feedback_size>
<using_thread_priorities>Y</using_thread_priorities>
<shared_objects_file/>
<capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<created_user>-</created_user>
<created_date>2017/08/22 11:23:11.075</created_date>
<modified_user>-</modified_user>
<modified_date>2017/08/22 11:23:11.075</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads/>
<order>
<hop>
<from>wiki2html</from>
<to>Update src_xml</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>getSrcTitle</from>
<to>wiki2html</to>
<enabled>Y</enabled>
</hop>
</order>
<step>
<name>Update src_xml</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<skip_lookup>N</skip_lookup>
<commit>100</commit>
<use_batch>N</use_batch>
<error_ignored>N</error_ignored>
<ignore_flag_field/>
<lookup>
<schema/>
<table>kb_document_source</table>
<key>
<name>document_id</name>
<field>document_id</field>
<condition>=</condition>
<name2/>
</key>
<value>
<name>src_xml</name>
<rename>contentHtml</rename>
</value>
<value>
<name>last_input</name>
<rename>last_input</rename>
</value>
<value>
<name>src_headers</name>
<rename>headersStr</rename>
</value>
<value>
<name>src_header_levels</name>
<rename>headersLevelsStr</rename>
</value>
<value>
<name>internal_hyperlinks</name>
<rename>internalHyperlinksStr</rename>
</value>
<value>
<name>template_options</name>
<rename>templateOptionsStr</rename>
</value>
</lookup>
<cluster_schema/>
<remotesteps>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>560</xloc>
<yloc>144</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>getSrcTitle</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select S.document_id, S.src_title, S.src_text,S.src_api_xml,
S.src_url,W.hostname,W.api_path,W.cookie_name, W.cookie_value, today() as last_input ,S.src_text as result_text
from kb_document_source S, kb_webconnection W
where W.id=S.webconnection_id
and S.document_id=${document_id}</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>Y</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>64</xloc>
<yloc>48</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>wiki2html</name>
<type>ScriptValueMod</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<compatible>N</compatible>
<optimizationLevel>9</optimizationLevel>
<jsScripts>
<jsScript>
<jsScript_type>0</jsScript_type>
<jsScript_name>Script 1</jsScript_name>
<jsScript_script>//Script here
// assuming, that the ua-parser.js is in the transformation directory:
var transformationPath = getVariable("Internal.Transformation.Filename.Directory", "");
var jsScriptPath = transformationPath + "/mwtools.js";
LoadScriptFile(jsScriptPath);
//alert("klappt");
var newWikiModel = new wikiModel(result_text);
//var contentHtml=mw2xhtml(result_text);
var contentHtml=newWikiModel.wikiHtml;
var headersStr=newWikiModel.headersStr;
var headersLevelsStr=newWikiModel.headersLevelsStr;
var internalHyperlinksStr=newWikiModel.internalHyperlinksStr;
var templateOptionsStr=newWikiModel.templateOptionsStr;
</jsScript_script>
</jsScript>
</jsScripts>
<fields>
<field>
<name>contentHtml</name>
<rename>contentHtml</rename>
<type>String</type>
<length>-1</length>
<precision>-1</precision>
<replace>N</replace>
</field>
<field>
<name>headersStr</name>
<rename>headersStr</rename>
<type>String</type>
<length>-1</length>
<precision>-1</precision>
<replace>N</replace>
</field>
<field>
<name>headersLevelsStr</name>
<rename>headersLevelsStr</rename>
<type>String</type>
<length>-1</length>
<precision>-1</precision>
<replace>N</replace>
</field>
<field>
<name>internalHyperlinksStr</name>
<rename>internalHyperlinksStr</rename>
<type>String</type>
<length>-1</length>
<precision>-1</precision>
<replace>N</replace>
</field>
<field>
<name>templateOptionsStr</name>
<rename>templateOptionsStr</rename>
<type>String</type>
<length>-1</length>
<precision>-1</precision>
<replace>N</replace>
</field>
</fields>
<cluster_schema/>
<remotesteps>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>320</xloc>
<yloc>112</yloc>
<draw>Y</draw>
</GUI>
</step>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

152
src-modules/module/kb/etl/xml2html/createBodyPrintversion.ktr

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?><transformation>
<transformation>
<info> <info>
<name>replaceBodyPrintversion</name> <name>replaceBodyPrintversion</name>
<description/> <description/>
@ -7,7 +6,7 @@
<trans_version/> <trans_version/>
<trans_type>Normal</trans_type> <trans_type>Normal</trans_type>
<trans_status>0</trans_status> <trans_status>0</trans_status>
<directory>&#x2f;</directory> <directory>/</directory>
<parameters> <parameters>
<parameter> <parameter>
<name>document_id</name> <name>document_id</name>
@ -429,47 +428,18 @@
<capture_step_performance>N</capture_step_performance> <capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay> <step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies> <dependencies/>
</dependencies> <partitionschemas/>
<partitionschemas> <slaveservers/>
</partitionschemas> <clusterschemas/>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user> <created_user>-</created_user>
<created_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</created_date> <created_date>2018/01/19 19:23:22.741</created_date>
<modified_user>-</modified_user> <modified_user>-</modified_user>
<modified_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</modified_date> <modified_date>2018/01/19 19:23:22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key> <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private> <is_key_private>N</is_key_private>
</info> </info>
<notepads> <notepads/>
</notepads>
<connection>
<name>eduetl</name>
<server>localhost</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>community</database>
<port>9998</port>
<username>superx</username>
<password>Encrypted 2be98afc86aa7f2e4be0b8b49fca3e2f0</password>
<servername>superx_host_iso</servername>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>9998</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<order> <order>
<hop> <hop>
<from>getChapters</from> <from>getChapters</from>
@ -505,8 +475,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile> <IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/> <rownum_field/>
<encoding/> <encoding/>
<file> <file/>
</file>
<fields> <fields>
<field> <field>
<name>File content</name> <name>File content</name>
@ -520,7 +489,7 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
<field> <field>
<name>File size</name> <name>File size</name>
<element_type>size</element_type> <element_type>size</element_type>
@ -533,8 +502,8 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
</fields> </fields>
<limit>0</limit> <limit>0</limit>
<IsInFields>Y</IsInFields> <IsInFields>Y</IsInFields>
<DynamicFilenameField>sourceFileName</DynamicFilenameField> <DynamicFilenameField>sourceFileName</DynamicFilenameField>
@ -547,18 +516,15 @@
<extensionFieldName/> <extensionFieldName/>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>224</xloc> <xloc>224</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>getChapters</name> <name>getChapters</name>
<type>TableInput</type> <type>TableInput</type>
@ -571,7 +537,20 @@
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<connection>eduetl</connection> <connection>eduetl</connection>
<sql>select C.id as chapter_tid,D.id as document_id,&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;f_&#x27; &#x7c;&#x7c; C.chapter_filename &#x7c;&#x7c; &#x27;.htm&#x27; as &#x22;sourceFileName&#x22;,&#xa;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;f_&#x27; &#x7c;&#x7c; C.chapter_filename &#x7c;&#x7c; &#x27;.htm&#x27; as &#x22;targetFileName&#x22;,&#xa;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;__index_new.htm&#x27; as &#x22;indexFileName&#x22;,&#xa;&#x27;&#x23;body&#x27; &#x7c;&#x7c; C.id &#x7c;&#x7c; &#x27;&#x23;&#x27; as body_marker,&#xa;replace&#x28;C.chapter_bodytext,&#x27;&#x24;&#x27;,&#x27;&#x26;&#x23;36&#x3b;&#x27;&#x29; as body, --Dollar Zeichen wird maskiert damit Kettle das nicht als Variable interpretiert&#xa;&#x27;&#x3c;h&#x27; &#x7c;&#x7c; &#x28;C.chapter_level&#x2b;1&#x29; &#x7c;&#x7c; &#x27;&#x3e;&#x27; &#x7c;&#x7c; C.defaulttext &#x7c;&#x7c;&#x27;&#x3c;&#x2f;h&#x27; &#x7c;&#x7c; &#x28;C.chapter_level&#x2b;1&#x29; &#x7c;&#x7c; &#x27;&#x3e;&#x27; as chapter_header,&#xa;&#x28;select P.target_server &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; P.document_root &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; P.target_path from kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d;&#x29; as target_path,&#xa;&#x28;select &#x27;&#x3c;a href&#x3d;&#x22;&#x27; &#x7c;&#x7c; P.pdf_file &#x7c;&#x7c; &#x27;&#x22;&#x3e;PDF&#x3c;&#x2f;a&#x3e;&#x27; from kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d;&#x29; as pdf_file,&#xa;coalesce&#x28;&#x28;select &#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;&#x27; &#x7c;&#x7c; L.embedded_files_path &#x7c;&#x7c; &#x27;&#x2f;mwTemplates.xsl&#x27; from kb_output_project_layout L, kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d; &#xa;and P.kb_output_project_layout_id&#x3d;L.id&#x29;,&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;mwTemplates.xsl&#x27;&#x29; as mwtemplates&#xa;from kb_chapter C, kb_document D&#xa;where D.id&#x3d;C.document_id&#xa;and D.id&#x3d;&#x24;&#x7b;document_id&#x7d;&#xa;order by sortnr&#x3b;</sql> <sql>select C.id as chapter_tid,D.id as document_id,'${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/f_' || C.chapter_filename || '.htm' as "sourceFileName",
'${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/f_' || C.chapter_filename || '.htm' as "targetFileName",
'${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/__index_new.htm' as "indexFileName",
'#body' || C.id || '#' as body_marker,
replace(C.chapter_bodytext,'$','&amp;#36;') as body, --Dollar Zeichen wird maskiert damit Kettle das nicht als Variable interpretiert
'&lt;h' || (C.chapter_level+1) || '&gt;' || C.defaulttext ||'&lt;/h' || (C.chapter_level+1) || '&gt;' as chapter_header,
(select P.target_server || '/' || P.document_root || '/' || P.target_path from kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}) as target_path,
(select '&lt;a href="' || P.pdf_file || '"&gt;PDF&lt;/a&gt;' from kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}) as pdf_file,
coalesce((select '${Internal.Transformation.Filename.Directory}/' || L.embedded_files_path || '/mwTemplates.xsl' from kb_output_project_layout L, kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}
and P.kb_output_project_layout_id=L.id),'${Internal.Transformation.Filename.Directory}/mwTemplates.xsl') as mwtemplates
from kb_chapter C, kb_document D
where D.id=C.document_id
and D.id=${document_id}
order by sortnr;</sql>
<limit>0</limit> <limit>0</limit>
<lookup/> <lookup/>
<execute_each_row>N</execute_each_row> <execute_each_row>N</execute_each_row>
@ -579,18 +558,15 @@
<lazy_conversion_active>N</lazy_conversion_active> <lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>64</xloc> <xloc>64</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>processTemplates</name> <name>processTemplates</name>
<type>UserDefinedJavaClass</type> <type>UserDefinedJavaClass</type>
@ -602,14 +578,11 @@
<method>none</method> <method>none</method>
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<definitions> <definitions>
<definition> <definition>
<class_type>TRANSFORM_CLASS</class_type> <class_type>TRANSFORM_CLASS</class_type>
<class_name>Processor</class_name> <class_name>Processor</class_name>
<class_source>
<class_source><![CDATA[
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -639,7 +612,7 @@ String body=get(Fields.In, "body").getString(r);
String mwTemplateContent=""; String mwTemplateContent="";
int cursor=body.indexOf("<"+mwTemplateElem); int cursor=body.indexOf("&lt;"+mwTemplateElem);
if(cursor==-1) if(cursor==-1)
{ {
//do nothing //do nothing
@ -649,14 +622,14 @@ putRow(data.outputRowMeta, outputRow);
return true; return true;
} }
while (cursor>-1) { while (cursor&gt;-1) {
String body_vorher=body.substring(0,cursor); String body_vorher=body.substring(0,cursor);
int endTag=body.indexOf("</"+mwTemplateElem+">"); int endTag=body.indexOf("&lt;/"+mwTemplateElem+"&gt;");
if(endTag >-1) if(endTag &gt;-1)
{ {
System.out.println("body_vorher:"+body_vorher); System.out.println("body_vorher:"+body_vorher);
mwTemplateContent=body.substring(cursor,endTag+mwTemplateElem.length()+3).replaceAll("&","&amp;"); mwTemplateContent=body.substring(cursor,endTag+mwTemplateElem.length()+3).replaceAll("&amp;","&amp;amp;");
System.out.println("mwTemplateContent:"+mwTemplateContent); System.out.println("mwTemplateContent:"+mwTemplateContent);
String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length()); String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length());
@ -670,7 +643,7 @@ else
{ {
body=body_vorher+body.substring(cursor+mwTemplateElem.length()+2,body.length()); body=body_vorher+body.substring(cursor+mwTemplateElem.length()+2,body.length());
} }
cursor=body.indexOf("<"+mwTemplateElem); cursor=body.indexOf("&lt;"+mwTemplateElem);
} }
Object[] outputRow = createOutputRow(r, data.outputRowMeta.size()); Object[] outputRow = createOutputRow(r, data.outputRowMeta.size());
@ -699,25 +672,25 @@ public static String xsltTransform(String inXml, String xslFile)
result=xmlOutWriter.toString(); result=xmlOutWriter.toString();
return result; return result;
}// Ende der Methode]]></class_source> }// Ende der Methode</class_source>
</definition> </definition>
</definitions> </definitions>
<fields> <fields/>
</fields><clear_result_fields>N</clear_result_fields> <clear_result_fields>N</clear_result_fields>
<info_steps></info_steps><target_steps></target_steps><usage_parameters></usage_parameters> <cluster_schema/> <info_steps/>
<target_steps/>
<usage_parameters/>
<cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>400</xloc> <xloc>400</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>Text file output</name> <name>Text file output</name>
<type>TextFileOutput</type> <type>TextFileOutput</type>
@ -729,7 +702,7 @@ return result;
<method>none</method> <method>none</method>
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<separator>&#x24;&#x7b;line.separator&#x7d;</separator> <separator>${line.separator}</separator>
<enclosure/> <enclosure/>
<enclosure_forced>N</enclosure_forced> <enclosure_forced>N</enclosure_forced>
<enclosure_fix_disabled>N</enclosure_fix_disabled> <enclosure_fix_disabled>N</enclosure_fix_disabled>
@ -743,7 +716,7 @@ return result;
<fileNameField>indexFileName</fileNameField> <fileNameField>indexFileName</fileNameField>
<create_parent_folder>Y</create_parent_folder> <create_parent_folder>Y</create_parent_folder>
<file> <file>
<name>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp_index_content</name> <name>${Internal.Transformation.Filename.Directory}/tmp_index_content</name>
<is_command>N</is_command> <is_command>N</is_command>
<servlet_output>N</servlet_output> <servlet_output>N</servlet_output>
<do_not_open_new_file_init>Y</do_not_open_new_file_init> <do_not_open_new_file_init>Y</do_not_open_new_file_init>
@ -788,21 +761,16 @@ return result;
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>560</xloc> <xloc>560</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step_error_handling/>
<step_error_handling> <slave-step-copy-partition-distribution/>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation> <slave_transformation>N</slave_transformation>
</transformation> </transformation>

46
src-modules/module/kb/etl/xml2html/mwTemplates.xsl

@ -242,5 +242,51 @@ Verfügbar ab Version
<span>siehe <xsl:value-of select="param/paramValue"/></span> <span>siehe <xsl:value-of select="param/paramValue"/></span>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template>
<xsl:template match="CardWithImgHeaderandFooter">
<div class="container">
<article class="media">
<figure class="media-left">
<p class="image is-128x128">
<xsl:call-template name="inlineImagelink">
<xsl:with-param name="imgsrcParam" select="imgsrc" />
<xsl:with-param name="hrefParam" select="link1" />
<xsl:with-param name="textParam" select="text"/>
<xsl:with-param name="widthParam" select="'128px'"/>
</xsl:call-template>
</p>
</figure>
<div class="media-content">
<div class="title is-2"><xsl:value-of select="title" /></div>
<div class="content">
<xsl:if test="subtitle !=''">
<div class="title is-3"><xsl:value-of select="subtitle" /></div>
</xsl:if>
<xsl:for-each select="content" >
<article class="media">
<xsl:copy-of select="." />
</article>
</xsl:for-each>
<!--jetzt footer-->
<article class="media">
<xsl:for-each select="link" >
<a href="{href}">
<button class="button is-grey is-rounded" alt="{name}" title="{name}"><xsl:value-of select="name" /> </button>
</a>
<span class="separator">&#160;</span>
</xsl:for-each>
</article>
</div>
</div><!--ende media-content-->
</article><!--ende article media: News-->
</div><!--Ende container: News-->
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

180
src-modules/module/kb/etl/xml2html/publishOutputProject.ktr

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?><transformation>
<transformation>
<info> <info>
<name>publishOutputProject</name> <name>publishOutputProject</name>
<description/> <description/>
@ -7,7 +6,7 @@
<trans_version/> <trans_version/>
<trans_type>Normal</trans_type> <trans_type>Normal</trans_type>
<trans_status>0</trans_status> <trans_status>0</trans_status>
<directory>&#x2f;</directory> <directory>/</directory>
<parameters> <parameters>
<parameter> <parameter>
<name>document_id</name> <name>document_id</name>
@ -429,47 +428,18 @@
<capture_step_performance>N</capture_step_performance> <capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay> <step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies> <dependencies/>
</dependencies> <partitionschemas/>
<partitionschemas> <slaveservers/>
</partitionschemas> <clusterschemas/>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user> <created_user>-</created_user>
<created_date>2018&#x2f;01&#x2f;20 10&#x3a;53&#x3a;22.812</created_date> <created_date>2018/01/20 10:53:22.812</created_date>
<modified_user>-</modified_user> <modified_user>-</modified_user>
<modified_date>2018&#x2f;01&#x2f;20 10&#x3a;53&#x3a;22.812</modified_date> <modified_date>2018/01/20 10:53:22.812</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key> <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private> <is_key_private>N</is_key_private>
</info> </info>
<notepads> <notepads/>
</notepads>
<connection>
<name>eduetl</name>
<server>localhost</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>community</database>
<port>9998</port>
<username>superx</username>
<password>Encrypted 2be98afc86aa7f2e4be0b8b49fca3e2f0</password>
<servername>superx_host_iso</servername>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>9998</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<order> <order>
<hop> <hop>
<from>getOutputProjectDetails</from> <from>getOutputProjectDetails</from>
@ -515,8 +485,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile> <IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/> <rownum_field/>
<encoding/> <encoding/>
<file> <file/>
</file>
<fields> <fields>
<field> <field>
<name>homepage_content</name> <name>homepage_content</name>
@ -530,8 +499,8 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
</fields> </fields>
<limit>0</limit> <limit>0</limit>
<IsInFields>Y</IsInFields> <IsInFields>Y</IsInFields>
<DynamicFilenameField>from_firstchapter_filename</DynamicFilenameField> <DynamicFilenameField>from_firstchapter_filename</DynamicFilenameField>
@ -544,18 +513,15 @@
<extensionFieldName/> <extensionFieldName/>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>496</xloc> <xloc>496</xloc>
<yloc>128</yloc> <yloc>128</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>copyHtmlFiles</name> <name>copyHtmlFiles</name>
<type>JobExecutor</type> <type>JobExecutor</type>
@ -570,14 +536,22 @@
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<job_object_id/> <job_object_id/>
<job_name/> <job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename> <filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/> <directory_path/>
<group_size>1</group_size> <group_size>1</group_size>
<group_field/> <group_field/>
<group_time/> <group_time/>
<parameters> <parameters>
<variablemapping><variable>from</variable><field>from</field><input/></variablemapping> <variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping> <variable>from</variable>
<field>from</field>
<input/>
</variablemapping>
<variablemapping>
<variable>to</variable>
<field>to</field>
<input/>
</variablemapping>
<inherit_all_vars>Y</inherit_all_vars> <inherit_all_vars>Y</inherit_all_vars>
</parameters> </parameters>
<execution_result_target_step/> <execution_result_target_step/>
@ -600,18 +574,15 @@
<result_files_file_name_field>FileName</result_files_file_name_field> <result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>832</xloc> <xloc>832</xloc>
<yloc>144</yloc> <yloc>144</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>copyImages</name> <name>copyImages</name>
<type>JobExecutor</type> <type>JobExecutor</type>
@ -626,14 +597,22 @@
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<job_object_id/> <job_object_id/>
<job_name/> <job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename> <filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/> <directory_path/>
<group_size>1</group_size> <group_size>1</group_size>
<group_field/> <group_field/>
<group_time/> <group_time/>
<parameters> <parameters>
<variablemapping><variable>from</variable><field>from_images</field><input/></variablemapping> <variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping> <variable>from</variable>
<field>from_images</field>
<input/>
</variablemapping>
<variablemapping>
<variable>to</variable>
<field>to</field>
<input/>
</variablemapping>
<inherit_all_vars>Y</inherit_all_vars> <inherit_all_vars>Y</inherit_all_vars>
</parameters> </parameters>
<execution_result_target_step/> <execution_result_target_step/>
@ -656,18 +635,15 @@
<result_files_file_name_field>FileName</result_files_file_name_field> <result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>144</xloc> <xloc>144</xloc>
<yloc>256</yloc> <yloc>256</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>copyLayoutElements</name> <name>copyLayoutElements</name>
<type>JobExecutor</type> <type>JobExecutor</type>
@ -682,14 +658,22 @@
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<job_object_id/> <job_object_id/>
<job_name/> <job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename> <filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/> <directory_path/>
<group_size>1</group_size> <group_size>1</group_size>
<group_field/> <group_field/>
<group_time/> <group_time/>
<parameters> <parameters>
<variablemapping><variable>from</variable><field>from_layoutelements</field><input/></variablemapping> <variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping> <variable>from</variable>
<field>from_layoutelements</field>
<input/>
</variablemapping>
<variablemapping>
<variable>to</variable>
<field>to</field>
<input/>
</variablemapping>
<inherit_all_vars>Y</inherit_all_vars> <inherit_all_vars>Y</inherit_all_vars>
</parameters> </parameters>
<execution_result_target_step/> <execution_result_target_step/>
@ -712,18 +696,15 @@
<result_files_file_name_field>FileName</result_files_file_name_field> <result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>304</xloc> <xloc>304</xloc>
<yloc>240</yloc> <yloc>240</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>getOutputProjectDetails</name> <name>getOutputProjectDetails</name>
<type>TableInput</type> <type>TableInput</type>
@ -736,7 +717,26 @@
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<connection>eduetl</connection> <connection>eduetl</connection>
<sql>select D.id,D.defaulttext as document_defaulttext, &#xa;O.id, &#xa;R.content as webinfdir,&#xa;O.document_root,&#xa;O.target_path,&#xa;O.homepage,&#xa;substring&#x28;&#x28;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x27; &#x7c;&#x7c; D.id &#x7c;&#x7c; &#x27;&#x2f;f_&#x27; &#x7c;&#x7c; &#x28;select C.chapter_filename from kb_chapter C where C.document_id&#x3d;D.id and C.sortnr&#x3d;0&#x29;&#x7c;&#x7c; &#x27;.htm&#x27; &#x29; from 8 for 255&#x29;&#xa; as from_firstchapter_filename,&#xa;L.embedded_files_path,&#xa;substring&#x28;&#x28;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x27; &#x7c;&#x7c; D.id&#x29; from 8 for 255&#x29; as from,&#xa;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;&#x27; &#x7c;&#x7c; L.embedded_files_path as from_layoutelements,&#xa;R.content &#x7c;&#x7c; &#x27;&#x2f;..&#x2f;&#x27; &#x7c;&#x7c; O.document_root &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; O.target_path as to,&#xa;substring&#x28;&#x28;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x27; &#x7c;&#x7c; D.id &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; O.homepage &#x29; from 8 for 255&#x29; as to_firstchapter_filename,&#xa;substring&#x28;&#x28;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;..&#x2f;wiki2html&#x2f;tmp&#x2f;files_&#x27; &#x7c;&#x7c; D.id&#x29; from 8 for 255&#x29; as from_images&#xa;from sx_repository R, kb_document D, kb_output_project O, kb_output_project_part P, kb_output_project_layout L&#xa;where R.id&#x3d;&#x27;WEBINFDIR&#x27;&#xa;and D.id&#x3d;P.src_document_id&#xa;and O.id&#x3d;P.output_project_id&#xa;and L.id&#x3d;O.kb_output_project_layout_id&#xa;and D.id&#x3d;&#x24;&#x7b;document_id&#x7d;</sql> <sql>select D.id,D.defaulttext as document_defaulttext,
O.id,
R.content as webinfdir,
O.document_root,
O.target_path,
O.homepage,
substring(('${Internal.Transformation.Filename.Directory}/tmp/files_' || D.id || '/f_' || (select C.chapter_filename from kb_chapter C where C.document_id=D.id and C.sortnr=0)|| '.htm' ) from 8 for 255)
as from_firstchapter_filename,
L.embedded_files_path,
substring(('${Internal.Transformation.Filename.Directory}/tmp/files_' || D.id) from 8 for 255) as from,
'${Internal.Transformation.Filename.Directory}/' || L.embedded_files_path as from_layoutelements,
R.content || '/../' || O.document_root || '/' || O.target_path as to,
substring(('${Internal.Transformation.Filename.Directory}/tmp/files_' || D.id || '/' || O.homepage ) from 8 for 255) as to_firstchapter_filename,
substring(('${Internal.Transformation.Filename.Directory}/../wiki2html/tmp/files_' || D.id) from 8 for 255) as from_images
from sx_repository R, kb_document D, kb_output_project O, kb_output_project_part P, kb_output_project_layout L
where R.id='WEBINFDIR'
and D.id=P.src_document_id
and O.id=P.output_project_id
and L.id=O.kb_output_project_layout_id
and D.id=${document_id}</sql>
<limit>0</limit> <limit>0</limit>
<lookup/> <lookup/>
<execute_each_row>N</execute_each_row> <execute_each_row>N</execute_each_row>
@ -744,18 +744,15 @@
<lazy_conversion_active>N</lazy_conversion_active> <lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>160</xloc> <xloc>160</xloc>
<yloc>96</yloc> <yloc>96</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>writeHomepage</name> <name>writeHomepage</name>
<type>TextFileOutput</type> <type>TextFileOutput</type>
@ -814,21 +811,16 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>672</xloc> <xloc>672</xloc>
<yloc>144</yloc> <yloc>144</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step_error_handling/>
<step_error_handling> <slave-step-copy-partition-distribution/>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation> <slave_transformation>N</slave_transformation>
</transformation> </transformation>

179
src-modules/module/kb/etl/xml2html/replaceBody.ktr

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?><transformation>
<transformation>
<info> <info>
<name>replaceBody</name> <name>replaceBody</name>
<description/> <description/>
@ -7,7 +6,7 @@
<trans_version/> <trans_version/>
<trans_type>Normal</trans_type> <trans_type>Normal</trans_type>
<trans_status>0</trans_status> <trans_status>0</trans_status>
<directory>&#x2f;</directory> <directory>/</directory>
<parameters> <parameters>
<parameter> <parameter>
<name>document_id</name> <name>document_id</name>
@ -429,47 +428,18 @@
<capture_step_performance>N</capture_step_performance> <capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay> <step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies> <dependencies/>
</dependencies> <partitionschemas/>
<partitionschemas> <slaveservers/>
</partitionschemas> <clusterschemas/>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user> <created_user>-</created_user>
<created_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</created_date> <created_date>2018/01/19 19:23:22.741</created_date>
<modified_user>-</modified_user> <modified_user>-</modified_user>
<modified_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</modified_date> <modified_date>2018/01/19 19:23:22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key> <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private> <is_key_private>N</is_key_private>
</info> </info>
<notepads> <notepads/>
</notepads>
<connection>
<name>eduetl</name>
<server>localhost</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>community</database>
<port>9998</port>
<username>superx</username>
<password>Encrypted 2be98afc86aa7f292a20aa77fd0c3fa9e</password>
<servername>superx_host_iso</servername>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>9998</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<order> <order>
<hop> <hop>
<from>getChapters</from> <from>getChapters</from>
@ -520,8 +490,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile> <IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/> <rownum_field/>
<encoding/> <encoding/>
<file> <file/>
</file>
<fields> <fields>
<field> <field>
<name>File content</name> <name>File content</name>
@ -535,7 +504,7 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
<field> <field>
<name>File size</name> <name>File size</name>
<element_type>size</element_type> <element_type>size</element_type>
@ -548,8 +517,8 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
</fields> </fields>
<limit>0</limit> <limit>0</limit>
<IsInFields>Y</IsInFields> <IsInFields>Y</IsInFields>
<DynamicFilenameField>sourceFileName</DynamicFilenameField> <DynamicFilenameField>sourceFileName</DynamicFilenameField>
@ -562,18 +531,15 @@
<extensionFieldName/> <extensionFieldName/>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>224</xloc> <xloc>224</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>ReplaceBody</name> <name>ReplaceBody</name>
<type>ReplaceString</type> <type>ReplaceString</type>
@ -590,7 +556,7 @@
<in_stream_name>File content</in_stream_name> <in_stream_name>File content</in_stream_name>
<out_stream_name>file_content_replaced</out_stream_name> <out_stream_name>file_content_replaced</out_stream_name>
<use_regex>no</use_regex> <use_regex>no</use_regex>
<replace_string>&#x23;body&#x23;</replace_string> <replace_string>#body#</replace_string>
<replace_by_string/> <replace_by_string/>
<set_empty_string>N</set_empty_string> <set_empty_string>N</set_empty_string>
<replace_field_by_string>body</replace_field_by_string> <replace_field_by_string>body</replace_field_by_string>
@ -600,18 +566,15 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>400</xloc> <xloc>400</xloc>
<yloc>224</yloc> <yloc>224</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>ReplacePdfFile</name> <name>ReplacePdfFile</name>
<type>ReplaceString</type> <type>ReplaceString</type>
@ -628,7 +591,7 @@
<in_stream_name>file_content_replaced2</in_stream_name> <in_stream_name>file_content_replaced2</in_stream_name>
<out_stream_name>file_content_replaced3</out_stream_name> <out_stream_name>file_content_replaced3</out_stream_name>
<use_regex>no</use_regex> <use_regex>no</use_regex>
<replace_string>&#x23;pdf_file&#x23;</replace_string> <replace_string>#pdf_file#</replace_string>
<replace_by_string/> <replace_by_string/>
<set_empty_string>N</set_empty_string> <set_empty_string>N</set_empty_string>
<replace_field_by_string>pdf_file</replace_field_by_string> <replace_field_by_string>pdf_file</replace_field_by_string>
@ -638,18 +601,15 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>688</xloc> <xloc>688</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>ReplaceTargetPath</name> <name>ReplaceTargetPath</name>
<type>ReplaceString</type> <type>ReplaceString</type>
@ -666,7 +626,7 @@
<in_stream_name>file_content_replaced</in_stream_name> <in_stream_name>file_content_replaced</in_stream_name>
<out_stream_name>file_content_replaced2</out_stream_name> <out_stream_name>file_content_replaced2</out_stream_name>
<use_regex>no</use_regex> <use_regex>no</use_regex>
<replace_string>&#x23;targetpath&#x23;</replace_string> <replace_string>#targetpath#</replace_string>
<replace_by_string/> <replace_by_string/>
<set_empty_string>N</set_empty_string> <set_empty_string>N</set_empty_string>
<replace_field_by_string>target_path</replace_field_by_string> <replace_field_by_string>target_path</replace_field_by_string>
@ -676,18 +636,15 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>672</xloc> <xloc>672</xloc>
<yloc>224</yloc> <yloc>224</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>Text file output</name> <name>Text file output</name>
<type>TextFileOutput</type> <type>TextFileOutput</type>
@ -746,18 +703,15 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>928</xloc> <xloc>928</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>getChapters</name> <name>getChapters</name>
<type>TableInput</type> <type>TableInput</type>
@ -770,7 +724,18 @@
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<connection>eduetl</connection> <connection>eduetl</connection>
<sql>select C.id as chapter_tid,D.id as document_id,&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;f_&#x27; &#x7c;&#x7c; C.chapter_filename &#x7c;&#x7c; &#x27;.htm&#x27; as &#x22;sourceFileName&#x22;,&#xa;&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;f_&#x27; &#x7c;&#x7c; C.chapter_filename &#x7c;&#x7c; &#x27;.htm&#x27; as &#x22;targetFileName&#x22;,&#xa;&#x27;&#x23;body&#x27; &#x7c;&#x7c; C.id &#x7c;&#x7c; &#x27;&#x23;&#x27; as body_marker,&#xa;replace&#x28;C.chapter_bodytext,&#x27;&#x24;&#x27;,&#x27;&#x26;&#x23;36&#x3b;&#x27;&#x29; as body, --Dollar Zeichen wird maskiert damit Kettle das nicht als Variable interpretiert&#xa;&#x28;select P.target_server &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; P.document_root &#x7c;&#x7c; &#x27;&#x2f;&#x27; &#x7c;&#x7c; P.target_path from kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d;&#x29; as target_path,&#xa;&#x28;select &#x27;&#x3c;a href&#x3d;&#x22;&#x27; &#x7c;&#x7c; P.pdf_file &#x7c;&#x7c; &#x27;&#x22;&#x3e;PDF&#x3c;&#x2f;a&#x3e;&#x27; from kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d;&#x29; as pdf_file,&#xa;coalesce&#x28;&#x28;select &#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;&#x27; &#x7c;&#x7c; L.embedded_files_path &#x7c;&#x7c; &#x27;&#x2f;mwTemplates.xsl&#x27; from kb_output_project_layout L, kb_output_project P, kb_output_project_part A where P.id&#x3d;A.output_project_id and A.src_document_id&#x3d;&#x24;&#x7b;document_id&#x7d; &#xa;and P.kb_output_project_layout_id&#x3d;L.id&#x29;,&#x27;&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;mwTemplates.xsl&#x27;&#x29; as mwtemplates&#xa;from kb_chapter C, kb_document D&#xa;where D.id&#x3d;C.document_id&#xa;and D.id&#x3d;&#x24;&#x7b;document_id&#x7d;&#xa;order by sortnr&#x3b;</sql> <sql>select C.id as chapter_tid,D.id as document_id,'${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/f_' || C.chapter_filename || '.htm' as "sourceFileName",
'${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/f_' || C.chapter_filename || '.htm' as "targetFileName",
'#body' || C.id || '#' as body_marker,
replace(C.chapter_bodytext,'$','&amp;#36;') as body, --Dollar Zeichen wird maskiert damit Kettle das nicht als Variable interpretiert
(select P.target_server || '/' || P.document_root || '/' || P.target_path from kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}) as target_path,
(select '&lt;a href="' || P.pdf_file || '"&gt;PDF&lt;/a&gt;' from kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}) as pdf_file,
coalesce((select '${Internal.Transformation.Filename.Directory}/' || L.embedded_files_path || '/mwTemplates.xsl' from kb_output_project_layout L, kb_output_project P, kb_output_project_part A where P.id=A.output_project_id and A.src_document_id=${document_id}
and P.kb_output_project_layout_id=L.id),'${Internal.Transformation.Filename.Directory}/mwTemplates.xsl') as mwtemplates
from kb_chapter C, kb_document D
where D.id=C.document_id
and D.id=${document_id}
order by sortnr;</sql>
<limit>0</limit> <limit>0</limit>
<lookup/> <lookup/>
<execute_each_row>N</execute_each_row> <execute_each_row>N</execute_each_row>
@ -778,18 +743,15 @@
<lazy_conversion_active>N</lazy_conversion_active> <lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>64</xloc> <xloc>64</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>processTemplates</name> <name>processTemplates</name>
<type>UserDefinedJavaClass</type> <type>UserDefinedJavaClass</type>
@ -801,14 +763,11 @@
<method>none</method> <method>none</method>
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<definitions> <definitions>
<definition> <definition>
<class_type>TRANSFORM_CLASS</class_type> <class_type>TRANSFORM_CLASS</class_type>
<class_name>Processor</class_name> <class_name>Processor</class_name>
<class_source>
<class_source><![CDATA[
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -838,7 +797,7 @@ String body=get(Fields.In, "body").getString(r);
String mwTemplateContent=""; String mwTemplateContent="";
int cursor=body.indexOf("<"+mwTemplateElem); int cursor=body.indexOf("&lt;"+mwTemplateElem);
if(cursor==-1) if(cursor==-1)
{ {
//do nothing //do nothing
@ -848,14 +807,14 @@ putRow(data.outputRowMeta, outputRow);
return true; return true;
} }
while (cursor>-1) { while (cursor&gt;-1) {
String body_vorher=body.substring(0,cursor); String body_vorher=body.substring(0,cursor);
int endTag=body.indexOf("</"+mwTemplateElem+">"); int endTag=body.indexOf("&lt;/"+mwTemplateElem+"&gt;");
if(endTag >-1) if(endTag &gt;-1)
{ {
System.out.println("body_vorher:"+body_vorher); System.out.println("body_vorher:"+body_vorher);
mwTemplateContent=body.substring(cursor,endTag+mwTemplateElem.length()+3).replaceAll("&","&amp;"); mwTemplateContent=body.substring(cursor,endTag+mwTemplateElem.length()+3).replaceAll("&amp;","&amp;amp;");
System.out.println("mwTemplateContent:"+mwTemplateContent); System.out.println("mwTemplateContent:"+mwTemplateContent);
String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length()); String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length());
@ -869,7 +828,7 @@ else
{ {
body=body_vorher+body.substring(cursor+mwTemplateElem.length()+2,body.length()); body=body_vorher+body.substring(cursor+mwTemplateElem.length()+2,body.length());
} }
cursor=body.indexOf("<"+mwTemplateElem); cursor=body.indexOf("&lt;"+mwTemplateElem);
} }
Object[] outputRow = createOutputRow(r, data.outputRowMeta.size()); Object[] outputRow = createOutputRow(r, data.outputRowMeta.size());
@ -898,28 +857,26 @@ public static String xsltTransform(String inXml, String xslFile)
result=xmlOutWriter.toString(); result=xmlOutWriter.toString();
return result; return result;
}// Ende der Methode]]></class_source> }// Ende der Methode</class_source>
</definition> </definition>
</definitions> </definitions>
<fields> <fields/>
</fields><clear_result_fields>N</clear_result_fields> <clear_result_fields>N</clear_result_fields>
<info_steps></info_steps><target_steps></target_steps><usage_parameters></usage_parameters> <cluster_schema/> <info_steps/>
<target_steps/>
<usage_parameters/>
<cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>400</xloc> <xloc>400</xloc>
<yloc>80</yloc> <yloc>80</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step_error_handling/>
<step_error_handling> <slave-step-copy-partition-distribution/>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation> <slave_transformation>N</slave_transformation>
</transformation> </transformation>

547
src-modules/module/kb/etl/xml2html/writeDocumentHtml.ktr

@ -0,0 +1,547 @@
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>writeDocumentHtml</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
<default_value>243</default_value>
<description/>
</parameter>
</parameters>
<log>
<trans-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
<subject/>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
<subject/>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
<subject/>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
<subject/>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
<subject/>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
<subject/>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</trans-log-table>
<perf-log-table>
<connection/>
<schema/>
<table/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>SEQ_NR</id>
<enabled>Y</enabled>
<name>SEQ_NR</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>INPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>INPUT_BUFFER_ROWS</name>
</field>
<field>
<id>OUTPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>OUTPUT_BUFFER_ROWS</name>
</field>
</perf-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<step-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
</step-log-table>
<metrics-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>METRICS_DATE</id>
<enabled>Y</enabled>
<name>METRICS_DATE</name>
</field>
<field>
<id>METRICS_CODE</id>
<enabled>Y</enabled>
<name>METRICS_CODE</name>
</field>
<field>
<id>METRICS_DESCRIPTION</id>
<enabled>Y</enabled>
<name>METRICS_DESCRIPTION</name>
</field>
<field>
<id>METRICS_SUBJECT</id>
<enabled>Y</enabled>
<name>METRICS_SUBJECT</name>
</field>
<field>
<id>METRICS_TYPE</id>
<enabled>Y</enabled>
<name>METRICS_TYPE</name>
</field>
<field>
<id>METRICS_VALUE</id>
<enabled>Y</enabled>
<name>METRICS_VALUE</name>
</field>
</metrics-log-table>
</log>
<maxdate>
<connection/>
<table/>
<field/>
<offset>0.0</offset>
<maxdiff>0.0</maxdiff>
</maxdate>
<size_rowset>10000</size_rowset>
<sleep_time_empty>50</sleep_time_empty>
<sleep_time_full>50</sleep_time_full>
<unique_connections>N</unique_connections>
<feedback_shown>Y</feedback_shown>
<feedback_size>50000</feedback_size>
<using_thread_priorities>Y</using_thread_priorities>
<shared_objects_file/>
<capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<created_user>-</created_user>
<created_date>2018/01/03 21:21:10.720</created_date>
<modified_user>-</modified_user>
<modified_date>2018/01/03 21:21:10.720</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads/>
<order>
<hop>
<from>getDocument</from>
<to>Text file output</to>
<enabled>Y</enabled>
</hop>
</order>
<step>
<name>getDocument</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select '&lt;html&gt;&lt;head&gt;&lt;title&gt;' ||D.defaulttext || '&lt;/title&gt;&lt;LINK REL="stylesheet" type="text/css" href="superx.css"&gt;&lt;/LINK&gt;&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;' ||D.defaulttext || '&lt;/h1&gt;' || D.content_xhtml || '&lt;/body&gt;&lt;/html&gt;' as content_xhtml
from kb_document D
where D.id=${document_id}
;</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>Y</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>112</xloc>
<yloc>64</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Text file output</name>
<type>TextFileOutput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<separator/>
<enclosure>TEST</enclosure>
<enclosure_forced>N</enclosure_forced>
<enclosure_fix_disabled>N</enclosure_fix_disabled>
<header>N</header>
<footer>N</footer>
<format>UNIX</format>
<compression>None</compression>
<encoding>UTF-8</encoding>
<endedLine/>
<fileNameInField>N</fileNameInField>
<fileNameField/>
<create_parent_folder>Y</create_parent_folder>
<file>
<name>${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/__index</name>
<is_command>N</is_command>
<servlet_output>N</servlet_output>
<do_not_open_new_file_init>N</do_not_open_new_file_init>
<extention>htm</extention>
<append>N</append>
<split>N</split>
<haspartno>N</haspartno>
<add_date>N</add_date>
<add_time>N</add_time>
<SpecifyFormat>N</SpecifyFormat>
<date_time_format/>
<add_to_result_filenames>Y</add_to_result_filenames>
<pad>N</pad>
<fast_dump>N</fast_dump>
<splitevery>0</splitevery>
</file>
<fields>
<field>
<name>content_xhtml</name>
<type>String</type>
<format/>
<currency/>
<decimal/>
<group/>
<nullif/>
<trim_type>none</trim_type>
<length>-1</length>
<precision>-1</precision>
</field>
</fields>
<cluster_schema/>
<remotesteps>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>112</xloc>
<yloc>192</yloc>
<draw>Y</draw>
</GUI>
</step>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

124
src-modules/module/kb/etl/xml2html/writePrintVersion.ktr

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?><transformation>
<transformation>
<info> <info>
<name>writeDocumentHtml</name> <name>writeDocumentHtml</name>
<description/> <description/>
@ -7,7 +6,7 @@
<trans_version/> <trans_version/>
<trans_type>Normal</trans_type> <trans_type>Normal</trans_type>
<trans_status>0</trans_status> <trans_status>0</trans_status>
<directory>&#x2f;</directory> <directory>/</directory>
<parameters> <parameters>
<parameter> <parameter>
<name>document_id</name> <name>document_id</name>
@ -424,47 +423,18 @@
<capture_step_performance>N</capture_step_performance> <capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay> <step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies> <dependencies/>
</dependencies> <partitionschemas/>
<partitionschemas> <slaveservers/>
</partitionschemas> <clusterschemas/>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user> <created_user>-</created_user>
<created_date>2018&#x2f;01&#x2f;03 21&#x3a;21&#x3a;10.720</created_date> <created_date>2018/01/03 21:21:10.720</created_date>
<modified_user>-</modified_user> <modified_user>-</modified_user>
<modified_date>2018&#x2f;01&#x2f;03 21&#x3a;21&#x3a;10.720</modified_date> <modified_date>2018/01/03 21:21:10.720</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key> <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private> <is_key_private>N</is_key_private>
</info> </info>
<notepads> <notepads/>
</notepads>
<connection>
<name>eduetl</name>
<server>localhost</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>community</database>
<port>9998</port>
<username>superx</username>
<password>Encrypted 2be98afc86aa7f2e4be0b8b49fca3e2f0</password>
<servername>superx_host_iso</servername>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>9998</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<order> <order>
<hop> <hop>
<from>getDocument</from> <from>getDocument</from>
@ -493,8 +463,8 @@
<method>none</method> <method>none</method>
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<separator>&#x24;&#x7b;line.separator&#x7d;</separator> <separator>${line.separator}</separator>
<enclosure> </enclosure> <enclosure/>
<enclosure_forced>N</enclosure_forced> <enclosure_forced>N</enclosure_forced>
<enclosure_fix_disabled>N</enclosure_fix_disabled> <enclosure_fix_disabled>N</enclosure_fix_disabled>
<header>N</header> <header>N</header>
@ -507,7 +477,7 @@
<fileNameField/> <fileNameField/>
<create_parent_folder>Y</create_parent_folder> <create_parent_folder>Y</create_parent_folder>
<file> <file>
<name>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;__index</name> <name>${Internal.Transformation.Filename.Directory}/tmp/files_${document_id}/__index</name>
<is_command>N</is_command> <is_command>N</is_command>
<servlet_output>N</servlet_output> <servlet_output>N</servlet_output>
<do_not_open_new_file_init>N</do_not_open_new_file_init> <do_not_open_new_file_init>N</do_not_open_new_file_init>
@ -564,18 +534,15 @@
</fields> </fields>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>208</xloc> <xloc>208</xloc>
<yloc>288</yloc> <yloc>288</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>getDocument</name> <name>getDocument</name>
<type>TableInput</type> <type>TableInput</type>
@ -588,7 +555,11 @@
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<connection>eduetl</connection> <connection>eduetl</connection>
<sql>select &#x27;&#x3c;html&#x3e;&#x3c;head&#x3e;&#x3c;title&#x3e;&#x27; &#x7c;&#x7c;D.defaulttext &#x7c;&#x7c; &#x27;&#x3c;&#x2f;title&#x3e;&#x3c;LINK REL&#x3d;&#x22;stylesheet&#x22; type&#x3d;&#x22;text&#x2f;css&#x22; href&#x3d;&#x22;superx.css&#x22;&#x3e;&#x3c;&#x2f;LINK&#x3e;&#x3c;meta http-equiv&#x3d;&#x22;content-type&#x22; content&#x3d;&#x22;text&#x2f;html&#x3b; charset&#x3d;UTF-8&#x22;&#x3e;&#x3c;&#x2f;head&#x3e;&#x3c;body&#x3e;&#x27; as prefix,&#xa;&#x27;&#x3c;&#x2f;body&#x3e;&#x3c;&#x2f;html&#x3e;&#x27; as suffix&#xa;from kb_document D&#xa;where D.id&#x3d;&#x24;&#x7b;document_id&#x7d;&#xa;&#x3b;</sql> <sql>select '&lt;html&gt;&lt;head&gt;&lt;title&gt;' ||D.defaulttext || '&lt;/title&gt;&lt;LINK REL="stylesheet" type="text/css" href="superx.css"&gt;&lt;/LINK&gt;&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;&lt;/head&gt;&lt;body&gt;' as prefix,
'&lt;/body&gt;&lt;/html&gt;' as suffix
from kb_document D
where D.id=${document_id}
;</sql>
<limit>0</limit> <limit>0</limit>
<lookup/> <lookup/>
<execute_each_row>N</execute_each_row> <execute_each_row>N</execute_each_row>
@ -596,18 +567,15 @@
<lazy_conversion_active>N</lazy_conversion_active> <lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>112</xloc> <xloc>112</xloc>
<yloc>64</yloc> <yloc>64</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>Merge Join</name> <name>Merge Join</name>
<type>MergeJoin</type> <type>MergeJoin</type>
@ -619,27 +587,22 @@
<method>none</method> <method>none</method>
<schema_name/> <schema_name/>
</partitioning> </partitioning>
<join_type>LEFT OUTER</join_type> <join_type>LEFT OUTER</join_type>
<step1>getDocument</step1> <step1>getDocument</step1>
<step2>Load file content in memory</step2> <step2>Load file content in memory</step2>
<keys_1> <keys_1/>
</keys_1> <keys_2/>
<keys_2>
</keys_2>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>208</xloc> <xloc>208</xloc>
<yloc>144</yloc> <yloc>144</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step> <step>
<name>Load file content in memory</name> <name>Load file content in memory</name>
<type>LoadFileInput</type> <type>LoadFileInput</type>
@ -659,12 +622,12 @@
<rownum_field/> <rownum_field/>
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
<file> <file>
<name>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;tmp_index_content.htm</name> <name>${Internal.Transformation.Filename.Directory}/tmp_index_content.htm</name>
<filemask/> <filemask/>
<exclude_filemask/> <exclude_filemask/>
<file_required>N</file_required> <file_required>N</file_required>
<include_subfolders>N</include_subfolders> <include_subfolders>N</include_subfolders>
</file> </file>
<fields> <fields>
<field> <field>
<name>index_content</name> <name>index_content</name>
@ -678,8 +641,8 @@
<precision>-1</precision> <precision>-1</precision>
<trim_type>none</trim_type> <trim_type>none</trim_type>
<repeat>N</repeat> <repeat>N</repeat>
</field> </field>
</fields> </fields>
<limit>0</limit> <limit>0</limit>
<IsInFields>N</IsInFields> <IsInFields>N</IsInFields>
<DynamicFilenameField/> <DynamicFilenameField/>
@ -692,21 +655,16 @@
<extensionFieldName/> <extensionFieldName/>
<cluster_schema/> <cluster_schema/>
<remotesteps> <remotesteps>
<input> <input/>
</input> <output/>
<output>
</output>
</remotesteps> </remotesteps>
<GUI> <GUI>
<xloc>336</xloc> <xloc>336</xloc>
<yloc>64</yloc> <yloc>64</yloc>
<draw>Y</draw> <draw>Y</draw>
</GUI> </GUI>
</step> </step>
<step_error_handling/>
<step_error_handling> <slave-step-copy-partition-distribution/>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation> <slave_transformation>N</slave_transformation>
</transformation> </transformation>

614
src-modules/module/kb/etl/xml2html/xml2html.kjb

@ -1,302 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?><job>
<job>
<name>xml2html</name> <name>xml2html</name>
<description/> <description/>
<extended_description/> <extended_description/>
<job_version/> <job_version/>
<job_status>0</job_status> <job_status>0</job_status>
<directory>&#x2f;</directory> <directory>/</directory>
<created_user>-</created_user> <created_user>-</created_user>
<created_date>2018&#x2f;01&#x2f;03 09&#x3a;48&#x3a;55.241</created_date> <created_date>2018/01/03 09:48:55.241</created_date>
<modified_user>-</modified_user> <modified_user>-</modified_user>
<modified_date>2018&#x2f;01&#x2f;03 09&#x3a;48&#x3a;55.241</modified_date> <modified_date>2018/01/03 09:48:55.241</modified_date>
<parameters> <parameters>
<parameter> <parameter>
<name>document_id</name> <name>document_id</name>
<default_value>46</default_value> <default_value>46</default_value>
<description/> <description/>
</parameter> </parameter>
</parameters> </parameters>
<slaveservers> <slaveservers/>
</slaveservers> <job-log-table>
<job-log-table> <connection/>
<connection/> <schema/>
<schema/> <table/>
<table/> <size_limit_lines/>
<size_limit_lines/> <interval/>
<interval/> <timeout_days/>
<timeout_days/> <field>
<field> <id>ID_JOB</id>
<id>ID_JOB</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ID_JOB</name>
<name>ID_JOB</name> </field>
</field> <field>
<field> <id>CHANNEL_ID</id>
<id>CHANNEL_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>CHANNEL_ID</name>
<name>CHANNEL_ID</name> </field>
</field> <field>
<field> <id>JOBNAME</id>
<id>JOBNAME</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>JOBNAME</name>
<name>JOBNAME</name> </field>
</field> <field>
<field> <id>STATUS</id>
<id>STATUS</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>STATUS</name>
<name>STATUS</name> </field>
</field> <field>
<field> <id>LINES_READ</id>
<id>LINES_READ</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_READ</name>
<name>LINES_READ</name> </field>
</field> <field>
<field> <id>LINES_WRITTEN</id>
<id>LINES_WRITTEN</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_WRITTEN</name>
<name>LINES_WRITTEN</name> </field>
</field> <field>
<field> <id>LINES_UPDATED</id>
<id>LINES_UPDATED</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_UPDATED</name>
<name>LINES_UPDATED</name> </field>
</field> <field>
<field> <id>LINES_INPUT</id>
<id>LINES_INPUT</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_INPUT</name>
<name>LINES_INPUT</name> </field>
</field> <field>
<field> <id>LINES_OUTPUT</id>
<id>LINES_OUTPUT</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_OUTPUT</name>
<name>LINES_OUTPUT</name> </field>
</field> <field>
<field> <id>LINES_REJECTED</id>
<id>LINES_REJECTED</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_REJECTED</name>
<name>LINES_REJECTED</name> </field>
</field> <field>
<field> <id>ERRORS</id>
<id>ERRORS</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ERRORS</name>
<name>ERRORS</name> </field>
</field> <field>
<field> <id>STARTDATE</id>
<id>STARTDATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>STARTDATE</name>
<name>STARTDATE</name> </field>
</field> <field>
<field> <id>ENDDATE</id>
<id>ENDDATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ENDDATE</name>
<name>ENDDATE</name> </field>
</field> <field>
<field> <id>LOGDATE</id>
<id>LOGDATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LOGDATE</name>
<name>LOGDATE</name> </field>
</field> <field>
<field> <id>DEPDATE</id>
<id>DEPDATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>DEPDATE</name>
<name>DEPDATE</name> </field>
</field> <field>
<field> <id>REPLAYDATE</id>
<id>REPLAYDATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>REPLAYDATE</name>
<name>REPLAYDATE</name> </field>
</field> <field>
<field> <id>LOG_FIELD</id>
<id>LOG_FIELD</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LOG_FIELD</name>
<name>LOG_FIELD</name> </field>
</field> <field>
<field> <id>EXECUTING_SERVER</id>
<id>EXECUTING_SERVER</id> <enabled>N</enabled>
<enabled>N</enabled> <name>EXECUTING_SERVER</name>
<name>EXECUTING_SERVER</name> </field>
</field> <field>
<field> <id>EXECUTING_USER</id>
<id>EXECUTING_USER</id> <enabled>N</enabled>
<enabled>N</enabled> <name>EXECUTING_USER</name>
<name>EXECUTING_USER</name> </field>
</field> <field>
<field> <id>START_JOB_ENTRY</id>
<id>START_JOB_ENTRY</id> <enabled>N</enabled>
<enabled>N</enabled> <name>START_JOB_ENTRY</name>
<name>START_JOB_ENTRY</name> </field>
</field> <field>
<field> <id>CLIENT</id>
<id>CLIENT</id> <enabled>N</enabled>
<enabled>N</enabled> <name>CLIENT</name>
<name>CLIENT</name> </field>
</field> </job-log-table>
</job-log-table> <jobentry-log-table>
<jobentry-log-table> <connection/>
<connection/> <schema/>
<schema/> <table/>
<table/> <timeout_days/>
<timeout_days/> <field>
<field> <id>ID_BATCH</id>
<id>ID_BATCH</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ID_BATCH</name>
<name>ID_BATCH</name> </field>
</field> <field>
<field> <id>CHANNEL_ID</id>
<id>CHANNEL_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>CHANNEL_ID</name>
<name>CHANNEL_ID</name> </field>
</field> <field>
<field> <id>LOG_DATE</id>
<id>LOG_DATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LOG_DATE</name>
<name>LOG_DATE</name> </field>
</field> <field>
<field> <id>JOBNAME</id>
<id>JOBNAME</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>TRANSNAME</name>
<name>TRANSNAME</name> </field>
</field> <field>
<field> <id>JOBENTRYNAME</id>
<id>JOBENTRYNAME</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>STEPNAME</name>
<name>STEPNAME</name> </field>
</field> <field>
<field> <id>LINES_READ</id>
<id>LINES_READ</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_READ</name>
<name>LINES_READ</name> </field>
</field> <field>
<field> <id>LINES_WRITTEN</id>
<id>LINES_WRITTEN</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_WRITTEN</name>
<name>LINES_WRITTEN</name> </field>
</field> <field>
<field> <id>LINES_UPDATED</id>
<id>LINES_UPDATED</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_UPDATED</name>
<name>LINES_UPDATED</name> </field>
</field> <field>
<field> <id>LINES_INPUT</id>
<id>LINES_INPUT</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_INPUT</name>
<name>LINES_INPUT</name> </field>
</field> <field>
<field> <id>LINES_OUTPUT</id>
<id>LINES_OUTPUT</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_OUTPUT</name>
<name>LINES_OUTPUT</name> </field>
</field> <field>
<field> <id>LINES_REJECTED</id>
<id>LINES_REJECTED</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LINES_REJECTED</name>
<name>LINES_REJECTED</name> </field>
</field> <field>
<field> <id>ERRORS</id>
<id>ERRORS</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ERRORS</name>
<name>ERRORS</name> </field>
</field> <field>
<field> <id>RESULT</id>
<id>RESULT</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>RESULT</name>
<name>RESULT</name> </field>
</field> <field>
<field> <id>NR_RESULT_ROWS</id>
<id>NR_RESULT_ROWS</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>NR_RESULT_ROWS</name>
<name>NR_RESULT_ROWS</name> </field>
</field> <field>
<field> <id>NR_RESULT_FILES</id>
<id>NR_RESULT_FILES</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>NR_RESULT_FILES</name>
<name>NR_RESULT_FILES</name> </field>
</field> <field>
<field> <id>LOG_FIELD</id>
<id>LOG_FIELD</id> <enabled>N</enabled>
<enabled>N</enabled> <name>LOG_FIELD</name>
<name>LOG_FIELD</name> </field>
</field> <field>
<field> <id>COPY_NR</id>
<id>COPY_NR</id> <enabled>N</enabled>
<enabled>N</enabled> <name>COPY_NR</name>
<name>COPY_NR</name> </field>
</field> </jobentry-log-table>
</jobentry-log-table> <channel-log-table>
<channel-log-table> <connection/>
<connection/> <schema/>
<schema/> <table/>
<table/> <timeout_days/>
<timeout_days/> <field>
<field> <id>ID_BATCH</id>
<id>ID_BATCH</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ID_BATCH</name>
<name>ID_BATCH</name> </field>
</field> <field>
<field> <id>CHANNEL_ID</id>
<id>CHANNEL_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>CHANNEL_ID</name>
<name>CHANNEL_ID</name> </field>
</field> <field>
<field> <id>LOG_DATE</id>
<id>LOG_DATE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LOG_DATE</name>
<name>LOG_DATE</name> </field>
</field> <field>
<field> <id>LOGGING_OBJECT_TYPE</id>
<id>LOGGING_OBJECT_TYPE</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>LOGGING_OBJECT_TYPE</name>
<name>LOGGING_OBJECT_TYPE</name> </field>
</field> <field>
<field> <id>OBJECT_NAME</id>
<id>OBJECT_NAME</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>OBJECT_NAME</name>
<name>OBJECT_NAME</name> </field>
</field> <field>
<field> <id>OBJECT_COPY</id>
<id>OBJECT_COPY</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>OBJECT_COPY</name>
<name>OBJECT_COPY</name> </field>
</field> <field>
<field> <id>REPOSITORY_DIRECTORY</id>
<id>REPOSITORY_DIRECTORY</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>REPOSITORY_DIRECTORY</name>
<name>REPOSITORY_DIRECTORY</name> </field>
</field> <field>
<field> <id>FILENAME</id>
<id>FILENAME</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>FILENAME</name>
<name>FILENAME</name> </field>
</field> <field>
<field> <id>OBJECT_ID</id>
<id>OBJECT_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>OBJECT_ID</name>
<name>OBJECT_ID</name> </field>
</field> <field>
<field> <id>OBJECT_REVISION</id>
<id>OBJECT_REVISION</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>OBJECT_REVISION</name>
<name>OBJECT_REVISION</name> </field>
</field> <field>
<field> <id>PARENT_CHANNEL_ID</id>
<id>PARENT_CHANNEL_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>PARENT_CHANNEL_ID</name>
<name>PARENT_CHANNEL_ID</name> </field>
</field> <field>
<field> <id>ROOT_CHANNEL_ID</id>
<id>ROOT_CHANNEL_ID</id> <enabled>Y</enabled>
<enabled>Y</enabled> <name>ROOT_CHANNEL_ID</name>
<name>ROOT_CHANNEL_ID</name> </field>
</field> </channel-log-table>
</channel-log-table> <pass_batchid>N</pass_batchid>
<pass_batchid>N</pass_batchid> <shared_objects_file/>
<shared_objects_file/>
<entries> <entries>
<entry> <entry>
<name>CreateTmpfolder</name> <name>CreateTmpfolder</name>
<description/> <description/>
<type>CREATE_FOLDER</type> <type>CREATE_FOLDER</type>
<foldername>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp</foldername> <foldername>${Internal.Job.Filename.Directory}/tmp</foldername>
<fail_of_folder_exists>N</fail_of_folder_exists> <fail_of_folder_exists>N</fail_of_folder_exists>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
@ -328,7 +326,7 @@
<name>CreateResultFolder</name> <name>CreateResultFolder</name>
<description/> <description/>
<type>CREATE_FOLDER</type> <type>CREATE_FOLDER</type>
<foldername>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;</foldername> <foldername>${Internal.Job.Filename.Directory}/tmp/files_${document_id}</foldername>
<fail_of_folder_exists>N</fail_of_folder_exists> <fail_of_folder_exists>N</fail_of_folder_exists>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
@ -342,7 +340,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;writeChapters.ktr</filename> <filename>${Internal.Job.Filename.Directory}/writeChapters.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -375,8 +373,8 @@
<name>transformChaptersToHtml</name> <name>transformChaptersToHtml</name>
<description/> <description/>
<type>SHELL</type> <type>SHELL</type>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;transformChapters.x</filename> <filename>${Internal.Job.Filename.Directory}/transformChapters.x</filename>
<work_directory>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;</work_directory> <work_directory>${Internal.Job.Filename.Directory}</work_directory>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<exec_per_row>N</exec_per_row> <exec_per_row>N</exec_per_row>
<set_logfile>N</set_logfile> <set_logfile>N</set_logfile>
@ -388,9 +386,9 @@
<insertScript>N</insertScript> <insertScript>N</insertScript>
<script/> <script/>
<loglevel>Basic</loglevel> <loglevel>Basic</loglevel>
<argument0>&#x24;&#x7b;document_id&#x7d;</argument0> <argument0>${document_id}</argument0>
<argument1>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;</argument1> <argument1>${Internal.Job.Filename.Directory}/tmp/files_${document_id}</argument1>
<argument2>&#x24;&#x7b;layoutelements_path&#x7d;</argument2> <argument2>${layoutelements_path}</argument2>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
<nr>0</nr> <nr>0</nr>
@ -403,7 +401,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;replaceBody.ktr</filename> <filename>${Internal.Job.Filename.Directory}/replaceBody.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -441,7 +439,7 @@
<limit_folders>10</limit_folders> <limit_folders>10</limit_folders>
<fields> <fields>
<field> <field>
<name>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;</name> <name>${Internal.Job.Filename.Directory}/tmp/files_${document_id}</name>
</field> </field>
</fields> </fields>
<parallel>N</parallel> <parallel>N</parallel>
@ -456,7 +454,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;publishOutputProject.ktr</filename> <filename>${Internal.Job.Filename.Directory}/publishOutputProject.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -489,7 +487,7 @@
<name>CreateSearchdbFolder</name> <name>CreateSearchdbFolder</name>
<description/> <description/>
<type>CREATE_FOLDER</type> <type>CREATE_FOLDER</type>
<foldername>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;&#x2f;search</foldername> <foldername>${Internal.Job.Filename.Directory}/tmp/files_${document_id}/search</foldername>
<fail_of_folder_exists>N</fail_of_folder_exists> <fail_of_folder_exists>N</fail_of_folder_exists>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
@ -503,7 +501,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;writePrintVersion.ktr</filename> <filename>${Internal.Job.Filename.Directory}/writePrintVersion.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -538,7 +536,7 @@
<type>JOB</type> <type>JOB</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<job_object_id/> <job_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;createPDF.kjb</filename> <filename>${Internal.Job.Filename.Directory}/createPDF.kjb</filename>
<jobname/> <jobname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -555,8 +553,10 @@
<expand_remote_job>N</expand_remote_job> <expand_remote_job>N</expand_remote_job>
<create_parent_folder>N</create_parent_folder> <create_parent_folder>N</create_parent_folder>
<pass_export>N</pass_export> <pass_export>N</pass_export>
<parameters> <pass_all_parameters>Y</pass_all_parameters> <parameters>
</parameters> <set_append_logfile>N</set_append_logfile> <pass_all_parameters>Y</pass_all_parameters>
</parameters>
<set_append_logfile>N</set_append_logfile>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
<nr>0</nr> <nr>0</nr>
@ -580,8 +580,7 @@
<replacevars>Y</replacevars> <replacevars>Y</replacevars>
<filename/> <filename/>
<file_variable_type>JVM</file_variable_type> <file_variable_type>JVM</file_variable_type>
<fields> <fields/>
</fields>
<parallel>N</parallel> <parallel>N</parallel>
<draw>Y</draw> <draw>Y</draw>
<nr>0</nr> <nr>0</nr>
@ -594,7 +593,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;set_variables.ktr</filename> <filename>${Internal.Job.Filename.Directory}/set_variables.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -629,7 +628,7 @@
<type>TRANS</type> <type>TRANS</type>
<specification_method>filename</specification_method> <specification_method>filename</specification_method>
<trans_object_id/> <trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;createBodyPrintversion.ktr</filename> <filename>${Internal.Job.Filename.Directory}/createBodyPrintversion.ktr</filename>
<transname/> <transname/>
<arg_from_previous>N</arg_from_previous> <arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous> <params_from_previous>N</params_from_previous>
@ -778,6 +777,5 @@
<unconditional>N</unconditional> <unconditional>N</unconditional>
</hop> </hop>
</hops> </hops>
<notepads> <notepads/>
</notepads>
</job> </job>

2
src-modules/module/kb/schluesseltabellen/sichten_fuellen.sql

@ -51,7 +51,7 @@ INSERT INTO tmp_sichten(
gueltig_seit , gueltig_bis , aktiv) VALUES ( gueltig_seit , gueltig_bis , aktiv) VALUES (
160 , 'KB-Dokument-Sicht' , 10 , 'kb_document_sg_ns' , 160 , 'KB-Dokument-Sicht' , 10 , 'kb_document_sg_ns' ,
'(Sachgebiet und) Dokument' , 10 , '(Sachgebiet und) Dokument' , 10 ,
'<<SQL>> select defaulttext,apnr,parent,(case when struktur_str=''Sachgebiet'' then 2::smallint else 0::smallint end) as nodeattrib from kb_document_sg order by 1' '<<SQL>> select defaulttext,apnr,parent,(case when struktur_str=''Dokument'' then 0::smallint else 2::smallint end) as nodeattrib from kb_document_sg order by 1'
, 0 , 0 , 0 , 1000, , 0 , 0 , 0 , 1000,
date('01.01.1900') , date('01.01.3000') , 1); date('01.01.1900') , date('01.01.3000') , 1);

222
superx/edit/kb/kb_chunk_view.jsp

@ -0,0 +1,222 @@
<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %>
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<%@ page import ="java.util.Hashtable" %>
<%@ page import ="java.util.StringTokenizer" %>
<%@ page import ="info.bliki.wiki.model.*" %>
<html xmlns:jsp="http://www.java.com/jsp" xmlns:db="http://www.wap-force.com/dbforms"><!--Automatically generated by module_scripts_create.x (SuperX)-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="stylesheet" href="../../style/font-awesome.min.css">
<link rel="stylesheet" href="../../style/bulma.css">
<link rel="stylesheet" href="../../style/sx_common.css">
<link rel="stylesheet" type="text/css" href="/superx/edit/kb/style/kb.css">
<title>Formular Meldungen</title>
<db:base/>
</head>
<%
//HttpSession session=request.getSession(true);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object userobject=request.getSession().getAttribute("UserID");
String userid;
String filter="";
String sql="";
String href="";
String caption="";
String id="";
String info_text="";
StringTokenizer tk;
String paragraph="";
if(userobject == null)
{
userid="18"; //User "anonym"
}
else
userid=userobject.toString();
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String db_form_name="kb_chunk";
String erlaubt="0";
String keyfieldsused="false";
Object kf=request.getParameter("keyfieldsused");
if(kf != null)
keyfieldsused=kf.toString();
String kb_chunk_id = request.getParameter("id");
if(kb_chunk_id != null && !kb_chunk_id.equals("null")){
filter +="id="+kb_chunk_id;
}
String sachgebiete_id = request.getParameter("sachgebiete_id");
if(sachgebiete_id != null && !sachgebiete_id.equals("null")){
filter +="sachgebiete_id="+sachgebiete_id;
}
%>
<%
String systeminfo_id = request.getParameter("systeminfo_id");
if(systeminfo_id != null && !systeminfo_id.equals("null")){
filter +=",systeminfo_id="+systeminfo_id;
}
%>
<%
String topic_id = request.getParameter("topic_id");
if(topic_id != null && !topic_id.equals("null")){
filter +=",topic_id="+topic_id;
}
String submission_type = request.getParameter("submission_type");
%>
<body>
<!--Beginn Top-Navigation-->
<%@ include file="/edit/kb/kb_head.inc" %>
<!--Ende Top-Navigation-->
<db:dbform tableName="kb_chunk" maxRows="1" autoUpdate="false" captionResource="true" multipart="false" followUp="/edit/kb/kb_chunk_view.jsp" filter="<%= filter %>" orderBy="defaulttext"
dbConnectionName="<%= mandantenid %>" >
<!--Beginn Wissensbasis-Dialog (Antwort-Card)-->
<!--Beginn Meldungsdaten-->
<!--<section class="hero is-light">-->
<div class='columns is-mobile is-centered'>
<div class="card">
<div class="card-content">
<div class="media ">
<div class="media-content">
<span class="separator">&nbsp;</span>
<p class="title is-6">SuperX-Wissen!</p>
<p class="subtitle is-7">Antwort auf Ihre Frage</p>
</div>
</div>
<!--Titel und Beschreibung-->
<db:errors/>
<db:body allowNew="true">
<p class="meldungslabel"><db:label fieldName="defaulttext" /></p>
<%
//Wenn es eine Langbeschreibung gibt, wird zunächst versucht,
//den Inhalt als Wiki Seite zu interpretieren.
//wenn das nicht klappt wird einfach Text ausgegeben (Umbrüche durch Paragraphs ersetzen).
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("info_text").toString() != null)
{
info_text=currentRow_kb_chunk.get("info_text").toString();
WikiModel wikiModel = new WikiModel("/superx","/superx");
String info_text_html="";
try {
wikiModel.setUp();
info_text_html = wikiModel.render(info_text);
} catch (Exception e1) {
tk = new StringTokenizer(info_text, "\n", false);
while (tk.hasMoreElements()) {
paragraph=tk.nextElement().toString();
info_text_html += "<p>"+paragraph+"</p>";
}
}
finally {
wikiModel.tearDown();
}
out.println(info_text_html);
}
%>
<!-- UF kb_chunk2keyword-->
<p class="meldungslabel">Schlüsselworte</p>
<db:dbform orderBy="sortnr" childField="kb_chunk_id" parentField="id" tableName="kb_chunk2keyword" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul></db:header>
<db:body allowNew="false">
<li>
<db:dataLabel styleClass="clsInputStyle" fieldName="kb_keyword_id" ><% sql = "select id, defaulttext from kb_keyword order by defaulttext;"; %><db:queryData name="kb_chunk2keyword_kb_keyword9" query="<%= sql %>" dbConnectionName="<%= mandantenid %>" /> </db:dataLabel>
</li>
</db:body>
<db:footer></ul></db:footer>
</db:dbform>
<!--UF Links-->
<!--Links-->
<p class="meldungslabel">Links</p>
<db:dbform orderBy="sortnr" childField="kb_chunk_id" parentField="id" tableName="kb_chunk2link" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul></db:header>
<db:body allowNew="false">
<li>
<%
if(currentRow_kb_chunk2link != null && currentRow_kb_chunk2link.get("link_url").toString() != null)
{
href=currentRow_kb_chunk2link.get("link_url").toString();
if(currentRow_kb_chunk2link.get("link_caption") == null)
caption=href;
else
caption=currentRow_kb_chunk2link.get("link_caption").toString();
if(href.startsWith("/"))
href="http://www.superx-projekt.de/doku"+href;
out.println("<a href=\""+href + "\" target=\"_blank\" class=\"kb\">"+caption+"</a>");
}
%>
</li>
</db:body>
<db:footer></ul></db:footer>
</db:dbform>
<!--UF Reaktionen-->
<p class="meldungslabel">Reaktionen</p>
<db:dbform orderBy="" childField="kb_chunk_id_from" parentField="id" tableName="kb_chunk2relation" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul style="list-style:circle)"></db:header>
<db:body allowNew="false">
<li><a href="<%= response.encodeURL("/superx/edit/kb/kb_chunk_view_detail.jsp")+ "?id="+currentRow_kb_chunk2relation.get("kb_chunk_id_to").toString() +"&submission_type=loesung" %>" target="_self" class="kb">
<db:dataLabel styleClass="clsInputStyle" fieldName="kb_chunk_id_to" ><% sql = "select id, defaulttext from kb_chunk order by defaulttext;"; %><db:queryData name="kb_chunk2keyword_kb_r9" query="<%= sql %>" dbConnectionName="<%= mandantenid %>" /> </db:dataLabel></a>
</li>
</db:body>
<db:footer>
</ul>
</db:footer>
</db:dbform>
</db:body>
<db:footer>
<!--Beginn Card-Footer-->
<footer class="card-footer">
<p class="card-footer-item">
Link zu dieser Seite:&nbsp;
<%
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("id").toString() != null)
{
href="http://www.superx-projekt.de/edit/kb/kb_chunk_view_detail.jsp?id="+kb_chunk_id;
out.println("<a href=\""+href + "\" target=\"_blank\" class=\"kb\">"+href+"</a>");
}
%></p>
</footer>
<!--Ende Card-Footer-->
</div> <!--EndeCard-Content-->
</div> <!--EndeCard-Background-->
</div> <!--Ende Columns-->
<span class="separator">&nbsp;</span>
<!--</section>--> <!--Ende Hero-->
</db:footer></db:dbform>
<%@ include file="/edit/kb/kb_foot.inc" %>
</body>
</html>

227
superx/edit/kb/kb_chunk_view_detail.jsp

@ -0,0 +1,227 @@
<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %>
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<%@ page import ="java.util.Hashtable" %>
<%@ page import ="java.util.StringTokenizer" %>
<%@ page import ="info.bliki.wiki.model.*" %>
<html xmlns:jsp="http://www.java.com/jsp" xmlns:db="http://www.wap-force.com/dbforms"><!--Automatically generated by module_scripts_create.x (SuperX)-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="stylesheet" href="../../style/font-awesome.min.css">
<link rel="stylesheet" href="../../style/bulma.css">
<link rel="stylesheet" href="../../style/sx_common.css">
<link rel="stylesheet" type="text/css" href="/superx/edit/kb/style/kb.css">
<title>Formular Meldungen</title>
<db:base/>
</head>
<%
//HttpSession session=request.getSession(true);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object userobject=request.getSession().getAttribute("UserID");
String userid;
String filter="";
String sql="";
String href="";
String caption="";
String id="";
String info_text="";
StringTokenizer tk;
String paragraph="";
if(userobject == null)
{
userid="18"; //User "anonym"
}
else
userid=userobject.toString();
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String db_form_name="kb_chunk";
String erlaubt="0";
String keyfieldsused="false";
Object kf=request.getParameter("keyfieldsused");
if(kf != null)
keyfieldsused=kf.toString();
String kb_chunk_id = request.getParameter("id");
if(kb_chunk_id != null && !kb_chunk_id.equals("null")){
filter +="id="+kb_chunk_id;
}
String sachgebiete_id = request.getParameter("sachgebiete_id");
if(sachgebiete_id != null && !sachgebiete_id.equals("null")){
filter +="sachgebiete_id="+sachgebiete_id;
}
%>
<%
String systeminfo_id = request.getParameter("systeminfo_id");
if(systeminfo_id != null && !systeminfo_id.equals("null")){
filter +=",systeminfo_id="+systeminfo_id;
}
%>
<%
String topic_id = request.getParameter("topic_id");
if(topic_id != null && !topic_id.equals("null")){
filter +=",topic_id="+topic_id;
}
String submission_type = request.getParameter("submission_type");
%>
<body>
<!--Beginn Top-Navigation-->
<%@ include file="/edit/kb/kb_head.inc" %>
<!--Ende Top-Navigation-->
<db:dbform tableName="kb_chunk" maxRows="1" autoUpdate="false" captionResource="true" multipart="false" followUp="/edit/kb/kb_chunk_view.jsp" filter="<%= filter %>" orderBy="defaulttext"
dbConnectionName="<%= mandantenid %>" >
<!--Beginn Wissensbasis-Dialog (Antwort-Card)-->
<!--Beginn Meldungsdaten-->
<!--<section class="hero is-light">-->
<div class='columns is-mobile is-centered'>
<div class="card">
<div class="card-content">
<div class="media ">
<div class="media-left">
<figure class="image is-96x96">
<img src="../../images/logobutton_kb.svg"
</figure>
</div>
<div class="media-content">
<span class="separator">&nbsp;</span>
<p class="title is-6">SuperX-Wissen!</p>
<p class="subtitle is-7">Antwort auf Ihre Frage</p>
</div>
</div>
<!--Titel und Beschreibung-->
<db:errors/>
<db:body allowNew="false">
<p class="meldungslabel"><db:label fieldName="defaulttext" /></p>
<%
//Wenn es eine Langbeschreibung gibt, wird zunächst versucht,
//den Inhalt als Wiki Seite zu interpretieren.
//wenn das nicht klappt wird einfach Text ausgegeben (Umbrüche durch Paragraphs ersetzen).
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("info_text").toString() != null)
{
info_text=currentRow_kb_chunk.get("info_text").toString();
WikiModel wikiModel = new WikiModel("/superx","/superx");
String info_text_html="";
try {
wikiModel.setUp();
info_text_html = wikiModel.render(info_text);
} catch (Exception e1) {
tk = new StringTokenizer(info_text, "\n", false);
while (tk.hasMoreElements()) {
paragraph=tk.nextElement().toString();
info_text_html += "<p>"+paragraph+"</p>";
}
}
finally {
wikiModel.tearDown();
}
out.println(info_text_html);
}
%>
<!-- UF kb_chunk2keyword-->
<p class="meldungslabel">Schlüsselworte</p>
<db:dbform orderBy="sortnr" childField="kb_chunk_id" parentField="id" tableName="kb_chunk2keyword" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul></db:header>
<db:body allowNew="false">
<li>
<db:dataLabel styleClass="clsInputStyle" fieldName="kb_keyword_id" ><% sql = "select id, defaulttext from kb_keyword order by defaulttext;"; %><db:queryData name="kb_chunk2keyword_kb_keyword9" query="<%= sql %>" dbConnectionName="<%= mandantenid %>" /> </db:dataLabel>
</li>
</db:body>
<db:footer></ul></db:footer>
</db:dbform>
<!--UF Links-->
<!--Links-->
<p class="meldungslabel">Links</p>
<db:dbform orderBy="sortnr" childField="kb_chunk_id" parentField="id" tableName="kb_chunk2link" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul></db:header>
<db:body allowNew="false">
<li>
<%
if(currentRow_kb_chunk2link != null && currentRow_kb_chunk2link.get("link_url").toString() != null)
{
href=currentRow_kb_chunk2link.get("link_url").toString();
if(currentRow_kb_chunk2link.get("link_caption") == null)
caption=href;
else
caption=currentRow_kb_chunk2link.get("link_caption").toString();
if(href.startsWith("/"))
href="http://www.superx-projekt.de/doku"+href;
out.println("<a href=\""+href + "\" target=\"_blank\" class=\"kb\">"+caption+"</a>");
}
%>
</li>
</db:body>
<db:footer></ul></db:footer>
</db:dbform>
<!--UF Reaktionen-->
<p class="meldungslabel">Reaktionen</p>
<db:dbform orderBy="" childField="kb_chunk_id_from" parentField="id" tableName="kb_chunk2relation" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp" autoUpdate="false" multipart="false" dbConnectionName="<%= mandantenid %>">
<db:header><ul style="list-style:circle)"></db:header>
<db:body allowNew="false">
<li><a href="<%= response.encodeURL("/superx/edit/kb/kb_chunk_view_detail.jsp")+ "?id="+currentRow_kb_chunk2relation.get("kb_chunk_id_to").toString() +"&submission_type=loesung" %>" target="_self" class="kb">
<db:dataLabel styleClass="clsInputStyle" fieldName="kb_chunk_id_to" ><% sql = "select id, defaulttext from kb_chunk order by defaulttext;"; %><db:queryData name="kb_chunk2keyword_kb_r9" query="<%= sql %>" dbConnectionName="<%= mandantenid %>" /> </db:dataLabel></a>
</li>
</db:body>
<db:footer>
</ul>
</db:footer>
</db:dbform>
</db:body>
<db:footer>
<!--Beginn Card-Footer-->
<footer class="card-footer">
<p class="card-footer-item">
Link zu dieser Seite:&nbsp;
<%
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("id").toString() != null)
{
href="http://www.superx-projekt.de/edit/kb/kb_chunk_view_detail.jsp?id="+kb_chunk_id;
out.println("<a href=\""+href + "\" target=\"_blank\" class=\"kb\">"+href+"</a>");
}
%></p>
</footer>
<!--Ende Card-Footer-->
</div> <!--EndeCard-Content-->
</div> <!--EndeCard-Background-->
</div> <!--Ende Columns-->
<span class="separator">&nbsp;</span>
<!--</section>--> <!--Ende Hero-->
</db:footer></db:dbform>
<%@ include file="/edit/kb/kb_foot.inc" %>
</body>
</html>

125
superx/edit/kb/kb_chunk_view_list.jsp

@ -0,0 +1,125 @@
<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %>
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<html xmlns:jsp="http://www.java.com/jsp" xmlns:db="http://www.wap-force.com/dbforms"><!--Automatically generated by module_scripts_create.x (SuperX)-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="stylesheet" type="text/css" href="/superx/edit/kb/style/kb.css">
<base target="Problem">
<title>Formular Meldungen</title>
<script type="text/javascript">
var djConfig = {isDebug: false };
//djConfig.debugAtAllCosts = true;
</script><script src="/superx/xml/js/dojo/dojo.js" type="text/javascript">&nbsp;</script><script type="text/javascript">
dojo.require("dojo.widget.Dialog");
dojo.require("dojo.widget.Button");
dojo.require("dojo.widget.Tooltip");
dojo.require("dojo.string.common");
dojo.hostenv.writeIncludes();
</script><script src="/superx/xml/js/memtext/dbforms.js" type="text/javascript">&nbsp;</script>
<db:base/>
<script LANGUAGE="JavaScript" src="../edit/kb/scripte/textOperationen.js"></script>
</head>
<%
//HttpSession session=request.getSession(true);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object userobject=request.getSession().getAttribute("UserID");
String userid;
String filter="";
String sql="";
String href="";
String id="";
if(userobject == null)
{
%>
<jsp:forward page="/edit/not_authenticated.htm"/>
<%
}
else
userid=userobject.toString();
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String db_form_name="kb_chunk";
String erlaubt="0";
%>
<%@ include file="/edit/check_authentication.inc" %>
<%
if(erlaubt.equals("0"))
{
%>
<jsp:forward page="/edit/not_authorized.htm"/>
<%
}
String keyfieldsused="false";
Object kf=request.getParameter("keyfieldsused");
if(kf != null)
keyfieldsused=kf.toString();
String sachgebiete_id = request.getParameter("sachgebiete_id");
if(sachgebiete_id != null && !sachgebiete_id.equals("null")){
filter +="sachgebiete_id="+sachgebiete_id;
}
%>
<%
String systeminfo_id = request.getParameter("systeminfo_id");
if(systeminfo_id != null && !systeminfo_id.equals("null")){
filter +=",systeminfo_id="+systeminfo_id;
}
%>
<%
String topic_id = request.getParameter("topic_id");
if(topic_id != null && !topic_id.equals("null")){
filter +=",topic_id="+topic_id;
}
String rs = request.getParameter("rs");
if(rs != null && !rs.equals("null")){
filter ="id="+ de.superx.bin.SxDBUtils.replaceString(rs,",",",|id=");
}
String submission_type = request.getParameter("submission_type");
%>
<body class="<%= submission_type %>"><%@ page import ="java.util.Hashtable" %>
<db:dbform tableName="kb_chunk" maxRows="*" autoUpdate="false" captionResource="true" multipart="false" followUp="/edit/kb/kb_chunk_list.jsp" filter="<%= filter %>" orderBy="defaulttext"
dbConnectionName="<%= mandantenid %>" >
<db:header>
<table class="meinForm" border="0" >
<tr><td><input name="submission_type" type="hidden" value="<%= submission_type %>" />
<ol>
</db:header>
<db:errors/>
<db:body allowNew="true">
<li>
<%
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("id").toString() != null)
{
id=currentRow_kb_chunk.get("id").toString();
href=response.encodeURL("/superx/edit/kb/kb_chunk_view.jsp?id="+id+"&submission_type="+submission_type+"&docroot=http://www.superx-projekt.de/doku");
out.println("<a href=\""+href + "\" target=\"_self\">"+currentRow_kb_chunk.get("defaulttext").toString()+"</a>");
}
%>
</li>
</db:body>
<db:footer></ol></td></tr><!--<tr><td class="naviBtn"><span connectId="new1" dojoType="tooltip">Neuen Datensatz erzeugen. Mit Mausklick auf diesen Button geht das Formular bzw. Unterformular in den Einf&uuml;gemodus, alle vorhandenen Datens&auml;tze werden ausgeblendet. Zum Einf&uuml;gen des neuen Datensatzes klicken Sie dann auf das H&auml;kchen-Symbol rechts neben bzw. unter mir.</span>
<db:navNewButton styleClass="clsButtonStyle" style="height:18px" showAlwaysInFooter="false" alt="button.nav.new" src="../../images/new.png" id="new1" flavor="image"/></td><td class="naviBtn"><span connectId="ins1" dojoType="tooltip">Datensatz einf&uuml;gen. Wenn Sie einen neuen Datensatz erzeugt haben, k&ouml;nnen Sie diesen mit diesem Button speichern.</span>
<db:insertButton showAlways="false" style="height:18px" styleClass="clsButtonStyle" alt="Datensatz einf&uuml;gen" src="../../images/ok.png" id="ins1" flavor="image"/></td></tr>-->
</table>
</db:footer></db:dbform></body>
</html>

230
superx/edit/kb/kb_chunk_view_public_list.jsp

@ -0,0 +1,230 @@
<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %>
<%@ page import ="de.superx.util.*" %>
<%@ page import ="java.io.*, javax.script.*" %>
<%@ page import ="org.dbforms.config.DbFormsConfigRegistry,java.sql.Connection,java.sql.Statement,java.sql.ResultSet" %>
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<html xmlns:jsp="http://www.java.com/jsp" xmlns:db="http://www.wap-force.com/dbforms"><!--Automatically generated by module_scripts_create.x (SuperX)-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="stylesheet" type="text/css" href="/superx/style/bulma.css">
<link rel="stylesheet" type="text/css" href="/superx/edit/kb/style/kb.css">
<base target="_self">
<title>Formular Meldungen</title>
<script type="text/javascript">
var djConfig = {isDebug: false };
//djConfig.debugAtAllCosts = true;
</script><script src="/superx/xml/js/dojo/dojo.js" type="text/javascript">&nbsp;</script><script type="text/javascript">
dojo.require("dojo.widget.Dialog");
dojo.require("dojo.widget.Button");
dojo.require("dojo.widget.Tooltip");
dojo.require("dojo.string.common");
dojo.hostenv.writeIncludes();
</script><script src="/superx/xml/js/memtext/dbforms.js" type="text/javascript">&nbsp;</script>
<db:base/>
<script LANGUAGE="JavaScript" src="../edit/kb/scripte/textOperationen.js"></script>
<script language="JavaScript">
function onOff(counter)
{
if(document.getElementById && document.getElementById("kbChunk"+counter).style.display== 'none')
document.getElementById("kbChunk"+counter).style.display= "inline";
else
document.getElementById("kbChunk"+counter).style.display= "none";
}
</script>
</head>
<%
//HttpSession session=request.getSession(true);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String db_form_name="kb_chunk";
String erlaubt="0";
String filter="";
String id="";
String href="";
String info_text="";
String info_text_html="";
String paragraph="";
int maxlength=300;
int counter=0;
String keyfieldsused="false";
Object kf=request.getParameter("keyfieldsused");
if(kf != null)
keyfieldsused=kf.toString();
String sachgebiete_id = request.getParameter("sachgebiete_id");
if(sachgebiete_id != null && !sachgebiete_id.equals("null") && SqlStringUtils.checkValidKeyEntry(sachgebiete_id)){
filter +=",sachgebiete_id="+sachgebiete_id;
}
%>
<%
String systeminfo_id = request.getParameter("systeminfo_id");
if(systeminfo_id != null && !systeminfo_id.equals("null") && SqlStringUtils.checkValidKeyEntry(systeminfo_id)){
filter +=",systeminfo_id="+systeminfo_id;
}
%>
<%
String topic_id = request.getParameter("topic_id");
if(topic_id == null || topic_id.equals("null")){
topic_id="";
}
String searchphrase = request.getParameter("searchphrase");
if(searchphrase != null && !searchphrase.equals("null") && SqlStringUtils.checkValidKeyEntry(searchphrase)){
filter +=",defaulttext~%"+searchphrase+"%";
filter +=",|info_text~%"+searchphrase+"%";
//filter +=",defaulttext="+searchphrase+"";
}
else
searchphrase="";
String submission_type_filter = "submission_type=1";//request.getParameter("submission_type");
String topic_str="";
String topic_str_sub="";
String topic_filter="";
String webinfdir=getServletContext().getRealPath("/")+"WEB-INF";
String moduleDir=webinfdir+"/conf/edustore/db/module";
if(System.getProperty("MODULE_PFAD") != null
&& !System.getProperty("MODULE_PFAD").toString().equals(""))
moduleDir=System.getProperty("MODULE_PFAD").toString();
%>
<body>
<%@ include file="/edit/kb/kb_head.inc" %>
<%
//Daten aus Datenbank werden in Variablen gespeichert
if(topic_id != null && !topic_id.equals("")&& SqlStringUtils.checkValidKeyEntry(topic_id)){
Connection conmm=null;
//out.println("Getting Connection for mandantenid="+mandantenid);
try {
conmm = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
//System.out.println("Got Connection");
Statement st;
st=conmm.createStatement();
ResultSet rs;
rs = st.executeQuery("select defaulttext,longtext from kb_keyword where id="+topic_id);
while (rs.next())
{
if(rs.getObject(1) !=null)
topic_str=rs.getObject(1).toString();
if(rs.getObject(2) !=null)
topic_str_sub=rs.getObject(2).toString();
}
rs.close();
rs = st.executeQuery("select kb_chunk_id from kb_chunk2keyword where kb_keyword_id="+topic_id);
while (rs.next())
{ if(rs.getObject(1) !=null)
topic_filter+=rs.getObject(1).toString()+",";
}
rs.close();
st.close();
conmm.close();
} //Check DB connection
catch (Exception e) {
out.print("<html><body>Fehler bei Datenverbindung: "+e+ " MandantID"+mandantenid);
}
if(topic_filter != null && !topic_filter.equals("")){
topic_filter =",id="+ de.superx.bin.SxDBUtils.replaceString(topic_filter,",",",|id=");
}
}
%>
<h2>FAQ <%= topic_str %></h2>
<p><%= topic_str_sub %></p>
<db:dbform tableName="kb_chunk" maxRows="*" autoUpdate="false"
captionResource="true" multipart="false"
followUp="/edit/kb/kb_chunk_view_public.jsp"
filter="<%= submission_type_filter+topic_filter + filter%>"
orderBy="defaulttext"
dbConnectionName="<%= mandantenid %>" >
<db:header>
<input type="hidden" name="topic_id" value="<%=topic_id %>" />
<input type="hidden" name="ids" value="<%=topic_filter %>" />
<table class="meinForm" border="0" >
<tr><td></td><td>Filtern: <input type="text" size="10" name="searchphrase" value="<%= searchphrase %>"/></td></tr>
</db:header>
<db:errors/>
<db:body allowNew="true">
<%
counter++;
%>
<tr><td valign="top"><%= counter %>
</td><td>
<a onClick="<%= "onOff("+counter+");" %>" style="cursor: pointer;color:blue;" title="Details..."><db:label fieldName="defaulttext" /></a><br/>
<%
if(currentRow_kb_chunk != null && currentRow_kb_chunk.get("id").toString() != null)
{
id=currentRow_kb_chunk.get("id").toString();
info_text=currentRow_kb_chunk.get("info_text").toString();
href=response.encodeURL("/superx/edit/kb/kb_chunk_view_detail.jsp?id="+id+"&submission_type=problem&docroot=http://www.superx-projekt.de/doku");
//out.println("<a href=\""+href + "\" target=\"_blank\">" +currentRow_kb_chunk.get("defaulttext").toString()+"</a>");
}
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval(new FileReader(moduleDir+"/kb/etl/wiki2html/mwtools.js"));
Invocable inv = (Invocable) engine;
// invoke the function
info_text_html= (String) inv.invokeFunction("mw2xhtml", info_text );
out.println("<div style=\"display:none\" id=\"kbChunk"+counter+"\">"+info_text_html);
%>
<db:dbform orderBy=""
childField="kb_chunk_id_from"
parentField="id"
tableName="kb_chunk2relation" maxRows="*" captionResource="true" followUp="/edit/kb/kb_chunk_edit.jsp"
autoUpdate="false"
multipart="false"
dbConnectionName="<%= mandantenid %>">
<db:body>
<%
if(currentRow_kb_chunk2relation != null
&& currentRow_kb_chunk2relation.get("kb_chunk_id_to") != null
&& currentRow_kb_chunk2relation.get("kb_chunk_id_to").toString() != null
)
{
href=response.encodeURL("/superx/edit/kb/kb_chunk_view_detail.jsp?id="+currentRow_kb_chunk2relation.get("kb_chunk_id_to").toString()+"&submission_type=loesung&docroot=http://www.superx-projekt.de/doku");
out.println("<p align=\"right\"><a href=\""+href + "\" target=\"_self\">Antwort...</a></p>");
}
%>
</db:body>
</db:dbform>
</div>
</td></tr>
</db:body>
<db:footer></ol></td></tr><!--<tr><td class="naviBtn"><span connectId="new1" dojoType="tooltip">Neuen Datensatz erzeugen. Mit Mausklick auf diesen Button geht das Formular bzw. Unterformular in den Einf&uuml;gemodus, alle vorhandenen Datens&auml;tze werden ausgeblendet. Zum Einf&uuml;gen des neuen Datensatzes klicken Sie dann auf das H&auml;kchen-Symbol rechts neben bzw. unter mir.</span>
<db:navNewButton styleClass="clsButtonStyle" style="height:18px" showAlwaysInFooter="false" alt="button.nav.new" src="../../images/new.png" id="new1" flavor="image"/></td><td class="naviBtn"><span connectId="ins1" dojoType="tooltip">Datensatz einf&uuml;gen. Wenn Sie einen neuen Datensatz erzeugt haben, k&ouml;nnen Sie diesen mit diesem Button speichern.</span>
<db:insertButton showAlways="false" style="height:18px" styleClass="clsButtonStyle" alt="Datensatz einf&uuml;gen" src="../../images/ok.png" id="ins1" flavor="image"/></td></tr>-->
</table>
</db:footer></db:dbform>
<%@ include file="/edit/kb/kb_foot.inc" %>
</body>
</html>
Loading…
Cancel
Save