Filter im Tempus nach Vertragsstatus hinzugefügt

This commit is contained in:
Andreas Österreicher
2019-11-27 18:18:44 +01:00
parent 9e6af6579f
commit ff6b7a024d
4 changed files with 165 additions and 54 deletions
+87 -48
View File
@@ -41,11 +41,11 @@ function onLVAFilter()
var filter=document.getElementById('tempus-lva-filter').value;
var vorher='';
var nachher='';
// LVAs
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
var orig=datasources.substring(0);
var idx = datasources.indexOf("&filter=")
if(idx!=-1)
@@ -56,13 +56,14 @@ function onLVAFilter()
nachher=datasources.slice(idx2);
datasources=vorher+nachher;
}
datasources=datasources+"&filter="+encodeURIComponent(filter);
//alert('Orig:'+orig+' Source: '+datasources+' Vorher:'+vorher+' Nachher:'+nachher);
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
}
// LVA-Panel aktualisieren
function onLektorRefresh()
{
@@ -121,7 +122,7 @@ function LehrstundeGetSortOrder()
{
var toolbar = document.getElementById('toolbarTimeTableSort');
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
for each(var button in tbbuttons)
{
if(button.getAttribute('checked')=='true')
@@ -132,17 +133,17 @@ function LehrstundeGetSortOrder()
return 'stundenDESC';
}
// LVA-Panel filtern
function onLVASort(item)
// LVA-Panel auf Vertragsstatus filtern
function onLVAFilterVertrag(item)
{
var vorher='';
var nachher='';
var order=item.getAttribute('value');
var vertragsstatus=item.getAttribute('value');
//Sortiermarkierung von allen entfernen
var toolbar = document.getElementById('toolbarTimeTableSort');
var toolbar = document.getElementById('toolbarTimeTableFilterVertrag');
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
for each(var button in tbbuttons)
{
if(button.id)
@@ -150,11 +151,49 @@ function onLVASort(item)
}
//Element als gedrueckt markieren
item.setAttribute('checked','true');
// LVAs
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
var orig=datasources.substring(0);
var idx = datasources.indexOf("&vertrag=")
if(idx!=-1)
{
idx2=datasources.indexOf("&",idx+10);
vorher=datasources.slice(0,idx);
if(idx2!=-1)
nachher=datasources.slice(idx2);
datasources=vorher+nachher;
}
datasources=datasources+"&vertrag="+encodeURIComponent(vertragsstatus);
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
}
// LVA-Panel filtern
function onLVASort(item)
{
var vorher='';
var nachher='';
var order=item.getAttribute('value');
//Sortiermarkierung von allen entfernen
var toolbar = document.getElementById('toolbarTimeTableSort');
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
for each(var button in tbbuttons)
{
if(button.id)
button.setAttribute('checked','false');
}
//Element als gedrueckt markieren
item.setAttribute('checked','true');
// LVAs
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
var orig=datasources.substring(0);
var idx = datasources.indexOf("&order=")
if(idx!=-1)
@@ -165,9 +204,9 @@ function onLVASort(item)
nachher=datasources.slice(idx2);
datasources=vorher+nachher;
}
datasources=datasources+"&order="+encodeURIComponent(order);
//alert('Orig:'+orig+' Source: '+datasources+' Vorher:'+vorher+' Nachher:'+nachher);
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
}
@@ -301,7 +340,7 @@ function StplSearchRoom(target)
saveScrollPositionTimeTableWeek();
if(typeof(target)==='undefined')
target = document.popupNode;
var contentFrame=document.getElementById('iframeTimeTableWeek');
var daten=document.getElementById('TimeTableWeekData');
var datum=parseInt(daten.getAttribute("datum"));
@@ -316,7 +355,7 @@ function StplSearchRoom(target)
var aktion=target.getAttribute("aktion");
aktion+="_single_search";
var idList=target.getAttribute("idList");
var attributes="\n?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&gruppe="+gruppe;
attributes+=idList+"&aktion="+aktion;
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
@@ -336,7 +375,7 @@ function TimeTableWeekMarkiere(item)
if(!item)
{
items = document.getElementsByTagName('button');
for each(var button in items)
{
if(button.id && button.id.startsWith('buttonSTPL'))
@@ -346,7 +385,7 @@ function TimeTableWeekMarkiere(item)
//button.style.fontStyle='normal';
//button.style.fontWeight='normal';
button.style.border = "1px solid transparent";
button.style.MozBorderTopColors='transparent';
button.style.MozBorderLeftColors='transparent';
button.style.MozBorderBottomColors='transparent';
@@ -358,19 +397,19 @@ function TimeTableWeekMarkiere(item)
else
{
item.setAttribute('marked','true');
item.style.color='darkred';
//item.style.fontStyle='italic';
//item.style.fontWeight='bold';
item.style.border = "1px solid darkred";
item.style.MozBorderTopColors='darkred';
item.style.MozBorderLeftColors='darkred';
item.style.MozBorderBottomColors='darkred';
item.style.MozBorderRightColors='darkred';
TimeTableWeekLastMarkedItem=item;
TimeTableWeekLastMarkedItem=item;
}
}
@@ -463,7 +502,7 @@ function TimeTableWeekClick(event)
}
else if(event.shiftKey)
{
//Wenn mit Shift auf eine Stunde geklickt wird, dann werden alle Stunden markiert,
//Wenn mit Shift auf eine Stunde geklickt wird, dann werden alle Stunden markiert,
//die zwischen der zuletzt markierten und dieser Stunde liegen
start = parseInt(TimeTableWeekLastMarkedItem.id.substring('buttonSTPL'.length));
ende = parseInt(event.target.id.substring('buttonSTPL'.length));
@@ -473,7 +512,7 @@ function TimeTableWeekClick(event)
ende = start;
start = hlp;
}
for(var i=start;i<=ende;i++)
{
item = document.getElementById('buttonSTPL'+i);
@@ -482,13 +521,13 @@ function TimeTableWeekClick(event)
}
else
{
//alle markierungen entfernen
TimeTableWeekMarkiere();
//aktuellen Eintrag markieren
TimeTableWeekMarkiere(event.target);
//Details anzeigen
onStplDetail(event);
}
@@ -510,7 +549,7 @@ function TimeTableWeekDblClick(event)
{
buttonunr=button.getAttribute('unr');
buttonwochentag=button.getAttribute('wochentag');
if(buttonunr==unr && buttonwochentag==wochentag)
{
TimeTableWeekMarkiere(button);
@@ -597,7 +636,7 @@ function STPLDetailSave(dialog)
}
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'savestundenplaneintrag');
req.add('stundenplan_id', id);
@@ -614,7 +653,7 @@ function STPLDetailSave(dialog)
req.add('fix', fix);
req.add('mitarbeiter_uid', mitarbeiter_uid);
req.add('semester',semester);
var response = req.executePOST();
var val = new ParseReturnValue(response)
@@ -630,14 +669,14 @@ function STPLDetailSave(dialog)
else
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
return true;
}
}
// ****
@@ -647,7 +686,7 @@ function STPLDetailDelete()
{
//alert('url'+STPLlastDetailUrl);
//return false;
tree = document.getElementById('treeStplDetails');
if(tree.currentIndex==-1)
{
@@ -657,15 +696,15 @@ function STPLDetailDelete()
var col = tree.columns ? tree.columns["stundenplan_id"] : "stundenplan_id";
var stundenplanid = tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["stpl-details-overlay-lehrstunde-reservierung"] : "stpl-details-overlay-lehrstunde-reservierung";
var reservierung = tree.view.getCellText(tree.currentIndex,col);
if(confirm('Wollen Sie diesen Datensatz wirklich loeschen?'))
{
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
var req = new phpRequest(url,'','');
if(reservierung=='true')
{
req.add('type', 'deletereservierung');
@@ -676,11 +715,11 @@ function STPLDetailDelete()
req.add('type', 'deletestundenplaneintrag');
req.add('stundenplan_id', stundenplanid);
}
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
@@ -691,7 +730,7 @@ function STPLDetailDelete()
else
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
@@ -758,18 +797,18 @@ function TimetableDeleteEntries()
var pers_uid=daten.getAttribute("pers_uid");
var doIt=true;
var aktion='stpl_delete_single';
doIt=confirm('Es werden die gewaehlten Eintraege aus dem LV-Plan geloescht!\nSind Sie sicher?')
var attributes="\n?type="+type+"&datum="+datum+"&ort="+encodeURIComponent(ort)+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&gruppe="+gruppe;
attributes+="&aktion="+aktion;
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
url+=attributes;
//IDs der Stunden dazuhaengen
idList = TimeTableWeekGetMarkedIdList();
url+=idList
if (url && doIt)
location.href=url;
}
@@ -795,7 +834,7 @@ function BetriebsmittelZuordnen(item)
{
for(i in stunden)
url = url+'&stunde[]='+stunden[i];
// Alle StundenplanIDs holen von den Eintraegen die markiert sind
var ids = TimeTableWeekGetMarkedIdArray();
for(i in ids)
@@ -805,7 +844,7 @@ function BetriebsmittelZuordnen(item)
{
// Wenn kein eintrag markiert ist, wird der genommen auf den geklickt wurde
url = url+'&stunde[]'+item.getAttribute('stunde');
idlist = item.getAttribute('idList');
idarr = idlist.split(/&stundenplan_id[0-9]=/);
for(i in idarr)
@@ -815,6 +854,6 @@ function BetriebsmittelZuordnen(item)
url = url+'&stplid[]'+idarr[i];
}
}
}
window.open(url,'Details', 'height=350,width=800,left=100,top=100,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
+29 -2
View File
@@ -110,7 +110,35 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
/>
<textbox id="tempus-lva-filter" size="10" oninput="onLVAFilter()" flex="1"/>
</toolbar>
<toolbar id="toolbarTimeTableFilterVertrag" tbautostretch="always" persist="collapsed">
<toolbarbutton
image="../public/images/icons/fa-user-clock.png"
label="Alle"
class="timetablefilter-vertrag"
oncommand="onLVAFilterVertrag(this);"
value=""
id="toolbarTimeTableFilter-alle"
tooltiptext="Filter Status Alle"
/>
<toolbarbutton
image="../public/images/icons/fa-user-tag.png"
label="Bestellt"
class="timetablefilter-vertrag"
oncommand="onLVAFilterVertrag(this);"
value="bestellt"
id="toolbarTimeTableFilter-bestellt"
tooltiptext="Filter Status Bestellt"
/>
<toolbarbutton
image="../public/images/icons/fa-user-check.png"
label="Erteilt"
class="timetablefilter-vertrag"
oncommand="onLVAFilterVertrag(this);"
value="erteilt"
id="toolbarTimeTableFilter-erteilt"
tooltiptext="Filter Status Erteilt"
/>
</toolbar>
</toolbox>
<vbox id="vboxLehrveranstalungPlanung" style="overflow:auto;margin:0px;" flex="1"
@@ -257,7 +285,6 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
id="toolbarTimeTableSort-stundenASC"
tooltiptext="Offenen Stunden aufsteigend"
/>
</toolbar>
</toolbox>
</vbox>
+44 -4
View File
@@ -92,6 +92,10 @@ if (isset($_GET['orgform']))
$orgform=$_GET['orgform'];
else
$orgform=null;
if (isset($_GET['vertrag']))
$vertrag=$_GET['vertrag'];
else
$vertrag=null;
//Sortierreihenfolge
if(isset($_GET['order']))
@@ -306,7 +310,8 @@ if ($anz>0)
else
$fixangestellt_info = 'EXT';
$vertragsstatus = 'Neu';
$vertragsstatus_arr = array();
$vertragsstatus_kurzbz_arr = array();
// Lehrauftragsstatus ermitteln
foreach ($l->lem as $row_lem)
{
@@ -315,12 +320,47 @@ if ($anz>0)
{
if ($lem_obj->vertrag_id != '')
{
$vertrag = new vertrag();
if($vertrag->getStatus($lem_obj->vertrag_id))
$vertrag_obj = new vertrag();
if($vertrag_obj->getStatus($lem_obj->vertrag_id))
{
$vertragsstatus = $vertrag->vertragsstatus_bezeichnung;
$vertragsstatus_arr[] = $vertrag_obj->vertragsstatus_bezeichnung;
$vertragsstatus_kurzbz_arr[] = $vertrag_obj->vertragsstatus_kurzbz;
}
}
else
{
$vertragsstatus_arr[] = 'Neu';
}
}
}
$vertragsstatus = implode(',', array_unique($vertragsstatus_arr));
if (!is_null($vertrag) && $vertrag != '')
{
switch($vertrag)
{
// Alle ab Status erteilt herausfiltern
// der rest wird verworfen
case 'erteilt':
if (!in_array('erteilt', $vertragsstatus_kurzbz_arr)
&& !in_array('akzeptiert', $vertragsstatus_kurzbz_arr))
{
continue 2;
}
break;
// Alle ab Status bestellt herausfiltern
// der rest wird verworfen
case 'bestellt':
if (!in_array('bestellt', $vertragsstatus_kurzbz_arr)
&& !in_array('erteilt', $vertragsstatus_kurzbz_arr)
&& !in_array('akzeptiert', $vertragsstatus_kurzbz_arr))
{
continue 2;
}
break;
default:
break;
}
}
echo'<RDF:li>
+5
View File
@@ -219,3 +219,8 @@ treechildren::-moz-tree-row(makeItMarked)
{
background-color: #ceffb0;
}
.timetablefilter-vertrag .toolbarbutton-icon {
width: 25px;
height:25px;
}