mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 17:32:18 +00:00
This commit is contained in:
@@ -80,7 +80,7 @@ $save_vorschlag_error=false;
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
|
||||
<link href="../../../skin/cis.css" rel="stylesheet" type="text/css" />
|
||||
<script language="Javascript">
|
||||
//Vorschau anzeigen
|
||||
@@ -310,7 +310,7 @@ if($frage->frage_id!='')
|
||||
echo "<form method='POST' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$gruppe_kurzbz&frage_id=$frage->frage_id'>";
|
||||
echo "<table>";
|
||||
//Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt
|
||||
echo "<tr><td colspan='2'>\n<textarea name='text' id='text' cols='30' rows='8' oninput='preview()'><![CDATA[$frage->text]]></textarea>\n</td></tr>";
|
||||
echo "<tr><td colspan='2'>\n<textarea name='text' id='text' cols='40' rows='20' oninput='preview()'><![CDATA[$frage->text]]></textarea>\n</td></tr>";
|
||||
echo "<tr><td>Demo <input type='checkbox' name='demo' ".($frage->demo?'checked="true"':'')." />
|
||||
Loesung <input type='text' name='loesung' value='$frage->loesung' size='1' /></td>
|
||||
<td align='right'><input type='submit' value='Speichern' name='submitdata' /></td>";
|
||||
@@ -345,7 +345,7 @@ if($frage->frage_id!='')
|
||||
echo "<td>Antwort</td><td><input type='text' size='1' name='antwort' value='$vorschlag->antwort' /></td>";
|
||||
echo '</tr>';
|
||||
echo '<tr>';
|
||||
echo '<td>Text:</td><td>\n<textarea name="text" id="text" rows="5" cols="30" oninput="preview()">'.$vorschlag->text."</textarea>\n</td>";
|
||||
echo '<td>Text:</td><td><textarea name="text" id="text" rows="20" cols="40" oninput="preview()"><![CDATA['.$vorschlag->text."]]></textarea>\n</td>";
|
||||
echo '</tr><tr valign="top">';
|
||||
//Upload Feld fuer Bild
|
||||
echo "<td>Bild:</td><td><input type='file' name='bild' /></td>";
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+89
-82
@@ -19,6 +19,9 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Content-type: application/xhtml+xml");
|
||||
|
||||
// Formular zum beantworten der Fragen
|
||||
require_once('../config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
@@ -36,65 +39,69 @@ if(!$conn = pg_pconnect(CONN_STRING))
|
||||
|
||||
if(isset($_GET['gebiet_id']))
|
||||
$gebiet_id = $_GET['gebiet_id'];
|
||||
else
|
||||
else
|
||||
die('Gebiet muss uebergeben werden');
|
||||
|
||||
if(isset($_GET['frage_id']))
|
||||
$frage_id = $_GET['frage_id'];
|
||||
else
|
||||
else
|
||||
$frage_id = '';
|
||||
|
||||
$MAX_VORSCHLAEGE_PRO_ZEILE=4;
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
function count_down(zeit)
|
||||
{
|
||||
if(zeit<=0)
|
||||
{
|
||||
document.location.href='gebietfertig.php';
|
||||
//alert('finish');
|
||||
}
|
||||
else
|
||||
{
|
||||
zeit = zeit-1;
|
||||
minuten = parseInt((zeit/60));
|
||||
if(minuten<10)
|
||||
minuten = '0'+minuten;
|
||||
sekunden = zeit-minuten*60;
|
||||
if(sekunden<10)
|
||||
sekunden = '0'+sekunden;
|
||||
document.getElementById('counter').innerHTML = minuten+':'+sekunden;
|
||||
window.setTimeout('count_down('+zeit+')',1000);
|
||||
}
|
||||
}
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?>
|
||||
|
||||
function checkantwort()
|
||||
{
|
||||
val = document.getElementById('antwort').value;
|
||||
if(val.length>1)
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css" />
|
||||
<script language="Javascript" type="text/javascript">
|
||||
//<![CDATA[
|
||||
function count_down(zeit)
|
||||
{
|
||||
alert('Antwort darf nur 1 Buchstabe sein');
|
||||
return false;
|
||||
if(zeit<=0)
|
||||
{
|
||||
document.location.href='gebietfertig.php';
|
||||
//alert('finish');
|
||||
}
|
||||
else
|
||||
{
|
||||
zeit = zeit-1;
|
||||
minuten = parseInt((zeit/60));
|
||||
if(minuten<10)
|
||||
minuten = '0'+minuten;
|
||||
sekunden = zeit-minuten*60;
|
||||
if(sekunden<10)
|
||||
sekunden = '0'+sekunden;
|
||||
document.getElementById('counter').innerHTML = minuten+':'+sekunden;
|
||||
window.setTimeout('count_down('+zeit+')',1000);
|
||||
}
|
||||
}
|
||||
if(val.length==0)
|
||||
return true;
|
||||
if(val.toUpperCase()<'A' || val.toUpperCase>'Z')
|
||||
|
||||
function checkantwort()
|
||||
{
|
||||
alert('Antwort darf nur ein Buchstabe von A-Z sein');
|
||||
return false;
|
||||
val = document.getElementById('antwort').value;
|
||||
if(val.length>1)
|
||||
{
|
||||
alert('Antwort darf nur 1 Buchstabe sein');
|
||||
return false;
|
||||
}
|
||||
if(val.length==0)
|
||||
return true;
|
||||
if(val.toUpperCase()<'A' || val.toUpperCase>'Z')
|
||||
{
|
||||
alert('Antwort darf nur ein Buchstabe von A-Z sein');
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -111,12 +118,12 @@ if($result = pg_query($conn, $qry))
|
||||
{
|
||||
$gruppe = $row->gruppe_kurzbz;
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Pruefling wurde nicht gefunden');
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Pruefling wurde nicht gefunden');
|
||||
|
||||
|
||||
//Start des Pruefungsvorganges
|
||||
if(isset($_GET['start']))
|
||||
{
|
||||
@@ -141,22 +148,22 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
{
|
||||
if(!$antwort->load($_POST['antwort_id']))
|
||||
die('Antwort konnte nicht geladen werden');
|
||||
else
|
||||
else
|
||||
{
|
||||
$antwort->new = false;
|
||||
$antwort->antwort_id = $_POST['antwort_id'];
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
$antwort->new = true;
|
||||
|
||||
|
||||
$antwort->frage_id = $_GET['frage_id'];
|
||||
$antwort->pruefling_id = $_SESSION['pruefling_id'];
|
||||
$antwort->antwort = trim(strtoupper($_POST['antwort']));
|
||||
$antwort->endtime = date('Y-m-d H:i:s');
|
||||
if(!$antwort->save())
|
||||
die('Fehler beim Speichern');
|
||||
else
|
||||
else
|
||||
{
|
||||
$frage = new frage($conn);
|
||||
$frage_id = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id);
|
||||
@@ -175,16 +182,16 @@ if($result = pg_query($conn, $qry))
|
||||
//Hat bereits Fragen beantwortet -> Frage anzeigen
|
||||
$demo=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
//Demo anzeigen
|
||||
$demo=true;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
die('error');
|
||||
}
|
||||
else
|
||||
else
|
||||
die('error');
|
||||
|
||||
//Zeit des Gebietes holen
|
||||
@@ -198,12 +205,12 @@ if(!$row = pg_fetch_object($result))
|
||||
list($stunde, $minute, $sekunde) = split(':',$row->zeit);
|
||||
|
||||
if($demo)
|
||||
{
|
||||
{
|
||||
//Wenn es sich um ein Demobeispiel handelt, dann wird die Maximale Gesamtzeit angezeigt
|
||||
echo $minute.':'.$sekunde.' Minuten ';
|
||||
echo "<input type=\"button\" value=\"Start\" onclick=\"document.location.href='$PHP_SELF?gebiet_id=$gebiet_id&start=true'\">";
|
||||
echo "<input type=\"button\" value=\"Start\" onclick=\"document.location.href='$PHP_SELF?gebiet_id=$gebiet_id&start=true'\" />";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//Wenn es sich um eine Testfrage handelt, dann wird die verbleibende Zeit angezeigt
|
||||
$qry = "SELECT '$row->zeit'-(now()-min(begintime)) as time FROM testtool.tbl_antwort JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'";
|
||||
@@ -219,7 +226,7 @@ else
|
||||
$zeit = $zeit*-1;
|
||||
}
|
||||
|
||||
echo '<span id="counter"></span> Minuten';
|
||||
echo '<span id="counter"></span> Minuten';
|
||||
echo "<script>count_down($zeit)</script>";
|
||||
}
|
||||
echo '</td></tr>';
|
||||
@@ -232,7 +239,7 @@ if($frage_id!='') //Frage wurde uebergeben
|
||||
{
|
||||
$frage->load($frage_id);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if($demo) //Demofrage wird angezeigt
|
||||
{
|
||||
@@ -254,7 +261,7 @@ else
|
||||
if($frage->frage_id!='')
|
||||
{
|
||||
$frage_id = $frage->frage_id;
|
||||
|
||||
|
||||
if(!$demo)
|
||||
{
|
||||
//Nachschauen ob diese Frage bereits angesehen wurde
|
||||
@@ -271,12 +278,12 @@ if($frage->frage_id!='')
|
||||
echo 'Fehler beim Speichern der Erstansicht';
|
||||
}
|
||||
}
|
||||
echo '<br><br><center>';
|
||||
echo '<br/><br/><center>';
|
||||
//Bild und Text der Frage anzeigen
|
||||
if($frage->bild!='')
|
||||
echo "<img src='bild.php?src=frage&frage_id=$frage->frage_id'><br><br>\n";
|
||||
echo "$frage->text<br><br>\n";
|
||||
|
||||
echo "<img src='bild.php?src=frage&frage_id=$frage->frage_id' /><br/><br/>\n";
|
||||
echo "$frage->text<br/><br/>\n";
|
||||
|
||||
//Vorschlaege laden
|
||||
$vs = new vorschlag($conn);
|
||||
$vs->getVorschlag($frage->frage_id);
|
||||
@@ -286,20 +293,20 @@ if($frage->frage_id!='')
|
||||
//Vorschlaege anzeigen
|
||||
foreach ($vs->result as $vorschlag)
|
||||
{
|
||||
echo "\n<td align=center>";
|
||||
echo "$vorschlag->antwort<br>";
|
||||
echo "\n<td align='center'>";
|
||||
echo "$vorschlag->antwort<br/>";
|
||||
if($vorschlag->bild!='')
|
||||
echo "<img src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id'><br>";
|
||||
echo "<img src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id' /><br/>";
|
||||
if($vorschlag->text!='')
|
||||
echo $vorschlag->text.'<br>';
|
||||
echo $vorschlag->text.'<br/>';
|
||||
echo "</td>";
|
||||
$anzahl++;
|
||||
|
||||
|
||||
if($anzahl>$MAX_VORSCHLAEGE_PRO_ZEILE)
|
||||
{
|
||||
echo '</tr><tr>';
|
||||
$anzahl=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '</tr></table>';
|
||||
//Antwort laden falls bereits vorhanden
|
||||
@@ -307,12 +314,12 @@ if($frage->frage_id!='')
|
||||
$antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id);
|
||||
if(!$demo)
|
||||
{
|
||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"antwort_id\" value=\"$antwort->antwort_id\">";
|
||||
echo "Antwort: <input type=\"text\" size=\"1\" id=\"antwort\" name=\"antwort\" value=\"".htmlentities(addslashes($antwort->antwort))."\"> <input type=\"submit\" name=\"submitantwort\" onclick=\"return checkantwort()\" value=\"Speichern\">";
|
||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"antwort_id\" value=\"$antwort->antwort_id\" />";
|
||||
echo "Antwort: <input type=\"text\" size=\"1\" id=\"antwort\" name=\"antwort\" value=\"".htmlentities(addslashes($antwort->antwort))."\" /> <input type=\"submit\" name=\"submitantwort\" onclick=\"return checkantwort()\" value=\"Speichern\" />";
|
||||
echo "</form>";
|
||||
}
|
||||
echo '<br><br><br>';
|
||||
echo '<br/><br/><br/>';
|
||||
//Fusszeile mit Weiter Button und Sprung direkt zu einer Frage
|
||||
if(!$demo)
|
||||
{
|
||||
@@ -325,29 +332,29 @@ if($frage->frage_id!='')
|
||||
if($row->frage_id==$frage_id)
|
||||
echo " <u>$row->nummer</u> -";
|
||||
else
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$row->frage_id' class='Item'>$row->nummer</a> -";
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$row->frage_id' class='Item'>$row->nummer</a> -";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Naechste Frage holen und Weiter-Button anzeigen
|
||||
$frage = new frage($conn);
|
||||
$nextfrage = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id, $demo);
|
||||
if($nextfrage)
|
||||
{
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$nextfrage' class='Item'>Weiter >></a>";
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$nextfrage' class='Item'>Weiter >></a>";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//Wenns der letzte Eintrag ist, wieder zum ersten springen
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id' class='Item'>Weiter >></a>";
|
||||
}
|
||||
|
||||
|
||||
echo '</center>';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Wenn kein Demo vorhanden ist
|
||||
echo "<br><br><br><center><b>Start drücken um zu beginnen</b></center>";
|
||||
echo "<br/><br/><br/><center><b>Start drücken um zu beginnen</b></center>";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fns="http://www.w3.org/2002/Math/preference" xmlns:mml="http://www.w3.org/1998/Math/MathML" extension-element-prefixes="msxsl fns">
|
||||
|
||||
<!--
|
||||
Copyright David Carlisle 2001, 2002.
|
||||
|
||||
Use and distribution of this code are permitted under the terms of the <a
|
||||
href="http://www.w3.org/Consortium/Legal/copyright-software-19980720"
|
||||
>W3C Software Notice and License</a>.
|
||||
-->
|
||||
|
||||
<xsl:include href="ctop.xsl"/>
|
||||
<xsl:include href="pmathml.xsl"/>
|
||||
|
||||
<xsl:output/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:choose>
|
||||
<xsl:when test="system-property('xsl:vendor')='Transformiix'">
|
||||
<xsl:apply-templates mode="c2p"/>
|
||||
</xsl:when>
|
||||
<!-- not working, currently
|
||||
<xsl:when test="system-property('xsl:vendor')='Microsoft' and /*/@fns:renderer='css'">
|
||||
<xsl:variable name="pmml">
|
||||
<xsl:apply-templates mode="c2p"/>
|
||||
</xsl:variable>
|
||||
<xsl:apply-templates select="msxsl:node-set($pmml)/node()"/>
|
||||
</xsl:when>
|
||||
-->
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,597 @@
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fns="http://www.w3.org/2002/Math/preference" xmlns:doc="http://www.dcarlisle.demon.co.uk/xsldoc" xmlns:ie5="http://www.w3.org/TR/WD-xsl" exclude-result-prefixes="h ie5 fns msxsl fns doc" extension-element-prefixes="msxsl fns doc">
|
||||
|
||||
<!--
|
||||
$Id: pmathml.xsl,v 1.8 2003/06/23 14:46:44 davidc Exp $
|
||||
|
||||
Copyright David Carlisle 2001, 2002.
|
||||
|
||||
Use and distribution of this code are permitted under the terms of the <a
|
||||
href="http://www.w3.org/Consortium/Legal/copyright-software-19980720"
|
||||
>W3C Software Notice and License</a>.
|
||||
-->
|
||||
|
||||
<!-- MathPlayer mpdialog code for contributed by
|
||||
Jack Dignan and Robert Miner, both of Design Science.
|
||||
-->
|
||||
|
||||
<xsl:output method="xml" omit-xml-declaration="yes"/>
|
||||
|
||||
<ie5:if doc:id="iehack" test=".">
|
||||
<ie5:eval no-entities="t">'<!--'</ie5:eval>
|
||||
</ie5:if>
|
||||
|
||||
|
||||
<fns:x name="mathplayer" o="MathPlayer.Factory.1">
|
||||
<object id="mmlFactory" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
|
||||
</object>
|
||||
<?import namespace="mml" implementation="#mmlFactory"?>
|
||||
</fns:x>
|
||||
|
||||
<fns:x name="techexplorer" o="techexplorer.AxTchExpCtrl.1">
|
||||
<object id="mmlFactory" classid="clsid:0E76D59A-C088-11D4-9920-002035EFB1A4">
|
||||
</object>
|
||||
<?import namespace="mml" implementation="#mmlFactory"?>
|
||||
</fns:x>
|
||||
|
||||
|
||||
<!-- SCRIPT not script due to weird mozilla bug
|
||||
http://bugzilla.mozilla.org/show_bug.cgi?id=158457
|
||||
-->
|
||||
|
||||
<fns:x name="css" o="Microsoft.FreeThreadedXMLDOM">
|
||||
<SCRIPT for="window" event="onload">
|
||||
var xsl = new ActiveXObject("Microsoft.FreeThreadedXMLDOM");
|
||||
xsl.async = false;
|
||||
xsl.validateOnParse = false;
|
||||
xsl.load("pmathmlcss.xsl");
|
||||
var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate.3.0");
|
||||
xslTemplate.stylesheet=xsl.documentElement;
|
||||
var xslProc = xslTemplate.createProcessor();
|
||||
xslProc.input = document.XMLDocument;
|
||||
xslProc.transform();
|
||||
var str = xslProc.output;
|
||||
<!-- work around bug in IE6 under Win XP, RM 6/5/2002 -->
|
||||
var repl = "replace";
|
||||
if (window.navigator.appVersion.match(/Windows NT 5.1/)) { repl = ""; }
|
||||
var newDoc = document.open("text/html", repl);
|
||||
newDoc.write(str);
|
||||
</SCRIPT>
|
||||
</fns:x>
|
||||
|
||||
|
||||
<h:p>
|
||||
in mpdialog mode, we just write out some JavaScript to display
|
||||
dialog to the reader asking whether they want to install MathPlayer
|
||||
Depending on the response we get, we then instantiate an XSL processor
|
||||
and reprocess the doc, passing $secondpass according to the
|
||||
reader response.
|
||||
</h:p>
|
||||
<h:p>Using d-o-e is fairly horrible, but this code is only for IE
|
||||
anyway, and we need to force HTML semantics in this case.</h:p>
|
||||
|
||||
<xsl:variable name="mpdialog">
|
||||
var cookieName = "MathPlayerInstall=";
|
||||
function MPInstall(){
|
||||
var showDialog=true;
|
||||
var c = document.cookie;
|
||||
var i = c.indexOf(cookieName);
|
||||
if (i >= 0) {
|
||||
if ( c.substr(i + cookieName.length, 1) >= 2) { showDialog=false; }
|
||||
}
|
||||
if (showDialog) {
|
||||
MPDialog();
|
||||
c = document.cookie;
|
||||
i = c.indexOf(cookieName);
|
||||
}
|
||||
if (i >= 0) return c.substr(i + cookieName.length, 1);
|
||||
else return null;
|
||||
}
|
||||
|
||||
function MPDialog() {
|
||||
var vArgs="";
|
||||
var sFeatures="dialogWidth:410px;dialogHeight:190px;help:off;status:no";
|
||||
var text = "";
|
||||
text += "javascript:document.write('"
|
||||
text += '<script>'
|
||||
text += 'function fnClose(v) { '
|
||||
text += 'var exp = new Date();'
|
||||
text += 'var thirtyDays = exp.getTime() + (30 * 24 * 60 * 60 * 1000);'
|
||||
text += 'exp.setTime(thirtyDays);'
|
||||
text += 'var cookieProps = ";expires=" + exp.toGMTString();'
|
||||
text += 'if (document.forms[0].dontask.checked) v+=2;'
|
||||
text += 'document.cookie="' + cookieName + '"+v+cookieProps;'
|
||||
text += 'window.close();'
|
||||
text += '}'
|
||||
text += '</' + 'script>'
|
||||
text += '<head><title>Install MathPlayer?</title></head>'
|
||||
text += '<body bgcolor="#D4D0C8"><form>'
|
||||
text += '<table cellpadding=10 style="font-family:Arial;font-size:10pt" border=0 width=100%>'
|
||||
text += '<tr><td align=left>This page requires Design Science\\\'s MathPlayer&trade;.<br>'
|
||||
text += 'Do you want to download and install MathPlayer?</td></tr>';
|
||||
text += '<tr><td align=center><input type="checkbox" name="dontask">'
|
||||
text += 'Don\\\'t ask me again</td></tr>'
|
||||
text += '<tr><td align=center><input id=yes type="button" value=" Yes "'
|
||||
text += ' onClick="fnClose(1)">&nbsp;&nbsp;&nbsp;'
|
||||
text += '<input type="button" value=" No " onClick="fnClose(0)"></td></tr>'
|
||||
text += '</table></form>';
|
||||
text += '</body>'
|
||||
text += "')"
|
||||
window.showModalDialog( text , vArgs, sFeatures );
|
||||
}
|
||||
|
||||
function WaitDialog() {
|
||||
var vArgs="";
|
||||
var sFeatures="dialogWidth:510px;dialogHeight:150px;help:off;status:no";
|
||||
var text = "";
|
||||
text += "javascript:document.write('"
|
||||
text += '<script>'
|
||||
text += 'window.onload=fnLoad;'
|
||||
text += 'function fnLoad() {document.forms[0].yes.focus();}'
|
||||
text += 'function fnClose(v) { '
|
||||
text += 'window.returnValue=v;'
|
||||
text += 'window.close();'
|
||||
text += '}'
|
||||
text += '</' + 'script>'
|
||||
text += '<head><title>Wait for Installation?</title></head>'
|
||||
text += '<body bgcolor="#D4D0C8" onload="fnLoad()"><form><'
|
||||
text += 'table cellpadding=10 style="font-family:Arial;font-size:10pt" border=0 width=100%>'
|
||||
text += '<tr><td align=left>Click OK once MathPlayer is installed '
|
||||
text += 'to refresh the page.<br>'
|
||||
text += 'Click Cancel to view the page immediately without MathPlayer.</td></tr>';
|
||||
text += '<tr><td align=center><input id=yes type="button" '
|
||||
text += 'value=" OK " onClick="fnClose(1)">&nbsp;&nbsp;&nbsp;'
|
||||
text += '<input type="button" value="Cancel" onClick="fnClose(0)"></td></tr>'
|
||||
text += '</table></form>';
|
||||
text += '</body>'
|
||||
text += "')"
|
||||
return window.showModalDialog( text , vArgs, sFeatures );
|
||||
}
|
||||
|
||||
var result = MPInstall();
|
||||
|
||||
var action = "fallthrough";
|
||||
if (result == 1 || result == 3) {
|
||||
window.open("http://www.dessci.com/webmath/mathplayer");
|
||||
var wait = WaitDialog();
|
||||
if ( wait == 1) {
|
||||
action = "install";
|
||||
document.location.reload();
|
||||
|
||||
}
|
||||
}
|
||||
if (action == "fallthrough") {
|
||||
var xsl = new ActiveXObject("Microsoft.FreeThreadedXMLDOM");
|
||||
xsl.async = false;
|
||||
xsl.validateOnParse = false;
|
||||
xsl.load("pmathmlcss.xsl");
|
||||
var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate.3.0");
|
||||
xslTemplate.stylesheet=xsl.documentElement;
|
||||
var xslProc = xslTemplate.createProcessor();
|
||||
xslProc.input = document.XMLDocument;
|
||||
|
||||
xslProc.transform();
|
||||
var str = xslProc.output;
|
||||
<!-- work around bug in IE6 under Win XP, RM 6/5/2002 -->
|
||||
var repl = "replace";
|
||||
if (window.navigator.appVersion.match(/Windows NT 5.1/)) { repl = ""; }
|
||||
var newDoc = document.open("text/html", repl);
|
||||
newDoc.write(str);
|
||||
document.close();
|
||||
}
|
||||
</xsl:variable>
|
||||
|
||||
<fns:x name="mathplayer-dl">mathplayer-dl</fns:x>
|
||||
|
||||
<fns:x name="techexplorer-plugin">techexplorer-plugin</fns:x>
|
||||
|
||||
<xsl:variable name="root" select="/"/>
|
||||
|
||||
|
||||
|
||||
<xsl:param name="activex">
|
||||
<xsl:choose>
|
||||
<xsl:when test="/*/@fns:renderer='techexplorer-plugin'">techexplorer-plugin</xsl:when>
|
||||
<xsl:when test="system-property('xsl:vendor')!='Microsoft'"/>
|
||||
<xsl:otherwise>
|
||||
<xsl:variable name="docpref" select="document('')/*/fns:x[@name=$root/*/@fns:renderer][1]"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$docpref='mathplayer-dl'">mathplayer-dl</xsl:when>
|
||||
<xsl:when test="$docpref and fns:isinstalled(string($docpref/@o))='true'">
|
||||
<xsl:copy-of select="$docpref/node()"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:copy-of select="(document('')/*/fns:x[fns:isinstalled(string(@o))='true'])[1]/node()"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:param>
|
||||
|
||||
<h:div doc:ref="iehack">
|
||||
<h:h3>IE5 hacks</h:h3>
|
||||
<h:p>This code will be ignored by an XSLT engine as a top level
|
||||
element in a foreign namespace. It will be executed by an IE5XSL
|
||||
engine and insert <!-- into the output stream, ie the start of a
|
||||
comment. This will comment out all the XSLT code which will be copied
|
||||
to the output. A similar clause below will close this comment, it is
|
||||
then followed by the IE5XSL templates to be executed.</h:p>
|
||||
<h:p>This trick is due to Jonathan Marsh of Microsoft, and used in
|
||||
<h:a href="http://www.w3.org/TR/2001/WD-query-datamodel-20010607/xmlspec-ie-dm.xsl">the stylesheet for
|
||||
the XPath 2 data model draft</h:a>.</h:p>
|
||||
</h:div>
|
||||
|
||||
<h:h2>XSLT stylesheet</h:h2>
|
||||
<h:h3>MSXSL script block</h:h3>
|
||||
|
||||
<h:p>The following script block implements an extension function that
|
||||
tests whether a specified ActiveX component is known to the client.
|
||||
This is used below to test for the existence of MathML rendering
|
||||
components.</h:p>
|
||||
<msxsl:script language="JScript" implements-prefix="fns">
|
||||
function isinstalled(ax)
|
||||
{
|
||||
try {
|
||||
var ActiveX = new ActiveXObject(ax);
|
||||
return "true";
|
||||
} catch (e) {
|
||||
return "false";
|
||||
}
|
||||
}
|
||||
</msxsl:script>
|
||||
|
||||
<h:p>The main bulk of this stylesheet is an identity transformation so...</h:p>
|
||||
<xsl:template match="*|comment()">
|
||||
<xsl:copy>
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
<h:p>XHTML elements are copied sans prefix (XHTML is default namespace
|
||||
here, so these elements will still be in XHTML namespace</h:p>
|
||||
<xsl:template match="h:*">
|
||||
<xsl:element name="{local-name(.)}">
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<h:p>IE's treatment of XHTML as HTML needs a little help here...</h:p>
|
||||
<xsl:template match="h:br|h:hr">
|
||||
<xsl:choose>
|
||||
<xsl:when test="system-property('xsl:vendor')='Microsoft'">
|
||||
<xsl:value-of disable-output-escaping="yes" select="concat('<',local-name(.))"/>
|
||||
<xsl:apply-templates mode="verb" select="@*"/>
|
||||
<xsl:text disable-output-escaping="yes">></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:element name="{local-name(.)}">
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<h:p>This just ensures the mathml prefix declaration isn't copied from
|
||||
the source at this stage, so that the system will use the mml prefix
|
||||
coming from this stylesheet</h:p>
|
||||
<xsl:template match="h:html|html">
|
||||
<html>
|
||||
<xsl:copy-of select="@*[not(namespace-uri(.)='http://www.w3.org/2002/Math/preference')]"/>
|
||||
<xsl:apply-templates/>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<h:p>We modify the head element to add code to specify a Microsoft
|
||||
"Behaviour" if the behaviour component is known to the system.</h:p>
|
||||
<h:span doc:ref="mp">Test for MathPlayer (Design Science)</h:span>
|
||||
<h:span doc:ref="te">Test for Techexplorer (IBM)</h:span>
|
||||
<h:span doc:ref="ms"><h:div>Test for Microsoft. In this case we just
|
||||
output a small HTML file that executes a script that will re-process
|
||||
the source docuument with a different stylesheet. Doing things this
|
||||
way avoids the need to xsl:import the second stylesheet, which would
|
||||
very much increase the processing overhead of running this
|
||||
stylesheet.</h:div></h:span>
|
||||
<h:span doc:ref="other">Further tests (eg for netscape/mozilla) could
|
||||
be added here if necessary</h:span>
|
||||
<xsl:template match="h:head|head">
|
||||
<head>
|
||||
|
||||
<!-- new if for IE frames bug -->
|
||||
<xsl:if test="system-property('xsl:vendor')='Microsoft'">
|
||||
<xsl:if test="name(msxsl:node-set($activex)/*)=''">
|
||||
<object id="mmlFactory" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
|
||||
</object>
|
||||
<xsl:processing-instruction name="import">
|
||||
namespace="mml" implementation="#mmlFactory"
|
||||
</xsl:processing-instruction>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when doc:id="mp" test="$activex='mathplayer-dl'">
|
||||
<xsl:if test="fns:isinstalled('MathPlayer.Factory.1')='false'">
|
||||
<SCRIPT for="window" event="onload">
|
||||
<xsl:value-of select="$mpdialog" disable-output-escaping="yes"/>
|
||||
</SCRIPT>
|
||||
</xsl:if>
|
||||
<xsl:copy-of select="document('')/*/fns:x[@name='mathplayer']"/>
|
||||
</xsl:when>
|
||||
<xsl:when doc:id="mp" test="not($activex='techexplorer-plugin') and system-property('xsl:vendor')='Microsoft'">
|
||||
<xsl:copy-of select="$activex"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise doc:id="other">
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:apply-templates/>
|
||||
</head>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="mml:math" priority="22">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$activex='techexplorer-plugin'">
|
||||
<embed width="300" height="75" type="text/mathml">
|
||||
<xsl:attribute name="mmldata">
|
||||
<xsl:apply-templates mode="verb" select="."/>
|
||||
</xsl:attribute>
|
||||
</embed>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:element name="mml:{local-name(.)}">
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- squash annotation elements -->
|
||||
|
||||
|
||||
|
||||
<h:p>Somewhat bizarrely in an otherwise namespace aware system,
|
||||
Microsoft behaviours are defined to trigger off the
|
||||
<h:em>prefix</h:em> not the <h:em>Namespace</h:em>. In the code above
|
||||
we associated a MathML rendering behaviour (if one was found) with the
|
||||
prefix <h:code>mml:</h:code> so here we ensure that this is the prefix
|
||||
that actually gets used in the output.</h:p>
|
||||
<xsl:template match="mml:*">
|
||||
<xsl:element name="mml:{local-name(.)}">
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<h:p>Copy semantics element through in IE (so mathplayer gets to see
|
||||
mathplayer annotations, otherwise use first child or a presentation annotation.</h:p>
|
||||
<xsl:template match="mml:semantics">
|
||||
<xsl:choose>
|
||||
<xsl:when test="system-property('xsl:vendor')='Microsoft'">
|
||||
<xsl:element name="mml:{local-name(.)}">
|
||||
<xsl:copy-of select="@*"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:when test="mml:annotation-xml[@encoding='MathML-Presentation']">
|
||||
<xsl:apply-templates select="mml:annotation-xml[@encoding='MathML-Presentation']/node()"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="*[1]"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- a version of my old verb.xsl -->
|
||||
|
||||
<!-- non empty elements and other nodes. -->
|
||||
<xsl:template mode="verb" match="*[*]|*[text()]|*[comment()]|*[processing-instruction()]">
|
||||
<xsl:value-of select="concat('<',local-name(.))"/>
|
||||
<xsl:apply-templates mode="verb" select="@*"/>
|
||||
<xsl:text>></xsl:text>
|
||||
<xsl:apply-templates mode="verb"/>
|
||||
<xsl:value-of select="concat('</',local-name(.),'>')"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- empty elements -->
|
||||
<xsl:template mode="verb" match="*">
|
||||
<xsl:value-of select="concat('<',local-name(.))"/>
|
||||
<xsl:apply-templates mode="verb" select="@*"/>
|
||||
<xsl:text>/></xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- attributes
|
||||
Output always surrounds attribute value by "
|
||||
so we need to make sure no literal " appear in the value -->
|
||||
<xsl:template mode="verb" match="@*">
|
||||
<xsl:value-of select="concat(' ',local-name(.),'=')"/>
|
||||
<xsl:text>"</xsl:text>
|
||||
<xsl:call-template name="string-replace">
|
||||
<xsl:with-param name="from" select="'"'"/>
|
||||
<xsl:with-param name="to" select="'&quot;'"/>
|
||||
<xsl:with-param name="string" select="."/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>"</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- pis -->
|
||||
<xsl:template mode="verb" match="processing-instruction()"/>
|
||||
|
||||
<!-- only works if parser passes on comment nodes -->
|
||||
<xsl:template mode="verb" match="comment()"/>
|
||||
|
||||
|
||||
<!-- text elements
|
||||
need to replace & and < by entity references-->
|
||||
<xsl:template mode="verb" match="text()">
|
||||
<a name="{generate-id(.)}"/>
|
||||
<xsl:call-template name="string-replace">
|
||||
<xsl:with-param name="to" select="'&gt;'"/>
|
||||
<xsl:with-param name="from" select="'>'"/>
|
||||
<xsl:with-param name="string">
|
||||
<xsl:call-template name="string-replace">
|
||||
<xsl:with-param name="to" select="'&lt;'"/>
|
||||
<xsl:with-param name="from" select="'<'"/>
|
||||
<xsl:with-param name="string">
|
||||
<xsl:call-template name="string-replace">
|
||||
<xsl:with-param name="to" select="'&amp;'"/>
|
||||
<xsl:with-param name="from" select="'&'"/>
|
||||
<xsl:with-param name="string" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- end verb mode -->
|
||||
|
||||
<!-- replace all occurences of the character(s) `from'
|
||||
by the string `to' in the string `string'.-->
|
||||
<xsl:template name="string-replace">
|
||||
<xsl:param name="string"/>
|
||||
<xsl:param name="from"/>
|
||||
<xsl:param name="to"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($string,$from)">
|
||||
<xsl:value-of select="substring-before($string,$from)"/>
|
||||
<xsl:value-of select="$to"/>
|
||||
<xsl:call-template name="string-replace">
|
||||
<xsl:with-param name="string" select="substring-after($string,$from)"/>
|
||||
<xsl:with-param name="from" select="$from"/>
|
||||
<xsl:with-param name="to" select="$to"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$string"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- end of verb.xsl -->
|
||||
|
||||
|
||||
|
||||
<h:h2>IE5XSL stylesheet</h:h2>
|
||||
<h:p>In a rare fit of sympathy for users of
|
||||
<h:em>the-language-known-as-XSL-in-IE5</h:em> this file incorporates a
|
||||
version of the above code designed to work in the Microsoft dialect.
|
||||
This is needed otherwise users of a MathML rendering behaviour would
|
||||
have to make a choice whether they wanted to use this stylesheet
|
||||
(keeping their source documents conforming XHTML+MathML) or to use
|
||||
the explicit Microsoft Object code, which is less portable, but would
|
||||
work in at least IE5.5.</h:p>
|
||||
|
||||
<h:p>This entire section of code, down to the end of the stylesheet is
|
||||
contained within this ie5:if. Thus XSLT sees it as a top level element
|
||||
from a foreign namespace and silently ignores it. IE5XSL sees it as
|
||||
"if true" and so executes the code.</h:p>
|
||||
|
||||
|
||||
<h:p doc:ref="closecomment">First close the comment started at the beginning. This ensures
|
||||
that the bulk of the XSLT code, while being copied to the result tree
|
||||
by the IE5XSL engine, will not be rendered in the browser.</h:p>
|
||||
|
||||
<h:span doc:ref="eval">Lacking attribute value templates in
|
||||
xsl:element, and the local-name() function, we resort to constructing
|
||||
the start and end tags in strings in javascript, then using
|
||||
no-entities attribute which is the IE5XSL equivalent of disable-output-encoding</h:span>
|
||||
<ie5:if test=".">
|
||||
|
||||
<ie5:eval doc:id="closecomment" no-entities="t">'-->'</ie5:eval>
|
||||
|
||||
<ie5:apply-templates select=".">
|
||||
|
||||
|
||||
<ie5:script>
|
||||
function mpisinstalled()
|
||||
{
|
||||
try {
|
||||
var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
|
||||
return "true";
|
||||
} catch (e) {
|
||||
return "false";
|
||||
}
|
||||
}
|
||||
</ie5:script>
|
||||
|
||||
<ie5:template match="/">
|
||||
<ie5:apply-templates/>
|
||||
</ie5:template>
|
||||
|
||||
<ie5:template match="head|h:head"/>
|
||||
|
||||
<ie5:template match="text()">
|
||||
<ie5:value-of select="."/>
|
||||
</ie5:template>
|
||||
|
||||
<ie5:template match="*|@*">
|
||||
<ie5:copy>
|
||||
<ie5:apply-templates select="*|text()|@*"/>
|
||||
</ie5:copy>
|
||||
</ie5:template>
|
||||
|
||||
|
||||
<ie5:template match="mml:*">
|
||||
<ie5:eval no-entities="t" doc:id="eval">'<mml:' + this.nodeName.substring(this.nodeName.indexOf(":")+1)</ie5:eval>
|
||||
<ie5:for-each select="@*">
|
||||
<ie5:eval no-entities="t">' ' + this.nodeName</ie5:eval>="<ie5:value-of select="."/>"
|
||||
</ie5:for-each>
|
||||
<ie5:eval no-entities="t">'>'</ie5:eval>
|
||||
<ie5:apply-templates select="*|text()"/>
|
||||
<ie5:eval no-entities="t">'</mml:' + this.nodeName.substring(this.nodeName.indexOf(":")+1) + '>'</ie5:eval>
|
||||
</ie5:template>
|
||||
|
||||
|
||||
<ie5:template match="mml:math">
|
||||
<ie5:if expr="mpisinstalled()=='false'">
|
||||
<embed width="300" height="75" type="text/mathml">
|
||||
<ie5:attribute name="mmldata">
|
||||
<ie5:eval doc:id="eval" no-entities="t">'<math>'</ie5:eval>
|
||||
<ie5:apply-templates/>
|
||||
<ie5:eval doc:id="eval" no-entities="t">'</math>'</ie5:eval>
|
||||
</ie5:attribute>
|
||||
</embed>
|
||||
</ie5:if>
|
||||
<ie5:if expr="mpisinstalled()=='true'">
|
||||
<ie5:eval doc:id="eval" no-entities="t">'<mml:' + this.nodeName.substring(this.nodeName.indexOf(":")+1)</ie5:eval>
|
||||
<ie5:for-each select="@*">
|
||||
<ie5:eval no-entities="t">' ' + this.nodeName</ie5:eval>="<ie5:value-of select="."/>"
|
||||
</ie5:for-each>
|
||||
<ie5:eval no-entities="t">'>'</ie5:eval>
|
||||
<ie5:apply-templates select="*|text()"/>
|
||||
<ie5:eval no-entities="t">'</mml:' + this.nodeName.substring(this.nodeName.indexOf(":")+1) + '>'</ie5:eval>
|
||||
</ie5:if>
|
||||
</ie5:template>
|
||||
|
||||
<ie5:template match="html|h:html">
|
||||
<html xmlns:mml="http://www.w3.org/1998/Math/MathML">
|
||||
<head>
|
||||
<ie5:if expr="mpisinstalled()=='true'">
|
||||
<object id="mmlFactory" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
|
||||
</object>
|
||||
<ie5:pi name="IMPORT">
|
||||
namespace="mml" implementation="#mmlFactory"
|
||||
</ie5:pi>
|
||||
</ie5:if>
|
||||
<ie5:apply-templates select="h:head/*|head/*"/>
|
||||
</head>
|
||||
<body>
|
||||
<ie5:apply-templates select="body|h:body"/>
|
||||
</body>
|
||||
</html>
|
||||
</ie5:template>
|
||||
|
||||
</ie5:apply-templates>
|
||||
|
||||
|
||||
</ie5:if>
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -7,7 +7,7 @@
|
||||
header("content-type text/xml");
|
||||
if(!$conn=pg_connect(CONN_STRING_FAS))
|
||||
die("Connection Problem");
|
||||
$error='<table><tr><th>Vorname</th><th>Nachname</th><th>PersNr</th><th>Fehlermeldung</th></tr>';
|
||||
$error='<table><tr><th>Vorname</th><th>Nachname</th><th>PersNr</th><th>Fehlermeldung</th></tr>';
|
||||
$funktionen='';
|
||||
$stgleitung='';
|
||||
$myausmass='<table><tr><th>Vorname</th><th>Nachname</th><th>Ausmass</th></tr>';
|
||||
@@ -17,7 +17,7 @@
|
||||
$stsemwhere = "(funktion.studiensemester_fk=$stsem1 OR funktion.studiensemester_fk=$stsem2)";
|
||||
if(isset($_GET['printerror']) && $_GET['printerror']=='false')
|
||||
$printerror=false;
|
||||
else
|
||||
else
|
||||
$printerror=true;
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
?>
|
||||
@@ -58,10 +58,10 @@
|
||||
if(!in_array($row->habilitation,array('J','j','N','n')))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Habilitation ist ungueltig</td></tr>';
|
||||
echo " <Habilitation>".$row->habilitation."</Habilitation>\n";
|
||||
|
||||
|
||||
//VERWENDUNG
|
||||
echo " <Verwendung>\n";
|
||||
|
||||
|
||||
//Beschaeftigungsart1
|
||||
$qry1 = "Select beschart1 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart1 in(1,2,3,4,5,6) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
@@ -71,9 +71,9 @@
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt1 ist ungueltig</td></tr>';
|
||||
else
|
||||
$beschart1 = $row1->beschart1;
|
||||
|
||||
|
||||
echo " <BeschaeftigungsArt1>".$beschart1."</BeschaeftigungsArt1>\n";
|
||||
|
||||
|
||||
//Beschaeftingungsart2
|
||||
$qry1 = "Select beschart2 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart2 in(1,2) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
@@ -83,9 +83,9 @@
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt2 ist ungueltig</td></tr>';
|
||||
else
|
||||
$beschart2 = $row1->beschart2;
|
||||
|
||||
|
||||
echo " <BeschaeftigungsArt2>".$beschart2."</BeschaeftigungsArt2>\n";
|
||||
|
||||
|
||||
//Beschaeftigungsausmass
|
||||
$qry1 = "Select ausmass from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and ausmass in(1,2,3,4,5) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
@@ -95,7 +95,7 @@
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Ausmass ist ungueltig</td></tr>';
|
||||
else
|
||||
$ausmass = $row1->ausmass;
|
||||
|
||||
|
||||
echo " <BeschaeftigungsAusmass>".$ausmass."</BeschaeftigungsAusmass>\n";
|
||||
$myausmass .= "<tr><td>$row->vorname</td><td>$row->familienname</td><td>$ausmass</td></tr>";
|
||||
//Verwendung
|
||||
@@ -107,9 +107,9 @@
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Verwendung ist ungueltig</td></tr>';
|
||||
else
|
||||
$verwendung = $row1->verwendung;
|
||||
|
||||
|
||||
echo " <VerwendungsCode>".$verwendung."</VerwendungsCode>\n";
|
||||
|
||||
|
||||
//Hauptberuflich / Hauptberuf
|
||||
$qry1 = "Select hauptberuflich, hauptberuf from funktion where mitarbeiter_fk = '$row->mitarbeiter_pk' and hauptberuflich!='' AND $stsemwhere";
|
||||
if(!$result1=pg_query($conn,$qry1))
|
||||
@@ -135,8 +135,8 @@
|
||||
$hauptberuf = $row1->hauptberuf;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//Studiengangsleiter Funktionen zusammenbauen
|
||||
$qry1 = "Select distinct kennzahl FROM studiengang where studiengang_pk in(Select studiengang_fk from funktion where funktion.funktion=5 AND $stsemwhere AND mitarbeiter_fk='$row->mitarbeiter_pk')";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
@@ -152,12 +152,12 @@
|
||||
|
||||
//FUNKTIONEN
|
||||
$qry1 = "SELECT studiengang_pk, kennzahl, entwicklungsteam, besonderequalifikation FROM funktion, studiengang WHERE mitarbeiter_fk='$row->mitarbeiter_pk' AND $stsemwhere AND studiengang_fk=studiengang_pk";
|
||||
|
||||
|
||||
if($result1 = pg_query($conn,$qry1))
|
||||
{
|
||||
$stg = array();
|
||||
while($row1 = pg_fetch_object($result1))
|
||||
{
|
||||
{
|
||||
//Wenn noch kein Funktionseintrag fuer diesen Studiengang vorhanden ist
|
||||
if(!in_array($row1->studiengang_pk,$stg))
|
||||
{
|
||||
@@ -167,12 +167,12 @@
|
||||
$x = sprintf("%04d",$row1->kennzahl);
|
||||
$funktion.= " <Funktion>\n";
|
||||
$funktion.= " <StgKz>".$x."</StgKz>\n";
|
||||
|
||||
|
||||
//$qry2 = "Select sum(sws) as sws from lehreinheit, mitarbeiterlehreinheit where lehreinheit_pk = lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
||||
$qry2 = "Select sum(semesterwochenstunden) as sws from lehreinheit, mitarbeiter_lehreinheit where studiengang_fk='$row1->studiengang_pk' AND lehreinheit_pk = mitarbeiter_lehreinheit.lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
||||
if(!$row2 = pg_fetch_object(pg_query($conn,$qry2)))
|
||||
$error.="<br>qry failed: $qry2";
|
||||
|
||||
|
||||
//Semesterwochenstunden
|
||||
if($row2->sws > 80 || $row2->sws < 0)
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>SWS ist ungueltig:'.$row2->sws.'</td></tr>';
|
||||
@@ -185,7 +185,7 @@
|
||||
$funktion.= " <Hauptberuflich>".$hauptberuflich."</Hauptberuflich>\n";
|
||||
//Hauptberuf
|
||||
if($hauptberuflich=='n' || $hauptberuflich=='N')
|
||||
{
|
||||
{
|
||||
if(!in_array($hauptberuf, array(0,1,2,3,4,5,6,7,8,9,10,11,12)))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.' HauptberufCode ist ungueltig</td></tr>';
|
||||
$funktion.= " <HauptberufCode>".$hauptberuf."</HauptberufCode>\n";
|
||||
@@ -193,9 +193,9 @@
|
||||
//Mitglied im Entwicklungsteam
|
||||
if(!in_array($row1->entwicklungsteam, array('J','j','n','N')))
|
||||
$funktion.= " <Entwicklungsteam>N</Entwicklungsteam>\n";
|
||||
else
|
||||
else
|
||||
$funktion.= " <Entwicklungsteam>".$row1->entwicklungsteam."</Entwicklungsteam>\n";
|
||||
|
||||
|
||||
//Besondere Qualifikation
|
||||
if($row1->entwicklungsteam=='J' || $row1->entwicklungsteam=='j')
|
||||
{
|
||||
@@ -209,9 +209,9 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
$error.="<tr><td>qry failed: $qry1</td></tr>";
|
||||
|
||||
|
||||
if($aktpers!=0) //Ende einer Person erreicht
|
||||
{
|
||||
echo $stgleitung;
|
||||
@@ -220,7 +220,7 @@
|
||||
echo " </Person>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($printerror)
|
||||
{
|
||||
echo $error.'</table>';
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -27,13 +27,13 @@
|
||||
// ****
|
||||
// * Liefert den Value aus einer XML-Datasource
|
||||
// ****
|
||||
function getTargetHelper(dsource,subj,predi)
|
||||
function getTargetHelper(dsource,subj,predi)
|
||||
{
|
||||
if (dsource.hasArcOut(subj, predi))
|
||||
if (dsource.hasArcOut(subj, predi))
|
||||
{
|
||||
var target = dsource.GetTarget(subj, predi, true);
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral ||
|
||||
target instanceof Components.interfaces.nsIRDFInt)
|
||||
target instanceof Components.interfaces.nsIRDFInt)
|
||||
{
|
||||
return target.Value;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ function gettimestamp()
|
||||
// ****
|
||||
// * Parst die Returnwerte der DBDML Scripte
|
||||
// * @param response ... RDF Response des DBDML Scripts
|
||||
// *
|
||||
// *
|
||||
// * obj.dbdml_return ... Returnwert des Scripts
|
||||
// * obj.dbdml_errormsg ... Errormessage
|
||||
// * obj.dbdml_data ... zusaetzliche Daten vom Script. zB ID des angelegten Datansatzes
|
||||
@@ -79,13 +79,13 @@ function ParseReturnValue(response)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
|
||||
retval = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
if(retval=='true')
|
||||
this.dbdml_return = true;
|
||||
|
||||
@@ -205,14 +205,14 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<spacer flex="2" />
|
||||
|
||||
|
||||
</hbox>
|
||||
|
||||
|
||||
|
||||
|
||||
<groupbox hidden="false" flex="1">
|
||||
<caption label="Funktionen" />
|
||||
<hbox flex="1" class="hbox-tree">
|
||||
<hbox flex="1" class="hbox-tree">
|
||||
<tree id="tree-liste-funktionen" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/funktionen/alle"
|
||||
@@ -237,11 +237,11 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
<treecol id="tree-liste-funktionen-col-studiensemester_id" label="StudiensemesterID" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-erhalter_id" label="Erhalter" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#erhalter_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-studiengang_bezeichnung" label="Studiengang" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#studiengang_bezeichnung" />
|
||||
@@ -289,7 +289,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
<treecol id="tree-liste-funktionen-col-ausmass" label="Ausmass" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#ausmass_bezeichnung" />
|
||||
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -299,8 +299,8 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#funktion_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#mitarbeiter_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#erhalter_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiengang_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#fachbereich_bezeichnung" />
|
||||
@@ -313,7 +313,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#hauptberuf_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#entwicklungsteam" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#besonderequalifikation_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#ausmass_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#ausmass_bezeichnung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
include("../vilesci/config.inc.php");
|
||||
|
||||
|
||||
if(isset($_GET['funktion_id']) && $_GET['funktion_id']!='' && is_numeric($_GET['funktion_id']))
|
||||
echo "var MitarbeiterDetailFunktion_id=".$_GET['funktion_id'].";";
|
||||
else
|
||||
else
|
||||
echo "var MitarbeiterDetailFunktion_id=null;";
|
||||
?>
|
||||
|
||||
@@ -23,7 +23,7 @@ function Check()
|
||||
* Setzt die Defaultwerte
|
||||
*/
|
||||
function MitarbeiterFunktionDefault()
|
||||
{
|
||||
{
|
||||
MitarbeiterDetailStudiensemester_id = document.getElementById('textbox-mitarbeiter-funktion-stsem_id').value;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-fachbereich').value = 2;
|
||||
document.getElementById('textbox-mitarbeiter-funktion-beschreibung').value = '';
|
||||
@@ -37,7 +37,7 @@ function MitarbeiterFunktionDefault()
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').disabled = true;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value = 0;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-ausmass').value = 1;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value = MitarbeiterDetailStudiensemester_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value = MitarbeiterDetailStudiensemester_id;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -49,7 +49,7 @@ function MitarbeiterFunktionBearbeiten()
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/funktionen.rdf.php?funktion_id="+MitarbeiterDetailFunktion_id+'&'+window.opener.gettimestamp();
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
@@ -60,7 +60,7 @@ function MitarbeiterFunktionBearbeiten()
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
@@ -72,23 +72,23 @@ function MitarbeiterFunktionBearbeiten()
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/funktionen/alle');
|
||||
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/funktionen/" + MitarbeiterDetailFunktion_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/funktionen/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
|
||||
//Felder befuellen
|
||||
mitarbeiter_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#mitarbeiter_id" ));
|
||||
studiensemester_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#studiensemester_id" ));
|
||||
erhalter_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#erhalter_id" ));
|
||||
@@ -104,7 +104,7 @@ function MitarbeiterFunktionBearbeiten()
|
||||
entwicklungsteam = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#entwicklungsteam" ));
|
||||
qualifikation = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#besonderequalifikation" ));
|
||||
ausmass = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#ausmass" ));
|
||||
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-funktion-mitarbeiter_id').value = mitarbeiter_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value = studiensemester_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-erhalter').value = erhalter_id;
|
||||
@@ -141,14 +141,14 @@ function MitarbeiterFunktionBearbeiten()
|
||||
}
|
||||
|
||||
function MitarbeiterFunktionValueChange()
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Funktion
|
||||
*/
|
||||
function MitarbeiterFunktionSave()
|
||||
{
|
||||
{
|
||||
//Daten aus den Feldern holen
|
||||
mitarbeiter_id = document.getElementById('textbox-mitarbeiter-funktion-mitarbeiter_id').value;
|
||||
studiensemester_id = document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value;
|
||||
@@ -165,9 +165,9 @@ function MitarbeiterFunktionSave()
|
||||
entwicklungsteam = document.getElementById('checkbox-mitarbeiter-funktion-entwicklungsteam').checked;
|
||||
qualifikation = document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value;
|
||||
ausmass = document.getElementById('menulist-mitarbeiter-funktion-ausmass').value;
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
@@ -180,7 +180,7 @@ function MitarbeiterFunktionSave()
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
|
||||
param = param + "&funktion_id="+encodeURIComponent(MitarbeiterDetailFunktion_id);
|
||||
param = param + "&mitarbeiter_id="+encodeURIComponent(mitarbeiter_id);
|
||||
param = param + "&studiensemester_id="+encodeURIComponent(studiensemester_id);
|
||||
@@ -197,7 +197,7 @@ function MitarbeiterFunktionSave()
|
||||
param = param + "&entwicklungsteam="+encodeURIComponent(entwicklungsteam);
|
||||
param = param + "&qualifikation="+encodeURIComponent(qualifikation);
|
||||
param = param + "&ausmass="+encodeURIComponent(ausmass);
|
||||
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
@@ -231,9 +231,9 @@ function MitarbeiterFunktionSave()
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
{
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText("Funktion erfolgreich gespeichert");
|
||||
window.opener.document.getElementById("tree-liste-funktionen").builder.refresh();
|
||||
@@ -264,7 +264,7 @@ function MitarbeiterFunktionHauptberuflichChange()
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").value='';
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").disabled=true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function MitarbeiterFunktionEntwicklungsteamChange()
|
||||
@@ -280,6 +280,6 @@ function MitarbeiterFunktionEntwicklungsteamChange()
|
||||
document.getElementById("menulist-mitarbeiter-funktion-qualifikation").value='';
|
||||
document.getElementById("menulist-mitarbeiter-funktion-qualifikation").disabled=false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -12,24 +12,24 @@ if(isset($_GET['mitarbeiter_id']))
|
||||
$mitarbeiter_id = $_GET['mitarbeiter_id'];
|
||||
else
|
||||
$mitarbeiter_id=null;
|
||||
|
||||
|
||||
if(isset($_GET['funktion_id']))
|
||||
$funktion_id=$_GET['funktion_id'];
|
||||
else
|
||||
else
|
||||
$funktion_id=null;
|
||||
if(isset($_GET['MitarbeiterDetailStudiensemester_id']))
|
||||
$stsem_id=$_GET['MitarbeiterDetailStudiensemester_id'];
|
||||
else
|
||||
else
|
||||
$stsem_id=null;
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-funktion-dialog" title="Email"
|
||||
<window id="mitarbeiter-funktion-dialog" title="Email"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="Check()">
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiterfunktiondialog.js.php?funktion_id=<?php echo $funktion_id;?>" />
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ else
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-funktion-erhalter" value="Erhalter:"/>
|
||||
@@ -65,7 +65,7 @@ else
|
||||
value="rdf:http://www.technikum-wien.at/studiensemester/rdf#studiensemester_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-funktion" value="Funktion:"/>
|
||||
@@ -79,7 +79,7 @@ else
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-studiengang" value="Studiengang:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-studiengang" oncommand="MitarbeiterFunktionValueChange();"
|
||||
@@ -191,7 +191,7 @@ else
|
||||
<label align="end" control="textbox-mitarbeiter-funktion-beschreibung" value="Beschreibung:"/>
|
||||
<textbox id="textbox-mitarbeiter-funktion-beschreibung" maxlength="255" oninput="MitarbeiterFunktionValueChange()"/>
|
||||
</row>
|
||||
|
||||
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
@@ -207,7 +207,7 @@ else
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterFunktionSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
+100
-100
@@ -7,18 +7,18 @@
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING_FAS))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
|
||||
if (!$conn_vilesci = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
|
||||
//Studiensemester_id holen
|
||||
$benutzer = new benutzer($conn_vilesci);
|
||||
$benutzer->loadVariables($user);
|
||||
$benutzer->loadVariables($user);
|
||||
$stsem = $benutzer->variable->semester_aktuell;
|
||||
$stsem_id = getStudiensemesterIdFromName($conn, $stsem);
|
||||
|
||||
|
||||
echo "var MitarbeiterDetailStudiensemester_id = $stsem_id;\n";
|
||||
echo "var sleep_time = ".$benutzer->variable->sleep_time.";\n"; // Zeit zwischen Refresh und Rebuild
|
||||
?>
|
||||
@@ -36,7 +36,7 @@ function TreeListeMitarbeiterAuswahl()
|
||||
{
|
||||
if(treeMitarbeiterReload)
|
||||
{
|
||||
//Falls Daten veraendert wurden fragen ob gespeichert werden soll
|
||||
//Falls Daten veraendert wurden fragen ob gespeichert werden soll
|
||||
if(treeMitarbeiterDetailChanged)
|
||||
{
|
||||
if(confirm("Wollen Sie die geaenderten Daten speichern?"))
|
||||
@@ -47,25 +47,25 @@ function TreeListeMitarbeiterAuswahl()
|
||||
}
|
||||
//Eingabefelder aktivieren
|
||||
SetMitarbeiterDetailAktiv(true);
|
||||
|
||||
var tree=document.getElementById('tree-liste-mitarbeiter');
|
||||
|
||||
var tree=document.getElementById('tree-liste-mitarbeiter');
|
||||
setStatusBarText("");
|
||||
|
||||
|
||||
//Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen
|
||||
var idx;
|
||||
if(tree.currentIndex>=0)
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
idx = 0;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
//Mitarbeiter_id holen
|
||||
var col = tree.columns ? tree.columns["tree-liste-mitarbeiter-col-mitarbeiter_id"] : "tree-liste-mitarbeiter-col-mitarbeiter_id";
|
||||
var mitarbeiter_id=tree.view.getCellText(idx,col);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// RDF mit den Mitarbeiterdaten vom Server holen
|
||||
@@ -76,7 +76,7 @@ function TreeListeMitarbeiterAuswahl()
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
|
||||
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
@@ -133,13 +133,13 @@ function TreeListeMitarbeiterAuswahl()
|
||||
staatsbuergerschaft = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#staatsbuergerschaft" ));
|
||||
geburtsnation = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#geburtsnation" ));
|
||||
deluser = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#deluser" ));
|
||||
|
||||
|
||||
//Wenn deluser = aktueller User dann darf der Datensatz geloescht werden
|
||||
if(deluser==document.getElementById('statusbarpanel-user').label)
|
||||
document.getElementById('toolbar-MitarbeiterEditor-loeschen').disabled=false;
|
||||
else
|
||||
document.getElementById('toolbar-MitarbeiterEditor-loeschen').disabled=true;
|
||||
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-detail-person_id').value=person_id;
|
||||
document.getElementById('textbox-mitarbeiter-detail-mitarbeiter_id').value=mitarbeiter_id;
|
||||
document.getElementById('textbox-mitarbeiter-detail-aktstatus').value=aktstatus;
|
||||
@@ -161,7 +161,7 @@ function TreeListeMitarbeiterAuswahl()
|
||||
document.getElementById('menulist-mitarbeiter-detail-familienstand').value = familienstand;
|
||||
document.getElementById('menulist-mitarbeiter-detail-staatsbuergerschaft').value = staatsbuergerschaft;
|
||||
document.getElementById('menulist-mitarbeiter-detail-geburtsnation').value = geburtsnation;
|
||||
|
||||
|
||||
//Mitarbeiter Daten
|
||||
personal_nr = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#personal_nr" ));
|
||||
kurzbezeichnung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#kurzbezeichnung" ));
|
||||
@@ -190,23 +190,23 @@ function TreeListeMitarbeiterAuswahl()
|
||||
//Funktionen Tree fuellen
|
||||
var treeFunktionen=document.getElementById('tree-liste-funktionen');
|
||||
var treeFunktionenURL = "<?php echo APP_ROOT; ?>rdf/fas/funktionen.rdf.php?mitarbeiter_id="+mitarbeiter_id+"&leerzeichencodierung=true&"+gettimestamp();
|
||||
|
||||
|
||||
//treeFunktionen.setAttribute('datasources',treeFunktionenURL);
|
||||
|
||||
|
||||
//Alte Datasources loeschen
|
||||
var oldDatasources = treeFunktionen.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
treeFunktionen.database.RemoveDataSource(oldDatasources.getNext());
|
||||
|
||||
|
||||
//Neue Datasource setzen
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var newDs = rdfService.GetDataSource(treeFunktionenURL);
|
||||
treeFunktionen.database.AddDataSource(newDs);
|
||||
|
||||
|
||||
//Sink Observer anhaengen
|
||||
sinkfunktion = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
sinkfunktion.addXMLSinkObserver(treefunktionenobserve);
|
||||
|
||||
sinkfunktion = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
sinkfunktion.addXMLSinkObserver(treefunktionenobserve);
|
||||
|
||||
document.getElementById('button-mitarbeiter-detail-funktionen-neu').disabled=false;
|
||||
document.getElementById('button-mitarbeiter-detail-funktionen-bearbeiten').disabled=false;
|
||||
document.getElementById('button-mitarbeiter-detail-funktionen-loeschen').disabled=false;
|
||||
@@ -244,10 +244,10 @@ function TreeListeMitarbeiterAuswahl()
|
||||
document.getElementById('button-mitarbeiter-detail-bankverbindungen-neu').disabled=false;
|
||||
document.getElementById('button-mitarbeiter-detail-bankverbindungen-bearbeiten').disabled=false;
|
||||
document.getElementById('button-mitarbeiter-detail-bankverbindungen-loeschen').disabled=false;
|
||||
|
||||
|
||||
treeMitarbeiterValueNoChange();
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
@@ -262,7 +262,7 @@ function TreeMitarbeiterSort()
|
||||
if(treeMitarbeiter.currentIndex>=0)
|
||||
i = treeMitarbeiter.currentIndex;
|
||||
else
|
||||
i = 0;
|
||||
i = 0;
|
||||
col = treeMitarbeiter.columns ? treeMitarbeiter.columns["tree-liste-mitarbeiter-col-mitarbeiter_id"] : "tree-liste-mitarbeiter-col-mitarbeiter_id";
|
||||
MitarbeiterSelectMitarbeiter_id = treeMitarbeiter.view.getCellText(i,col);
|
||||
window.setTimeout("MitarbeiterSelectMitarbeiter()",10);
|
||||
@@ -270,31 +270,31 @@ function TreeMitarbeiterSort()
|
||||
|
||||
/**
|
||||
* Refresht den MitarbeiterTree
|
||||
* @param eintrag_merken Wenn true dann wird der aktuell markierte Eintrag nach dem
|
||||
* @param eintrag_merken Wenn true dann wird der aktuell markierte Eintrag nach dem
|
||||
* refresh wieder markiert
|
||||
*/
|
||||
function refreshtree(eintrag_merken)
|
||||
{
|
||||
var treeMitarbeiter=document.getElementById('tree-liste-mitarbeiter');
|
||||
|
||||
|
||||
if(eintrag_merken)
|
||||
{
|
||||
var i;
|
||||
if(treeMitarbeiter.currentIndex>=0)
|
||||
i = treeMitarbeiter.currentIndex;
|
||||
else
|
||||
i = 0;
|
||||
|
||||
i = 0;
|
||||
|
||||
col = treeMitarbeiter.columns ? treeMitarbeiter.columns["tree-liste-mitarbeiter-col-mitarbeiter_id"] : "tree-liste-mitarbeiter-col-mitarbeiter_id";
|
||||
MitarbeiterSelectMitarbeiter_id = treeMitarbeiter.view.getCellText(i,col);
|
||||
}
|
||||
|
||||
|
||||
treeMitarbeiterReload=false;
|
||||
treeMitarbeiter.builder.refresh();
|
||||
|
||||
|
||||
//for (var i=0;i<30;i++)
|
||||
// treeMitarbeiter.builder.rebuild();
|
||||
|
||||
|
||||
//window.setTimeout("document.getElementById('tree-liste-mitarbeiter').builder.rebuild()",sleep_time);
|
||||
treemenuobservedata='refresh';
|
||||
if(eintrag_merken)
|
||||
@@ -313,7 +313,7 @@ function MitarbeiterExcelExport()
|
||||
var col = treeMitarbeiterMenu.columns ? treeMitarbeiterMenu.columns["tree-menu-mitarbeiter-col-filter"] : "tree-menu-mitarbeiter-col-filter";
|
||||
var filter=treeMitarbeiterMenu.view.getCellText(treeMitarbeiterMenu.currentIndex,col);
|
||||
cols = treeMitarbeiter.getElementsByTagName('treecol');
|
||||
|
||||
|
||||
var url = "excel.php";
|
||||
var attributes="?type=mitarbeiter";
|
||||
if (filter=="Studiengangsleiter")
|
||||
@@ -338,11 +338,11 @@ function MitarbeiterExcelExport()
|
||||
attributes+="&fix=false&aktiv=true";
|
||||
if (filter=="FreiAngestellteAlle")
|
||||
attributes+="&fix=false";
|
||||
|
||||
|
||||
url+=attributes;
|
||||
spalte=0;
|
||||
for(i in cols)
|
||||
{
|
||||
{
|
||||
if(cols[i].hidden==false)
|
||||
{
|
||||
url += "&spalte"+spalte+"="+MitarbeiterDetailgetSpaltenname(cols[i].id);
|
||||
@@ -356,7 +356,7 @@ function MitarbeiterExcelExport()
|
||||
window.location.href=url;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Liefert anhand der ID den Namen der Klassenvariable
|
||||
*/
|
||||
function MitarbeiterDetailgetSpaltenname(id)
|
||||
@@ -382,7 +382,7 @@ function MitarbeiterDetailgetSpaltenname(id)
|
||||
if(id=='tree-liste-mitarbeiter-col-geburtsnation') return 'gebnation';
|
||||
if(id=='tree-liste-mitarbeiter-col-habilitation') return 'habilitation_bezeichnung';
|
||||
if(id=='tree-liste-mitarbeiter-col-beginndatum') return 'beginndatum';
|
||||
if(id=='tree-liste-mitarbeiter-col-bemerkung') return 'bemerkung';
|
||||
if(id=='tree-liste-mitarbeiter-col-bemerkung') return 'bemerkung';
|
||||
if(id=='tree-liste-mitarbeiter-col-ausgeschieden') return 'ausgeschieden';
|
||||
if(id=='tree-liste-mitarbeiter-col-beendigungsdatum') return 'beendigungsdatum';
|
||||
if(id=='tree-liste-mitarbeiter-col-ausbildung') return 'ausbildung_bezeichnung';
|
||||
@@ -398,7 +398,7 @@ function MitarbeiterDetailgetSpaltenname(id)
|
||||
function MitarbeiterSVNRValueChange()
|
||||
{
|
||||
svnr=document.getElementById('textbox-mitarbeiter-detail-svnr').value;
|
||||
|
||||
|
||||
if(svnr!='' && svnr.length==10)
|
||||
document.getElementById('textbox-mitarbeiter-detail-geburtsdatum').value = svnr.charAt(4) + svnr.charAt(5) + "." + svnr.charAt(6) + svnr.charAt(7) + ".19" + svnr.charAt(8) + svnr.charAt(9);
|
||||
|
||||
@@ -411,7 +411,7 @@ function MitarbeiterAnredeValueChange()
|
||||
{
|
||||
var geschlecht=document.getElementById('textbox-mitarbeiter-detail-anrede').value;
|
||||
var button = document.getElementById('button-mitarbeiter-detail-geschlecht');
|
||||
|
||||
|
||||
if(geschlecht=='Frau')
|
||||
button.label='weiblich';
|
||||
else
|
||||
@@ -432,7 +432,7 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
{
|
||||
// Kuerzel generieren
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/generate_kuerzel.rdf.php?type=kurzbz&nachname="+nachname+"&vorname="+vorname;
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
@@ -443,7 +443,7 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
@@ -457,38 +457,38 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
default: alert('Timing error');
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/generate_kurzbz/msg');
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/generate_kurzbz/0");
|
||||
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/generate_kurzbz/rdf";
|
||||
|
||||
|
||||
var gen_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var gen_msg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#msg" ));
|
||||
|
||||
|
||||
if(gen_return=='true')
|
||||
{
|
||||
document.getElementById('textbox-mitarbeiter-detail-kurzbezeichnung').value=gen_msg;
|
||||
}
|
||||
else
|
||||
alert("Fehler beim Generieren der Daten: "+gen_msg);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// UID generieren
|
||||
if(document.getElementById('textbox-mitarbeiter-detail-uid').value=='')
|
||||
{
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/generate_kuerzel.rdf.php?type=uid&nachname="+nachname+"&vorname="+vorname;
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
@@ -499,7 +499,7 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
@@ -511,24 +511,24 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/generate_kurzbz/msg');
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/generate_kurzbz/0");
|
||||
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/generate_kurzbz/rdf";
|
||||
|
||||
|
||||
var gen_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var gen_msg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#msg" ));
|
||||
|
||||
|
||||
if(gen_return=='true')
|
||||
{
|
||||
document.getElementById('textbox-mitarbeiter-detail-uid').value=gen_msg;
|
||||
@@ -548,7 +548,7 @@ function MitarbeiterDetailKurzbzGenerate()
|
||||
function MitarbeiterNeu()
|
||||
{
|
||||
var treeMitarbeiter=document.getElementById('tree-liste-mitarbeiter');
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
@@ -556,7 +556,7 @@ function MitarbeiterNeu()
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
param = "type=newmitarbeiter&studiensemester_id="+MitarbeiterDetailStudiensemester_id;
|
||||
|
||||
|
||||
switch(MenuMitarbeiterAuswahl)
|
||||
{
|
||||
case 2: //Alle
|
||||
@@ -566,7 +566,7 @@ function MitarbeiterNeu()
|
||||
case 4: //Fixangestellte
|
||||
param = param + "&art=fix";
|
||||
break;
|
||||
case 5: //FixangestellteAlle
|
||||
case 5: //FixangestellteAlle
|
||||
param = param + "&art=fix";
|
||||
break;
|
||||
case 9: //FreiAngestellte
|
||||
@@ -575,8 +575,8 @@ function MitarbeiterNeu()
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
@@ -612,15 +612,15 @@ function MitarbeiterNeu()
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
{
|
||||
//In dbdml_errormsg steht die person_id des neuen Datensatzes
|
||||
|
||||
//Statusbar sezten
|
||||
setStatusBarText("Neuer Datensatz wurde angelegt");
|
||||
|
||||
|
||||
//Tree Refreshen
|
||||
refreshtree(false);
|
||||
|
||||
|
||||
//Eintrag im Tree Selektieren
|
||||
MitarbeiterSelectMitarbeiter_id = dbdml_errormsg;
|
||||
treemenuobservedata='refresheintragmerken';
|
||||
@@ -628,8 +628,8 @@ function MitarbeiterNeu()
|
||||
}
|
||||
else
|
||||
alert("Fehler beim anlegen des Datensatzes: "+dbdml_errormsg);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -771,7 +771,7 @@ function SelectIndex(idx)
|
||||
function saveMitarbeiter()
|
||||
{
|
||||
var treeMitarbeiter=document.getElementById('tree-liste-mitarbeiter');
|
||||
|
||||
|
||||
//Daten aus den Felder holen
|
||||
person_id = document.getElementById('textbox-mitarbeiter-detail-person_id').value;
|
||||
mitarbeiter_id = document.getElementById('textbox-mitarbeiter-detail-mitarbeiter_id').value;
|
||||
@@ -808,11 +808,11 @@ function saveMitarbeiter()
|
||||
if(vorname!='' && nachname!='' && kurzbezeichnung!='')
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
@@ -841,7 +841,7 @@ function saveMitarbeiter()
|
||||
param = param + "&geschlecht=W";
|
||||
else
|
||||
param = param + "&geschlecht=M";
|
||||
|
||||
|
||||
param = param + "&bismelden="+encodeURIComponent(bismelden);
|
||||
param = param + "&familienstand=" + encodeURIComponent(familienstand);
|
||||
param = param + "&staatsbuergerschaft=" + encodeURIComponent(staatsbuergerschaft);
|
||||
@@ -855,17 +855,17 @@ function saveMitarbeiter()
|
||||
param = param + "&beendigungsdatum=" + encodeURIComponent(beendigungsdatum);
|
||||
param = param + "&ausbildung=" + encodeURIComponent(ausbildung);
|
||||
param = param + "&aktiv=" + encodeURIComponent(aktiv);
|
||||
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
@@ -877,24 +877,24 @@ function saveMitarbeiter()
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
treeMitarbeiterValueNoChange();
|
||||
refreshtree(true);
|
||||
|
||||
|
||||
//Statusbar Text setzen
|
||||
window.setTimeout("setStatusBarText('Datensatz wurde erfolgreich gespeichert')",sleep_time);
|
||||
}
|
||||
@@ -1029,7 +1029,7 @@ function SetMitarbeiterDetailAktiv(enabled)
|
||||
document.getElementById('button-mitarbeiter-detail-bankverbindungen-bearbeiten').disabled=!enabled;
|
||||
document.getElementById('button-mitarbeiter-detail-bankverbindungen-loeschen').disabled=!enabled;
|
||||
document.getElementById('button-mitarbeiter-detail-gen_kurzbez').disabled=!enabled;
|
||||
|
||||
|
||||
document.getElementById('tree-liste-funktionen').setAttribute('datasources',"rdf:null");
|
||||
document.getElementById('tree-liste-adressen').setAttribute('datasources',"rdf:null");
|
||||
document.getElementById('tree-liste-email').setAttribute('datasources',"rdf:null");
|
||||
@@ -1042,7 +1042,7 @@ function SetMitarbeiterDetailAktiv(enabled)
|
||||
* Beim auswaehlen eines Mitarbeiters
|
||||
*/
|
||||
function MitarbeiterDetailRestore()
|
||||
{
|
||||
{
|
||||
treeMitarbeiterDetailChanged=false;
|
||||
document.getElementById('button-mitarbeiter-detail-speichern').disabled=true;
|
||||
document.getElementById('button-mitarbeiter-detail-zurueck').disabled=true;
|
||||
@@ -1110,7 +1110,7 @@ function MitarbeiterDetailFunktionenBearbeiten()
|
||||
}
|
||||
var col = treeFunktionen.columns ? treeFunktionen.columns["tree-liste-funktionen-col-funktion_id"] : "tree-liste-funktionen-col-funktion_id";
|
||||
var funktion_id=treeFunktionen.view.getCellText(treeFunktionen.currentIndex,col);
|
||||
window.open("mitarbeiterfunktiondialog.xul.php?funktion_id="+funktion_id,"","chrome,status=no, modal, width=500, height=350, centerscreen, resizable");
|
||||
window.open("mitarbeiterfunktiondialog.xul.php?funktion_id="+funktion_id,"","chrome,status=no, modal, width=500, height=350, centerscreen, resizable");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1218,31 +1218,31 @@ function MitarbeiterDetailFunktionenLoeschen()
|
||||
* Zeigt alle Funktionen dieses Mitarbeiters an die er jemals hatte
|
||||
*/
|
||||
function MitarbeiterDetailFunktionenAlleAnzeigen()
|
||||
{
|
||||
{
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var tree=document.getElementById('tree-liste-mitarbeiter');
|
||||
|
||||
var tree=document.getElementById('tree-liste-mitarbeiter');
|
||||
setStatusBarText("");
|
||||
|
||||
|
||||
//Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen
|
||||
var idx;
|
||||
if(tree.currentIndex>=0)
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
idx = 0;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
//Mitarbeiter_id holen
|
||||
var col = tree.columns ? tree.columns["tree-liste-mitarbeiter-col-mitarbeiter_id"] : "tree-liste-mitarbeiter-col-mitarbeiter_id";
|
||||
var mitarbeiter_id=tree.view.getCellText(idx,col);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//Funktionen Tree fuellen
|
||||
var treeFunktionen=document.getElementById('tree-liste-funktionen');
|
||||
button = document.getElementById('button-mitarbeiter-detail-funktionen-alleanzeigen');
|
||||
@@ -1256,21 +1256,21 @@ function MitarbeiterDetailFunktionenAlleAnzeigen()
|
||||
var treeFunktionenURL = "<?php echo APP_ROOT; ?>rdf/fas/funktionen.rdf.php?mitarbeiter_id="+mitarbeiter_id+"&leerzeichencodierung=true&"+gettimestamp();
|
||||
button.label='Alle Anzeigen';
|
||||
}
|
||||
|
||||
|
||||
//Alte Datasources loeschen
|
||||
var oldDatasources = treeFunktionen.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
treeFunktionen.database.RemoveDataSource(oldDatasources.getNext());
|
||||
|
||||
|
||||
//Neue Datasource setzen
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var newDs = rdfService.GetDataSource(treeFunktionenURL);
|
||||
treeFunktionen.database.AddDataSource(newDs);
|
||||
|
||||
|
||||
//Sink Observer anhaengen
|
||||
sinkfunktion = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
sinkfunktion = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
sinkfunktion.addXMLSinkObserver(treefunktionenobserve);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*****************************ADRESSEN*******************************/
|
||||
|
||||
@@ -147,7 +147,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiterdetailoverlay.xul.php"?
|
||||
<treecol id="tree-liste-mitarbeiter-col-mitgliedentwicklungsteam" label="MitgliedEntwicklungsteam" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitgliedentwicklungsteam" onclick="TreeMitarbeiterSort()"/>
|
||||
|
||||
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-qualifikation" label="Qualifikation" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
|
||||
+28
-28
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* HTTP Request Klasse
|
||||
* HTTP Request Klasse
|
||||
* stammt aus Artikel von phpPatterns (http://www.phppatterns.com/index.php/article/articleview/82/1/2/)
|
||||
* leicht modifiziert
|
||||
*/
|
||||
@@ -10,7 +10,7 @@
|
||||
// wir uebergeben das als Parameter
|
||||
//End Configuration
|
||||
|
||||
function doLogin()
|
||||
function doLogin()
|
||||
{
|
||||
var username = document.getElementById('loginUser').value;
|
||||
var password = document.getElementById('loginPass').value;
|
||||
@@ -24,7 +24,7 @@ function doLogin()
|
||||
}
|
||||
|
||||
//Start phpRequest Object
|
||||
function phpRequest(server_url,uname,passw)
|
||||
function phpRequest(server_url,uname,passw)
|
||||
{
|
||||
this.parms = new Array();
|
||||
this.parmsIndex = 0;
|
||||
@@ -36,23 +36,23 @@ function phpRequest(server_url,uname,passw)
|
||||
this.passw = passw;
|
||||
}
|
||||
|
||||
function phpRequestAdd(name,value)
|
||||
function phpRequestAdd(name,value)
|
||||
{
|
||||
this.parms[this.parmsIndex] = new Pair(name,value);
|
||||
this.parmsIndex++;
|
||||
}
|
||||
|
||||
function phpRequestExecute()
|
||||
function phpRequestExecute()
|
||||
{
|
||||
var targetURL = this.server;
|
||||
|
||||
|
||||
try {
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
}catch (e){
|
||||
alert('Error creating the connection!');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
var txt = "?";
|
||||
for(var i in this.parms) {
|
||||
@@ -62,18 +62,18 @@ function phpRequestExecute()
|
||||
//Two options here, only uncomment one of these
|
||||
//GET REQUEST
|
||||
httpRequest.open("GET", targetURL+txt, false, '','');
|
||||
|
||||
|
||||
//POST REQUEST EXAMPLE
|
||||
/*
|
||||
httpRequest.open("POST", targetURL+txt, false, null, null);
|
||||
httpRequest.open("POST", targetURL+txt, false, null, null);
|
||||
httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
|
||||
*/
|
||||
httpRequest.send('');
|
||||
|
||||
|
||||
}catch (e){
|
||||
alert('An error has occured calling the external site: '+e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
switch(httpRequest.readyState) {
|
||||
case 1,2,3:
|
||||
@@ -89,16 +89,16 @@ function phpRequestExecute()
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
function phpRequestExecutePOST()
|
||||
function phpRequestExecutePOST()
|
||||
{
|
||||
var targetURL = this.server;
|
||||
|
||||
try
|
||||
|
||||
try
|
||||
{
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
}
|
||||
@@ -107,51 +107,51 @@ function phpRequestExecutePOST()
|
||||
alert('Error creating the connection!');
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
|
||||
try
|
||||
{
|
||||
var txt = "";
|
||||
for(var i in this.parms)
|
||||
for(var i in this.parms)
|
||||
{
|
||||
txt = txt+'&'+this.parms[i].name+'='+this.parms[i].value;
|
||||
}
|
||||
//alert('sende '+txt);
|
||||
|
||||
|
||||
//POST REQUEST
|
||||
httpRequest.open("POST", targetURL, false, '', '');
|
||||
httpRequest.open("POST", targetURL, false, '', '');
|
||||
httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
|
||||
httpRequest.send(txt);
|
||||
|
||||
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
alert('An error has occured calling the external site: '+e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
switch(httpRequest.readyState)
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3:
|
||||
alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
case 4:
|
||||
if(httpRequest.status !=200)
|
||||
if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
function Pair(name,value)
|
||||
function Pair(name,value)
|
||||
{
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
|
||||
+20
-20
@@ -15,10 +15,10 @@ function onLoad()
|
||||
|
||||
function loadRightFrame()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
function loadURL(event)
|
||||
function loadURL(event)
|
||||
{
|
||||
var contentFrame = document.getElementById('contentFrame');
|
||||
var url = event.target.getAttribute('value');
|
||||
@@ -38,9 +38,9 @@ function studiensemesterChange()
|
||||
if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true')
|
||||
stsem = items[i].label;
|
||||
}
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
@@ -50,10 +50,10 @@ function studiensemesterChange()
|
||||
|
||||
var param = "type=variablechange";
|
||||
param = param + "&stsem="+stsem;
|
||||
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
@@ -84,12 +84,12 @@ function studiensemesterChange()
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
{
|
||||
//Statusbar setzen
|
||||
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geändert";
|
||||
document.getElementById("statusbarpanel-semester").label = stsem;
|
||||
document.getElementById("statusbarpanel-semester").label = stsem;
|
||||
//MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
|
||||
}
|
||||
else
|
||||
@@ -105,20 +105,20 @@ function studiensemesterChange()
|
||||
function loadUndoList()
|
||||
{
|
||||
menu = document.getElementById('menu-edit-undo');
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
if(menuUndoDatasource==0)
|
||||
{
|
||||
//Wenn noch keine Datasource angegeben ist, dann wird eine neue hinzugefuegt
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/undo.rdf.php?'+gettimestamp();
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/undo.rdf.php?'+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = menu.database.GetDataSources();
|
||||
var oldDatasources = menu.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menu.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
menuUndoDatasource = rdfService.GetDataSource(url);
|
||||
menuUndoDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -130,7 +130,7 @@ function loadUndoList()
|
||||
menuUndoDatasource.Refresh(true); //blocking
|
||||
menu.builder.rebuild();
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -143,18 +143,18 @@ function UnDo(log_id, bezeichnung)
|
||||
{
|
||||
//Request absetzen
|
||||
var req = new phpRequest('tempusDBDML.php','','');
|
||||
|
||||
|
||||
req.add('type','undo');
|
||||
req.add('log_id',log_id);
|
||||
|
||||
|
||||
var response = req.executePOST();
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
LvTreeRefresh();
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
|
||||
<commandset id="maincommands">
|
||||
<command id="menu-file-close:command" oncommand="closeWindow();"/>
|
||||
<command id="menu-properties-studiensemester:command" oncommand="studiensemesterChange();"/>
|
||||
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
|
||||
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
|
||||
<command id="menu-prefs-stpltable-stundenplandev:command" oncommand="stpltableChange('stundenplandev');"/>
|
||||
</commandset>
|
||||
|
||||
@@ -74,17 +74,17 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
|
||||
</menu>
|
||||
<menu id="menu-edit" label="&menu-edit:label;" accesskey="&menu-edit:accesskey;" onclick="">
|
||||
<menupopup id="menu-edit-popup" onpopupshowing="loadUndoList();">
|
||||
<menu id="menu-edit-undo" label="&menu-edit-undo:label;"
|
||||
<menu id="menu-edit-undo" label="&menu-edit-undo:label;"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/undo/liste"
|
||||
>
|
||||
<template>
|
||||
<rule>
|
||||
<menupopup id="menu-edit-undo-popup">
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/undo/rdf#beschreibung"
|
||||
value="rdf:http://www.technikum-wien.at/undo/rdf#log_id"
|
||||
<menupopup id="menu-edit-undo-popup">
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/undo/rdf#beschreibung"
|
||||
value="rdf:http://www.technikum-wien.at/undo/rdf#log_id"
|
||||
onclick="UnDo(this.value, this.label);"/>
|
||||
</menupopup>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menu>
|
||||
@@ -127,9 +127,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
|
||||
checked = ".($benutzer->variable->semester_aktuell==$stsem?"'true' ":"'false'")." />";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-help" label="&menu-help:label;" accesskey="&menu-help:accesskey;">
|
||||
|
||||
+14
-14
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -23,7 +23,7 @@
|
||||
// ****************************************
|
||||
// * Insert/Update/Delete
|
||||
// * der Lehreinheiten
|
||||
// *
|
||||
// *
|
||||
// * Script sorgt fuer den Datenbanzugriff
|
||||
// * fuer das XUL - Lehreinheiten-Modul
|
||||
// *
|
||||
@@ -68,7 +68,7 @@ if(!$error)
|
||||
if(isset($_POST['type']) && $_POST['type']=='undo')
|
||||
{
|
||||
//UNDO Befehl ausfuehren
|
||||
|
||||
|
||||
if (!isset($_POST['log_id']))
|
||||
{
|
||||
$return = false;
|
||||
@@ -76,16 +76,16 @@ if(!$error)
|
||||
$data = '';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$log = new log($conn, null, null, true);
|
||||
|
||||
|
||||
if($log->undo($log_id))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler bei UnDo:'.$log->errormsg;
|
||||
@@ -105,18 +105,18 @@ if(!$error)
|
||||
$obj->updatevon = $user;
|
||||
$obj->insertamum = date('Y-m-d H:i:s');
|
||||
$obj->insertvon = $user;
|
||||
|
||||
|
||||
if($obj->save(true))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
@@ -126,7 +126,7 @@ if(!$error)
|
||||
{
|
||||
//Loescht eine Lektorfunktion
|
||||
if(isset($_POST['uid']) && isset($_POST['studiengang_kz']))
|
||||
{
|
||||
{
|
||||
$obj = new benutzerfunktion($conn);
|
||||
//Benutzerfunktion suchen
|
||||
if($obj->getBentuzerFunktion($_POST['uid'], 'lkt', $_POST['studiengang_kz']))
|
||||
@@ -136,25 +136,25 @@ if(!$error)
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler bei Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Unkown type';
|
||||
|
||||
+37
-37
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -31,39 +31,39 @@ class frage
|
||||
var $demo;
|
||||
var $text;
|
||||
var $bild;
|
||||
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
var $num_rows=0;
|
||||
var $errormsg;
|
||||
var $new;
|
||||
|
||||
|
||||
// *************************************************************************
|
||||
// * Konstruktor - Uebergibt die Connection und laedt optional eine frage
|
||||
// * @param $conn Datenbank-Connection
|
||||
// * $frage_id Frage die geladen werden soll (default=null)
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * oder LATIN9 Codierung verarbeitet werden sollen
|
||||
// *************************************************************************
|
||||
function frage($conn, $frage_id=null, $unicode=false)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
|
||||
if($unicode)
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
else
|
||||
else
|
||||
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
|
||||
|
||||
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if($frage_id != null)
|
||||
$this->load($frage_id);
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************
|
||||
// * Laedt Frage mit der uebergebenen ID
|
||||
// * @param $frage_id ID der Frage die geladen werden soll
|
||||
@@ -71,7 +71,7 @@ class frage
|
||||
function load($frage_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_frage WHERE frage_id='".addslashes($frage_id)."'";
|
||||
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
@@ -86,22 +86,22 @@ class frage
|
||||
$this->bild = $row->bild;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $frage_id";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden: $qry";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird NULL zurueckgegeben
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * Zeichen mit Backslash versehen und das Ergbnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
@@ -109,9 +109,9 @@ class frage
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
|
||||
// *******************************************
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * auf Gueltigkeit.
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *******************************************
|
||||
@@ -119,7 +119,7 @@ class frage
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * Speichert die Benutzerdaten in die Datenbank
|
||||
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
@@ -131,7 +131,7 @@ class frage
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_frage (frage_id, gebiet_id, gruppe_kurzbz, loesung, nummer, demo, text, bild) VALUES('.
|
||||
@@ -145,7 +145,7 @@ class frage
|
||||
$this->addslashes($this->bild).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_frage SET'.
|
||||
' frage_id='.$this->addslashes($this->frage_id).','.
|
||||
' gebiet_id='.$this->addslashes($this->gebiet_id).','.
|
||||
@@ -153,18 +153,18 @@ class frage
|
||||
' loesung='.$this->addslashes($this->loesung).','.
|
||||
' nummer='.$this->addslashes($this->nummer).','.
|
||||
' demo='.($this->demo?'true':'false').','.
|
||||
' text='.$this->addslashes($this->text).','.
|
||||
" text='".$this->text."',".
|
||||
' bild='.$this->addslashes($this->bild).
|
||||
" WHERE frage_id='".addslashes($this->frage_id)."';";
|
||||
}
|
||||
|
||||
//echo $qry;
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Frage:'.$qry;
|
||||
return false;
|
||||
}
|
||||
@@ -173,11 +173,11 @@ class frage
|
||||
function getFrage($gebiet_id, $nummer, $gruppe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_frage WHERE gebiet_id='$gebiet_id' AND nummer='$nummer' AND gruppe_kurzbz='$gruppe_kurzbz'";
|
||||
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
{
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->gebiet_id = $row->gebiet_id;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
@@ -186,22 +186,22 @@ class frage
|
||||
$this->demo = ($row->demo=='t'?true:false);
|
||||
$this->text = $row->text;
|
||||
$this->bild = $row->bild;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getNextFrage($gebiet_id, $gruppe_kurzbz, $frage_id, $demo=false)
|
||||
{
|
||||
$qry = "SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."' AND nummer".($demo?'<':'>')."(SELECT nummer FROM testtool.tbl_frage WHERE frage_id='".addslashes($frage_id)."') ";
|
||||
@@ -210,19 +210,19 @@ class frage
|
||||
$qry.=" AND demo=true";
|
||||
$order = 'DESC';
|
||||
}
|
||||
else
|
||||
else
|
||||
$order = 'ASC';
|
||||
|
||||
|
||||
$qry.=" ORDER BY nummer $order LIMIT 1";
|
||||
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
return $row->frage_id;
|
||||
else
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+33
-33
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -29,39 +29,39 @@ class vorschlag
|
||||
var $antwort;
|
||||
var $text;
|
||||
var $bild;
|
||||
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
var $num_rows=0;
|
||||
var $errormsg;
|
||||
var $new;
|
||||
|
||||
|
||||
// *************************************************************************
|
||||
// * Konstruktor - Uebergibt die Connection und laedt optional einen vorschlag
|
||||
// * @param $conn Datenbank-Connection
|
||||
// * $frage_id Frage die geladen werden soll (default=null)
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * oder LATIN9 Codierung verarbeitet werden sollen
|
||||
// *************************************************************************
|
||||
function vorschlag($conn, $vorschlag_id=null, $unicode=false)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
|
||||
if($unicode)
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
else
|
||||
else
|
||||
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
|
||||
|
||||
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if($vorschlag_id != null)
|
||||
$this->load($vorschlag_id);
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************
|
||||
// * Laedt Vorschlag mit der uebergebenen ID
|
||||
// * @param $vorschlag_id ID des Vorschlages der geladen werden soll
|
||||
@@ -69,7 +69,7 @@ class vorschlag
|
||||
function load($vorschlag_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
|
||||
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
@@ -82,22 +82,22 @@ class vorschlag
|
||||
$this->bild = $row->bild;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $vorschlag_id";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden: $qry";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird NULL zurueckgegeben
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * Zeichen mit Backslash versehen und das Ergbnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
@@ -105,9 +105,9 @@ class vorschlag
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
|
||||
// *******************************************
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * auf Gueltigkeit.
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *******************************************
|
||||
@@ -115,7 +115,7 @@ class vorschlag
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * Speichert die Benutzerdaten in die Datenbank
|
||||
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
@@ -127,14 +127,14 @@ class vorschlag
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_vorschlag (frage_id, nummer, antwort, text, bild) VALUES('.
|
||||
"'".addslashes($this->frage_id)."',".
|
||||
$this->addslashes($this->nummer).",".
|
||||
$this->addslashes($this->antwort).",".
|
||||
$this->addslashes($this->text).",".
|
||||
$this->addslashes($this->antwort).",'".
|
||||
$this->text."',".
|
||||
$this->addslashes($this->bild).");";
|
||||
}
|
||||
else
|
||||
@@ -143,19 +143,19 @@ class vorschlag
|
||||
' frage_id='.$this->addslashes($this->frage_id).','.
|
||||
' nummer='.$this->addslashes($this->nummer).','.
|
||||
' antwort='.$this->addslashes($this->antwort).','.
|
||||
' text='.$this->addslashes($this->text);
|
||||
" text='".$this->text."'";
|
||||
if($this->bild!='')
|
||||
$qry.=' , bild='.$this->addslashes($this->bild);
|
||||
$qry.=" WHERE vorschlag_id='".addslashes($this->vorschlag_id)."';";
|
||||
}
|
||||
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Frage:'.$qry;
|
||||
return false;
|
||||
}
|
||||
@@ -164,25 +164,25 @@ class vorschlag
|
||||
function getVorschlag($frage_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag WHERE frage_id='".addslashes($frage_id)."' ORDER BY nummer";
|
||||
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$vs = new vorschlag($this->conn);
|
||||
{
|
||||
$vs = new vorschlag($this->conn);
|
||||
$vs->vorschlag_id = $row->vorschlag_id;
|
||||
$vs->frage_id = $row->frage_id;
|
||||
$vs->nummer = $row->nummer;
|
||||
$vs->antwort = $row->antwort;
|
||||
$vs->text = $row->text;
|
||||
$vs->bild = $row->bild;
|
||||
|
||||
|
||||
$this->result[] = $vs;
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Daten';
|
||||
return false;
|
||||
@@ -193,7 +193,7 @@ class vorschlag
|
||||
$qry = "DELETE FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen';
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user