diff --git a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php index 20427b570..f71e72c27 100644 --- a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php @@ -416,7 +416,18 @@ echo ''; diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index 1144e692a..98b813627 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1894,4 +1894,44 @@ function ToggleGruppe() else document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').disabled = false; } + +// **** +// * Laedt dynamisch die Gruppen fuer das DropDown Menue +// * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden +// **** +function LvAngebotGruppenLoad(menulist, filter) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + if(typeof(filter) == 'undefined') + v = menulist.value; + else + v = filter; + + if(v.length > 2) + { + var url = 'rdf/gruppen.rdf.php?filter=' + encodeURIComponent(v) + '&' + gettimestamp(); + + var oldDatasources = menulist.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulist.database.RemoveDataSource(oldDatasources.getNext()); + } + + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulist.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + if(typeof(filter) == 'undefined') + var datasource = rdfService.GetDataSource(url); + else + var datasource = rdfService.GetDataSourceBlocking(url); + + datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + menulist.database.AddDataSource(datasource); + if(typeof(filter) != 'undefined') + menulist.builder.rebuild(); + } +} \ No newline at end of file diff --git a/rdf/gruppen.rdf.php b/rdf/gruppen.rdf.php index 637c660be..6e74e06f9 100644 --- a/rdf/gruppen.rdf.php +++ b/rdf/gruppen.rdf.php @@ -33,15 +33,23 @@ require_once('../config/vilesci.config.inc.php'); require_once('../include/datum.class.php'); require_once('../include/basis_db.class.php'); -if(isset($_GET['uid'])) - $uid = $_GET['uid']; -else - die('uid muss uebergeben werden'); - -if(isset($_GET['studiensemester_kurzbz'])) - $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; +$filter = null; +if(isset($_GET['filter'])) +{ + $filter = strtolower($_GET['filter']); +} else - die('studiensemester_kurzbz muss uebergeben werden'); +{ + if(isset($_GET['uid'])) + $uid = $_GET['uid']; + else + die('uid muss uebergeben werden'); + + if(isset($_GET['studiensemester_kurzbz'])) + $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; + else + die('studiensemester_kurzbz muss uebergeben werden'); +} $datum = new datum(); @@ -57,25 +65,43 @@ echo ' '; -$qry = "SELECT * FROM public.tbl_benutzergruppe JOIN tbl_gruppe using(gruppe_kurzbz) WHERE uid='".addslashes($uid)."' AND (studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' OR studiensemester_kurzbz is null)"; +if($filter) + $qry = "SELECT * FROM tbl_gruppe WHERE LOWER(gruppe_kurzbz) LIKE '%" . $filter . "%'"; +else + $qry = "SELECT * FROM public.tbl_benutzergruppe JOIN tbl_gruppe using(gruppe_kurzbz) WHERE uid='".addslashes($uid)."' AND (studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' OR studiensemester_kurzbz is null)"; + $db = new basis_db(); if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { - - echo ' - - - gruppe_kurzbz.']]> - bezeichnung.']]> - generiert=='t'?'Ja':'Nein').']]> - uid.']]> - studiensemester_kurzbz.']]> - - - '; + if($filter) + { + echo ' + + + gruppe_kurzbz.']]> + bezeichnung.']]> + generiert=='t'?'Ja':'Nein').']]> + + + '; + } + else + { + echo ' + + + gruppe_kurzbz.']]> + bezeichnung.']]> + generiert=='t'?'Ja':'Nein').']]> + uid.']]> + studiensemester_kurzbz.']]> + + + '; + } } } ?>