Browse Source

Neues Template

master
Daniel Quathamer 3 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. 134
      src-modules/module/kb/etl/xml2html/createBodyPrintversion.ktr
  6. 46
      src-modules/module/kb/etl/xml2html/mwTemplates.xsl
  7. 164
      src-modules/module/kb/etl/xml2html/publishOutputProject.ktr
  8. 155
      src-modules/module/kb/etl/xml2html/replaceBody.ktr
  9. 547
      src-modules/module/kb/etl/xml2html/writeDocumentHtml.ktr
  10. 104
      src-modules/module/kb/etl/xml2html/writePrintVersion.ktr
  11. 56
      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 () { @@ -179,6 +179,69 @@ this.renderTemplate = function () {
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;
default:
if(templateName.indexOf(" ") > -1)
@ -1900,6 +1963,8 @@ function getHrefEnd(str,foundPos) @@ -1900,6 +1963,8 @@ function getHrefEnd(str,foundPos)
return hrefEnd;
}
/* find searchstr in str, but not inside [[...]]
*/
function getCharposOutsideLinks(str,searchstr)
@ -1930,3 +1995,47 @@ function stringStartsWith(str,lookfor) @@ -1930,3 +1995,47 @@ function stringStartsWith(str,lookfor)
function stringEndsWith(str, lookfor) {
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 @@ @@ -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 @@ @@ -321,7 +321,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>${Internal.Job.Filename.Directory}/wiki2xhtml.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/wiki2xhtml_nodownload.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -1155,5 +1155,27 @@ Authentication Method: ${authentication_method}</logmessage> @@ -1155,5 +1155,27 @@ Authentication Method: ${authentication_method}</logmessage>
<unconditional>N</unconditional>
</hop>
</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>

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

@ -0,0 +1,637 @@ @@ -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>

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

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>replaceBodyPrintversion</name>
<description/>
@ -7,7 +6,7 @@ @@ -7,7 +6,7 @@
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>&#x2f;</directory>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
@ -429,47 +428,18 @@ @@ -429,47 +428,18 @@
<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>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<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_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
<modified_date>2018/01/19 19:23:22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<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>
<notepads/>
<order>
<hop>
<from>getChapters</from>
@ -505,8 +475,7 @@ @@ -505,8 +475,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/>
<encoding/>
<file>
</file>
<file/>
<fields>
<field>
<name>File content</name>
@ -547,10 +516,8 @@ @@ -547,10 +516,8 @@
<extensionFieldName/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>224</xloc>
@ -558,7 +525,6 @@ @@ -558,7 +525,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>getChapters</name>
<type>TableInput</type>
@ -571,7 +537,20 @@ @@ -571,7 +537,20 @@
<schema_name/>
</partitioning>
<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>
<lookup/>
<execute_each_row>N</execute_each_row>
@ -579,10 +558,8 @@ @@ -579,10 +558,8 @@
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>64</xloc>
@ -590,7 +567,6 @@ @@ -590,7 +567,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>processTemplates</name>
<type>UserDefinedJavaClass</type>
@ -602,14 +578,11 @@ @@ -602,14 +578,11 @@
<method>none</method>
<schema_name/>
</partitioning>
<definitions>
<definition>
<class_type>TRANSFORM_CLASS</class_type>
<class_name>Processor</class_name>
<class_source><![CDATA[
<class_source>
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
@ -639,7 +612,7 @@ String body=get(Fields.In, "body").getString(r); @@ -639,7 +612,7 @@ String body=get(Fields.In, "body").getString(r);
String mwTemplateContent="";
int cursor=body.indexOf("<"+mwTemplateElem);
int cursor=body.indexOf("&lt;"+mwTemplateElem);
if(cursor==-1)
{
//do nothing
@ -649,14 +622,14 @@ putRow(data.outputRowMeta, outputRow); @@ -649,14 +622,14 @@ putRow(data.outputRowMeta, outputRow);
return true;
}
while (cursor>-1) {
while (cursor&gt;-1) {
String body_vorher=body.substring(0,cursor);
int endTag=body.indexOf("</"+mwTemplateElem+">");
if(endTag >-1)
int endTag=body.indexOf("&lt;/"+mwTemplateElem+"&gt;");
if(endTag &gt;-1)
{
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);
String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length());
@ -670,7 +643,7 @@ else @@ -670,7 +643,7 @@ else
{
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());
@ -699,17 +672,18 @@ public static String xsltTransform(String inXml, String xslFile) @@ -699,17 +672,18 @@ public static String xsltTransform(String inXml, String xslFile)
result=xmlOutWriter.toString();
return result;
}// Ende der Methode]]></class_source>
}// Ende der Methode</class_source>
</definition>
</definitions>
<fields>
</fields><clear_result_fields>N</clear_result_fields>
<info_steps></info_steps><target_steps></target_steps><usage_parameters></usage_parameters> <cluster_schema/>
<fields/>
<clear_result_fields>N</clear_result_fields>
<info_steps/>
<target_steps/>
<usage_parameters/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>400</xloc>
@ -717,7 +691,6 @@ return result; @@ -717,7 +691,6 @@ return result;
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Text file output</name>
<type>TextFileOutput</type>
@ -729,7 +702,7 @@ return result; @@ -729,7 +702,7 @@ return result;
<method>none</method>
<schema_name/>
</partitioning>
<separator>&#x24;&#x7b;line.separator&#x7d;</separator>
<separator>${line.separator}</separator>
<enclosure/>
<enclosure_forced>N</enclosure_forced>
<enclosure_fix_disabled>N</enclosure_fix_disabled>
@ -743,7 +716,7 @@ return result; @@ -743,7 +716,7 @@ return result;
<fileNameField>indexFileName</fileNameField>
<create_parent_folder>Y</create_parent_folder>
<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>
<servlet_output>N</servlet_output>
<do_not_open_new_file_init>Y</do_not_open_new_file_init>
@ -788,10 +761,8 @@ return result; @@ -788,10 +761,8 @@ return result;
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>560</xloc>
@ -799,10 +770,7 @@ return result; @@ -799,10 +770,7 @@ return result;
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

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

@ -242,5 +242,51 @@ Verfügbar ab Version @@ -242,5 +242,51 @@ Verfügbar ab Version
<span>siehe <xsl:value-of select="param/paramValue"/></span>
</xsl:otherwise>
</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:stylesheet>

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

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>publishOutputProject</name>
<description/>
@ -7,7 +6,7 @@ @@ -7,7 +6,7 @@
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>&#x2f;</directory>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
@ -429,47 +428,18 @@ @@ -429,47 +428,18 @@
<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>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<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_date>2018&#x2f;01&#x2f;20 10&#x3a;53&#x3a;22.812</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
<modified_date>2018/01/20 10:53:22.812</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<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>
<notepads/>
<order>
<hop>
<from>getOutputProjectDetails</from>
@ -515,8 +485,7 @@ @@ -515,8 +485,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/>
<encoding/>
<file>
</file>
<file/>
<fields>
<field>
<name>homepage_content</name>
@ -544,10 +513,8 @@ @@ -544,10 +513,8 @@
<extensionFieldName/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>496</xloc>
@ -555,7 +522,6 @@ @@ -555,7 +522,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>copyHtmlFiles</name>
<type>JobExecutor</type>
@ -570,14 +536,22 @@ @@ -570,14 +536,22 @@
<specification_method>filename</specification_method>
<job_object_id/>
<job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename>
<filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/>
<group_size>1</group_size>
<group_field/>
<group_time/>
<parameters>
<variablemapping><variable>from</variable><field>from</field><input/></variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping>
<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>
</parameters>
<execution_result_target_step/>
@ -600,10 +574,8 @@ @@ -600,10 +574,8 @@
<result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>832</xloc>
@ -611,7 +583,6 @@ @@ -611,7 +583,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>copyImages</name>
<type>JobExecutor</type>
@ -626,14 +597,22 @@ @@ -626,14 +597,22 @@
<specification_method>filename</specification_method>
<job_object_id/>
<job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename>
<filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/>
<group_size>1</group_size>
<group_field/>
<group_time/>
<parameters>
<variablemapping><variable>from</variable><field>from_images</field><input/></variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping>
<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>
</parameters>
<execution_result_target_step/>
@ -656,10 +635,8 @@ @@ -656,10 +635,8 @@
<result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>144</xloc>
@ -667,7 +644,6 @@ @@ -667,7 +644,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>copyLayoutElements</name>
<type>JobExecutor</type>
@ -682,14 +658,22 @@ @@ -682,14 +658,22 @@
<specification_method>filename</specification_method>
<job_object_id/>
<job_name/>
<filename>&#x24;&#x7b;Internal.Transformation.Filename.Directory&#x7d;&#x2f;copyFiles.kjb</filename>
<filename>${Internal.Transformation.Filename.Directory}/copyFiles.kjb</filename>
<directory_path/>
<group_size>1</group_size>
<group_field/>
<group_time/>
<parameters>
<variablemapping><variable>from</variable><field>from_layoutelements</field><input/></variablemapping>
<variablemapping><variable>to</variable><field>to</field><input/></variablemapping>
<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>
</parameters>
<execution_result_target_step/>
@ -712,10 +696,8 @@ @@ -712,10 +696,8 @@
<result_files_file_name_field>FileName</result_files_file_name_field>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>304</xloc>
@ -723,7 +705,6 @@ @@ -723,7 +705,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>getOutputProjectDetails</name>
<type>TableInput</type>
@ -736,7 +717,26 @@ @@ -736,7 +717,26 @@
<schema_name/>
</partitioning>
<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>
<lookup/>
<execute_each_row>N</execute_each_row>
@ -744,10 +744,8 @@ @@ -744,10 +744,8 @@
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>160</xloc>
@ -755,7 +753,6 @@ @@ -755,7 +753,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>writeHomepage</name>
<type>TextFileOutput</type>
@ -814,10 +811,8 @@ @@ -814,10 +811,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>672</xloc>
@ -825,10 +820,7 @@ @@ -825,10 +820,7 @@
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

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

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>replaceBody</name>
<description/>
@ -7,7 +6,7 @@ @@ -7,7 +6,7 @@
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>&#x2f;</directory>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
@ -429,47 +428,18 @@ @@ -429,47 +428,18 @@
<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>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<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_date>2018&#x2f;01&#x2f;19 19&#x3a;23&#x3a;22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
<modified_date>2018/01/19 19:23:22.741</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<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>
<notepads/>
<order>
<hop>
<from>getChapters</from>
@ -520,8 +490,7 @@ @@ -520,8 +490,7 @@
<IsIgnoreEmptyFile>N</IsIgnoreEmptyFile>
<rownum_field/>
<encoding/>
<file>
</file>
<file/>
<fields>
<field>
<name>File content</name>
@ -562,10 +531,8 @@ @@ -562,10 +531,8 @@
<extensionFieldName/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>224</xloc>
@ -573,7 +540,6 @@ @@ -573,7 +540,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>ReplaceBody</name>
<type>ReplaceString</type>
@ -590,7 +556,7 @@ @@ -590,7 +556,7 @@
<in_stream_name>File content</in_stream_name>
<out_stream_name>file_content_replaced</out_stream_name>
<use_regex>no</use_regex>
<replace_string>&#x23;body&#x23;</replace_string>
<replace_string>#body#</replace_string>
<replace_by_string/>
<set_empty_string>N</set_empty_string>
<replace_field_by_string>body</replace_field_by_string>
@ -600,10 +566,8 @@ @@ -600,10 +566,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>400</xloc>
@ -611,7 +575,6 @@ @@ -611,7 +575,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>ReplacePdfFile</name>
<type>ReplaceString</type>
@ -628,7 +591,7 @@ @@ -628,7 +591,7 @@
<in_stream_name>file_content_replaced2</in_stream_name>
<out_stream_name>file_content_replaced3</out_stream_name>
<use_regex>no</use_regex>
<replace_string>&#x23;pdf_file&#x23;</replace_string>
<replace_string>#pdf_file#</replace_string>
<replace_by_string/>
<set_empty_string>N</set_empty_string>
<replace_field_by_string>pdf_file</replace_field_by_string>
@ -638,10 +601,8 @@ @@ -638,10 +601,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>688</xloc>
@ -649,7 +610,6 @@ @@ -649,7 +610,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>ReplaceTargetPath</name>
<type>ReplaceString</type>
@ -666,7 +626,7 @@ @@ -666,7 +626,7 @@
<in_stream_name>file_content_replaced</in_stream_name>
<out_stream_name>file_content_replaced2</out_stream_name>
<use_regex>no</use_regex>
<replace_string>&#x23;targetpath&#x23;</replace_string>
<replace_string>#targetpath#</replace_string>
<replace_by_string/>
<set_empty_string>N</set_empty_string>
<replace_field_by_string>target_path</replace_field_by_string>
@ -676,10 +636,8 @@ @@ -676,10 +636,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>672</xloc>
@ -687,7 +645,6 @@ @@ -687,7 +645,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Text file output</name>
<type>TextFileOutput</type>
@ -746,10 +703,8 @@ @@ -746,10 +703,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>928</xloc>
@ -757,7 +712,6 @@ @@ -757,7 +712,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>getChapters</name>
<type>TableInput</type>
@ -770,7 +724,18 @@ @@ -770,7 +724,18 @@
<schema_name/>
</partitioning>
<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>
<lookup/>
<execute_each_row>N</execute_each_row>
@ -778,10 +743,8 @@ @@ -778,10 +743,8 @@
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>64</xloc>
@ -789,7 +752,6 @@ @@ -789,7 +752,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>processTemplates</name>
<type>UserDefinedJavaClass</type>
@ -801,14 +763,11 @@ @@ -801,14 +763,11 @@
<method>none</method>
<schema_name/>
</partitioning>
<definitions>
<definition>
<class_type>TRANSFORM_CLASS</class_type>
<class_name>Processor</class_name>
<class_source><![CDATA[
<class_source>
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
@ -838,7 +797,7 @@ String body=get(Fields.In, "body").getString(r); @@ -838,7 +797,7 @@ String body=get(Fields.In, "body").getString(r);
String mwTemplateContent="";
int cursor=body.indexOf("<"+mwTemplateElem);
int cursor=body.indexOf("&lt;"+mwTemplateElem);
if(cursor==-1)
{
//do nothing
@ -848,14 +807,14 @@ putRow(data.outputRowMeta, outputRow); @@ -848,14 +807,14 @@ putRow(data.outputRowMeta, outputRow);
return true;
}
while (cursor>-1) {
while (cursor&gt;-1) {
String body_vorher=body.substring(0,cursor);
int endTag=body.indexOf("</"+mwTemplateElem+">");
if(endTag >-1)
int endTag=body.indexOf("&lt;/"+mwTemplateElem+"&gt;");
if(endTag &gt;-1)
{
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);
String body_nachher=body.substring(endTag+mwTemplateElem.length()+3,body.length());
@ -869,7 +828,7 @@ else @@ -869,7 +828,7 @@ else
{
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());
@ -898,17 +857,18 @@ public static String xsltTransform(String inXml, String xslFile) @@ -898,17 +857,18 @@ public static String xsltTransform(String inXml, String xslFile)
result=xmlOutWriter.toString();
return result;
}// Ende der Methode]]></class_source>
}// Ende der Methode</class_source>
</definition>
</definitions>
<fields>
</fields><clear_result_fields>N</clear_result_fields>
<info_steps></info_steps><target_steps></target_steps><usage_parameters></usage_parameters> <cluster_schema/>
<fields/>
<clear_result_fields>N</clear_result_fields>
<info_steps/>
<target_steps/>
<usage_parameters/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>400</xloc>
@ -916,10 +876,7 @@ return result; @@ -916,10 +876,7 @@ return result;
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

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

@ -0,0 +1,547 @@ @@ -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>

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

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<?xml version="1.0" encoding="UTF-8"?><transformation>
<info>
<name>writeDocumentHtml</name>
<description/>
@ -7,7 +6,7 @@ @@ -7,7 +6,7 @@
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>&#x2f;</directory>
<directory>/</directory>
<parameters>
<parameter>
<name>document_id</name>
@ -424,47 +423,18 @@ @@ -424,47 +423,18 @@
<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>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<dependencies/>
<partitionschemas/>
<slaveservers/>
<clusterschemas/>
<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_date>2018&#x2f;01&#x2f;03 21&#x3a;21&#x3a;10.720</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
<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>
</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>
<notepads/>
<order>
<hop>
<from>getDocument</from>
@ -493,8 +463,8 @@ @@ -493,8 +463,8 @@
<method>none</method>
<schema_name/>
</partitioning>
<separator>&#x24;&#x7b;line.separator&#x7d;</separator>
<enclosure> </enclosure>
<separator>${line.separator}</separator>
<enclosure/>
<enclosure_forced>N</enclosure_forced>
<enclosure_fix_disabled>N</enclosure_fix_disabled>
<header>N</header>
@ -507,7 +477,7 @@ @@ -507,7 +477,7 @@
<fileNameField/>
<create_parent_folder>Y</create_parent_folder>
<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>
<servlet_output>N</servlet_output>
<do_not_open_new_file_init>N</do_not_open_new_file_init>
@ -564,10 +534,8 @@ @@ -564,10 +534,8 @@
</fields>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>208</xloc>
@ -575,7 +543,6 @@ @@ -575,7 +543,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>getDocument</name>
<type>TableInput</type>
@ -588,7 +555,11 @@ @@ -588,7 +555,11 @@
<schema_name/>
</partitioning>
<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>
<lookup/>
<execute_each_row>N</execute_each_row>
@ -596,10 +567,8 @@ @@ -596,10 +567,8 @@
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>112</xloc>
@ -607,7 +576,6 @@ @@ -607,7 +576,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Merge Join</name>
<type>MergeJoin</type>
@ -622,16 +590,12 @@ @@ -622,16 +590,12 @@
<join_type>LEFT OUTER</join_type>
<step1>getDocument</step1>
<step2>Load file content in memory</step2>
<keys_1>
</keys_1>
<keys_2>
</keys_2>
<keys_1/>
<keys_2/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>208</xloc>
@ -639,7 +603,6 @@ @@ -639,7 +603,6 @@
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Load file content in memory</name>
<type>LoadFileInput</type>
@ -659,7 +622,7 @@ @@ -659,7 +622,7 @@
<rownum_field/>
<encoding>UTF-8</encoding>
<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/>
<exclude_filemask/>
<file_required>N</file_required>
@ -692,10 +655,8 @@ @@ -692,10 +655,8 @@
<extensionFieldName/>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
<input/>
<output/>
</remotesteps>
<GUI>
<xloc>336</xloc>
@ -703,10 +664,7 @@ @@ -703,10 +664,7 @@
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<step_error_handling/>
<slave-step-copy-partition-distribution/>
<slave_transformation>N</slave_transformation>
</transformation>

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

@ -1,15 +1,14 @@ @@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<job>
<?xml version="1.0" encoding="UTF-8"?><job>
<name>xml2html</name>
<description/>
<extended_description/>
<job_version/>
<job_status>0</job_status>
<directory>&#x2f;</directory>
<directory>/</directory>
<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_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>
<parameter>
<name>document_id</name>
@ -17,8 +16,7 @@ @@ -17,8 +16,7 @@
<description/>
</parameter>
</parameters>
<slaveservers>
</slaveservers>
<slaveservers/>
<job-log-table>
<connection/>
<schema/>
@ -296,7 +294,7 @@ @@ -296,7 +294,7 @@
<name>CreateTmpfolder</name>
<description/>
<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>
<parallel>N</parallel>
<draw>Y</draw>
@ -328,7 +326,7 @@ @@ -328,7 +326,7 @@
<name>CreateResultFolder</name>
<description/>
<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>
<parallel>N</parallel>
<draw>Y</draw>
@ -342,7 +340,7 @@ @@ -342,7 +340,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;writeChapters.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/writeChapters.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -375,8 +373,8 @@ @@ -375,8 +373,8 @@
<name>transformChaptersToHtml</name>
<description/>
<type>SHELL</type>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;transformChapters.x</filename>
<work_directory>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;</work_directory>
<filename>${Internal.Job.Filename.Directory}/transformChapters.x</filename>
<work_directory>${Internal.Job.Filename.Directory}</work_directory>
<arg_from_previous>N</arg_from_previous>
<exec_per_row>N</exec_per_row>
<set_logfile>N</set_logfile>
@ -388,9 +386,9 @@ @@ -388,9 +386,9 @@
<insertScript>N</insertScript>
<script/>
<loglevel>Basic</loglevel>
<argument0>&#x24;&#x7b;document_id&#x7d;</argument0>
<argument1>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;tmp&#x2f;files_&#x24;&#x7b;document_id&#x7d;</argument1>
<argument2>&#x24;&#x7b;layoutelements_path&#x7d;</argument2>
<argument0>${document_id}</argument0>
<argument1>${Internal.Job.Filename.Directory}/tmp/files_${document_id}</argument1>
<argument2>${layoutelements_path}</argument2>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
@ -403,7 +401,7 @@ @@ -403,7 +401,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;replaceBody.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/replaceBody.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -441,7 +439,7 @@ @@ -441,7 +439,7 @@
<limit_folders>10</limit_folders>
<fields>
<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>
</fields>
<parallel>N</parallel>
@ -456,7 +454,7 @@ @@ -456,7 +454,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;publishOutputProject.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/publishOutputProject.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -489,7 +487,7 @@ @@ -489,7 +487,7 @@
<name>CreateSearchdbFolder</name>
<description/>
<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>
<parallel>N</parallel>
<draw>Y</draw>
@ -503,7 +501,7 @@ @@ -503,7 +501,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;writePrintVersion.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/writePrintVersion.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -538,7 +536,7 @@ @@ -538,7 +536,7 @@
<type>JOB</type>
<specification_method>filename</specification_method>
<job_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;createPDF.kjb</filename>
<filename>${Internal.Job.Filename.Directory}/createPDF.kjb</filename>
<jobname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -555,8 +553,10 @@ @@ -555,8 +553,10 @@
<expand_remote_job>N</expand_remote_job>
<create_parent_folder>N</create_parent_folder>
<pass_export>N</pass_export>
<parameters> <pass_all_parameters>Y</pass_all_parameters>
</parameters> <set_append_logfile>N</set_append_logfile>
<parameters>
<pass_all_parameters>Y</pass_all_parameters>
</parameters>
<set_append_logfile>N</set_append_logfile>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
@ -580,8 +580,7 @@ @@ -580,8 +580,7 @@
<replacevars>Y</replacevars>
<filename/>
<file_variable_type>JVM</file_variable_type>
<fields>
</fields>
<fields/>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
@ -594,7 +593,7 @@ @@ -594,7 +593,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<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/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -629,7 +628,7 @@ @@ -629,7 +628,7 @@
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;createBodyPrintversion.ktr</filename>
<filename>${Internal.Job.Filename.Directory}/createBodyPrintversion.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
@ -778,6 +777,5 @@ @@ -778,6 +777,5 @@
<unconditional>N</unconditional>
</hop>
</hops>
<notepads>
</notepads>
<notepads/>
</job>

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

@ -51,7 +51,7 @@ INSERT INTO tmp_sichten( @@ -51,7 +51,7 @@ INSERT INTO tmp_sichten(
gueltig_seit , gueltig_bis , aktiv) VALUES (
160 , 'KB-Dokument-Sicht' , 10 , 'kb_document_sg_ns' ,
'(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,
date('01.01.1900') , date('01.01.3000') , 1);

222
superx/edit/kb/kb_chunk_view.jsp

@ -0,0 +1,222 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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