AutoComplete für Gruppenbezeichnung hinzugefügt

This commit is contained in:
Nikolaus Krondraf
2014-11-14 08:02:37 +00:00
parent 94ad88d922
commit f31293ef45
3 changed files with 99 additions and 22 deletions
@@ -416,7 +416,18 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rows>
<row>
<label value="Gruppe" />
<textbox id="lehrveranstaltung-lvangebot-textbox-gruppe" tooltiptext=""/>
<menulist id="lehrveranstaltung-lvangebot-textbox-gruppe"
editable="true" datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/gruppen/liste"
oninput="LvAngebotGruppenLoad(this)">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/gruppen/rdf#gruppe_kurzbz"
label="rdf:http://www.technikum-wien.at/gruppen/rdf#gruppe_kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<checkbox label="Neue Gruppe anlegen" id="lehrveranstaltung-lvangebot-checkbox-gruppe" onclick="ToggleGruppe();"/>
@@ -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 = '<?php echo APP_ROOT; ?>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();
}
}
+47 -21
View File
@@ -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 '
<RDF:Seq about="'.$rdf_url.'/liste">
';
$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 '
<RDF:li>
<RDF:Description id="'.$row->uid.'/'.$row->gruppe_kurzbz.'" about="'.$rdf_url.'/'.$row->uid.'/'.$row->gruppe_kurzbz.'" >
<GRP:gruppe_kurzbz><![CDATA['.$row->gruppe_kurzbz.']]></GRP:gruppe_kurzbz>
<GRP:bezeichnung><![CDATA['.$row->bezeichnung.']]></GRP:bezeichnung>
<GRP:generiert><![CDATA['.($row->generiert=='t'?'Ja':'Nein').']]></GRP:generiert>
<GRP:uid><![CDATA['.$row->uid.']]></GRP:uid>
<GRP:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></GRP:studiensemester_kurzbz>
</RDF:Description>
</RDF:li>
';
if($filter)
{
echo '
<RDF:li>
<RDF:Description id="'.$row->gruppe_kurzbz.'" about="'.$rdf_url.'/'.$row->gruppe_kurzbz.'" >
<GRP:gruppe_kurzbz><![CDATA['.$row->gruppe_kurzbz.']]></GRP:gruppe_kurzbz>
<GRP:bezeichnung><![CDATA['.$row->bezeichnung.']]></GRP:bezeichnung>
<GRP:generiert><![CDATA['.($row->generiert=='t'?'Ja':'Nein').']]></GRP:generiert>
</RDF:Description>
</RDF:li>
';
}
else
{
echo '
<RDF:li>
<RDF:Description id="'.$row->uid.'/'.$row->gruppe_kurzbz.'" about="'.$rdf_url.'/'.$row->uid.'/'.$row->gruppe_kurzbz.'" >
<GRP:gruppe_kurzbz><![CDATA['.$row->gruppe_kurzbz.']]></GRP:gruppe_kurzbz>
<GRP:bezeichnung><![CDATA['.$row->bezeichnung.']]></GRP:bezeichnung>
<GRP:generiert><![CDATA['.($row->generiert=='t'?'Ja':'Nein').']]></GRP:generiert>
<GRP:uid><![CDATA['.$row->uid.']]></GRP:uid>
<GRP:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></GRP:studiensemester_kurzbz>
</RDF:Description>
</RDF:li>
';
}
}
}
?>