fix SearchLib bug, add searchtypes config studentcis and active_organisationunit, use new searchtype in cis4 searchoptions and searchbar result rendering

This commit is contained in:
Harald Bamberger
2025-07-14 13:57:37 +02:00
parent e9614e8ca8
commit a1fe2e1b4b
4 changed files with 26 additions and 6 deletions
+19
View File
@@ -209,6 +209,20 @@ $config['student'] = [
JOIN public.tbl_person p USING(person_id)"
];
$config['studentcis'] = $config['student'];
unset($config['studentcis']['fields']['email']);
$config['studentcis']['resultfields'] = [
"s.student_uid AS uid",
"s.matrikelnr",
"p.person_id",
"(p.vorname || ' ' || p.nachname) AS name",
"ARRAY[s.student_uid || '@' || '" . DOMAIN . "'] AS email",
"CASE
WHEN p.foto IS NOT NULL THEN 'data:image/jpeg' || CONVERT_FROM(DECODE('3b','hex'), 'UTF8') || 'base64,' || p.foto
ELSE NULL END
AS photo_url"
];
$config['prestudent'] = [
'primarykey' => 'prestudent_id',
'table' => 'public.tbl_prestudent',
@@ -652,6 +666,11 @@ $config['organisationunit'] = [
ON (oe_parent.organisationseinheittyp_kurzbz = type_parent.organisationseinheittyp_kurzbz)"
];
$config['active_organisationunit'] = $config['organisationunit'];
$config['active_organisationunit']['alias'] = ['aou', 'aktive organisationseinheit', 'aoe'];
$config['active_organisationunit']['prepare'] = 'active_organisationseinheit AS (SELECT * FROM public.tbl_organisationseinheit WHERE aktiv = true)';
$config['active_organisationunit']['table'] = 'active_organisationseinheit';
$config['room'] = [
'alias' => ['raum'],
'primarykey' => 'ort_kurzbz',
+3 -2
View File
@@ -668,8 +668,9 @@ class SearchLib
SELECT " . $this->_formatPrimarykeys($table_config['primarykey']) . ", rank / " . $count . " AS rank FROM " . $current_select;
}
if ($or_with[0] === "RECURSIVE") {
if ($sqlWith[0] !== "RECURSIVE")
if ($or_with[0] === "RECURSIVE")
{
if (empty($sqlWith) || $sqlWith[0] !== "RECURSIVE")
array_unshift($sqlWith, "RECURSIVE");
array_shift($or_with);
}