From 0183cfd03e7e131ab7374c698379b339a2678d52 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 29 Mar 2018 11:15:10 +0200 Subject: [PATCH] CIS-Suche an neue DMS-Spalten angepasst - CIS-Suche sucht nun nach Schlagworten - Funktion search sucht nun auch direkt nach DMS-ID wenn erstes Zeichen im Suchstring "#" ist. --- cis/private/tools/suche.php | 3 ++ cms/tinymce_dms.php | 2 +- include/dms.class.php | 30 ++++++++----- locale/de-AT/tools.php | 1 + locale/en-US/tools.php | 1 + .../benutzerberechtigung_uebersicht.php | 42 ++++++++++++++----- 6 files changed, 57 insertions(+), 22 deletions(-) diff --git a/cis/private/tools/suche.php b/cis/private/tools/suche.php index 29d10b38b..4e3dab4e7 100644 --- a/cis/private/tools/suche.php +++ b/cis/private/tools/suche.php @@ -413,6 +413,7 @@ function searchDms($searchItems) ',$p->t('global/titel'),' ',$p->t('tools/aktuelleVersion'),' + ',$p->t('tools/suchbegriffe'),' @@ -430,6 +431,7 @@ function searchDms($searchItems) else echo '',$row->beschreibung,''; echo '',$row->version,''; + echo '',$row->schlagworte,''; echo ''; echo "\n"; } @@ -442,6 +444,7 @@ function searchDms($searchItems) else echo '',$row->beschreibung,''; echo '',$row->version,''; + echo '',$row->schlagworte,''; echo ''; echo "\n"; } diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index eae359eb4..3d2ca5f9a 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -551,7 +551,7 @@ else // Suche anzeigen echo '

Dokument Auswählen

- +
'; diff --git a/include/dms.class.php b/include/dms.class.php index 7b05420ad..783f8f459 100644 --- a/include/dms.class.php +++ b/include/dms.class.php @@ -744,10 +744,20 @@ class dms extends basis_db $qry = "SELECT tbl_dms.*, tbl_dms_version.*, tbl_dms_kategorie.berechtigung_kurzbz FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id) - JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz) - WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%') - OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%') + JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)"; + // Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen + if (substr($suchstring, 0, 1) == '#') + { + $suchstring = substr($suchstring, 1); + if (is_numeric($suchstring)) + $qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER); + } + else + { + $qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%') + OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%') "; + } if (is_numeric($suchstring)) $qry.= " OR dms_id = ".$this->db_escape($suchstring).""; @@ -791,19 +801,19 @@ class dms extends basis_db } /** - * Sucht nach Dokumenten (nur Spalte Beschreibung) mit der aktuellsten Version. + * Sucht nach Dokumenten (Spalte schlagworte) mit der aktuellsten Version, bei denen cis_suche true ist * Optional kann die Anzahl an Suchergebnissen übergeben werden. * - * @param suchstring - * @param limit (optional) + * @param string $suchstring + * @param integer $limit (optional) */ public function searchLastVersion($suchstring, $limit=null) { - $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id) - WHERE 1=1 "; + $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id) + WHERE cis_suche=true "; foreach($suchstring as $value) - $qry.=" AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%') - OR lower (beschreibung::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))"; + $qry.=" AND (lower(schlagworte::text) like lower('%".$this->db_escape($value)."%') + OR lower (schlagworte::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))"; $qry.= "AND version=(SELECT MAX(version) FROM campus.tbl_dms_version where dms_id=tbl_dms.dms_id)"; if(!is_null($limit) && is_numeric($limit)) diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php index cbe551bc4..d3c9c6f51 100644 --- a/locale/de-AT/tools.php +++ b/locale/de-AT/tools.php @@ -80,6 +80,7 @@ $this->phrasen['tools/telefonklappe']='Telefonklappe'; $this->phrasen['tools/reservieren']='Reservieren'; $this->phrasen['tools/maxPersonen']='Max. Personen'; $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebnisse gefunden.'; +$this->phrasen['tools/suchbegriffe']='Suchbegriffe'; //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen'; diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index 23345ebed..2e6d0213d 100644 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -82,6 +82,7 @@ $this->phrasen['tools/telefonklappe']='Extension'; $this->phrasen['tools/reservieren']='Reserve room'; $this->phrasen['tools/maxPersonen']='Max. # of people'; $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not return any results.'; +$this->phrasen['tools/suchbegriffe']='Keywords'; //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities'; diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index cb85d4f66..8ab988963 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -60,14 +60,41 @@ $(document).ready(function() $("#t1").tablesorter( { sortList: [[0,0],[1,0],[2,0]], - widgets: ["zebra"], - headers: {4:{sorter:false}} + widgets: ["zebra"], + headers: {4:{sorter:false}} }); $("#t2").tablesorter( { sortList: [[0,0],[1,0],[2,0],[3,0]], widgets: ["zebra", "filter", "stickyHeaders"], - headers: {4:{sorter:false}}, + headers: {8:{sorter:false}}, + emptyTo: "emptyMax", + widgetOptions : { filter_functions: + { + // Add select menu to this column + 6 : { + "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); }, + "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); } + }, + 7 : { + "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, + "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } + } + } + } + }); + $("#t3").tablesorter( + { + sortList: [[1,0],[2,0],[3,0]], + widgets: ["zebra"], + headers: {8:{sorter:false}}, + emptyTo: "emptyMax" + }); + $("#t4").tablesorter( + { + sortList: [[0,0],[1,0],[2,0]], + widgets: ["zebra", "filter", "stickyHeaders"], + headers: {9:{sorter:false}}, emptyTo: "emptyMax", widgetOptions : { filter_functions: { @@ -83,13 +110,6 @@ $(document).ready(function() } } }); - $("#t3").tablesorter( - { - sortList: [[1,0],[2,0],[3,0]], - widgets: ["zebra"], - headers: {8:{sorter:false}}, - emptyTo: "emptyMax" - }); }); @@ -443,7 +463,7 @@ if($berechtigung_kurzbz != '') $htmlstr .= "

".$berechtigung_kurzbz."

\n"; $htmlstr .= "
".count($berechtigungen_array)." Einträge
"; $htmlstr .= "
".count(array_unique($berechtigungen_array_uids))." UIDs
"; - $htmlstr .= "\n"; + $htmlstr .= "
\n"; $htmlstr .= "
Nachname Vorname UID