This commit is contained in:
Andreas Österreicher
2007-06-05 11:33:58 +00:00
parent 115ee649fd
commit a3227eeb84
15 changed files with 737 additions and 92 deletions
+72
View File
@@ -45,6 +45,7 @@ require_once('../../include/dokument.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/bisio.class.php');
$user = get_uid();
@@ -1021,6 +1022,77 @@ if(!$error)
$return = false;
}
}
elseif(isset($_POST['type']) && $_POST['type']=='deletebisio')
{
//Loescht einen BisIO Eintrag
if(isset($_POST['bisio_id']) && is_numeric($_POST['bisio_id']))
{
$bisio = new bisio($conn);
if($bisio->delete($_POST['bisio_id']))
{
$return = true;
}
else
{
$errormsg = $bisio->errormsg;
$return = false;
}
}
else
{
$return = false;
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
elseif(isset($_POST['type']) && $_POST['type']=='savebisio')
{
//Speichert einen BisIO Eintrag
$bisio = new bisio($conn);
if($_POST['neu']=='true')
{
$bisio->insertamum = date('Y-m-d H:i:s');
$bisio->insertvon = $user;
$bisio->new = true;
}
else
{
if($bisio->load($_POST['bisio_id']))
$bisio->new = false;
else
{
$error = true;
$errormsg = $bisio->errormsg;
$return = false;
}
}
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
$bisio->mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code'];
$bisio->nation_code = $_POST['nation_code'];
$bisio->von = $_POST['von'];
$bisio->bis = $_POST['bis'];
$bisio->zweck_code = $_POST['zweck_code'];
$bisio->student_uid = $_POST['student_uid'];
$bisio->updateamum = date('Y-m-d H:i:s');
$bisio->updatevon = $user;
if(!$error)
{
if($bisio->save())
{
$return = true;
$data = $bisio->bisio_id;
}
else
{
$errormsg = $bisio->errormsg;
$return = false;
}
}
}
else
{
$return = false;
+1 -1
View File
@@ -181,7 +181,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentiooverlay.xul.php"?
<tab id="student-tab-konto" label="Konto" />
<tab id="student-tab-zeugnis" label="Zeugnis" />
<tab id="student-tab-betriebsmittel" label="Betriebsmittel" />
<tab id="student-tab-io" label="Incomming/Outgoing" />
<tab id="student-tab-io" label="Incoming/Outgoing" />
</tabs>
<tabpanels id="student-tabpanels-main" flex="1">
<vbox id="student-detail" style="margin-top:10px;" />
+19 -28
View File
@@ -49,18 +49,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<column flex="1"/>
</columns>
<rows>
<!--
<row>
<hbox>
<spacer flex="1" />
<button id="student-io-button-filter" value="alle" oncommand="StudentIOFilter()" label="offene" disabled="true"/>
</hbox>
<spacer />
</row>
-->
<row>
<tree id="student-io-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/io/liste"
datasources="rdf:null" ref="http://www.technikum-wien.at/bisio/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
onselect="StudentIOAuswahl()"
context="student-io-tree-popup"
@@ -71,27 +62,27 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/io/rdf#mobilitaetsprogramm_kurzbz"/>
sort="rdf:http://www.technikum-wien.at/bisio/rdf#mobilitaetsprogramm_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="student-io-tree-nation_code" label="Gastnation" flex="5" hidden="false"
<treecol id="student-io-tree-nation_code" label="Nation" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/io/rdf#nation_code"/>
sort="rdf:http://www.technikum-wien.at/bisio/rdf#nation_code"/>
<splitter class="tree-splitter"/>
<treecol id="student-io-tree-von" label="Von" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/io/rdf#von" />
sort="rdf:http://www.technikum-wien.at/bisio/rdf#von" />
<splitter class="tree-splitter"/>
<treecol id="student-io-tree-bis" label="Bis" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/io/rdf#bis" />
sort="rdf:http://www.technikum-wien.at/bisio/rdf#bis" />
<splitter class="tree-splitter"/>
<treecol id="student-io-tree-zweck_kurzbz" label="Zweck" flex="2" hidden="true"
<treecol id="student-io-tree-zweck_kurzbz" label="Zweck" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/io/rdf#zweck_bezeichnung" />
sort="rdf:http://www.technikum-wien.at/bisio/rdf#zweck_bezeichnung" />
<splitter class="tree-splitter"/>
<treecol id="student-io-tree-bisio_id" label="bisio_id" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/io/rdf#bisio_id" />
sort="rdf:http://www.technikum-wien.at/bisio/rdf#bisio_id" />
<splitter class="tree-splitter"/>
</treecols>
@@ -99,12 +90,12 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#mobilitaetsprogramm_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#nation_code"/>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#von"/>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#bis"/>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#zweck_bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/io/rdf#bisio_id"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#mobilitaetsprogramm_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#nation_code"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#von"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#bis"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#zweck_bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/bisio/rdf#bisio_id"/>
</treerow>
</treeitem>
</treechildren>
@@ -117,7 +108,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
<vbox hidden="true">
<label value="Neu"/>
<checkbox id="student-io-detail-checkbox-new" checked="true" />
<checkbox id="student-io-detail-checkbox-neu" checked="true" />
<label value="Uid"/>
<textbox id="student-io-detail-textbox-uid" disabled="true"/>
<label value="BisIO ID"/>
@@ -134,7 +125,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Von" control="student-io-textbox-von"/>
<hbox>
<textbox id="student-io-textbox-von" disabled="true" maxlength="9" size="9"/>
<textbox id="student-io-textbox-von" disabled="true" maxlength="10" size="10"/>
<spacer flex="1" />
</hbox>
</row>
@@ -153,7 +144,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#mobilitaetsprogramm_code"
label="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#mobilitaetsprogramm_kurzbz"
label="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
@@ -181,7 +172,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zweck/rdf#zweck_code"
label="rdf:http://www.technikum-wien.at/zweck/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zweck/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
+134 -20
View File
@@ -36,6 +36,8 @@ var StudentTreeLoadDataOnSelect=true; //Gib an ob beim Selectieren im Tree die D
var StudentBetriebsmittelTreeDatasource; //Datasource des BetriebsmittelTrees
var StudentBetriebsmittelSelectBetriebsmittel_id=null; //Betriebsmittelzurodnung die nach dem Refresh markiert werden soll
var StudentBetriebsmittelSelectPerson_id=null; //Betriebsmittelzurodnung die nach dem Refresh markiert werden soll
var StudentIOTreeDatasource; //Datasource des Incomming/Outgoing Trees
var StudentIOSelectID=null; //BISIO Eintrag der nach dem Refresh markiert werden soll
// ********** Observer und Listener ************* //
@@ -141,6 +143,41 @@ var StudentBetriebsmittelTreeListener =
window.setTimeout(StudentBetriebsmittelTreeSelectZuordnung,10);
}
};
// ****
// * Observer fuer BISIO Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var StudentIOTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('student-io-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var StudentIOTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(StudentIOTreeSelectID,10);
}
};
// ***************** KEY Events ************************* //
// ****
@@ -592,6 +629,7 @@ function StudentAuswahl()
StudentPrestudentDisableFields(false);
StudentKontoDisableFields(false);
StudentBetriebsmittelDisableFields(false);
StudentIODisableFields(false);
document.getElementById('student-detail-button-save').disabled=false;
}
else
@@ -834,6 +872,28 @@ function StudentAuswahl()
betriebsmitteltree.database.AddDataSource(StudentBetriebsmittelTreeDatasource);
StudentBetriebsmittelTreeDatasource.addXMLSinkObserver(StudentBetriebsmittelTreeSinkObserver);
betriebsmitteltree.builder.addListener(StudentBetriebsmittelTreeListener);
// *** Incomming/Outgoing ***
bisiotree = document.getElementById('student-io-tree');
url='<?php echo APP_ROOT;?>rdf/bisio.rdf.php?uid='+uid+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = bisiotree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
bisiotree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
bisiotree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentIOTreeDatasource = rdfService.GetDataSource(url);
StudentIOTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
StudentIOTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
bisiotree.database.AddDataSource(StudentIOTreeDatasource);
StudentIOTreeDatasource.addXMLSinkObserver(StudentIOTreeSinkObserver);
bisiotree.builder.addListener(StudentIOTreeListener);
}
// ****
@@ -1759,8 +1819,7 @@ function StudentIOAuswahl()
if (tree.currentIndex==-1) return;
StudentIODetailDisableFields(false);
document.getElementById('student-io-checkbox-neu').checked=false;
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["student-io-tree-bisio_id"] : "student-io-tree-bisio_id";
var bisio_id=tree.view.getCellText(tree.currentIndex,col);
@@ -1785,13 +1844,15 @@ function StudentIOAuswahl()
bis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bis" ));
zweck_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zweck_code" ));
student_uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#student_uid" ));
document.getElementById('student-io-menulist-mobilitaetsprogramm').value=mobilitaetsprogramm_code;
document.getElementById('student-io-menulist-nation_code').value=nation_code;
document.getElementById('student-io-menulist-nation').value=nation_code;
document.getElementById('student-io-textbox-von').value=von;
document.getElementById('student-io-textbox-bis').value=bis;
document.getElementById('student-io-menulist-zweck').value=zweck_code;
document.getElementById('student-io-textbox-uid').value=uid;
document.getElementById('student-io-detail-textbox-uid').value=student_uid;
document.getElementById('student-io-detail-checkbox-neu').checked=false;
document.getElementById('student-io-detail-textbox-bisio_id').value=bisio_id;
}
// ****
@@ -1812,8 +1873,8 @@ function StudentIODetailDisableFields(val)
document.getElementById('student-io-textbox-von').disabled=val;
document.getElementById('student-io-textbox-bis').disabled=val;
document.getElementById('student-io-menulist-mobilitaetsprogramm').disabled=val;
document.getElementById('student-io-menulist-nation_code').disabled=val;
document.getElementById('student-io-menulist-zweck_code').disabled=val;
document.getElementById('student-io-menulist-nation').disabled=val;
document.getElementById('student-io-menulist-zweck').disabled=val;
document.getElementById('student-io-button-speichern').disabled=val;
}
@@ -1822,10 +1883,10 @@ function StudentIODetailDisableFields(val)
// *****
function StudentIOResetFileds()
{
document.getElementByID('student-io-textbox-von').value='';
document.getElementById('student-io-textbox-von').value='';
document.getElementById('student-io-textbox-bis').value='';
document.getElementById('student-io-menulist-mobilitaetsprogramm').value='6';
document.getElementById('student-io-menulist-zweck').value='1';
document.getElementById('student-io-menulist-zweck').value='2';
document.getElementById('student-io-menulist-nation').value='A';
}
@@ -1841,25 +1902,25 @@ function StudentIODetailSpeichern()
mobilitaetsprogramm = document.getElementById('student-io-menulist-mobilitaetsprogramm').value;
nation_code = document.getElementById('student-io-menulist-nation').value;
zweck_code = document.getElementById('student-io-menulist-zweck').value;
uid = document.getElementById('student-io-textbox-uid').value;
neu = document.getElementById('student-io-checkbox-neu').checked;
bisio_id = document.getElementById('student-io-textbox-bisio_id').value;
uid = document.getElementById('student-io-detail-textbox-uid').value;
neu = document.getElementById('student-io-detail-checkbox-neu').checked;
bisio_id = document.getElementById('student-io-detail-textbox-bisio_id').value;
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'saveio');
req.add('type', 'savebisio');
if(neu)
if(neu==false)
req.add('bisio_id', bisio_id);
req.add('neu', neu);
req.add('von', von);
req.add('bis', bis);
req.add('mobilitaetsprogramm', mobilitaetsprogramm);
req.add('mobilitaetsprogramm_code', mobilitaetsprogramm);
req.add('nation_code', nation_code);
req.add('zweck_code', zweck_code);
req.add('uid', uid);
req.add('student_uid', uid);
var response = req.executePOST();
@@ -1874,7 +1935,10 @@ function StudentIODetailSpeichern()
}
else
{
StudentIOSelectID=bisio_id;
if(neu)
StudentIOSelectID=val.dbdml_data;
else
StudentIOSelectID=bisio_id;
StudentIOTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
@@ -1901,7 +1965,7 @@ function StudentIODelete()
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'deleteio');
req.add('type', 'deletebisio');
req.add('bisio_id', bisio_id);
@@ -1921,6 +1985,8 @@ function StudentIODelete()
StudentIOSelectID=bisio_id;
StudentIOTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden geloescht');
StudentIOResetFileds();
StudentIODetailDisableFields(true);
}
}
}
@@ -1934,7 +2000,55 @@ function StudentIONeu()
StudentIOResetFileds();
StudentIODetailDisableFields(false);
var now = new Date();
var jahr = now.getFullYear();
var monat = now.getMonth()+1;
if(monat<10)
monat='0'+monat;
var tag = now.getDate();
if(tag<10)
tag='0'+tag;
//UID ins Textfeld schreiben
document.getElementById('student-io-textbox-uid').value=document.getElementById('student-detail-textbox-uid').value;
document.getElementById('student-io-checkbox-neu').checked=true;
document.getElementById('student-io-detail-textbox-uid').value=document.getElementById('student-detail-textbox-uid').value;
document.getElementById('student-io-detail-checkbox-neu').checked=true;
document.getElementById('student-io-textbox-von').value=jahr+'-'+monat+'-'+tag;
document.getElementById('student-io-textbox-bis').value=jahr+'-'+monat+'-'+tag;
}
// ****
// * Selectiert den Incomming/Outgoing Eintrag nachdem der Tree
// * rebuildet wurde.
// ****
function StudentIOTreeSelectID()
{
var tree=document.getElementById('student-io-tree');
if(tree.view)
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
else
return false;
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(StudentIOSelectID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["student-io-tree-bisio_id"] : "student-io-tree-bisio_id";
var bisio_id=tree.view.getCellText(i,col);
//wenn dies die zu selektierende Zeile
if(bisio_id == StudentIOSelectID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
StudentIOSelectID=null;
return true;
}
}
}
}