From ff6b7a024dc459e4356c7019b8ad33cfdd33b81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 27 Nov 2019 18:18:44 +0100 Subject: [PATCH] =?UTF-8?q?Filter=20im=20Tempus=20nach=20Vertragsstatus=20?= =?UTF-8?q?hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/lvplanung/stpl-week-overlay.js.php | 135 +++++++++++++------- content/lvplanung/stpl-week-overlay.xul.php | 31 ++++- rdf/lehreinheit-lvplan.rdf.php | 48 ++++++- skin/tempus.css | 5 + 4 files changed, 165 insertions(+), 54 deletions(-) diff --git a/content/lvplanung/stpl-week-overlay.js.php b/content/lvplanung/stpl-week-overlay.js.php index beebfa2ef..2c31df3ef 100644 --- a/content/lvplanung/stpl-week-overlay.js.php +++ b/content/lvplanung/stpl-week-overlay.js.php @@ -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 = "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 = '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 = '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 = "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'); } diff --git a/content/lvplanung/stpl-week-overlay.xul.php b/content/lvplanung/stpl-week-overlay.xul.php index 77b663e28..2c6531628 100644 --- a/content/lvplanung/stpl-week-overlay.xul.php +++ b/content/lvplanung/stpl-week-overlay.xul.php @@ -110,7 +110,35 @@ echo ' - + + + + + - diff --git a/rdf/lehreinheit-lvplan.rdf.php b/rdf/lehreinheit-lvplan.rdf.php index 05d0c1d89..a7c89ac98 100644 --- a/rdf/lehreinheit-lvplan.rdf.php +++ b/rdf/lehreinheit-lvplan.rdf.php @@ -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' diff --git a/skin/tempus.css b/skin/tempus.css index def665d13..f064ccb8c 100644 --- a/skin/tempus.css +++ b/skin/tempus.css @@ -219,3 +219,8 @@ treechildren::-moz-tree-row(makeItMarked) { background-color: #ceffb0; } + +.timetablefilter-vertrag .toolbarbutton-icon { + width: 25px; + height:25px; +}