Merge branch 'issue-3823/Lehrveranstaltungssuche'

This commit is contained in:
Andreas Österreicher
2019-06-27 17:55:54 +02:00
3 changed files with 83 additions and 0 deletions
+50
View File
@@ -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 = '<?php echo APP_ROOT; ?>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');
@@ -79,6 +79,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<menuitem id="lehrveranstaltung-toolbar-filter-ausbildungssemester-10" type="radio" label="10. Semester" oncommand="FilterLehrveranstaltungAusbsem('10')" disabled="false"/>
</menupopup>
</toolbarbutton>
<textbox id="lehrveranstaltung-toolbar-textbox-suche" control="lehrveranstaltung-toolbar-button-search" onkeypress="LehrveranstaltungSearchFieldKeyPress(event)" style="width: 300px" />
<button id="lehrveranstaltung-toolbar-button-search" oncommand="LehrveranstaltungSuche()" label="Suchen"/>
<spacer flex="1" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Aufklappen" tooltiptext="Klappt die Untermenüs auf - mehrmaliges klicken möglich um weiter aufzuklappen" oncommand="LvTreeOpenAllSubtrees()" disabled="false" image="../skin/images/tree-diagramm.png" />
</toolbar>
+31
View File
@@ -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=='')