, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); $user = get_uid(); loadVariables($user); ?> // ********** GLOBALE VARIABLEN ********** // var AdressenTreeDatasource=''; // Datasource des Adressen Trees var KontaktAdresseSelectID=null; // ID der Adresse die nach dem Rebuild markiert werden soll var KontaktTreeDatasource=''; // Datasource des Kontakt Trees var KontaktKontaktSelectID=null; // ID des Kontaktes der nach dem Rebuild markiert werden soll var BankverbindungTreeDatasource=''; // Datasource des Bankverbindung Trees var KontaktBankverbindungSelectID=null; // ID der Bankverbindung die nach dem Rebuild markiert werden soll var KontaktPerson_id=null; // ********** LISTENER UND OBSERVER ********** // // **** // * Observer fuer Adressen Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var KontaktAdressenTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('kontakt-adressen-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var KontaktAdressenTreeListener = { 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(KontaktAdressenTreeSelectID,10); } }; // **** // * Observer fuer Kontakt Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var KontaktKontaktTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('kontakt-kontakt-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var KontaktKontaktTreeListener = { 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(KontaktKontaktTreeSelectID,10); } }; // **** // * Observer fuer Bankverbindung Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var KontaktBankverbindungTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('kontakt-bankverbindung-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var KontaktBankverbindungTreeListener = { 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(KontaktBankverbindungTreeSelectID,10); } }; // ********** FUNKTIONEN ********** // // **** // * Laedt die Trees // **** function loadKontakte(person_id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); KontaktPerson_id=person_id; //Adressen laden url = "rdf/adresse.rdf.php?person_id="+person_id+"&"+gettimestamp(); var treeAdressen=document.getElementById('kontakt-adressen-tree'); try { AdressenTreeDatasource.removeXMLSinkObserver(KontaktAdressenTreeSinkObserver); treeAdressen.builder.removeListener(KontaktAdressenTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = treeAdressen.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { treeAdressen.database.RemoveDataSource(oldDatasources.getNext()); } var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); AdressenTreeDatasource = rdfService.GetDataSource(url); AdressenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); AdressenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeAdressen.database.AddDataSource(AdressenTreeDatasource); AdressenTreeDatasource.addXMLSinkObserver(KontaktAdressenTreeSinkObserver); treeAdressen.builder.addListener(KontaktAdressenTreeListener); //Kontakte laden url = "rdf/kontakt.rdf.php?person_id="+person_id+"&"+gettimestamp(); var treeKontakt=document.getElementById('kontakt-kontakt-tree'); try { KontaktTreeDatasource.removeXMLSinkObserver(KontaktKontaktTreeSinkObserver); treeKontakt.builder.removeListener(KontaktKontaktTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = treeKontakt.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { treeKontakt.database.RemoveDataSource(oldDatasources.getNext()); } var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); KontaktTreeDatasource = rdfService.GetDataSource(url); KontaktTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); KontaktTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeKontakt.database.AddDataSource(KontaktTreeDatasource); KontaktTreeDatasource.addXMLSinkObserver(KontaktKontaktTreeSinkObserver); treeKontakt.builder.addListener(KontaktKontaktTreeListener); //Bankverbindungen laden url = "rdf/bankverbindung.rdf.php?person_id="+person_id+"&"+gettimestamp(); var treeBankverbindung=document.getElementById('kontakt-bankverbindung-tree'); try { BankverbindungTreeDatasource.removeXMLSinkObserver(KontaktBankverbindungTreeSinkObserver); treeBankverbindung.builder.removeListener(KontaktBankverbindungTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = treeBankverbindung.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { treeBankverbindung.database.RemoveDataSource(oldDatasources.getNext()); } var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); BankverbindungTreeDatasource = rdfService.GetDataSource(url); BankverbindungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); BankverbindungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeBankverbindung.database.AddDataSource(BankverbindungTreeDatasource); BankverbindungTreeDatasource.addXMLSinkObserver(KontaktBankverbindungTreeSinkObserver); treeBankverbindung.builder.addListener(KontaktBankverbindungTreeListener); } // ********** ADRESSEN ********** // // **** // * Selectiert eine Adresse nachdem der Tree // * rebuildet wurde. // **** function KontaktAdressenTreeSelectID() { var tree=document.getElementById('kontakt-adressen-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende Adresse gespeichert if(KontaktAdresseSelectID!=null) { for(var i=0;icontent/adressedialog.xul.php?person_id="+KontaktPerson_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * Bearbeiten Dialog oeffnen // **** function KontaktAdresseBearbeiten() { tree = document.getElementById('kontakt-adressen-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-adressen-treecol-adresse_id"] : "kontakt-adressen-treecol-adresse_id"; var adresse_id=tree.view.getCellText(tree.currentIndex,col); window.open("content/adressedialog.xul.php?adresse_id="+adresse_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * markierten Datensatz loeschen // **** function KontaktAdresseDelete() { tree = document.getElementById('kontakt-adressen-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-adressen-treecol-adresse_id"] : "kontakt-adressen-treecol-adresse_id"; var adresse_id=tree.view.getCellText(tree.currentIndex,col); //Bei Mitarbeitern wird kein Studiengang mitgeschickt if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) studiengang_kz=''; else studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(confirm('Diese Adresse wirklich loeschen?')) { var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'adressedelete'); req.add('adresse_id', adresse_id); req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) return false; } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); AdressenTreeDatasource.Refresh(false); return true; } } } // **** // * Beim Sortieren des Trees wird der markierte Eintrag gespeichert und nach dem sortieren // * wieder markiert. // **** function KontaktAdresseTreeSort() { var i; var tree=document.getElementById('kontakt-adressen-tree'); if(tree.currentIndex>=0) i = tree.currentIndex; else i = 0; col = tree.columns ? tree.columns["kontakt-adressen-treecol-adresse_id"] : "kontakt-adressen-treecol-adresse_id"; KontaktAdresseSelectID = tree.view.getCellText(i,col); window.setTimeout("KontaktAdressenTreeSelectID()",10); } // ********** KONTAKTE ********** // // **** // * Selectiert einen Kontakt nachdem der Tree // * rebuildet wurde. // **** function KontaktKontaktTreeSelectID() { var tree=document.getElementById('kontakt-kontakt-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende Bankverbindung gespeichert if(KontaktKontaktSelectID!=null) { for(var i=0;icontent/kontaktdialog.xul.php?person_id="+KontaktPerson_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * Bearbeiten Dialog anzeigen // **** function KontaktKontaktBearbeiten() { tree = document.getElementById('kontakt-kontakt-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-kontakt-treecol-kontakt_id"] : "kontakt-kontakt-treecol-kontakt_id"; var kontakt_id=tree.view.getCellText(tree.currentIndex,col); window.open("content/kontaktdialog.xul.php?kontakt_id="+kontakt_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * markierten Datensatz loeschen // **** function KontaktKontaktDelete() { tree = document.getElementById('kontakt-kontakt-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-kontakt-treecol-kontakt_id"] : "kontakt-kontakt-treecol-kontakt_id"; var kontakt_id=tree.view.getCellText(tree.currentIndex,col); //Bei Mitarbeitern wird kein Studiengang mitgeschickt if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) studiengang_kz=''; else studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(confirm('Diesen Kontakt wirklich loeschen?')) { var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'kontaktdelete'); req.add('kontakt_id', kontakt_id); req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) return false; } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); KontaktTreeDatasource.Refresh(false); return true; } } } // **** // * Beim Sortieren des Trees wird der markierte Eintrag gespeichert und nach dem sortieren // * wieder markiert. // **** function KontaktKontaktTreeSort() { var i; var tree=document.getElementById('kontakt-kontakt-tree'); if(tree.currentIndex>=0) i = tree.currentIndex; else i = 0; col = tree.columns ? tree.columns["kontakt-kontakt-treecol-kontakt_id"] : "kontakt-kontakt-treecol-kontakt_id"; KontaktKontaktSelectID = tree.view.getCellText(i,col); window.setTimeout("KontaktKontaktTreeSelectID()",10); } // ********** BANKVERBINDUNG ********** // // **** // * Selectiert eine Bankverbindung nachdem der Tree // * rebuildet wurde. // **** function KontaktBankverbindungTreeSelectID() { var tree=document.getElementById('kontakt-bankverbindung-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende Bankverbindung gespeichert if(KontaktBankverbindungSelectID!=null) { for(var i=0;icontent/bankverbindungdialog.xul.php?person_id="+KontaktPerson_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * Bearbeiten Dialog anzeigen // **** function KontaktBankverbindungBearbeiten() { tree = document.getElementById('kontakt-bankverbindung-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-bankverbindung-treecol-bankverbindung_id"] : "kontakt-bankverbindung-treecol-bankverbindung_id"; var bankverbindung_id=tree.view.getCellText(tree.currentIndex,col); window.open("content/bankverbindungdialog.xul.php?bankverbindung_id="+bankverbindung_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); } // **** // * markierten Datensatz loeschen // **** function KontaktBankverbindungDelete() { tree = document.getElementById('kontakt-bankverbindung-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-bankverbindung-treecol-bankverbindung_id"] : "kontakt-bankverbindung-treecol-bankverbindung_id"; var bankverbindung_id=tree.view.getCellText(tree.currentIndex,col); //Bei Mitarbeitern wird kein Studiengang mitgeschickt if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) studiengang_kz=''; else studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(confirm('Diese Bankverbindung wirklich loeschen?')) { var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'bankverbindungdelete'); req.add('bankverbindung_id', bankverbindung_id); req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) return false; } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); BankverbindungTreeDatasource.Refresh(false); return true; } } } // **** // * Beim Sortieren des Trees wird der markierte Eintrag gespeichert und nach dem sortieren // * wieder markiert. // **** function KontaktBankverbindungTreeSort() { var i; var tree=document.getElementById('kontakt-bankverbindung-tree'); if(tree.currentIndex>=0) i = tree.currentIndex; else i = 0; col = tree.columns ? tree.columns["kontakt-bankverbindung-treecol-bankverbindung_id"] : "kontakt-bankverbindung-treecol-bankverbindung_id"; KontaktBankverbindungSelectID = tree.view.getCellText(i,col); window.setTimeout("KontaktBankverbindungTreeSelectID()",10); }