diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index 375818b48..bf0da34ae 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -503,6 +503,56 @@ function onVerbandSelect(event)
}
}
+// ****
+// * Wenn im Suchfeld Enter gedrueckt wird, dann die Suchfunktion starten
+// ****
+function LehrveranstaltungSearchFieldKeyPress(event)
+{
+ if(event.keyCode==13) //Enter
+ LehrveranstaltungSuche();
+}
+
+function LehrveranstaltungSuche()
+{
+ var filter = document.getElementById("lehrveranstaltung-toolbar-textbox-suche").value;
+ // Lehrveranstaltung
+ document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined');
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ try
+ {
+ url = 'rdf/lehrveranstaltung_einheiten.rdf.php?filter='+encodeURIComponent(filter)+'&'+gettimestamp();
+ var treeLV=document.getElementById('lehrveranstaltung-tree');
+
+ try
+ {
+ LvTreeDatasource.removeXMLSinkObserver(LvTreeSinkObserver);
+ treeLV.builder.removeListener(LvTreeListener);
+ }
+ catch(e)
+ {}
+
+ //Alte DS entfernen
+ var oldDatasources = treeLV.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ treeLV.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ LvTreeDatasource = rdfService.GetDataSource(url);
+ LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ treeLV.database.AddDataSource(LvTreeDatasource);
+ LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
+ treeLV.builder.addListener(LvTreeListener);
+ document.getElementById('lehrveranstaltung-toolbar-lehrauftrag').hidden=true;
+ }
+ catch(e)
+ {
+ debug(e);
+ }
+}
+
function onFachbereichSelect(event)
{
var tree=document.getElementById('tree-fachbereich');
diff --git a/content/lvplanung/lehrveranstaltungoverlay.xul.php b/content/lvplanung/lehrveranstaltungoverlay.xul.php
index 628f80747..a43b5ca33 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.xul.php
@@ -79,6 +79,8 @@ echo '
+
+
diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php
index 6f8e865b0..ff672dc8f 100644
--- a/rdf/lehrveranstaltung_einheiten.rdf.php
+++ b/rdf/lehrveranstaltung_einheiten.rdf.php
@@ -46,6 +46,7 @@ $uid=(isset($_GET['uid'])?$_GET['uid']:'');
$fachbereich_kurzbz=(isset($_GET['fachbereich_kurzbz'])?$_GET['fachbereich_kurzbz']:'');
$orgform=(isset($_GET['orgform'])?$_GET['orgform']:'');
$oe_kurzbz = (isset($_GET['oe_kurzbz'])?$_GET['oe_kurzbz']:'');
+$filter = (isset($_GET['filter'])?$_GET['filter']:'');
loadVariables($user);
@@ -167,6 +168,36 @@ elseif($oe_kurzbz!='') // Alle LVs einer Organisationseinheit
if(isset($sem) && $sem!='')
$qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($sem);
}
+elseif($filter != '')
+{
+ $additionalfilter = '';
+ if(is_numeric($filter))
+ {
+ $additionalfilter.= " OR lehrveranstaltung_id=".$db->db_add_param($filter)."
+ OR lehreinheit_id=".$db->db_add_param($filter);
+ }
+
+ $qry = "
+ SELECT
+ distinct on(lehrveranstaltung_id)
+ lv_studiengang_kz, lv_semester, lv_kurzbz, lv_bezeichnung, lv_ects,
+ lv_lehreverzeichnis, lv_planfaktor, lv_planlektoren, lv_planpersonalkosten,
+ lv_plankostenprolektor, lv_orgform_kurzbz, lehrveranstaltung_id,
+ lehrform_kurzbz, lv_lehrform_kurzbz, lv_bezeichnung_english, studiengang_kz, semester, anmerkung, sprache, semesterstunden,
+ lehre, aktiv,
+ '' as studienplan_id, '' as studienplan_bezeichnung,
+ (SELECT lehrtyp_kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=vw_lehreinheit.lehrveranstaltung_id) as lehrtyp_kurzbz
+ FROM
+ campus.vw_lehreinheit
+ WHERE
+ studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
+ AND
+ (lower(lv_bezeichnung) like '%".$db->db_escape(mb_strtolower($filter))."%'
+ OR lower(lv_bezeichnung_english) like '%".$db->db_escape(mb_strtolower($filter))."%'
+ $additionalfilter
+ )
+ ";
+}
else
{
if($sem=='')