diff --git a/fid/config/vufind/fid.ini b/fid/config/vufind/fid.ini index 19849996e4faba4789d18f73e1a6bdf491ec615e..e4dc39af80b575f5187f5482d3398832567d246f 100644 --- a/fid/config/vufind/fid.ini +++ b/fid/config/vufind/fid.ini @@ -29,4 +29,11 @@ permission_options[] = 'limited_access' permission_options[] = 'full_access' ; file prefix for CSV export -user_list_export_file_prefix = 'export' \ No newline at end of file +user_list_export_file_prefix = 'export' + +[Forms] +; jobTitleOptions is applied to add new Job Titles or reorder them on the form +; provides a comma separated list of available options e.g. "0,2,1" will result +; in having options job_title_0, job_title_2, job_title_1 in that particular order +; of not given, options will be job_title_0, job_title_1 +;jobTitleOptions = "0,1" \ No newline at end of file diff --git a/module/fid/src/Controller/UserController.php b/module/fid/src/Controller/UserController.php index 95947c51392cc49649f61ac159a4e5ca0c06b565..99dc2db56ec1b7e2cd29da700314eeb03c9b7082 100644 --- a/module/fid/src/Controller/UserController.php +++ b/module/fid/src/Controller/UserController.php @@ -198,6 +198,8 @@ class UserController extends AbstractBase $homeLibraryElement = $form->get('home_library'); $homeLibraryElement->setValueOptions($libraries); + $this->applyJobTitleOptions($form); + if ($this->formWasSubmitted()) { $form->setData($request->getPost()); if ($form->isValid()) { @@ -638,6 +640,8 @@ class UserController extends AbstractBase $homeLibraryElement->setValueOptions($libraries); $homeLibraryElement->setUnselectedValue($user->getHomeLibrary()); + $this->applyJobTitleOptions($form); + if ($this->formWasSubmitted()) { $form->setData($request->getPost()); if ($form->isValid()) { @@ -781,4 +785,18 @@ class UserController extends AbstractBase return $response; } + protected function applyJobTitleOptions($form) + { + if ($jobTitleOptions = $this->config['Forms']['jobTitleOptions'] ?? null) { + $options = []; + foreach (explode(',',$jobTitleOptions) as $jobTitleOption) { + $options[] = [ + 'value' => $jobTitleOption, + 'label' => 'job_title_'.$jobTitleOption, + ]; + } + $jobTitleElement = $form->get('job_title'); + $jobTitleElement->setValueOptions($options); + } + } }