Filter für Lehrende in FAS und Tempus

This commit is contained in:
Manfred
2022-03-16 16:13:47 +01:00
parent 334460a230
commit a08c8d7a76
5 changed files with 124 additions and 46 deletions
+1 -1
View File
@@ -903,7 +903,7 @@ foreach($addon_obj->result as $addon)
echo '<tree id="tree-verband" />'; echo '<tree id="tree-verband" />';
//echo '<vbox id="vbox-fachbereich" />'; //echo '<vbox id="vbox-fachbereich" />';
echo '<vbox id="vbox-organisationseinheit" />'; echo '<vbox id="vbox-organisationseinheit" />';
echo '<tree id="tree-lektor" />'; echo '<vbox id="vbox-lektor" />';
} }
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter')) if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter'))
{ {
+56
View File
@@ -741,6 +741,10 @@ function onLektorSelect(event)
var uid=tree.view.getCellText(tree.currentIndex,col); var uid=tree.view.getCellText(tree.currentIndex,col);
var stg_idx = tree.view.getParentIndex(tree.currentIndex); var stg_idx = tree.view.getParentIndex(tree.currentIndex);
//Wenn der Filter angewendet wurde, gibt es keinen Parent. Daher wird hier der stg_idx auf 0 gesetzt.
if(stg_idx == -1 && uid != '')
stg_idx = 0;
//wenn direkt ein studiengang markiert wurde dann abbrechen //wenn direkt ein studiengang markiert wurde dann abbrechen
if(stg_idx==-1) if(stg_idx==-1)
return; return;
@@ -789,6 +793,58 @@ function onLektorSelect(event)
} }
} }
// Lektorenliste aktualisieren
function onLektorRefresh()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var treeLektorenTree=document.getElementById('tree-lektor');
// Input-Feld leeren
document.getElementById('fas-lektor-filter').value = '';
var url = '<?php echo APP_ROOT; ?>rdf/mitarbeiter.rdf.php?user=true&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
var oldDatasources = treeLektorenTree.database.GetDataSources();
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeLektorenTree.database.RemoveDataSource(oldDatasources.getNext());
treeLektorenTree.database.AddDataSource(datasource);
treeLektorenTree.builder.rebuild();
}
// Lektorenliste filtern
function onLektorFilter()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var filter=document.getElementById('fas-lektor-filter').value;
var treeLektorenTree=document.getElementById('tree-lektor');
if(filter.length>2)
{
var url = '<?php echo APP_ROOT; ?>rdf/mitarbeiter.rdf.php?filter='+encodeURIComponent(filter)+'&'+gettimestamp();
var oldDatasources = treeLektorenTree.database.GetDataSources();
//Refresh damit die entfernten DS auch wirklich entfernt werden
treeLektorenTree.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);
treeLektorenTree.database.RemoveDataSource(oldDatasources.getNext());
treeLektorenTree.database.AddDataSource(datasource);
if(typeof(filter)!='undefined')
treeLektorenTree.builder.rebuild();
treeLektorenTree.builder.addListener(LektorTreeListener);
}
}
function loadURL(event) function loadURL(event)
{ {
var contentFrame = document.getElementById('contentFrame'); var contentFrame = document.getElementById('contentFrame');
+61 -45
View File
@@ -133,52 +133,68 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiteroverlay.xul
</tree> </tree>
</vbox> </vbox>
<tree id="tree-lektor" onmouseup="onLektorSelect(event);" <vbox id="vbox-lektor">
seltype="multi" hidecolumnpicker="false" flex="1" <hbox>
enableColumnDrag="true" <!-- <spacer flex="1" />-->
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);" <toolbox>
ondrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)" <toolbar id="toolbarLektorTreeFilter" tbautostretch="always" persist="collapsed">
ondragdrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)" <toolbarbutton id="toolbarbuttonLektorTreeRefresh"
ondragover="nsDragAndDrop.dragOver(event,LektorFunktionDDObserver)" image="../skin/images/refresh.png"
ondragenter="nsDragAndDrop.dragEnter(event,LektorFunktionDDObserver)" oncommand="onLektorRefresh();"
ondragexit="nsDragAndDrop.dragExit(event,LektorFunktionDDObserver)" tooltiptext="Neu laden"
datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/liste" />
context="fasoverlay-lektor-tree-popup" <textbox id="fas-lektor-filter" size="30" oninput="onLektorFilter()" flex="1"/>
> </toolbar>
<treecols> </toolbox>
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" /> <!-- <spacer flex="1" />-->
<splitter class="tree-splitter"/> </hbox>
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/> <tree id="tree-lektor" onmouseup="onLektorSelect(event);"
<splitter class="tree-splitter"/> seltype="multi" hidecolumnpicker="false" flex="1"
<treecol id="vorname" label="Vorname" flex="2" hidden="true"/> enableColumnDrag="true"
<splitter class="tree-splitter"/> ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
<treecol id="titel" label="Titel" flex="1" hidden="true"/> ondrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
<splitter class="tree-splitter"/> ondragdrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
<treecol id="uid" label="UID" flex="1" hidden="true"/> ondragover="nsDragAndDrop.dragOver(event,LektorFunktionDDObserver)"
<splitter class="tree-splitter"/> ondragenter="nsDragAndDrop.dragEnter(event,LektorFunktionDDObserver)"
<treecol id="studiengang_kz" label="Studiengangkz" flex="1" hidden="true"/> ondragexit="nsDragAndDrop.dragExit(event,LektorFunktionDDObserver)"
<splitter class="tree-splitter"/> datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/liste"
<treecol id="tree-lektor-fixangestellt" label="Fixangestellt" flex="1" hidden="true"/> context="fasoverlay-lektor-tree-popup"
</treecols> >
<treecols>
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" />
<splitter class="tree-splitter"/>
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="vorname" label="Vorname" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="titel" label="Titel" flex="1" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="uid" label="UID" flex="1" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="studiengang_kz" label="Studiengangkz" flex="1" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="tree-lektor-fixangestellt" label="Fixangestellt" flex="1" hidden="true"/>
</treecols>
<template> <template>
<rule> <rule>
<treechildren> <treechildren>
<treeitem uri="rdf:*"> <treeitem uri="rdf:*">
<treerow> <treerow>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#studiengang_kz"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#studiengang_kz"/>
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt"/> <treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt"/>
</treerow> </treerow>
</treeitem> </treeitem>
</treechildren> </treechildren>
</rule> </rule>
</template> </template>
</tree> </tree>
</vbox>
<tree id="tree-menu-mitarbeiter" onselect="onMitarbeiterSelect();" <tree id="tree-menu-mitarbeiter" onselect="onMitarbeiterSelect();"
seltype="single" hidecolumnpicker="true" flex="1" seltype="single" hidecolumnpicker="true" flex="1"
+4
View File
@@ -284,6 +284,10 @@ function onLektorSelect(event)
var stg_idx = tree.view.getParentIndex(tree.currentIndex); var stg_idx = tree.view.getParentIndex(tree.currentIndex);
var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz"; var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz";
//Wenn der Filter angewendet wurde, gibt es keinen Parent. Daher wird hier der stg_idx auf 0 gesetzt.
if(stg_idx == -1 && uid != '')
stg_idx = 0;
if (stg_idx != -1) if (stg_idx != -1)
var stg_kz=tree.view.getCellText(stg_idx,col); var stg_kz=tree.view.getCellText(stg_idx,col);
else else
+2
View File
@@ -849,6 +849,8 @@ class mitarbeiter extends benutzer
$obj->titelpost = $row->titelpost; $obj->titelpost = $row->titelpost;
$obj->kurzbz = $row->kurzbz; $obj->kurzbz = $row->kurzbz;
$obj->vornamen = $row->vornamen; $obj->vornamen = $row->vornamen;
$obj->aktiv =$this->db_parse_bool($row->aktiv);
$obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
$this->result[] = $obj; $this->result[] = $obj;
} }