- Filter fuer ausstehende Dokumente

- Bugfix fuer IE bei DropDown Menues
This commit is contained in:
Andreas Österreicher
2007-08-14 11:55:10 +00:00
parent b7429a866b
commit 53b2cce164
5 changed files with 110 additions and 23 deletions
@@ -345,4 +345,60 @@ function InteressentDokumenteNichtAbgegebenTreeSort()
col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-nichtdokument_kurzbz";
InteressentDokumentTreeNichtAbgegebenSelectID = tree.view.getCellText(i,col);
window.setTimeout("InteressentDokumentNichtAbgegebenTreeSelect()",10);
}
function InteressentDokumenteFilter()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('tree-verband');
//Wenn nichts markiert wurde -> beenden
if(tree.currentIndex==-1)
return;
// Progressmeter starten. Ab jetzt keine 'return's mehr.
document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined');
//globalProgressmeter.StartPM();
var col;
col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
var stg_kz=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["sem"] : "sem";
var sem=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["ver"] : "ver";
var ver=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["grp"] : "grp";
var grp=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["gruppe"] : "gruppe";
var gruppe=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["typ"] : "typ";
var typ=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["stsem"] : "stsem";
var stsem=tree.view.getCellText(tree.currentIndex,col);
stsem = getStudiensemester();
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ=student&filter2=dokumente&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeStudent.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeStudent.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
StudentTreeDatasource.removeXMLSinkObserver(StudentTreeSinkObserver);
treeStudent.builder.removeListener(StudentTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentTreeDatasource = rdfService.GetDataSource(url);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeStudent.database.AddDataSource(StudentTreeDatasource);
StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver);
treeStudent.builder.addListener(StudentTreeListener);
}
@@ -74,6 +74,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</groupbox>
<vbox>
<spacer flex="1" />
<button id="interessent-dokumente-add" oncommand="InteressentDokumenteFilter()" label="Filter" tooltiptext="Liste aller Studenten mit fehlenden Dokumenten" />
<spacer flex="4"/>
<button id="interessent-dokumente-add" oncommand="InteressentDokumenteAdd()" label="=&gt;" style="font-weight: bold;"/>
<spacer flex="1" />
+43 -14
View File
@@ -51,6 +51,7 @@ $typ = (isset($_GET['typ'])?$_GET['typ']:null);
$prestudent_id = (isset($_GET['prestudent_id'])?$_GET['prestudent_id']:null);
$filter = (isset($_GET['filter'])?$_GET['filter']:null);
$ss = (isset($_GET['ss'])?$_GET['ss']:null);
$filter2 = (isset($_GET['filter2'])?$_GET['filter2']:null);
if($studiensemester_kurzbz=='aktuelles')
$studiensemester_kurzbz = $semester_aktuell;
@@ -81,6 +82,25 @@ if($xmlformat=='rdf')
<RDF:Seq about="'.$rdf_url.'/alle">
';
function checkfilter($row, $filter2)
{
global $conn;
if($filter2=='dokumente')
{
$qry = "SELECT count(*) as anzahl FROM public.tbl_dokumentstudiengang WHERE
dokument_kurzbz NOT IN(
SELECT dokument_kurzbz FROM tbl_dokumentprestudent WHERE prestudent_id='$row->prestudent_id')
AND studiengang_kz='$row->studiengang_kz'";
if($result_filter = pg_query($conn, $qry))
if($row_filter = pg_fetch_object($result_filter))
if($row_filter->anzahl==0)
return false;
}
return true;
}
function draw_content($row)
{
global $rdf_url, $datum_obj, $conn;
@@ -185,17 +205,23 @@ if($xmlformat=='rdf')
$prestd = new prestudent($conn, null, true);
if(isset($uid))
{
draw_content($student);
$prestd->load($student->prestudent_id);
draw_prestudent($prestd);
}
else
foreach ($studenten as $student)
if(checkfilter($student, $filter2))
{
draw_content($student);
$prestd->load($student->prestudent_id);
draw_prestudent($prestd);
}
}
else
foreach ($studenten as $student)
{
if(checkfilter($student, $filter2))
{
draw_content($student);
$prestd->load($student->prestudent_id);
draw_prestudent($prestd);
}
}
}
elseif(in_array($typ, array('prestudent', 'interessenten','bewerber','aufgenommen',
'warteliste','absage','zgv','reihungstestangemeldet',
@@ -209,16 +235,19 @@ if($xmlformat=='rdf')
{
foreach ($prestd->result as $row)
{
$student=new student($conn,null,true);
if($uid = $student->getUid($row->prestudent_id))
if(checkfilter($row, $filter2))
{
if(!$student->load($uid, $studiensemester_kurzbz))
$student->load($uid);
draw_content($student);
$student=new student($conn,null,true);
if($uid = $student->getUid($row->prestudent_id))
{
if(!$student->load($uid, $studiensemester_kurzbz))
$student->load($uid);
draw_content($student);
}
else
draw_content($row);
draw_prestudent($row);
}
else
draw_content($row);
draw_prestudent($row);
}
}
}
+7 -7
View File
@@ -58,7 +58,7 @@
echo "<table width='100%'><tr><td>";
//Studiengang DropDown
echo "Studiengang: <SELECT name='stg_kz'>";
echo "Studiengang: <SELECT name='stg_kz' onchange='window.location.href=this.value'>";
$stg = new studiengang($conn);
$stg->getAll('typ, kurzbz', false);
@@ -68,7 +68,7 @@
{
if($stg_kz=='')
$stg_kz=$row->studiengang_kz;
echo "<OPTION onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$row->studiengang_kz&semester=$semester&mitcheck=".($mitcheck?'true':'false')."&stsem=$stsem'\" ".($row->studiengang_kz==$stg_kz?'selected':'').">$row->kuerzel - $row->bezeichnung</OPTION>";
echo "<OPTION value=\"".$_SERVER['PHP_SELF']."?stg_kz=$row->studiengang_kz&semester=$semester&mitcheck=".($mitcheck?'true':'false')."&stsem=$stsem\" ".($row->studiengang_kz==$stg_kz?'selected':'').">$row->kuerzel - $row->bezeichnung</OPTION>";
$s[$row->studiengang_kz]=$row->max_semester;
}
@@ -78,12 +78,12 @@
if($semester>$s[$stg_kz])
$semester = $s[$stg_kz];
echo " Semester: <SELECT name='semester'>";
echo " Semester: <SELECT name='semester' onchange='window.location.href=this.value'>";
for ($i=0;$i<=$s[$stg_kz];$i++)
{
if($semester=='')
$semester=$i;
echo "<OPTION onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$i&mitcheck=".($mitcheck?'true':'false')."&stsem=$stsem'\" ".($i==$semester?'selected':'').">$i</OPTION>";
echo "<OPTION value=\"".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$i&mitcheck=".($mitcheck?'true':'false')."&stsem=$stsem\" ".($i==$semester?'selected':'').">$i</OPTION>";
}
echo '</SELECT>';
@@ -92,13 +92,13 @@
if($stsem=='')
$stsem = $studiensem->getAktorNext();
$studiensem->getAll();
echo " StSem: <SELECT name='stsem'>";
echo " StSem: <SELECT name='stsem' onchange='window.location.href=this.value'>";
foreach ($studiensem->studiensemester as $row)
{
echo "<OPTION onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&mitcheck=".($mitcheck?'true':'false')."&stsem=$row->studiensemester_kurzbz'\" ".($row->studiensemester_kurzbz==$stsem?'selected':'').">$row->studiensemester_kurzbz</OPTION>";
echo "<OPTION value=\"".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&mitcheck=".($mitcheck?'true':'false')."&stsem=$row->studiensemester_kurzbz\" ".($row->studiensemester_kurzbz==$stsem?'selected':'').">$row->studiensemester_kurzbz</OPTION>";
}
echo '</SELECT>';
echo 'Mit Check?<input type="checkbox" name="mitcheck" onchange="window.location.href = \''.$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&stsem=$stsem&mitcheck=".($mitcheck?'false':'true')."'\" ".($mitcheck?'checked':'').'>';
echo 'Mit Check?<input type="checkbox" name="mitcheck" onclick="window.location.href = \''.$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&stsem=$stsem&mitcheck=".($mitcheck?'false':'true')."'\" ".($mitcheck?'checked':'').'>';
echo '</td><td align="right" style="font-size: small;">';
echo '<a href="'.$_SERVER['PHP_SELF'].'?check=true">CHECK</a>';
echo '</td></tr></table>';
+2 -2
View File
@@ -65,14 +65,14 @@ if(!$stud->getAll('typ, kurzbzlang'))
echo 'Fehler beim Laden der Studiengaenge:'.$stud->errormsg;
echo '<form name="frm_studiengang" action="'.$_SERVER['PHP_SELF'].'" method="GET">';
echo 'Studiengang: <SELECT name="studiengang_kz">';
echo 'Studiengang: <SELECT name="studiengang_kz" onchange="document.frm_studiengang.submit()">';
foreach($stud->result as $row)
{
if($studiengang_kz=='')
$studiengang_kz=$row->studiengang_kz;
echo '<OPTION value="'.$row->studiengang_kz.'"'.($studiengang_kz==$row->studiengang_kz?'selected':'').' onclick="document.frm_studiengang.submit()">'.$row->kuerzel.'</OPTION>';
echo '<OPTION value="'.$row->studiengang_kz.'"'.($studiengang_kz==$row->studiengang_kz?'selected':'').'>'.$row->kuerzel.'</OPTION>';
}
echo '</SELECT>';
echo '</form>';