Merge branch 'feature-63455/Studierendenverwaltung_Tab_Reihenfolge'

This commit is contained in:
Harald Bamberger
2025-09-17 14:25:04 +02:00
2 changed files with 66 additions and 2 deletions
+30
View File
@@ -83,3 +83,33 @@ if (!defined('ZGV_DOKTOR_ANZEIGEN') || !ZGV_DOKTOR_ANZEIGEN) {
$fieldsZgvDoktor
);
}
$config['student_tab_order'] = [
'details',
'notes',
'messages',
'contact',
'prestudent',
'status',
'documents',
'archive',
'banking',
'grades',
'exam',
'exemptions',
'finalexam',
'mobility',
'jointstudies',
'admissionDates',
'groups',
'functions',
'coursedates',
'resources',
];
$config['students_tab_order'] = [
'banking',
'status',
'groups',
'finalexam',
'archive',
];
@@ -184,7 +184,9 @@ class Config extends FHCAPI_Controller
return $result;
});
$this->terminateWithSuccess($result);
$sortConfig = $this->config->item('student_tab_order');
$this->terminateWithSuccess($this->sortTabList($result, $sortConfig));
}
public function students()
@@ -231,7 +233,9 @@ class Config extends FHCAPI_Controller
return $result;
});
$this->terminateWithSuccess($result);
$sortConfig = $this->config->item('students_tab_order');
$this->terminateWithSuccess($this->sortTabList($result, $sortConfig));
}
protected function kontoColumns()
@@ -507,4 +511,34 @@ class Config extends FHCAPI_Controller
return $list;
}
/**
* Sort tab list
*
* @param array $input
* @param array $config
*
* @return array
*/
protected function sortTabList($input, $config)
{
// prepare config
if (!$config || !is_array($config))
$config = [];
else
$config = array_flip($config);
// fill missing items in config
foreach (array_keys($input) as $key) {
if (!isset($config[$key]))
$config[$key] = count($config);
}
// do the sorting
uksort($input, function ($a, $b) use ($config) {
return $config[$a] - $config[$b];
});
return $input;
}
}