From b5fcfb7b091ee84043c89a0f833c275a086a1728 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 25 Jun 2021 14:26:07 +0200 Subject: [PATCH 1/4] first guess, TODO check statusgrund_id --- content/student/studentenoverlay.xul.php | 1 + rdf/student.rdf.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 9865f2719..41010e0f5 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -204,6 +204,7 @@ else + db_add_param($studiensemester_kurzbz)." AND + person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND + status_kurzbz='Student' AND statusgrund_id = 14"; + if ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) + { + return false; + } + } return true; } From 7295523af575a5bd7add63c62b8b222c13ad8865 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 25 Jun 2021 19:08:02 +0200 Subject: [PATCH 2/4] add filter for any statusgrund not only wiederholer --- content/student/studentenoverlay.xul.php | 16 ++++++++++++++- rdf/student.rdf.php | 26 ++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 41010e0f5..70bbfcc22 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -204,7 +204,21 @@ else - + + + getAll(true); + + foreach($statusgrund->result as $row) + { + ?> + + + + db_add_param($studiensemester_kurzbz)." AND - person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND - status_kurzbz='Student' AND statusgrund_id = 14"; - if ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) - { - return false; - } + // Alle Studenten mit Statusgrund in tbl_prestudentstatus + $qry = "SELECT count(*) AS anzahl FROM public.tbl_prestudentstatus ps JOIN + public.tbl_prestudent p ON p.prestudent_id = ps.prestudent_id AND + ps. studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + p. person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND + p.studiengang_kz=" . $db->db_add_param($studiengang_kz, FHC_INTEGER) . " AND + ps.statusgrund_id = " . $db->db_add_param($studstatusgrund[1], FHC_INTEGER); + //echo $qry . "\n"; + $filtered = ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) + ? true + : false; + return $filtered; } return true; } From 9180930e64be46e7088bc4912878d11dddeb5c0e Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 29 Jul 2021 09:09:29 +0200 Subject: [PATCH 3/4] functions for student.rdf urls to add orgform parameter if needed --- content/student/studentoverlay.js.php | 87 +++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index f034ae473..3830ae21b 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1034,7 +1034,13 @@ function StudentAuswahl() StudentGesamtNotenTreeloaded=false; stsem = getStudiensemester(); - var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + //var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + var url = buildStudentRDFURI({ + 'prestudent_id': prestudent_id, + 'studiensemester_kurzbz': stsem + }); + + console.log(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); @@ -2564,11 +2570,49 @@ function StudentKontoFilter() kontotree.builder.addListener(StudentKontoTreeListener); } +// **** +// * Generiert eine student.rdf URI +// **** +function buildStudentRDFURI(queryparams, tree) +{ + var baseurl = "rdf/student.rdf.php"; + console.log(JSON.stringify(tree)); + if ( typeof tree !== "undefined" ) + { + var col = tree.columns ? tree.columns["tree-verband-col-orgform"] : "tree-verband-col-orgform"; + queryparams.orgform = tree.view.getCellText(tree.currentIndex,col); + } + return _buildURI(baseurl, queryparams); +} + +// **** +// * Generiert aus einer BasisURL und einem Dictionary von Parametern eine URI +// **** +function _buildURI(baseurl, queryparams) +{ + var str = []; + var url = baseurl; + for (var p in queryparams) + { + if ( queryparams.hasOwnProperty(p) && queryparams[p].length > 0 ) + { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(queryparams[p])); + } + } + var querystring = str.join("&"); + if ( querystring.length > 0 ) + { + url = url + '?' + querystring + '&' + gettimestamp(); + } + return url; +} + // **** // * Setzt im Studententree einen vordefinierten Filter // **** function StudentKontoFilterStudenten(filter) { + //alert(filter); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree=document.getElementById('tree-verband'); @@ -2591,12 +2635,26 @@ function StudentKontoFilterStudenten(filter) var gruppe = getTreeCellText(tree, 'gruppe', tree.currentIndex); var typ = getTreeCellText(tree, 'typ', tree.currentIndex); var stsem = getTreeCellText(tree, 'stsem', tree.currentIndex); - + if(stsem=='') stsem = getStudiensemester(); if(typ=='') typ='student'; - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2="+filter+"&buchungstyp="+buchungstyp+"&"+gettimestamp(); + + var url = buildStudentRDFURI({ + 'studiengang_kz': stg_kz, + 'semester': sem, + 'verband': ver, + 'gruppe': grp, + 'gruppe_kurzbz': gruppe, + 'studiensemester_kurzbz': stsem, + 'typ': typ, + 'filter2': filter, + 'buchungstyp': buchungstyp + }, tree); + + console.log(url); + var treeStudent=document.getElementById('student-tree'); try @@ -2614,6 +2672,7 @@ function StudentKontoFilterStudenten(filter) treeStudent.database.RemoveDataSource(oldDatasources.getNext()); } + //alert(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); StudentTreeDatasource = rdfService.GetDataSource(url); StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); @@ -2655,7 +2714,20 @@ function StudentKontoFilterBuchungstyp() stsem = getStudiensemester(); if(typ=='') typ='student'; - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + //url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + var url = buildStudentRDFURI({ + 'studiengang_kz': stg_kz, + 'semester': sem, + 'verband': ver, + 'gruppe': grp, + 'gruppe_kurzbz': gruppe, + 'studiensemester_kurzbz': stsem, + 'typ': typ, + 'filter2': 'buchungstyp;' + filter + }, tree); + + console.log(url); + var treeStudent=document.getElementById('student-tree'); try @@ -5436,8 +5508,13 @@ function StudentSuche() document.getElementById('tree-verband').view.selection.clearSelection(); //Datasource setzten und Felder deaktivieren - url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); + //url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); + var url = buildStudentRDFURI({ + 'filter': filter + }); + console.log(url); + var treeStudent=document.getElementById('student-tree'); try From de1c532ca9d43af5f80107fc950c0fe8de794f9f Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 29 Jul 2021 09:11:31 +0200 Subject: [PATCH 4/4] dead code and console.logs removed --- content/student/studentoverlay.js.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 3830ae21b..57e14083a 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1034,13 +1034,11 @@ function StudentAuswahl() StudentGesamtNotenTreeloaded=false; stsem = getStudiensemester(); - //var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + var url = buildStudentRDFURI({ 'prestudent_id': prestudent_id, 'studiensemester_kurzbz': stsem }); - - console.log(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); @@ -2576,7 +2574,6 @@ function StudentKontoFilter() function buildStudentRDFURI(queryparams, tree) { var baseurl = "rdf/student.rdf.php"; - console.log(JSON.stringify(tree)); if ( typeof tree !== "undefined" ) { var col = tree.columns ? tree.columns["tree-verband-col-orgform"] : "tree-verband-col-orgform"; @@ -2714,7 +2711,7 @@ function StudentKontoFilterBuchungstyp() stsem = getStudiensemester(); if(typ=='') typ='student'; - //url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + var url = buildStudentRDFURI({ 'studiengang_kz': stg_kz, 'semester': sem, @@ -2726,8 +2723,6 @@ function StudentKontoFilterBuchungstyp() 'filter2': 'buchungstyp;' + filter }, tree); - console.log(url); - var treeStudent=document.getElementById('student-tree'); try @@ -5508,12 +5503,9 @@ function StudentSuche() document.getElementById('tree-verband').view.selection.clearSelection(); //Datasource setzten und Felder deaktivieren - //url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); var url = buildStudentRDFURI({ 'filter': filter }); - - console.log(url); var treeStudent=document.getElementById('student-tree');