Browse Source

Feldüberprüfung bei ExecuteMask, RPTA-Servlet #1

userinfo_gueltigkeit
Daniel Quathamer 2 years ago
parent
commit
a84a7721f1
  1. 5
      .classpath
  2. 3
      src/de/superx/bin/ExecuteMask.java
  3. 9
      src/de/superx/common/Field.java
  4. 28
      src/de/superx/common/Maske.java
  5. 92
      src/de/superx/common/Stylesheet.java
  6. 3
      src/de/superx/servlet/SuperXmlTabelle.java
  7. 30
      src/de/superx/util/SqlStringUtils.java
  8. 197
      superx/WEB-INF/conf/edustore/db/bin/ant
  9. 96
      superx/WEB-INF/conf/edustore/db/bin/ant.bat
  10. 12
      superx/WEB-INF/conf/edustore/db/bin/antRun
  11. 31
      superx/WEB-INF/conf/edustore/db/bin/antRun.bat
  12. 51
      superx/WEB-INF/conf/edustore/db/bin/antRun.pl
  13. 25
      superx/WEB-INF/conf/edustore/db/conf/build.xml
  14. 80
      superx/WEB-INF/conf/edustore/db/conf/dimension_templates_mondrian4/dimension_date_template.xsl
  15. 2
      superx/WEB-INF/conf/edustore/db/install/conf/kern_full_excludes_webapp.txt
  16. 46
      superx/WEB-INF/conf/edustore/db/install/upgrade/kern_env_upgrade.x
  17. 18
      superx/WEB-INF/conf/edustore/db/module/crontab.sam
  18. 20
      superx/WEB-INF/conf/edustore/db/module/update_cron.x.sam
  19. 19
      superx/WEB-INF/conf/obsoletfiles.txt
  20. BIN
      superx/WEB-INF/lib/superx5.0.jar
  21. 3
      superx/WEB-INF/reports/tabelle2jasperreport_generic.xsl.jrxml
  22. 13
      superx/xml/js/memtext/sx_functions.js
  23. 6
      superx/xml/maskComponents_html.xsl
  24. 1
      superx/xml/maske_html_18100.xsl
  25. 4
      superx/xml/maske_html_his1.xsl

5
.classpath

@ -457,11 +457,6 @@
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="/home/superx/git/kern/superx/WEB-INF/lib/joolapdbservlet.jar">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/home/superx/git/kern/superx/WEB-INF/lib/js-1.7R3.jar"> <classpathentry kind="lib" path="/home/superx/git/kern/superx/WEB-INF/lib/js-1.7R3.jar">
<attributes> <attributes>
<attribute name="module" value="true"/> <attribute name="module" value="true"/>

3
src/de/superx/bin/ExecuteMask.java

