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();
}
}