@ -33,6 +33,7 @@ import de.superx.common.Maske;
import de.superx.common.SxResultRow; import de.superx.common.SxResultRow;
import de.superx.common.SxResultSet; import de.superx.common.SxResultSet;
import de.superx.common.SxUser; import de.superx.common.SxUser;
import de.superx.sec.InputCheckRegistry;
import de.superx.servlet.ServletUtils; import de.superx.servlet.ServletUtils;
import de.superx.servlet.SuperXManager; import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools; import de.superx.servlet.SxPools;
@ -175,6 +176,7 @@ public class ExecuteMask {
Locale desiredLocale = new Locale(myLocale); Locale desiredLocale = new Locale(myLocale);
SuperXManager.maxRows = 1000000; SuperXManager.maxRows = 1000000;
Maske maske = null; Maske maske = null;
InputCheckRegistry.registerDefaultChecks();
try { try {
maske = new Maske(mandantenID, user, new Integer(tidString), desiredLocale); maske = new Maske(mandantenID, user, new Integer(tidString), desiredLocale);
NamedIdObjectList fields = maske.readFelderFromDb(user); NamedIdObjectList fields = maske.readFelderFromDb(user);
@ -190,6 +192,7 @@ public class ExecuteMask {
log.severe("Fehler beim Ausführen der Maske " + tidString + ": " + e.toString()); log.severe("Fehler beim Ausführen der Maske " + tidString + ": " + e.toString());
System.exit(1); System.exit(1);
} }
System.exit(0);
} }
public static HttpServletResponse getHttpResponse() { public static HttpServletResponse getHttpResponse() {

9
src/de/superx/common/Field.java

@ -599,12 +599,18 @@ public class Field extends NamedIdObject implements TemplateHashModel,
// Zuweisung s.u. // Zuweisung s.u.
if (getTyp().equals("date")) if (getTyp().equals("date"))
{
param = xDateParamOhneApostrophes(param); param = xDateParamOhneApostrophes(param);
//HTML5 input type=date always delivers US-format yyyy-MM-dd
if(param !=null && param.indexOf("-")>-1)
param=de.superx.util.SqlStringUtils.formatDateUStoDE(param); //Transform to dd.MM.yyyy
}
if (param != null && !param.equals("")) if (param != null && !param.equals(""))
checkDataType(param); checkDataType(param);
if ( param != null && !param.equals("") && this.art == 0 ) { if ( param != null && !param.equals("") && this.art == 0 ) {
CheckExecution check = new CheckExecution(this); CheckExecution check = new CheckExecution(this);
if (!check.run(param)) { if (!check.run(param)) {
System.err.println("Ungültige Eingabe Feld "+ getFeldInfo());
throw new UngueltigeEingabeException("Ungültige Eingabe"); throw new UngueltigeEingabeException("Ungültige Eingabe");
} }
} }
@ -1501,6 +1507,9 @@ public class Field extends NamedIdObject implements TemplateHashModel,
private void xSelectedKeyDatePrüfen() throws InvalidKeyException { private void xSelectedKeyDatePrüfen() throws InvalidKeyException {
this.selectedKey = xDateParamOhneApostrophes(this.selectedKey); this.selectedKey = xDateParamOhneApostrophes(this.selectedKey);
//HTML5 input type=date always delivers US-format yyyy-MM-dd
if(this.selectedKey !=null && this.selectedKey.indexOf("-")>-1)
this.selectedKey=de.superx.util.SqlStringUtils.formatDateUStoDE(this.selectedKey); //Transform to dd.MM.yyyy
java.sql.Date d; java.sql.Date d;
try { try {

28
src/de/superx/common/Maske.java

@ -716,11 +716,10 @@ public class Maske extends NamedIdObject implements Serializable {
private void initMaskStylesheets() throws SQLException, DBServletException { private void initMaskStylesheets() throws SQLException, DBServletException {
String query = "select t1.filename, t1.caption, t1.description, " String query = "select t1.filename, t1.caption, t1.description, " + " t1.contenttype, t0.ord, t1.is_generic,"
+ " t1.contenttype, t0.ord from sx_mask_style t0,sx_stylesheets t1" +" t1.toolbar_icon_filepath, t1.jr_datasource, t1.usage_resultset_data, t1.stylesheet_type from sx_mask_style t0, sx_stylesheets t1"
+ " where (t0.stylesheet_id=t1.tid) and (t1.relation ='mask') and" + " (t0.maskeninfo_id =" + getId() + " where (t0.stylesheet_id=t1.tid) and (t1.relation ='mask') and" + " (t0.maskeninfo_id =" + getId() + ")"
+ ")" + " and (t1.useragent = '' or t1.useragent is null or t1.useragent = '" + browser + "')" + " and (t1.useragent = '' or t1.useragent is null or t1.useragent = '" + browser + "')" + " order by t0.ord;";
+ " order by t0.ord;";
SxResultSet stylesheetsRs = ServletUtils.execute("Einlesen der Stylesheets für die Maske " + getId(), query, SxResultSet stylesheetsRs = ServletUtils.execute("Einlesen der Stylesheets für die Maske " + getId(), query,
mandantenID); mandantenID);
@ -746,14 +745,17 @@ public class Maske extends NamedIdObject implements Serializable {
// mainStylesheet = new Stylesheet(request.getParameter("stylesheet")); // mainStylesheet = new Stylesheet(request.getParameter("stylesheet"));
String query = "select S.filename, S.caption, S.description, " String query = "select S.filename, S.caption, S.description, "
+ " S.contenttype, M.ord,S.is_generic from sx_stylesheets S,sx_mask_style M" + " where M.stylesheet_id=S.tid " + " S.contenttype, M.ord,S.is_generic, S.toolbar_icon_filepath,"
+ " S.jr_datasource, S.usage_resultset_data, S.stylesheet_type from sx_stylesheets S,sx_mask_style M" + " where M.stylesheet_id=S.tid "
+ " and M.maskeninfo_id =" + getId() + " " + " and S.relation ='table' " + " and M.maskeninfo_id =" + getId() + " " + " and S.relation ='table' "
+ " and (S.useragent = '' or S.useragent is null or S.useragent = '" + browser + "')" + " union" + " and (S.useragent = '' or S.useragent is null or S.useragent = '" + browser + "')" + " union"
// Default-Styleshets HTML : // Default-Styleshets HTML :
+ " select S.filename, S.caption, S.description, " + " S.contenttype, 99999, S.is_generic from sx_stylesheets S " + " select S.filename, S.caption, S.description, " + " S.contenttype, 99999, S.is_generic, S.toolbar_icon_filepath,"
+ " S.jr_datasource, S.usage_resultset_data, S.stylesheet_type from sx_stylesheets S "
+ " where S.filename = 'tabelle_html.xsl'" + " union" + " where S.filename = 'tabelle_html.xsl'" + " union"
// Default-Styleshets die neben HTML immer aktiv sind: // Default-Styleshets die neben HTML immer aktiv sind:
+ " select S.filename, S.caption, S.description, " + " S.contenttype, 100000, S.is_generic from sx_stylesheets S " + " select S.filename, S.caption, S.description, " + " S.contenttype, 100000, S.is_generic, S.toolbar_icon_filepath,"
+ " S.jr_datasource, S.usage_resultset_data, S.stylesheet_type from sx_stylesheets S "
+ " where S.is_generic=1 and S.filename != 'tabelle_html.xsl'" + " where S.is_generic=1 and S.filename != 'tabelle_html.xsl'"
+ " order by 5,2;"; + " order by 5,2;";
@ -2082,7 +2084,17 @@ public class Maske extends NamedIdObject implements Serializable {
result = selectedTableStylesheet.getFilename(); result = selectedTableStylesheet.getFilename();
return result; return result;
} }
/**
* selected Stylesheet object
*
* @param none
*
* @return Stylesheet selectedTableStylesheet
*/
public Stylesheet getSelectedTableStylesheet() {
return this.selectedTableStylesheet;
}
/** /**
* determine contenttype, Default is derived from request, if null, then * determine contenttype, Default is derived from request, if null, then
* sx_stylesheets.contenttype is read * sx_stylesheets.contenttype is read

92
src/de/superx/common/Stylesheet.java

@ -5,6 +5,9 @@ import java.io.Serializable;
public class Stylesheet implements Serializable { public class Stylesheet implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String filename = "", caption, description, contenttype,stylesheetType;
private String toolbarIconFilepath,usageResultsetData,jrDatasource;
private int ord, isGeneric;
public String getCaption() { public String getCaption() {
return caption; return caption;
@ -44,13 +47,79 @@ public class Stylesheet implements Serializable {
public void setIsGeneric(int isGeneric) { public void setIsGeneric(int isGeneric) {
this.isGeneric = isGeneric; this.isGeneric = isGeneric;
} }
private String filename = "", caption, description, contenttype; public String getStylesheetType() {
private int ord, isGeneric; if(stylesheetType==null) {
//abwärtskompatibel zu kern 4.9: alte Logik über Dateinamen
switch(this.filename) {
case "tabelle_xml.xsl" :
stylesheetType="XML";
break;
case "tabelle_fo_pdf.xsl" :
stylesheetType="XSL_FO";
break;
case "tabelle_xls.xsl" :
stylesheetType="XSL_XLSX";
break;
default :
if(this.filename.endsWith(".jrxml"))
return "JRXML";
if(this.filename.endsWith(".xsl"))
return "XSL";
stylesheetType="";
}
}
return stylesheetType;
}
public void setStylesheetType(String stylesheetType) {
this.stylesheetType = (stylesheetType==null)?"":stylesheetType.trim();
}
public String getToolbarIconFilepath() {
return toolbarIconFilepath;
}
public void setToolbarIconFilepath(String toolbarIconFilepath) {
this.toolbarIconFilepath = (toolbarIconFilepath==null)?"":toolbarIconFilepath.trim();
}
public String getUsageResultsetData() {
if(jrDatasource==null) {
return "T"; //aktuelle Tabelle
}
return usageResultsetData;
}
public void setUsageResultsetData(String usageResultsetData) {
this.usageResultsetData = (usageResultsetData==null)?"":usageResultsetData.trim();
}
public String getJrDatasource() {
//abwärtskompatibel zu kern 4.9: alte Logik über Dateinamen
if(jrDatasource==null || jrDatasource.equals("")) {
if(this.filename.endsWith("_xmlsource.jrxml")) {
return "XML";
}
if(this.filename.endsWith(".jrxml")) {
return "RS";
}
}
return jrDatasource;
}
public void setJrDatasource(String jrDatasource) {
this.jrDatasource = (jrDatasource==null)?"":jrDatasource.trim();
}
public Stylesheet(String file) { public Stylesheet(String file) {
this.filename = file; if (file == null) {
if (file == null) file="";
this.filename = ""; }
this.filename = file.trim();
} }
public Stylesheet(SxResultRow stylesheetRow) { public Stylesheet(SxResultRow stylesheetRow) {
@ -61,9 +130,13 @@ public class Stylesheet implements Serializable {
setDescription(stylesheetRow.get(2).toString()); setDescription(stylesheetRow.get(2).toString());
setContenttype(stylesheetRow.get(3).toString()); setContenttype(stylesheetRow.get(3).toString());
setIsGeneric(Integer.parseInt(stylesheetRow.get(5).toString())); setIsGeneric(Integer.parseInt(stylesheetRow.get(5).toString()));
this.setToolbarIconFilepath(stylesheetRow.get(6).toString());
this.setJrDatasource(stylesheetRow.get(7).toString());
this.setUsageResultsetData(stylesheetRow.get(8).toString());
this.setStylesheetType(stylesheetRow.get(9).toString());
} }
@Override
public String toString() { public String toString() {
return filename; return filename;
} }
@ -77,13 +150,16 @@ public class Stylesheet implements Serializable {
} }
public String toXml() { public String toXml() {
StringBuffer result = new StringBuffer("<stylesheet ord='" + getOrd() StringBuffer result = new StringBuffer("<stylesheet ord='" + getOrd() + "'>");
+ "'>");
result.append(" <filename>" + getFilename() + "</filename>\n"); result.append(" <filename>" + getFilename() + "</filename>\n");
result.append(" <caption>" + getCaption() + "</caption>\n"); result.append(" <caption>" + getCaption() + "</caption>\n");
result.append(" <description>" + getDescription() + "</description>\n"); result.append(" <description>" + getDescription() + "</description>\n");
result.append("<contenttype>" + getContenttype() + "</contenttype>\n"); result.append("<contenttype>" + getContenttype() + "</contenttype>\n");
result.append("<is_generic>" + getIsGeneric() + "</is_generic>\n"); result.append("<is_generic>" + getIsGeneric() + "</is_generic>\n");
result.append("<stylesheet_type>" + this.getStylesheetType() + "</stylesheet_type>\n");
result.append("<toolbar_icon_filepath>" + this.getToolbarIconFilepath() + "</toolbar_icon_filepath>\n");
result.append("<jr_datasource>" + this.getJrDatasource() + "</jr_datasource>\n");
result.append("<usage_resultset_data>" + this.getUsageResultsetData() + "</usage_resultset_data>\n");
result.append(" </stylesheet>\n"); result.append(" </stylesheet>\n");

3
src/de/superx/servlet/SuperXmlTabelle.java

@ -971,7 +971,8 @@ public class SuperXmlTabelle extends AbstractSuperXServlet {
} else { } else {
//DQ XSL_JR start //DQ XSL_JR start
if (contenttype != null && contenttype.equalsIgnoreCase("application/jrxml")) if (contenttype != null && contenttype.equalsIgnoreCase("application/jrxml")
&& maske.getSelectedTableStylesheet().getStylesheetType().equals("XSL_JRXML"))
{ {
transformToJrxmlAndExecute(currentXml,maske.getSelectedTableStylesheetFilename(),null, request, response ,maske,getMandantenID()); transformToJrxmlAndExecute(currentXml,maske.getSelectedTableStylesheetFilename(),null, request, response ,maske,getMandantenID());
} }

30
src/de/superx/util/SqlStringUtils.java

@ -7,6 +7,8 @@ import java.text.DateFormat;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Vector; import java.util.Vector;
import de.memtext.util.StringUtils; import de.memtext.util.StringUtils;
@ -651,4 +653,32 @@ public class SqlStringUtils {
} }
return entryOK; return entryOK;
} }
/**
* Replace all occurencies of properties $property in a string with the corrsponding
* values.
* @param str
* @param properties
* @return
*/
public static String replaceAllProperties(String str, Map<String,String> properties) {
String result = str;
for (Entry<String,String> entry : properties.entrySet() ) {
if (entry.getValue() != null) {
result = result.replace("$" + entry.getKey(), entry.getValue());
result = result.replace("${" + entry.getKey() + "}", entry.getValue());
}
}
return result;
}
/**
* Convert US-format yyyy-MM-dd to dd.MM.yyyy
* @param str US-Date
* @return result DE-Date
*/
public static String formatDateUStoDE(String str) {
String result = str;
if(str !=null && str.indexOf("-")>-1)
result=str.substring(8)+"."+str.substring(5,7)+"."+str.substring(0,4); //Transform to dd.MM.yyyy
return result;
}
} }

197
superx/WEB-INF/conf/edustore/db/bin/ant

@ -1,197 +0,0 @@
#! /bin/sh
# Copyright (c) 2001-2003 The Apache Software Foundation. All rights
# reserved.
# load system-wide ant configuration
if [ -f "/etc/ant.conf" ] ; then
. /etc/ant.conf
fi
# provide default values for people who don't use RPMs
if [ -z "$rpm_mode" ] ; then
rpm_mode=false;
fi
if [ -z "$usejikes" ] ; then
usejikes=false;
fi
# load user ant configuration
if [ -f "$HOME/.antrc" ] ; then
. "$HOME/.antrc"
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
case "`uname`" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true
if [ -z "$JAVA_HOME" ] ; then
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
fi
;;
esac
if [ -z "$ANT_HOME" ] ; then
# try to find ANT
if [ -d /opt/ant ] ; then
ANT_HOME=/opt/ant
fi
if [ -d "${HOME}/opt/ant" ] ; then
ANT_HOME="${HOME}/opt/ant"
fi
## resolve links - $0 may be a link to ant's home
PRG="$0"
progname=`basename "$0"`
saveddir=`pwd`
# need this for relative symlinks
dirname_prg=`dirname "$PRG"`
cd "$dirname_prg"
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
ANT_HOME=`dirname "$PRG"`/..
cd "$saveddir"
# make it fully qualified
ANT_HOME=`cd "$ANT_HOME" && pwd`
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$ANT_HOME" ] &&
ANT_HOME=`cygpath --unix "$ANT_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# set ANT_LIB location
ANT_LIB="${ANT_HOME}/lib"
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java 2> /dev/null `
if [ -z "$JAVACMD" ] ; then
JAVACMD=java
fi
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
exit 1
fi
if [ -n "$CLASSPATH" ] ; then
LOCALCLASSPATH="$CLASSPATH"
fi
# in rpm_mode get ant/optional/xml parser&api from JAVALIBDIR
if $rpm_mode; then
JAVALIBDIR=/usr/share/java
for i in ant ant-optional jaxp_parser xml_apis
do
if [ -z "$LOCALCLASSPATH" ] ; then
LOCALCLASSPATH="$JAVALIBDIR/$i.jar"
else
LOCALCLASSPATH="$JAVALIBDIR/$i.jar":"$LOCALCLASSPATH"
fi
done
# in rpm mode ant/lib is in /usr/share/java/ant
ANT_LIB="${JAVALIBDIR}/ant"
fi
# add in the dependency .jar files in non-RPM mode (the default)
for i in "${ANT_LIB}"/*.jar
do
# if the directory is empty, then it will return the input string
# this is stupid, so case for it
if [ -f "$i" ] ; then
if [ -z "$LOCALCLASSPATH" ] ; then
LOCALCLASSPATH="$i"
else
LOCALCLASSPATH="$i":"$LOCALCLASSPATH"
fi
fi
done
if [ -n "$JAVA_HOME" ] ; then
if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar"
fi
if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip"
fi
# OSX hack to make Ant work with jikes
if $darwin ; then
OSXHACK="${JAVA_HOME}/../Classes"
if [ -d "${OSXHACK}" ] ; then
for i in "${OSXHACK}"/*.jar
do
JIKESPATH="$JIKESPATH:$i"
done
fi
fi
else
echo "Warning: JAVA_HOME environment variable is not set (or not exported)."
echo " If build fails because sun.* classes could not be found"
echo " you will need to set the JAVA_HOME environment variable"
echo " to the installation directory of java."
fi
# Allow Jikes support (off by default)
if $usejikes; then
ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes"
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
ANT_HOME=`cygpath --windows "$ANT_HOME"`
JAVA_HOME=`cygpath --windows "$JAVA_HOME"`
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
CYGHOME=`cygpath --windows "$HOME"`
fi
if [ -n "$CYGHOME" ]; then
if [ -n "$JIKESPATH" ]; then
JIKESPATH=`cygpath --path --windows "$JIKESPATH"`
"$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.Main $ANT_ARGS "$@"
else
"$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.Main $ANT_ARGS "$@"
fi
else
if [ -n "$JIKESPATH" ]; then
"$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" org.apache.tools.ant.Main $ANT_ARGS "$@"
else
echo "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.Main $ANT_ARGS "$@"
"$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.Main $ANT_ARGS "$@"
fi
fi

96
superx/WEB-INF/conf/edustore/db/bin/ant.bat

@ -1,96 +0,0 @@
@echo off
REM Copyright (c) 2001-2003 The Apache Software Foundation. All rights
REM reserved.
if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
if "%OS%"=="Windows_NT" @setlocal
rem %~dp0 is expanded pathname of the current script under NT
set DEFAULT_ANT_HOME=%~dp0..
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
set DEFAULT_ANT_HOME=
rem Slurp the command line arguments. This loop allows for an unlimited number
rem of arguments (up to the command line limit, anyway).
set ANT_CMD_LINE_ARGS=%1
if ""%1""=="""" goto doneStart
shift
:setupArgs
if ""%1""=="""" goto doneStart
set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
shift
goto setupArgs
rem This label provides a place for the argument list loop to break out
rem and for NT handling to skip to.
:doneStart
rem find ANT_HOME if it does not exist due to either an invalid value passed
rem by the user or the %0 problem on Windows 9x
if exist "%ANT_HOME%\lib\ant.jar" goto checkJava
rem check for ant in Program Files on system drive
if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive
set ANT_HOME=%SystemDrive%\Program Files\ant
goto checkJava
:checkSystemDrive
rem check for ant in root directory of system drive
if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive
set ANT_HOME=%SystemDrive%\ant
goto checkJava
:checkCDrive
rem check for ant in C:\ant for Win9X users
if not exist C:\ant\lib\ant.jar goto noAntHome
set ANT_HOME=C:\ant
goto checkJava
:noAntHome
echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
goto end
:checkJava
set _JAVACMD=%JAVACMD%
set LOCALCLASSPATH=%CLASSPATH%
for %%i in ("%ANT_HOME%\lib\*.jar") do call "%ANT_HOME%\bin\lcp.bat" %%i
if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
if exist "%JAVA_HOME%\lib\tools.jar" set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%LOCALCLASSPATH%
if exist "%JAVA_HOME%\lib\classes.zip" set LOCALCLASSPATH=%JAVA_HOME%\lib\classes.zip;%LOCALCLASSPATH%
goto checkJikes
:noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=java.exe
echo.
echo Warning: JAVA_HOME environment variable is not set.
echo If build fails because sun.* classes could not be found
echo you will need to set the JAVA_HOME environment variable
echo to the installation directory of java.
echo.
:checkJikes
if not "%JIKESPATH%"=="" goto runAntWithJikes
:runAnt
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.Main %ANT_ARGS% %ANT_CMD_LINE_ARGS%
goto end
:runAntWithJikes
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.Main %ANT_ARGS% %ANT_CMD_LINE_ARGS%
goto end
:end
set LOCALCLASSPATH=
set _JAVACMD=
set ANT_CMD_LINE_ARGS=
if "%OS%"=="Windows_NT" @endlocal
:mainEnd
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"

12
superx/WEB-INF/conf/edustore/db/bin/antRun

@ -1,12 +0,0 @@
#! /bin/sh
# Copyright (c) 2001-2002 The Apache Software Foundation. All rights
# reserved.
# Args: DIR command
cd "$1"
CMD="$2"
shift
shift
exec "$CMD" "$@"

31
superx/WEB-INF/conf/edustore/db/bin/antRun.bat

@ -1,31 +0,0 @@
@echo off
REM Copyright (c) 2001-2002 The Apache Software Foundation. All rights
REM reserved.
if "%OS%"=="Windows_NT" @setlocal
if ""%1""=="""" goto runCommand
rem Change drive and directory to %1
if "%OS%"=="Windows_NT" cd /d ""%1""
if not "%OS%"=="Windows_NT" cd ""%1""
shift
rem Slurp the command line arguments. This loop allows for an unlimited number
rem of agruments (up to the command line limit, anyway).
set ANT_RUN_CMD=%1
if ""%1""=="""" goto runCommand
shift
:loop
if ""%1""=="""" goto runCommand
set ANT_RUN_CMD=%ANT_RUN_CMD% %1
shift
goto loop
:runCommand
rem echo %ANT_RUN_CMD%
%ANT_RUN_CMD%
if "%OS%"=="Windows_NT" @endlocal

51
superx/WEB-INF/conf/edustore/db/bin/antRun.pl

@ -1,51 +0,0 @@
#!/usr/bin/perl
#######################################################################
#
# antRun.pl
#
# wrapper script for invoking commands on a platform with Perl installed
# this is akin to antRun.bat, and antRun the SH script
#
# created: 2001-10-18
# last modified: 2001-11-13
# author: Jeff Tulley jtulley@novell.com
#######################################################################
#be fussy about variables
use strict;
#turn warnings on during dev; generates a few spurious uninitialised var access warnings
#use warnings;
#and set $debug to 1 to turn on trace info (currently unused)
my $debug=1;
#######################################################################
# change drive and directory to "%1"
my $ANT_RUN_CMD = @ARGV[0];
# assign current run command to "%2"
chdir (@ARGV[0]) || die "Can't cd to $ARGV[0]: $!\n";
if ($^O eq "NetWare") {
# There is a bug in Perl 5 on NetWare, where chdir does not
# do anything. On NetWare, the following path-prefixed form should
# always work. (afaict)
$ANT_RUN_CMD .= "/".@ARGV[1];
}
else {
$ANT_RUN_CMD = @ARGV[1];
}
# dispose of the first two arguments, leaving only the command's args.
shift;
shift;
# run the command
my $returnValue = system $ANT_RUN_CMD, @ARGV;
if ($returnValue eq 0) {
exit 0;
}
else {
# only 0 and 1 are widely recognized as exit values
# so change the exit value to 1
exit 1;
}

25
superx/WEB-INF/conf/edustore/db/conf/build.xml

@ -232,6 +232,7 @@
Beispielaufruf für SuperX: Beispielaufruf für SuperX:
Kernmodul: Kernmodul:
ant -f ../conf/build.xml -DMODULE=kern -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=iso -DPLATFORM=superx -DROOT_DIR_WEBSERVER=/home/superx/devel_module/kernmodul4.0utf/webserver -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket ant -f ../conf/build.xml -DMODULE=kern -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=iso -DPLATFORM=superx -DROOT_DIR_WEBSERVER=/home/superx/devel_module/kernmodul4.0utf/webserver -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket
ant -f ../conf/build.xml -DMODULE=kern -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=utf8 -DPLATFORM=his1 -DROOT_DIR_WEBSERVER=/home/superx/devel_module/kernmodul4.0utf/webserver erzeuge_paket
SOS-Modul und alle anderen: SOS-Modul und alle anderen:
ant -f ../../conf/build.xml -DMODULE=sos -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=iso -DPLATFORM=superx -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket ant -f ../../conf/build.xml -DMODULE=sos -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=iso -DPLATFORM=superx -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket
ant -f ../../conf/build.xml -DMODULE=sos -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=utf8 -DPLATFORM=superx -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket ant -f ../../conf/build.xml -DMODULE=sos -DPFAD=/home/superx/fertige_module -DDATABASE=POSTGRES -DENCODING=utf8 -DPLATFORM=superx -DDOC=/home/superx/git/superx/superx/doku erzeuge_paket
@ -956,7 +957,20 @@ failonerror="false">
<fileset dir="${ROOT_DIR_WEBAPP}/doku/${MODULE}_modul/"> </fileset> <fileset dir="${ROOT_DIR_WEBAPP}/doku/${MODULE}_modul/"> </fileset>
</sync> </sync>
<!-- Für SuperX Doku werden die Handbücher umgeleitet --> <antcall target="replace_captions" />
<copy file="${ROOT_DIR_WEBAPP}/../src/edustore/edustore_${MODULE}.xml" todir="${ZIEL_WEBAPP_PFAD}/WEB-INF/classes/edustore"
preservelastmodified="true"
overwrite="true" failonerror="false"
/>
<delete includeemptydirs="true">
<fileset dir="${ZIEL_MODULE_PFAD}" includes="**/*.log,**/*.err"/>
</delete>
</target>
<target name="replace_captions" if="isPlatformSuperX">
<!-- Für SuperX Doku werden die Handbücher umgeleitet -->
<xmlproperty file="${MODULE_DIR}/conf/${MODULE}.xml"/> <xmlproperty file="${MODULE_DIR}/conf/${MODULE}.xml"/>
<replaceregexp file="${ZIEL_MODULE_PFAD}/schluesseltabellen/${MODULE}_captions.unl" <replaceregexp file="${ZIEL_MODULE_PFAD}/schluesseltabellen/${MODULE}_captions.unl"
@ -996,16 +1010,9 @@ failonerror="false">
match="sos_astat_doku_url.*" match="sos_astat_doku_url.*"
replace="sos_astat_doku_url^^^^de^^&lt;br/&gt;&lt;a class=\&quot;handbuch_link\&quot; href=\&quot;http://www.superx-projekt.de/doku/sos_modul/benutzer/f_AbfragenfrdenBereichStudierendePrfungen.htm\&quot; target=\&quot;_blank\&quot;&gt;Amtliche Statistik-Handbuch ${module(system)}&lt;/a&gt;^^${module(systeminfo_id)}^99^^^" replace="sos_astat_doku_url^^^^de^^&lt;br/&gt;&lt;a class=\&quot;handbuch_link\&quot; href=\&quot;http://www.superx-projekt.de/doku/sos_modul/benutzer/f_AbfragenfrdenBereichStudierendePrfungen.htm\&quot; target=\&quot;_blank\&quot;&gt;Amtliche Statistik-Handbuch ${module(system)}&lt;/a&gt;^^${module(systeminfo_id)}^99^^^"
byline="true"/> byline="true"/>
<copy file="${ROOT_DIR_WEBAPP}/../src/edustore/edustore_${MODULE}.xml" todir="${ZIEL_WEBAPP_PFAD}/WEB-INF/classes/edustore"
preservelastmodified="true"
overwrite="true" failonerror="false"
/>
<delete includeemptydirs="true">
<fileset dir="${ZIEL_MODULE_PFAD}" includes="**/*.log,**/*.err"/>
</delete>
</target> </target>
<target name="sync_doc_paket" if="withDoc"> <target name="sync_doc_paket" if="withDoc">
<mkdir dir="${ZIEL_DOC_PFAD}"/> <mkdir dir="${ZIEL_DOC_PFAD}"/>
<mkdir dir="${ZIEL_DOC_PFAD}/${MODULE}_modul"/> <mkdir dir="${ZIEL_DOC_PFAD}/${MODULE}_modul"/>

80
superx/WEB-INF/conf/edustore/db/conf/dimension_templates_mondrian4/dimension_date_template.xsl

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--In diesem Script wird die edustore.xml für Modrian Version 4 erzeugt-->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="DimensionDate">
<Dimension name="Datum" table="dim_datum" key="id" type="TIME">
<Attributes>
<Attribute name="id" keyColumn="id" hasHierarchy="false" />
<Attribute name="Jahr" keyColumn="year" levelType="TimeYears" hasHierarchy="false" />
<Attribute name="Quartal" levelType="TimeQuarters" hasHierarchy="false">
<Key>
<Column name="year" />
<Column name="quarter" />
</Key>
<Name>
<Column name="quarter" />
</Name>
</Attribute>
<Attribute name="Monat" levelType="TimeMonths" hasHierarchy="false" orderByColumn="month">
<Key>
<Column name="year" />
<Column name="month" />
</Key>
<Name>
<Column name="month_name" />
</Name>
</Attribute>
<Attribute name="Tag im Monat" levelType="TimeDays" hasHierarchy="false">
<Key>
<Column name="year" />
<Column name="month" />
<Column name="day_of_month" />
</Key>
<Name>
<Column name="day_of_month" />
</Name>
</Attribute>
<Attribute name="Wochentag" levelType="TimeDays" hasHierarchy="false" orderByColumn="day_of_week">
<Key>
<Column name="year" />
<Column name="month" />
<Column name="day_of_month" />
<Column name="day_of_week" />
</Key>
<Name>
<Column name="day_name" />
</Name>
</Attribute>
<Attribute name="Datum (Name)" levelType="TimeDays" hasHierarchy="false">
<Key>
<Column name="year" />
<Column name="month" />
<Column name="day_date" />
</Key>
<Name>
<Column name="day_desc" />
</Name>
</Attribute>
<Attribute name="Semestername" keyColumn="semester" orderByColumn="semester_key" hasHierarchy="false" />
<Attribute name="Semesterschlüssel" keyColumn="semester_key" hasHierarchy="false" />
<Attribute name="Quartal hier." caption="Quartal" keyColumn="quarter"/>
<Attribute name="Monat hier." caption="Monat" orderByColumn="month" keyColumn="month_name"/>
<Attribute name="Wochentag hier." caption="Wochentag" orderByColumn="day_of_week" keyColumn="day_name"/>
</Attributes>
<Hierarchies>
<Hierarchy name="Datum" >
<Level attribute="Jahr" />
<Level attribute="Quartal" />
<Level attribute="Monat" />
<Level attribute="Tag im Monat" />
<Level attribute="Wochentag" />
<Level attribute="Datum (Name)" />
</Hierarchy>
<Hierarchy name="Semester" hasAll="true">
<Level attribute="Semestername" />
<Level attribute="Semesterschlüssel" />
</Hierarchy>
</Hierarchies>
</Dimension>
</xsl:template>
</xsl:stylesheet>

2
superx/WEB-INF/conf/edustore/db/install/conf/kern_full_excludes_webapp.txt

@ -69,7 +69,7 @@ edit/kenn/**
edit/zul/** edit/zul/**
edit/kennx/** edit/kennx/**
META-INF/context.xml META-INF/context.xml
WEB-INF/conf/edustore/** #WEB-INF/conf/edustore/**
WEB-INF/classes/edustore/** WEB-INF/classes/edustore/**
xml/js/dojo/dojo/tests/xml/site.xml xml/js/dojo/dojo/tests/xml/site.xml
xml/his1/** xml/his1/**

46
superx/WEB-INF/conf/edustore/db/install/upgrade/kern_env_upgrade.x

@ -31,9 +31,28 @@ fi
chmod +x $SUPERX_DIR/db/bin/SQL_ENV chmod +x $SUPERX_DIR/db/bin/SQL_ENV
fi fi
#Upgrade der web.xml:
fgrep -i -s "SuperXmlMenu" $WEBAPP/WEB-INF/web.xml
FLAG1=$?
if [ $FLAG1 -eq 0 ]
then
echo "web.xml:SuperXmlMenu ist ok"
else
echo "web.xml wird um SuperXmlMenu erweitert."
sed "1,/<\/servlet>/s/<\/servlet>/<\/servlet> <servlet> <servlet-name>de.superx.servlet.SuperXmlMenu<\/servlet-name> <servlet-class>de.superx.servlet.SuperXmlMenu<\/servlet-class> <\/servlet> <servlet> <servlet-name>SuperXmlMenu<\/servlet-name> <servlet-class>de.superx.servlet.SuperXmlMenu<\/servlet-class> <\/servlet>/" $WEBAPP/WEB-INF/web.xml >$WEBAPP/WEB-INF/web.xml.new
cat $WEBAPP/WEB-INF/web.xml.new >$WEBAPP/WEB-INF/web.xml
sed "1,/<\/servlet-mapping>/s/<\/servlet-mapping>/<\/servlet-mapping><servlet-mapping> <servlet-name>SuperXmlMenu<\/servlet-name> <url-pattern>\/servlet\/SuperXmlMenu<\/url-pattern> <\/servlet-mapping>/" $WEBAPP/WEB-INF/web.xml >$WEBAPP/WEB-INF/web.xml.new
cat $WEBAPP/WEB-INF/web.xml.new >$WEBAPP/WEB-INF/web.xml
fi
#########################
# #
# kernmodul_upgrade_4.x #
# #
#########################
if test -f $WEBAPP/WEB-INF/lib/superx5.0.jar ; then if test -f $WEBAPP/WEB-INF/lib/superx5.0.jar ; then
java -cp $WEBAPP/WEB-INF/lib/superx5.0.jar de.superx.bin.Upgrade $WEBAPP/WEB-INF/conf/obsoletfiles.txt java -cp $WEBAPP/WEB-INF/lib/superx5.0.jar de.superx.bin.Upgrade $WEBAPP/WEB-INF/conf/obsoletfiles.txt
else else
@ -78,6 +97,33 @@ fi
fi fi
fi fi
if [ "$MANDANTID" != "" ]
then
# Bei Mandantenbetrieb:
echo "Achtun g: in der SQL_ENV des Mandanten "$MANDANTID" muessen folgende Pfade geaendert werden:"
echo "XML_CLASSPATH: auskommentieren"
echo "JDBC_CLASSPATH=\"\$LIB_PATH/ant.jar\" ; for i in \`ls \$LIB_PATH/*.jar\` ; do JDBC_CLASSPATH=\$JDBC_CLASSPATH:\$i ; done ; XML_CLASSPATH=\$JDBC_CLASSPATH"
echo "CATALINA_OPTS: ergänzen um '-DSuperX-DB-PROPERTIES-SET=true'."
else
# Bei Normalbetrieb wird SQL_ENV geaendert:
sed 's/^XML_CLASSPATH=/\#XML_CLASSPATH=\$LIB_PATH/g' $SUPERX_DIR/db/bin/SQL_ENV >$SUPERX_DIR/db/bin/SQL_ENV.new
cat $SUPERX_DIR/db/bin/SQL_ENV.new >$SUPERX_DIR/db/bin/SQL_ENV
sed 's/^CATALINA_OPTS=\"/CATALINA_OPTS=\"-DSuperX-DB-PROPERTIES-SET=true /g' $SUPERX_DIR/db/bin/SQL_ENV >$SUPERX_DIR/db/bin/SQL_ENV.new
cat $SUPERX_DIR/db/bin/SQL_ENV.new >$SUPERX_DIR/db/bin/SQL_ENV
sed 's/^JDBC_CLASSPATH=*/JDBC_CLASSPATH=\"\$LIB_PATH\/ant.jar\" \; for i in \`ls \$LIB_PATH\/*.jar\` \; do JDBC_CLASSPATH=\$JDBC_CLASSPATH:\$i \; done \; XML_CLASSPATH=\$JDBC_CLASSPATH/g' $SUPERX_DIR/db/bin/SQL_ENV >$SUPERX_DIR/db/bin/SQL_ENV.new
cat $SUPERX_DIR/db/bin/SQL_ENV.new >$SUPERX_DIR/db/bin/SQL_ENV
chmod +x $SUPERX_DIR/db/bin/SQL_ENV
if test ! -f $WEBAPP/META-INF/context.xml ; then
if test -f $SUPERX_DIR/webserver/tomcat/conf/server.xml ; then
sx_transform.x -IN:$SUPERX_DIR/webserver/tomcat/conf/server.xml -XSL:$SUPERX_DIR/db/conf/server_xml2context_xml.xsl -OUT:$WEBAPP/META-INF/context.xml -method:xml
fi
fi
fi
if test -f $WEBAPP/xml/index.htm ; then if test -f $WEBAPP/xml/index.htm ; then
mv $WEBAPP/xml/index.htm $WEBAPP/xml/index.htm.old mv $WEBAPP/xml/index.htm $WEBAPP/xml/index.htm.old
fi fi

18
superx/WEB-INF/conf/edustore/db/module/crontab.sam

@ -0,0 +1,18 @@
# Example crontab for user superx
# set EDITOR to vi, and enter
# crontab -e
# | | | | |
# | | | | - Wochentag (0=Sonntag)
# | | | |
# | | | - Monat (1-12)
# | | |
# | | - Tag (1-31)
# | |
# | - Stunde (0-23)
# |
# - Minute (0-59)
#
# Täglicher SuperX-Update um 18 Uhr
#
00 18 * * 1-5 /home/superx/db/module/update.x >>/home/superx/db/module/update.log 2>&1

20
superx/WEB-INF/conf/edustore/db/module/update_cron.x.sam

@ -0,0 +1,20 @@
#!/bin/bash
#This is the central update script for SuperX.
#Activate it in your crontab with for example:
#15 20 * * * root su - superx -c "/home/superx/db/module/update.x" >update.log 2>&1
#This entry in /etc/crontab starts the update exery night at 20:15 o'clock.
. /home/superx/db/bin/SQL_ENV
LOG=$SUPERX_DIR/db/module/superx_update.log
#Stop Tomcat
$SUPERX_DIR/webserver/tomcat/bin/shutdown.sh >$LOG 2>&1
#Dump Database
$SUPERX_DIR/db/install/dump_it.x >>$LOG 2>&1
#Now the Modules are updated:
#uncomment this to release it (examples)
#$SOS_PFAD/sos_update.x >>$LOG 2>&1
#$COB_PFAD/cob_update.x >>$LOG 2>&1
#$SVA_PFAD/sva_update.x >>$LOG 2>&1
$SUPERX_DIR/webserver/tomcat/bin/startup.sh >>$LOG 2>&1

19
superx/WEB-INF/conf/obsoletfiles.txt

@ -1,6 +1,7 @@
#Aufgelistete Dateien werden bei einem Kern Upgrade gelöscht. #Aufgelistete Dateien werden bei einem Kern Upgrade gelöscht.
#Dateien relativ zum Pfad $SUPERX_DIR/webserver/tomcat/webapps/superx angeben. #Dateien relativ zum Pfad $SUPERX_DIR/webserver/tomcat/webapps/superx angeben.
#Es sind nur Dateiangaben erlaubt (keine Wildcards). #Es sind nur Dateiangaben erlaubt (keine Wildcards).
WEB-INF/conf/edustore/db/bin/ant
WEB-INF/lib/avalon-framework-cvs-20020806.jar WEB-INF/lib/avalon-framework-cvs-20020806.jar
WEB-INF/lib/poi-2.5.1-final-20040804.jar WEB-INF/lib/poi-2.5.1-final-20040804.jar
WEB-INF/lib/poi-3.5-FINAL-20090928.jar WEB-INF/lib/poi-3.5-FINAL-20090928.jar
@ -64,11 +65,12 @@ WEB-INF/lib/commons-httpclient-2.0.jar
WEB-INF/lib/commons-lang-2.0.jar WEB-INF/lib/commons-lang-2.0.jar
WEB-INF/lib/commons-logging-1.0.3.jar WEB-INF/lib/commons-logging-1.0.3.jar
WEB-INF/lib/commons-pool-1.2.jar WEB-INF/lib/commons-pool-1.2.jar
WEB-INF/lib/freemarker.jar
WEB-INF/lib/log4j-1.2.9.jar WEB-INF/lib/log4j-1.2.9.jar
WEB-INF/lib/log4j-1.2.14.jar WEB-INF/lib/log4j-1.2.14.jar
WEB-INF/lib/poi-3.6.jar WEB-INF/lib/poi-3.6.jar
WEB-INF/lib/postgresql-9.0-801.jdbc4.jar WEB-INF/lib/postgresql-9.0-801.jdbc4.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/postgresql-9.2-1002.jdbc4.jar WEB-INF/lib/postgresql-9.2-1002.jdbc4.jar
WEB-INF/lib/poi-3.9-20121203.jar WEB-INF/lib/poi-3.9-20121203.jar
WEB-INF/lib/poi-ooxml-3.9-20121203.jar WEB-INF/lib/poi-ooxml-3.9-20121203.jar
WEB-INF/lib/poi-examples-3.9-20121203.jar WEB-INF/lib/poi-examples-3.9-20121203.jar
@ -86,14 +88,13 @@ WEB-INF/lib/superx4.7.jar
WEB-INF/lib/superx4.8.jar WEB-INF/lib/superx4.8.jar
WEB-INF/lib/commons-httpclient-20020423.jar WEB-INF/lib/commons-httpclient-20020423.jar
WEB-INF/lib/rhino-1.5R4.1.jar WEB-INF/lib/rhino-1.5R4.1.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-dom.jar WEB-INF/lib/saxon8-dom.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-jdom.jar WEB-INF/lib/saxon8-jdom.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-LICENSE.txt WEB-INF/lib/saxon8-LICENSE.txt
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-sql.jar WEB-INF/lib/saxon8-sql.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-xom.jar WEB-INF/lib/saxon8-xom.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8-xpath.jar WEB-INF/lib/saxon8-xpath.jar
file:///home/superx/git/kern/superx/WEB-INF/lib/saxon8.jar WEB-INF/lib/saxon8.jar
WEB-INF/lib/saiku-service-2.5.jar WEB-INF/lib/saiku-service-2.5.jar
#Grafiken wie png oder gif werden nicht mehr verwendet: #Grafiken wie png oder gif werden nicht mehr verwendet:
#Wenn alle SuperX Module mit kern 4.8 SVGs erschienen sind, können wir u.g. Dateien ent-kommentieren: #Wenn alle SuperX Module mit kern 4.8 SVGs erschienen sind, können wir u.g. Dateien ent-kommentieren:

BIN
superx/WEB-INF/lib/superx5.0.jar

Binary file not shown.

3
superx/WEB-INF/reports/tabelle2jasperreport_generic.xsl.jrxml

@ -2,6 +2,7 @@
<property name="ireport.zoom" value="1.0"/> <property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/> <property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/> <property name="ireport.y" value="0"/>
<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
<queryString language="xPath">/ergebnisse/ergebnis/ergebniselement/sqlerg/row</queryString> <queryString language="xPath">/ergebnisse/ergebnis/ergebniselement/sqlerg/row</queryString>
<field name="Berichtsname" class="java.lang.String"> <field name="Berichtsname" class="java.lang.String">
<fieldDescription>/ergebnisse/ergebnis[ @ordnr='0']/maskenname</fieldDescription> <fieldDescription>/ergebnisse/ergebnis[ @ordnr='0']/maskenname</fieldDescription>
@ -171,4 +172,4 @@
<background> <background>
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title><band height="76"><textField><reportElement x="0" y="0" width="285" height="12"/><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">$F{REPORT_HEADING_INSTITUTION}</textFieldExpression></textField><textField><reportElement x="0" y="20" width="285" height="12"/><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">$F{REPORT_HEADING_URL}</textFieldExpression></textField><textField><reportElement x="0" y="44" width="303" height="18"/><textElement><font fontName="Liberation Sans" size="14" isBold="true"/></textElement><textFieldExpression class="java.lang.String">$F{Berichtsname}</textFieldExpression></textField><textField><reportElement x="24" y="62" width="100" height="10"/><textElement><font fontName="Liberation Sans" size="8"/></textElement><textFieldExpression class="java.lang.String">$F{standdatum}</textFieldExpression></textField><staticText><reportElement mode="Transparent" x="0" y="62" width="24" height="10" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><text>Stand:</text></staticText><image><reportElement x="730" y="0" width="80" height="32"><printWhenExpression>$F{REPORT_LOGO_FILE}!=null &amp;&amp; !$F{REPORT_LOGO_FILE}.equals("") &amp;&amp; !$F{REPORT_LOGO_FILE}.equals("@@REPORT_LOGO_FILE@@")</printWhenExpression></reportElement><imageExpression class="java.lang.String">"../"+$F{REPORT_LOGO_FILE}</imageExpression></image></band></title><detail><band height="323" splitType="Stretch"/></detail><pageFooter><band height="15"><staticText><reportElement mode="Transparent" x="0" y="3" width="89" height="12" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><text>Erzeugungsdatum:</text></staticText><textField pattern="dd.MM.yyy"><reportElement mode="Transparent" x="89" y="3" width="96" height="12" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><textFieldExpression class="java.util.Date">new java.util.Date()</textFieldExpression></textField><textField evaluationTime="Report" isBlankWhenNull="false"><reportElement key="textField" x="770" y="3" width="39" height="12"/><box><topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/></box><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">"" + $V{PAGE_NUMBER} + ""</textFieldExpression></textField><textField isBlankWhenNull="false"><reportElement key="textField" x="676" y="3" width="94" height="12"/><box><topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Right"><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">"Seite " + $V{PAGE_NUMBER} + " von "</textFieldExpression></textField></band></pageFooter></jasperReport> <title><band height="76"><textField><reportElement x="0" y="0" width="729" height="20"/><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">$F{REPORT_HEADING_INSTITUTION}</textFieldExpression></textField><textField><reportElement x="0" y="20" width="729" height="12"/><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">$F{REPORT_HEADING_URL}</textFieldExpression></textField><textField><reportElement x="0" y="44" width="809" height="18"/><textElement><font fontName="Liberation Sans" size="14" isBold="true"/></textElement><textFieldExpression class="java.lang.String">$F{Berichtsname}</textFieldExpression></textField><textField><reportElement x="24" y="62" width="809" height="10"/><textElement><font fontName="Liberation Sans" size="8"/></textElement><textFieldExpression class="java.lang.String">$F{standdatum}</textFieldExpression></textField><staticText><reportElement mode="Transparent" x="0" y="62" width="24" height="10" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><text>Stand:</text></staticText><image><reportElement x="730" y="0" width="80" height="32"><printWhenExpression>$F{REPORT_LOGO_FILE}!=null &amp;&amp; !$F{REPORT_LOGO_FILE}.equals("") &amp;&amp; !$F{REPORT_LOGO_FILE}.equals("@@REPORT_LOGO_FILE@@")</printWhenExpression></reportElement><imageExpression class="java.lang.String">"../"+$F{REPORT_LOGO_FILE}</imageExpression></image></band></title><detail><band height="323" splitType="Stretch"/></detail><pageFooter><band height="15"><staticText><reportElement mode="Transparent" x="0" y="3" width="89" height="12" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><text>Erzeugungsdatum:</text></staticText><textField pattern="dd.MM.yyyy"><reportElement mode="Transparent" x="89" y="3" width="96" height="12" forecolor="#000000" backcolor="#FFFFFF"/><textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"><font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/></textElement><textFieldExpression class="java.util.Date">new java.util.Date()</textFieldExpression></textField><textField evaluationTime="Report" isBlankWhenNull="false"><reportElement key="textField" x="770" y="3" width="39" height="12"/><box><topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/></box><textElement><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">"" + $V{PAGE_NUMBER} + ""</textFieldExpression></textField><textField isBlankWhenNull="false"><reportElement key="textField" x="676" y="3" width="94" height="12"/><box><topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Right"><font fontName="Liberation Sans"/></textElement><textFieldExpression class="java.lang.String">"Seite " + $V{PAGE_NUMBER} + " von "</textFieldExpression></textField></band></pageFooter></jasperReport>

13
superx/xml/js/memtext/sx_functions.js

@ -495,6 +495,7 @@ function sichtEintraegeSuchen(was) {
// params sollten schon passend escaped sein // params sollten schon passend escaped sein
function maskeSichtLaden(fname, cap, params1) { function maskeSichtLaden(fname, cap, params1) {
resetValidation();
if (fname) Feldname = fname; if (fname) Feldname = fname;
caption = cap; caption = cap;
// <!-- test ohne Jsession var callurl='/superx/servlet/SuperXmlMaske?tid=<xsl:value-of select="/maske/@tid"/><![CDATA[&getJSON_'+Feldname+'=xxxxxx-xxxxxx@'; --> // <!-- test ohne Jsession var callurl='/superx/servlet/SuperXmlMaske?tid=<xsl:value-of select="/maske/@tid"/><![CDATA[&getJSON_'+Feldname+'=xxxxxx-xxxxxx@'; -->
@ -903,6 +904,7 @@ function prepareLesezeichenLink2() {
} }
function maskeComboLaden(fname, caption) { function maskeComboLaden(fname, caption) {
resetValidation();
Feldname = fname; Feldname = fname;
var callurl = '/superx/servlet/SuperXmlMaske'; var callurl = '/superx/servlet/SuperXmlMaske';
//if (jsessionid!='') callurl+=";jsessionid="+jsessionid; //if (jsessionid!='') callurl+=";jsessionid="+jsessionid;
@ -1913,7 +1915,9 @@ function tableRowHeaderSticky(fixedColumnCount_width)
for (var i=0; i < numTableRaws; i++) { for (var i=0; i < numTableRaws; i++) {
//normale Spalten, die mitlaufen sollen - Abstand links, Hintergrundfarbe, Ebene und Position setzen //normale Spalten, die mitlaufen sollen - Abstand links, Hintergrundfarbe, Ebene und Position setzen
document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.left=column_width + "px"; document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.left=column_width + "px";
document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.backgroundColor="#c4c4c4"; //eigene Farbgebung raus, statt dessen inherit damit nicht durchscheint und ursprüngliche Farbe erhalten bleibt #293635c7
//document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.backgroundColor="#c4c4c4";
document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.backgroundColor="inherit";
document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.zIndex=3; document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.zIndex=3;
document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.position="sticky"; document.getElementById("table1").getElementsByTagName('tbody')[0].getElementsByTagName('tr')[i].getElementsByTagName('td')[c].style.position="sticky";
} }
@ -1923,3 +1927,10 @@ function tableRowHeaderSticky(fixedColumnCount_width)
column_width+=this_column_width; column_width+=this_column_width;
} }
} }
function resetValidation()
{
var el=document.getElementById('validation');
if(el)
el.innerHTML = "";
}

6
superx/xml/maskComponents_html.xsl

@ -800,7 +800,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:when test="art='0'"> <xsl:when test="art='0'">
<xsl:if test="zeilenanzahl='1'"> <xsl:if test="zeilenanzahl='1'">
<input type="text" > <input type="text" onchange="resetValidation();">
<xsl:attribute name="class"> <xsl:attribute name="class">
<xsl:choose> <xsl:choose>
<xsl:when test="obligatorisch='1'"> <xsl:when test="obligatorisch='1'">
@ -889,7 +889,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:attribute name="onchange"> <xsl:attribute name="onchange">
<xsl:text>c=document.getElementById('</xsl:text> <xsl:text>c=document.getElementById('</xsl:text>
<xsl:text>select_</xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template> <xsl:text>select_</xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template>
<xsl:text>');document.getElementById('</xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template><xsl:text>').value=c.options[c.selectedIndex].value;</xsl:text> <xsl:text>');document.getElementById('</xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template><xsl:text>').value=c.options[c.selectedIndex].value;resetValidation();</xsl:text>
</xsl:attribute> </xsl:attribute>
<option /> <option />
<xsl:for-each select="relation/item"> <xsl:for-each select="relation/item">
@ -1369,7 +1369,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
</input>&#160; </input>&#160;
Neu mit text-Workaround --> Neu mit text-Workaround -->
<xsl:text disable-output-escaping="yes"><![CDATA[ <input class="schluesselfeld" type="text" size="15" style="display:none" ]]></xsl:text> <xsl:text disable-output-escaping="yes"><![CDATA[ <input class="schluesselfeld" type="text" size="15" style="display:none" onchange="resetValidation();"]]></xsl:text>
<xsl:text><![CDATA[ id="]]></xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template><xsl:text>" </xsl:text> <xsl:text><![CDATA[ id="]]></xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="name"/></xsl:with-param></xsl:call-template><xsl:text>" </xsl:text>
<xsl:text><![CDATA[ name="]]></xsl:text><xsl:value-of select="name"/><xsl:text>" </xsl:text> <xsl:text><![CDATA[ name="]]></xsl:text><xsl:value-of select="name"/><xsl:text>" </xsl:text>
<xsl:text><![CDATA[ tabindex="]]></xsl:text><xsl:value-of select="100+(nummer*10)+1"/><xsl:text>" </xsl:text> <xsl:text><![CDATA[ tabindex="]]></xsl:text><xsl:value-of select="100+(nummer*10)+1"/><xsl:text>" </xsl:text>

1
superx/xml/maske_html_18100.xsl

@ -37,6 +37,7 @@ function setMaskKeysOfReport()
function maskeComboLaden18100(fname,caption) function maskeComboLaden18100(fname,caption)
{ {
resetValidation();
Feldname=fname; Feldname=fname;
var callurl='/superx/servlet/SuperXmlMaske'; var callurl='/superx/servlet/SuperXmlMaske';
//if (jsessionid!='') callurl+=";jsessionid="+jsessionid; //if (jsessionid!='') callurl+=";jsessionid="+jsessionid;

4
superx/xml/maske_html_his1.xsl

@ -561,7 +561,7 @@ Bitte beachten Sie auch: diese Funktion ist im Internet Explorer 6.x nicht verf
<xsl:choose> <xsl:choose>
<xsl:when test="zeilenanzahl='1'"> <xsl:when test="zeilenanzahl='1'">
<div style="margin:0 0 0 7px; padding:0 0 0 0 "> <div style="margin:0 0 0 7px; padding:0 0 0 0 ">
<input type="text" > <input type="text" onchange="resetValidation();">
<xsl:attribute name="class"> <xsl:attribute name="class">
<xsl:choose> <xsl:choose>
<xsl:when test="obligatorisch='1'"> <xsl:when test="obligatorisch='1'">
@ -627,7 +627,7 @@ Bitte beachten Sie auch: diese Funktion ist im Internet Explorer 6.x nicht verf
<!-- start combobox für zeilenzahl 1/nicht-dynamisches Feld--> <!-- start combobox für zeilenzahl 1/nicht-dynamisches Feld-->
<xsl:when test="zeilenanzahl=1 and @isDynamic='false'"> <xsl:when test="zeilenanzahl=1 and @isDynamic='false'">
<!--Combobox ist nur Auswahlhilfe ausgewertet wird inhalt von Inputfeld!!--> <!--Combobox ist nur Auswahlhilfe ausgewertet wird inhalt von Inputfeld!!-->
<select > <select onchange="resetValidation();">
<xsl:attribute name="class"> <xsl:attribute name="class">
<xsl:choose> <xsl:choose>
<xsl:when test="obligatorisch='1'"> <xsl:when test="obligatorisch='1'">

Loading…
Cancel
Save